@dvina/sdk 4.0.36 → 4.0.68

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/globals/global.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/utils.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/errors/errors.js","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/chaining-functions.js","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/debug.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/promise.js","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/temp-transaction.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/globals/constants.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/combine.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/dbcore/keyrange.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/workaround-undefined-primkey.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/entity/Entity.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/cmp.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/table/table-helpers.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/prop-modification.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/apply-update-spec.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/table/table.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/Events.js","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/make-class-constructor.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/table/table-constructor.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/collection/collection-helpers.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/collection/collection.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/collection/collection-constructor.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/compare-functions.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/where-clause/where-clause-helpers.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/where-clause/where-clause.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/where-clause/where-clause-constructor.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/event-wrappers.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/globals/global-events.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/transaction/transaction.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/transaction/transaction-constructor.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/index-spec.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/table-schema.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/quirks.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/dbcore/get-key-extractor.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/dbcore/dbcore-indexeddb.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/dexie/generate-middleware-stacks.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/version/schema-helpers.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/version/version.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/version/version-constructor.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/database-enumerator.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/dexie/vip.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/node_modules/.pnpm/safari-14-idb-fix@3.0.0/node_modules/safari-14-idb-fix/dist/index.js","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/rangeset.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/extend-observability-set.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/obs-sets-overlap.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/cache.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/signalSubscribers.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/dexie/dexie-open.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/yield-support.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/dexie/transaction-helpers.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/dbcore/virtual-index-middleware.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/get-object-diff.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/dbcore/get-effective-keys.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/hooks/hooks-middleware.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/dbcore/cache-existing-values-middleware.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/is-cachable-context.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/is-cachable-request.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/observability-middleware.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/adjust-optimistic-request-from-failures.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/is-within-range.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/apply-optimistic-ops.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/are-ranges-equal.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/is-super-range.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/find-compatible-query.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/subscribe-cachentry.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/cache/cache-middleware.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/helpers/vipify.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/dexie/dexie.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/observable/observable.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/dexie/dexie-dom-dependencies.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/live-query.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/classes/dexie/dexie-static-props.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/propagate-locally.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/live-query/enable-broadcast.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/support-bfcache.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/propmods/add.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/propmods/remove.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/functions/propmods/replace-prefix.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/index.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/src/index-umd.ts","../../../node_modules/.pnpm/graphql-ws@6.0.7_graphql@16.9.0_ws@8.19.0/node_modules/graphql-ws/dist/common-CGW11Fyb.js","../../../node_modules/.pnpm/graphql-ws@6.0.7_graphql@16.9.0_ws@8.19.0/node_modules/graphql-ws/dist/client.js","../src/transport/ws.ts","../src/_generated_store.ts","../../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/import-wrapper.mjs","../src/store/database.ts","../src/transport/sse.ts","../src/runtime/query-ref.ts","../src/store/live-query.ts","../src/store/normalization.ts","../src/store/cache-manager.ts","../src/store/utils.ts","../src/store/query-executor.ts","../src/store/optimistic-manager.ts","../src/store/mutation-executor.ts","../src/store/sync-engine.ts","../src/lazy-sync-engine.ts","../src/upload.ts","../src/user-timezone.ts","../src/client.ts","../src/runtime/model.ts","../src/store/reconstruct.ts","../src/runtime/query-builder.ts","../src/runtime/hydrate.ts","../src/_generated_sdk.ts"],"names":["d","b","__assign","asap","DexieError","_a","type","resolve","reject","props","Entity","cmp","keys","PropModification","Table","task","trans","Promise","i","add","args","Collection","count","direction","WhereClause","addRange","ranges","Transaction","p","db","tables","keyPath","compound","result","req","openCursor","query","ev","hasGetAll","oldVersion","tableChange","Version","indexedDB","Dexie","RangeSet","mergeRanges","target","rangesOverlap","safari14Workaround","index","primaryKey","dxTrans","cache","key","state","Observable","liveQuery","_Dexie","Debug.debug","Debug.setDebug","remove","replacePrefix","GRAPHQL_ERROR_CODES","createGraphQLError","DvinaAuthenticationError","document","print","DvinaGraphQLError","DvinaError","__toESM","isTempId","snapshot","affectedQueryResults","childRecord","GenerateUploadUriDocument","response","DvinaNetworkError","createHttpTransport","createInferenceClientInternal","BillingClient","Request","Kind","Connection","fetch","PageInfo","Agent_ChatsDocument","ChatConnectionFragmentDoc","Artifact_ChatDocument","ChatFragmentDoc","Artifact_FileDocument","FileFragmentDoc","Artifact_MessageDocument","ChatMessageFragmentDoc","Chat_AgentsDocument","AgentConnectionFragmentDoc","Chat_ArtifactsDocument","ArtifactConnectionFragmentDoc","Chat_InsightDocument","InsightFragmentDoc","Chat_MessagesDocument","ChatMessageConnectionFragmentDoc","ChatMessage_ArtifactsDocument","ChatMessage_ChatDocument","ChatMessage_ContentsDocument","ContentBlockFragmentDoc","ChatMessage_FeedbackDocument","FeedbackFragmentDoc","Database_EngineDocument","DatabaseEngineFragmentDoc","Database_TablesDocument","TableConnectionFragmentDoc","DatabaseCatalog_EngineDocument","Document_ContentsDocument","DocumentContentFragmentDoc","Document_FileDocument","Document_FormatDocument","DocumentFormatFragmentDoc","Document_TablesDocument","DocumentCatalog_FormatDocument","Insight_ChatDocument","Insight_ReportMembersDocument","ReportMemberFragmentDoc","Insight_ReportsDocument","ReportConnectionFragmentDoc","Integration_ProviderDocument","IntegrationProviderFragmentDoc","IntegrationCatalog_ProviderDocument","PulseEvent_IntegrationDocument","IntegrationFragmentDoc","Report_InsightsDocument","InsightConnectionFragmentDoc","Report_LayoutDocument","Table_DatabaseDocument","DatabaseFragmentDoc","Table_DocumentDocument","DocumentFragmentDoc","Table_FromRelationsDocument","RelationFragmentDoc","Table_ToRelationsDocument","AcknowledgePulseEventDocument","AddInsightToReportDocument","CancelOauthFlowDocument","CancelWorkspaceDeletionDocument","ConnectIntegrationDocument","ContinueImportedChatDocument","ContinueInterpretationDocument","CreateAgentDocument","CreateChatDocument","CreateDatabaseDocument","CreateDocumentDocument","CreateFeedbackDocument","CreateFolderDocument","CreateInsightDocument","CreateIntegrationDocument","CreateReportDocument","CreateTableDocument","CreateUserSkillFileDocument","CreateUserSkillFolderDocument","DeleteAgentDocument","DeleteArtifactDocument","DeleteChatDocument","DeleteDatabaseDocument","DeleteDocumentDocument","DeleteFolderDocument","DeleteInsightDocument","DeleteInsightsDocument","DeleteIntegrationDocument","DeleteReportDocument","DeleteTableDocument","DeleteUserSkillFileDocument","DeleteUserSkillFolderDocument","DisconnectIntegrationDocument","DismissPulseEventDocument","ExecuteChatImportDocument","MarkPulseEventSeenDocument","PreviewChatImportDocument","ReanalyzeDocumentDocument","RefineMindInstructionDocument","RefreshDatabaseSchemaDocument","ReinterpretSourceDocument","ReinterpretSourcesOfuserDocument","RelocateInsightDocument","RemoveInsightFromReportDocument","ResetWorkspaceDocument","ResolvePulseEventDocument","ScheduleWorkspaceDeletionDocument","SetDatabasePrimaryKeyDocument","UpdateAgentDocument","UpdateChatDocument","UpdateDatabaseDocument","UpdateDocumentDocument","UpdateFolderDocument","UpdateInsightDocument","UpdateInsightInReportDocument","UpdateInterpDocument","UpdatePulseTriggerDocument","UpdateReportDocument","UpdateTableDocument","UpdateUserSkillFileDocument","UpdateUserSkillFolderDocument","AgentDocument","defaultConnection","AgentsDocument","ArtifactDocument","Artifact_Chat_InsightDocument","Artifact_Message_ChatDocument","Artifact_Message_ContentsDocument","Artifact_Message_FeedbackDocument","ArtifactsDocument","ChatDocument","Chat_Insight_ReportMembersDocument","ChatMessageDocument","ChatMessage_Chat_InsightDocument","ChatMessagesDocument","ChatsDocument","DatabaseDocument","Database_Engine_CatalogDocument","DatabaseCatalogDocument","DatabaseCatalogsDocument","DatabaseSchemaDocument","DatabasesDocument","DocumentDocument","Document_Format_CatalogDocument","DocumentCatalogDocument","DocumentCatalogsDocument","DocumentsDocument","ExportDocument","ExportWithInsightIdDocument","FileDocument","FileMetaDocument","FileUrlsDocument","FindFitTierDocument","FolderDocument","FoldersDocument","GetCapabilityDocument","GetDevAccessTokenDocument","GetLimitDocument","GetRemainingDocument","GetTokenUsageByModelDocument","GetTokenUsageHistoryDocument","GetTokenUsageStatusDocument","GetTokenUsageStatus_WindowsDocument","UsageWindowsStatusTypeFragmentDoc","GetTokenUsageStatus_Windows_DayDocument","GetTokenUsageStatus_Windows_FiveHourDocument","GetTokenUsageStatus_Windows_WeekDocument","GetUsageDocument","InsightDocument","InsightsDocument","IntegrationDocument","Integration_Provider_CatalogDocument","IntegrationCatalogDocument","IntegrationCatalogToolsDocument","IntegrationCatalogsDocument","IntegrationsDocument","InterpretationsDocument","NotificationDocument","NotificationsDocument","NotificationsByReferenceDocument","PrivacyStatsDocument","PulseAppSummaryDocument","PulseEventDocument","PulseEvent_Integration_ProviderDocument","PulseEventStatsDocument","PulseEventsDocument","PulseTriggerSettingsDocument","QueryDocument","QueryWithInsightIdDocument","QueryWithMessageIdDocument","ReportDocument","ReportsDocument","SearchDocument","TableDocument","Table_Database_EngineDocument","Table_Document_ContentsDocument","Table_Document_FileDocument","Table_Document_FormatDocument","TablesDocument","UserSkillFileDocument","UserSkillFilesDocument","UserSkillFolderDocument","UserSkillFoldersDocument","WorkspaceDeletionScheduleDocument","McpAuthUpdatesDocument","SendMessageStreamDocument","TokenUsageUpdatesDocument"],"mappings":"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","file":"chunk-ZQQYRZ7N.cjs","sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","declare var global;\nexport const _global: any =\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n global;\n","import { _global } from \"../globals/global\";\nexport const keys = Object.keys;\nexport const isArray = Array.isArray;\nif (typeof Promise !== 'undefined' && !_global.Promise){\n // In jsdom, this it can be the case that Promise is not put on the global object.\n // If so, we need to patch the global object for the rest of the code to work as expected.\n // Other dexie code expects Promise to be on the global object (like normal browser environments)\n _global.Promise = Promise;\n}\nexport { _global }\n\nexport function extend<T extends object,X extends object>(obj: T, extension: X): T & X {\n if (typeof extension !== 'object') return obj as T & X;\n keys(extension).forEach(function (key) {\n obj[key] = extension[key];\n });\n return obj as T & X;\n}\n\nexport const getProto = Object.getPrototypeOf;\nexport const _hasOwn = {}.hasOwnProperty;\nexport function hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\n\nexport function props (proto, extension) {\n if (typeof extension === 'function') extension = extension(getProto(proto));\n (typeof Reflect === \"undefined\" ? keys : Reflect.ownKeys)(extension).forEach(key => {\n setProp(proto, key, extension[key]);\n });\n}\n\nexport const defineProperty = Object.defineProperty;\n\nexport function setProp(obj, prop, functionOrGetSet, options?) {\n defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ?\n {get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true} :\n {value: functionOrGetSet, configurable: true, writable: true}, options));\n}\n\nexport function derive(Child) {\n return {\n from: function (Parent) {\n Child.prototype = Object.create(Parent.prototype);\n setProp(Child.prototype, \"constructor\", Child);\n return {\n extend: props.bind(null, Child.prototype)\n };\n }\n };\n}\n\nexport const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\nexport function getPropertyDescriptor(obj, prop) {\n const pd = getOwnPropertyDescriptor(obj, prop);\n let proto;\n return pd || (proto = getProto(obj)) && getPropertyDescriptor (proto, prop);\n}\n\nconst _slice = [].slice;\nexport function slice(args, start?, end?) {\n return _slice.call(args, start, end);\n}\n\nexport function override(origFunc, overridedFactory) {\n return overridedFactory(origFunc);\n}\n\nexport function assert (b) {\n if (!b) throw new Error(\"Assertion Failed\");\n}\n\nexport function asap(fn) {\n // @ts-ignore\n if (_global.setImmediate) setImmediate(fn); else setTimeout(fn, 0);\n}\n\nexport function getUniqueArray(a) {\n return a.filter((value, index, self) => self.indexOf(value) === index);\n}\n\n/** Generate an object (hash map) based on given array.\n * @param extractor Function taking an array item and its index and returning an array of 2 items ([key, value]) to\n * instert on the resulting object for each item in the array. If this function returns a falsy value, the\n * current item wont affect the resulting object.\n */\nexport function arrayToObject<T,R> (array: T[], extractor: (x:T, idx: number)=>[string, R]): {[name: string]: R} {\n return array.reduce((result, item, i) => {\n var nameAndValue = extractor(item, i);\n if (nameAndValue) result[nameAndValue[0]] = nameAndValue[1];\n return result;\n }, {});\n}\n\nexport function trycatcher(fn, reject) {\n return function () {\n try {\n fn.apply(this, arguments);\n } catch (e) {\n reject(e);\n }\n };\n}\n\nexport function tryCatch(fn: (...args: any[])=>void, onerror, args?) : void {\n try {\n fn.apply(null, args);\n } catch (ex) {\n onerror && onerror(ex);\n }\n}\n\nexport function getByKeyPath(obj, keyPath) {\n // http://www.w3.org/TR/IndexedDB/#steps-for-extracting-a-key-from-a-value-using-a-key-path\n if (typeof keyPath === 'string' && hasOwn(obj, keyPath)) return obj[keyPath]; // This line is moved from last to first for optimization purpose.\n if (!keyPath) return obj;\n if (typeof keyPath !== 'string') {\n var rv = [];\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n var val = getByKeyPath(obj, keyPath[i]);\n rv.push(val);\n }\n return rv;\n }\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj == null ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return undefined;\n}\n\nexport function setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined) return;\n if ('isFrozen' in Object && Object.isFrozen(obj)) return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n } else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === \"\")\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(currentKeyPath))) obj.splice(currentKeyPath, 1);\n else delete obj[currentKeyPath];\n } else obj[currentKeyPath] = value;\n else {\n var innerObj = obj[currentKeyPath];\n if (!innerObj || !hasOwn(obj, currentKeyPath)) innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n } else {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(keyPath))) obj.splice(keyPath, 1);\n else delete obj[keyPath];\n } else obj[keyPath] = value;\n }\n }\n}\n\nexport function delByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string')\n setByKeyPath(obj, keyPath, undefined);\n else if ('length' in keyPath)\n [].map.call(keyPath, function(kp) {\n setByKeyPath(obj, kp, undefined);\n });\n}\n\nexport function shallowClone(obj) {\n var rv = {};\n for (var m in obj) {\n if (hasOwn(obj, m)) rv[m] = obj[m];\n }\n return rv;\n}\n\nconst concat = [].concat;\nexport function flatten<T> (a: (T | T[])[]) : T[] {\n return concat.apply([], a);\n}\n\n//https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm\nconst intrinsicTypeNames =\n \"BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\"\n .split(',').concat(\n flatten([8,16,32,64].map(num=>[\"Int\",\"Uint\",\"Float\"].map(t=>t+num+\"Array\")))\n ).filter(t=>_global[t]);\nconst intrinsicTypes = new Set(intrinsicTypeNames.map(t=>_global[t]));\n\n/** Deep clone a simple object tree.\n * \n * Copies object tree deeply, but does not deep-copy arrays,\n * typed arrays, Dates or other intrinsic types.\n * \n * Does not check for cyclic references.\n * \n * This function is 6 times faster than structuredClone() on chromium 111.\n * \n * This function can safely be used for cloning ObservabilitySets and RangeSets.\n * \n * @param o Object to clone\n * @returns Cloned object\n */\nexport function cloneSimpleObjectTree<T extends object>(o: T): T {\n const rv = {} as T;\n for (const k in o) if (hasOwn(o, k)) {\n const v = o[k];\n rv[k] = !v || typeof v !== 'object' || intrinsicTypes.has(v.constructor) ? v : cloneSimpleObjectTree(v);\n }\n return rv;\n}\n\nexport function objectIsEmpty(o: object) {\n for (const k in o) if (hasOwn(o, k)) return false;\n return true;\n}\n\nlet circularRefs: null | WeakMap<any,any> = null;\n\n/** Deep clone an object or array.\n * \n * \n * @param any \n * @returns \n */\nexport function deepClone<T>(any: T): T {\n circularRefs = new WeakMap();\n const rv = innerDeepClone(any);\n circularRefs = null;\n return rv;\n}\n\nfunction innerDeepClone<T>(x: T): T {\n if (!x || typeof x !== 'object') return x;\n let rv = circularRefs.get(x); // Resolve circular references\n if (rv) return rv;\n if (isArray(x)) {\n rv = [];\n circularRefs.set(x, rv);\n for (var i = 0, l = x.length; i < l; ++i) {\n rv.push(innerDeepClone(x[i]));\n }\n } else if (intrinsicTypes.has(x.constructor)) {\n // For performance, we're less strict than structuredClone - we're only\n // cloning arrays and custom objects.\n // Typed arrays, Dates etc are not cloned.\n rv = x;\n } else {\n // We're nicer to custom classes than what structuredClone() is -\n // we preserve the proto of each object.\n const proto = getProto(x);\n rv = proto === Object.prototype ? {} : Object.create(proto);\n circularRefs.set(x, rv);\n for (var prop in x) {\n if (hasOwn(x, prop)) {\n rv[prop] = innerDeepClone(x[prop]);\n }\n }\n }\n return rv;\n}\n\nconst {toString} = {};\nexport function toStringTag(o: Object) {\n return toString.call(o).slice(8, -1);\n}\n\n// If first argument is iterable or array-like, return it as an array\nexport const iteratorSymbol = typeof Symbol !== 'undefined' ?\n Symbol.iterator :\n '@@iterator';\nexport const getIteratorOf = typeof iteratorSymbol === \"symbol\" ? function(x) {\n var i;\n return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n} : function () { return null; };\nexport const asyncIteratorSymbol = typeof Symbol !== 'undefined'\n ? Symbol.asyncIterator || Symbol.for(\"Symbol.asyncIterator\")\n : '@asyncIterator';\n\nexport function delArrayItem(a: any[], x: any) {\n const i = a.indexOf(x);\n if (i >= 0) a.splice(i, 1);\n return i >= 0;\n}\n\nexport const NO_CHAR_ARRAY = {};\n// Takes one or several arguments and returns an array based on the following criteras:\n// * If several arguments provided, return arguments converted to an array in a way that\n// still allows javascript engine to optimize the code.\n// * If single argument is an array, return a clone of it.\n// * If this-pointer equals NO_CHAR_ARRAY, don't accept strings as valid iterables as a special\n// case to the two bullets below.\n// * If single argument is an iterable, convert it to an array and return the resulting array.\n// * If single argument is array-like (has length of type number), convert it to an array.\nexport function getArrayOf (arrayLike) {\n var i, a, x, it;\n if (arguments.length === 1) {\n if (isArray(arrayLike)) return arrayLike.slice();\n if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string') return [arrayLike];\n if ((it = getIteratorOf(arrayLike))) {\n a = [];\n while ((x = it.next()), !x.done) a.push(x.value);\n return a;\n }\n if (arrayLike == null) return [arrayLike];\n i = arrayLike.length;\n if (typeof i === 'number') {\n a = new Array(i);\n while (i--) a[i] = arrayLike[i];\n return a;\n }\n return [arrayLike];\n }\n i = arguments.length;\n a = new Array(i);\n while (i--) a[i] = arguments[i];\n return a;\n}\nexport const isAsyncFunction = typeof Symbol !== 'undefined'\n ? (fn: Function) => fn[Symbol.toStringTag] === 'AsyncFunction'\n : ()=>false;\n","import { derive, setProp } from '../functions/utils';\n\nvar dexieErrorNames = [\n 'Modify',\n 'Bulk',\n 'OpenFailed',\n 'VersionChange',\n 'Schema',\n 'Upgrade',\n 'InvalidTable',\n 'MissingAPI',\n 'NoSuchDatabase',\n 'InvalidArgument',\n 'SubTransaction',\n 'Unsupported',\n 'Internal',\n 'DatabaseClosed',\n 'PrematureCommit',\n 'ForeignAwait'\n];\n\nvar idbDomErrorNames = [\n 'Unknown',\n 'Constraint',\n 'Data',\n 'TransactionInactive',\n 'ReadOnly',\n 'Version',\n 'NotFound',\n 'InvalidState',\n 'InvalidAccess',\n 'Abort',\n 'Timeout',\n 'QuotaExceeded',\n 'Syntax',\n 'DataClone'\n];\n\nvar errorList = dexieErrorNames.concat(idbDomErrorNames);\n\nvar defaultTexts = {\n VersionChanged: \"Database version changed by other database connection\",\n DatabaseClosed: \"Database has been closed\",\n Abort: \"Transaction aborted\",\n TransactionInactive: \"Transaction has already completed or failed\",\n MissingAPI: \"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"\n};\n\n//\n// DexieError - base class of all out exceptions.\n//\nexport function DexieError (name, msg) {\n // Reason we don't use ES6 classes is because:\n // 1. It bloats transpiled code and increases size of minified code.\n // 2. It doesn't give us much in this case.\n // 3. It would require sub classes to call super(), which\n // is not needed when deriving from Error.\n this.name = name;\n this.message = msg;\n}\n\nderive(DexieError).from(Error).extend({\n toString: function(){ return this.name + \": \" + this.message; }\n});\n\nfunction getMultiErrorMessage (msg, failures) {\n return msg + \". Errors: \" + Object.keys(failures)\n .map(key=>failures[key].toString())\n .filter((v,i,s)=>s.indexOf(v) === i) // Only unique error strings\n .join('\\n');\n}\n\n//\n// ModifyError - thrown in Collection.modify()\n// Specific constructor because it contains members failures and failedKeys.\n//\nexport function ModifyError (msg, failures, successCount, failedKeys) {\n this.failures = failures;\n this.failedKeys = failedKeys;\n this.successCount = successCount;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(ModifyError).from(DexieError);\n\nexport function BulkError (msg, failures) {\n this.name = \"BulkError\";\n this.failures = Object.keys(failures).map(pos => failures[pos]);\n this.failuresByPos = failures;\n this.message = getMultiErrorMessage(msg, this.failures);\n}\nderive(BulkError).from(DexieError);\n\n//\n//\n// Dynamically generate error names and exception classes based\n// on the names in errorList.\n//\n//\n\n// Map of {ErrorName -> ErrorName + \"Error\"}\nexport var errnames = errorList.reduce((obj,name)=>(obj[name]=name+\"Error\",obj),{});\n\n// Need an alias for DexieError because we're gonna create subclasses with the same name.\nconst BaseException = DexieError;\n// Map of {ErrorName -> exception constructor}\nexport var exceptions = errorList.reduce((obj,name)=>{\n // Let the name be \"DexieError\" because this name may\n // be shown in call stack and when debugging. DexieError is\n // the most true name because it derives from DexieError,\n // and we cannot change Function.name programatically without\n // dynamically create a Function object, which would be considered\n // 'eval-evil'.\n var fullName = name + \"Error\";\n function DexieError (msgOrInner, inner){\n this.name = fullName;\n if (!msgOrInner) {\n this.message = defaultTexts[name] || fullName;\n this.inner = null;\n } else if (typeof msgOrInner === 'string') {\n this.message = `${msgOrInner}${!inner ? '' : '\\n ' + inner}`;\n this.inner = inner || null;\n } else if (typeof msgOrInner === 'object') {\n this.message = `${msgOrInner.name} ${msgOrInner.message}`;\n this.inner = msgOrInner;\n }\n }\n derive(DexieError).from(BaseException);\n obj[name]=DexieError;\n return obj;\n},{});\n\n// Use ECMASCRIPT standard exceptions where applicable:\nexceptions.Syntax = SyntaxError;\nexceptions.Type = TypeError;\nexceptions.Range = RangeError;\n\nexport var exceptionMap = idbDomErrorNames.reduce((obj, name)=>{\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\n\nexport function mapError (domError, message) {\n if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name])\n return domError;\n var rv = new exceptionMap[domError.name](message || domError.message, domError);\n if (\"stack\" in domError) {\n // Derive stack from inner exception if it has a stack\n setProp(rv, \"stack\", {get: function(){\n return this.inner.stack;\n }});\n }\n return rv;\n}\n\nexport var fullNameExceptions = errorList.reduce((obj, name)=>{\n if ([\"Syntax\",\"Type\",\"Range\"].indexOf(name) === -1)\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\n\nfullNameExceptions.ModifyError = ModifyError;\nfullNameExceptions.DexieError = DexieError;\nfullNameExceptions.BulkError = BulkError;\n","import {extend} from './utils';\n\nexport function nop() { }\nexport function mirror(val) { return val; }\nexport function pureFunctionChain(f1, f2) {\n // Enables chained events that takes ONE argument and returns it to the next function in chain.\n // This pattern is used in the hook(\"reading\") event.\n if (f1 == null || f1 === mirror) return f2;\n return function (val) {\n return f2(f1(val));\n };\n}\n\nexport function callBoth(on1, on2) {\n return function () {\n on1.apply(this, arguments);\n on2.apply(this, arguments);\n };\n}\n\nexport function hookCreatingChain(f1, f2) {\n // Enables chained events that takes several arguments and may modify first argument by making a modification and then returning the same instance.\n // This pattern is used in the hook(\"creating\") event.\n if (f1 === nop) return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res !== undefined) arguments[0] = res;\n var onsuccess = this.onsuccess, // In case event listener has set this.onsuccess\n onerror = this.onerror; // In case event listener has set this.onerror\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res2 !== undefined ? res2 : res;\n };\n}\n\nexport function hookDeletingChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n f1.apply(this, arguments);\n var onsuccess = this.onsuccess, // In case event listener has set this.onsuccess\n onerror = this.onerror; // In case event listener has set this.onerror\n this.onsuccess = this.onerror = null;\n f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n };\n}\n\nexport function hookUpdatingChain(f1, f2) {\n if (f1 === nop) return f2;\n return function (modifications) {\n var res = f1.apply(this, arguments);\n extend(modifications, res); // If f1 returns new modifications, extend caller's modifications with the result before calling next in chain.\n var onsuccess = this.onsuccess, // In case event listener has set this.onsuccess\n onerror = this.onerror; // In case event listener has set this.onerror\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res === undefined ?\n (res2 === undefined ? undefined : res2) :\n (extend(res, res2));\n };\n}\n\nexport function reverseStoppableEventChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n if (f2.apply(this, arguments) === false) return false;\n return f1.apply(this, arguments);\n };\n}\n\nexport function nonStoppableEventChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n f1.apply(this, arguments);\n f2.apply(this, arguments);\n };\n}\n\nexport function promisableChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res && typeof res.then === 'function') {\n var thiz = this,\n i = arguments.length,\n args = new Array(i);\n while (i--) args[i] = arguments[i];\n return res.then(function () {\n return f2.apply(thiz, args);\n });\n }\n return f2.apply(this, arguments);\n };\n}\n","// By default, debug will be true only if platform is a web platform and its page is served from localhost.\n// When debug = true, error's stacks will contain asyncronic long stacks.\nexport var debug = typeof location !== 'undefined' &&\n // By default, use debug mode if served from localhost.\n /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\n\nexport function setDebug(value, filter) {\n debug = value;\n}\n\nexport function deprecated<T> (what: string, fn: (...args)=>T) {\n return function () {\n console.warn(`${what} is deprecated. See https://dexie.org/docs/Deprecations}`);\n return fn.apply(this, arguments);\n } as (...args)=>T\n}\n","/*\n * Copyright (c) 2014-2017 David Fahlander\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/LICENSE-2.0\n */\nimport { _global } from '../globals/global';\nimport {tryCatch, props, setProp,\n getPropertyDescriptor, getArrayOf, extend, getProto} from '../functions/utils';\nimport {nop, callBoth, mirror} from '../functions/chaining-functions';\nimport {debug} from './debug';\nimport {exceptions} from '../errors';\n\n//\n// Promise and Zone (PSD) for Dexie library\n//\n// I started out writing this Promise class by copying promise-light (https://github.com/taylorhakes/promise-light) by\n// https://github.com/taylorhakes - an A+ and ECMASCRIPT 6 compliant Promise implementation.\n//\n// In previous versions this was fixed by not calling setTimeout when knowing that the resolve() or reject() came from another\n// tick. In Dexie v1.4.0, I've rewritten the Promise class entirely. Just some fragments of promise-light is left. I use\n// another strategy now that simplifies everything a lot: to always execute callbacks in a new micro-task, but have an own micro-task\n// engine that is indexedDB compliant across all browsers.\n// Promise class has also been optimized a lot with inspiration from bluebird - to avoid closures as much as possible.\n//\n// Specific non-standard features of this Promise class:\n// * Custom zone support (a.k.a. PSD) with ability to keep zones also when using native promises as well as\n// native async / await.\n// * Promise.follow() method built upon the custom zone engine, that allows user to track all promises created from current stack frame\n// and below + all promises that those promises creates or awaits.\n// * Detect any unhandled promise in a PSD-scope (PSD.onunhandled). \n//\n// David Fahlander, https://github.com/dfahlander\n//\n\n// Just a pointer that only this module knows about.\n// Used in Promise constructor to emulate a private constructor.\nvar INTERNAL = {};\n\nconst\n ZONE_ECHO_LIMIT = 100,\n [resolvedNativePromise, nativePromiseProto, resolvedGlobalPromise] = typeof Promise === 'undefined' ?\n [] :\n (()=>{\n let globalP = Promise.resolve();\n if (typeof crypto === 'undefined' || !crypto.subtle)\n return [globalP, getProto(globalP), globalP];\n // Generate a native promise (as window.Promise may have been patched)\n const nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n return [\n nativeP,\n getProto(nativeP),\n globalP\n ];\n })(),\n nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\n\nexport const NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\nconst patchGlobalPromise = !!resolvedGlobalPromise;\n\n/* The default function used only for the very first promise in a promise chain.\n As soon as then promise is resolved or rejected, all next tasks will be executed in micro ticks\n emulated in this module. For indexedDB compatibility, this means that every method needs to \n execute at least one promise before doing an indexedDB operation. Dexie will always call \n db.ready().then() for every operation to make sure the indexedDB event is started in an\n indexedDB-compatible emulated micro task loop.\n*/\nfunction schedulePhysicalTick() {\n queueMicrotask(physicalTick);\n}\n\n// Configurable through Promise.scheduler.\n// Don't export because it would be unsafe to let unknown\n// code call it unless they do try..catch within their callback.\n// This function can be retrieved through getter of Promise.scheduler though,\n// but users must not do Promise.scheduler = myFuncThatThrowsException\nvar asap = function (callback, args) {\n microtickQueue.push([callback, args]);\n if (needsNewPhysicalTick) {\n schedulePhysicalTick();\n needsNewPhysicalTick = false;\n }\n};\n\nvar isOutsideMicroTick = true, // True when NOT in a virtual microTick.\n needsNewPhysicalTick = true, // True when a push to microtickQueue must also schedulePhysicalTick()\n unhandledErrors = [], // Rejected promises that has occured. Used for triggering 'unhandledrejection'.\n rejectingErrors = [], // Tracks if errors are being re-rejected during onRejected callback.\n rejectionMapper = mirror; // Remove in next major when removing error mapping of DOMErrors and DOMExceptions\n \nexport var globalPSD = {\n id: 'global',\n global: true,\n ref: 0,\n unhandleds: [],\n onunhandled: nop,\n pgp: false,\n env: {},\n finalize: nop\n};\n\nexport var PSD = globalPSD;\n\nexport var microtickQueue = []; // Callbacks to call in this or next physical tick.\nexport var numScheduledCalls = 0; // Number of listener-calls left to do in this physical tick.\nexport var tickFinalizers = []; // Finalizers to call when there are no more async calls scheduled within current physical tick.\n\nexport default function DexiePromise(fn) {\n if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new'); \n this._listeners = [];\n \n // A library may set `promise._lib = true;` after promise is created to make resolve() or reject()\n // execute the microtask engine implicitely within the call to resolve() or reject().\n // To remain A+ compliant, a library must only set `_lib=true` if it can guarantee that the stack\n // only contains library code when calling resolve() or reject().\n // RULE OF THUMB: ONLY set _lib = true for promises explicitely resolving/rejecting directly from\n // global scope (event handler, timer etc)!\n this._lib = false;\n // Current async scope\n var psd = (this._PSD = PSD);\n \n if (typeof fn !== 'function') {\n if (fn !== INTERNAL) throw new TypeError('Not a function');\n // Private constructor (INTERNAL, state, value).\n // Used internally by Promise.resolve() and Promise.reject().\n this._state = arguments[1];\n this._value = arguments[2];\n if (this._state === false)\n handleRejection(this, this._value); // Map error, set stack and addPossiblyUnhandledError().\n return;\n }\n \n this._state = null; // null (=pending), false (=rejected) or true (=resolved)\n this._value = null; // error or result\n ++psd.ref; // Refcounting current scope\n executePromiseTask(this, fn);\n}\n\n// Prepare a property descriptor to put onto Promise.prototype.then\nconst thenProp = {\n get: function() {\n var psd = PSD, microTaskId = totalEchoes;\n\n function then (onFulfilled, onRejected) {\n var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n const cleanup = possibleAwait && !decrementExpectedAwaits();\n var rv = new DexiePromise((resolve, reject) => {\n propagateToListener(this, new Listener(\n nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup),\n nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup),\n resolve,\n reject,\n psd));\n });\n if (this._consoleTask) rv._consoleTask = this._consoleTask;\n return rv;\n }\n\n then.prototype = INTERNAL; // For idempotense, see setter below.\n\n return then;\n },\n // Be idempotent and allow another framework (such as zone.js or another instance of a Dexie.Promise module) to replace Promise.prototype.then\n // and when that framework wants to restore the original property, we must identify that and restore the original property descriptor.\n set: function (value) {\n setProp (this, 'then', value && value.prototype === INTERNAL ?\n thenProp : // Restore to original property descriptor.\n {\n get: function(){\n return value; // Getter returning provided value (behaves like value is just changed)\n },\n set: thenProp.set // Keep a setter that is prepared to restore original.\n }\n );\n }\n};\n\nprops(DexiePromise.prototype, {\n then: thenProp, // Defined above.\n _then: function (onFulfilled, onRejected) {\n // A little tinier version of then() that don't have to create a resulting promise.\n propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD)); \n },\n\n catch: function (onRejected) {\n if (arguments.length === 1) return this.then(null, onRejected);\n // First argument is the Error type to catch\n var type = arguments[0],\n handler = arguments[1];\n return typeof type === 'function' ? this.then(null, err =>\n // Catching errors by its constructor type (similar to java / c++ / c#)\n // Sample: promise.catch(TypeError, function (e) { ... });\n err instanceof type ? handler(err) : PromiseReject(err))\n : this.then(null, err =>\n // Catching errors by the error.name property. Makes sense for indexedDB where error type\n // is always DOMError but where e.name tells the actual error type.\n // Sample: promise.catch('ConstraintError', function (e) { ... });\n err && err.name === type ? handler(err) : PromiseReject(err));\n },\n\n finally: function (onFinally) {\n return this.then(value => {\n return DexiePromise.resolve(onFinally()).then(()=>value);\n }, err => {\n return DexiePromise.resolve(onFinally()).then(()=>PromiseReject(err));\n });\n },\n \n timeout: function (ms, msg) {\n return ms < Infinity ?\n new DexiePromise((resolve, reject) => {\n var handle = setTimeout(() => reject(new exceptions.Timeout(msg)), ms);\n this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n }) : this;\n }\n});\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\n\n// Now that Promise.prototype is defined, we have all it takes to set globalPSD.env.\n// Environment globals snapshotted on leaving global zone\nglobalPSD.env = snapShot();\n\nfunction Listener(onFulfilled, onRejected, resolve, reject, zone) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n this.psd = zone;\n}\n\n// Promise Static Properties\nprops (DexiePromise, {\n all: function () {\n var values = getArrayOf.apply(null, arguments) // Supports iterables, implicit arguments and array-like.\n .map(onPossibleParallellAsync); // Handle parallell async/awaits \n return new DexiePromise(function (resolve, reject) {\n if (values.length === 0) resolve([]);\n var remaining = values.length;\n values.forEach((a,i) => DexiePromise.resolve(a).then(x => {\n values[i] = x;\n if (!--remaining) resolve(values);\n }, reject));\n });\n },\n \n resolve: value => {\n if (value instanceof DexiePromise) return value;\n if (value && typeof value.then === 'function') return new DexiePromise((resolve, reject)=>{\n value.then(resolve, reject);\n });\n var rv = new DexiePromise(INTERNAL, true, value);\n return rv;\n },\n \n reject: PromiseReject,\n \n race: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise((resolve, reject) => {\n values.map(value => DexiePromise.resolve(value).then(resolve, reject));\n });\n },\n\n PSD: {\n get: ()=>PSD,\n set: value => PSD = value\n },\n\n totalEchoes: {get: ()=>totalEchoes},\n\n //task: {get: ()=>task},\n \n newPSD: newScope,\n \n usePSD: usePSD,\n \n scheduler: {\n get: () => asap,\n set: value => {asap = value}\n },\n \n rejectionMapper: {\n get: () => rejectionMapper,\n set: value => {rejectionMapper = value;} // Map reject failures\n },\n \n follow: (fn, zoneProps) => {\n return new DexiePromise((resolve, reject) => {\n return newScope((resolve, reject) => {\n var psd = PSD;\n psd.unhandleds = []; // For unhandled standard- or 3rd party Promises. Checked at psd.finalize()\n psd.onunhandled = reject; // Triggered directly on unhandled promises of this library.\n psd.finalize = callBoth(function () {\n // Unhandled standard or 3rd part promises are put in PSD.unhandleds and\n // examined upon scope completion while unhandled rejections in this Promise\n // will trigger directly through psd.onunhandled\n run_at_end_of_this_or_next_physical_tick(()=>{\n this.unhandleds.length === 0 ? resolve() : reject(this.unhandleds[0]);\n });\n }, psd.finalize);\n fn();\n }, zoneProps, resolve, reject);\n });\n }\n});\n\nif (NativePromise) {\n if (NativePromise.allSettled) setProp (DexiePromise, \"allSettled\", function() {\n const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(resolve => {\n if (possiblePromises.length === 0) resolve([]);\n let remaining = possiblePromises.length;\n const results = new Array(remaining);\n possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(\n value => results[i] = {status: \"fulfilled\", value},\n reason => results[i] = {status: \"rejected\", reason})\n .then(()=>--remaining || resolve(results)));\n });\n });\n if (NativePromise.any && typeof AggregateError !== 'undefined') setProp(DexiePromise, \"any\", function() {\n const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise((resolve, reject) => {\n if (possiblePromises.length === 0) reject(new AggregateError([]));\n let remaining = possiblePromises.length;\n const failures = new Array(remaining);\n possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(\n value => resolve(value),\n failure => {\n failures[i] = failure;\n if (!--remaining) reject(new AggregateError(failures));\n }));\n });\n });\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers\n if (NativePromise.withResolvers) DexiePromise.withResolvers = NativePromise.withResolvers;\n}\n\n/**\n* Take a potentially misbehaving resolver function and make sure\n* onFulfilled and onRejected are only called once.\n*\n* Makes no guarantees about asynchrony.\n*/\nfunction executePromiseTask (promise, fn) {\n // Promise Resolution Procedure:\n // https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n try {\n fn(value => {\n if (promise._state !== null) return; // Already settled\n if (value === promise) throw new TypeError('A promise cannot be resolved with itself.');\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n if (value && typeof value.then === 'function') {\n executePromiseTask(promise, (resolve, reject) => {\n value instanceof DexiePromise ?\n value._then(resolve, reject) :\n value.then(resolve, reject);\n });\n } else {\n promise._state = true;\n promise._value = value;\n propagateAllListeners(promise);\n }\n if (shouldExecuteTick) endMicroTickScope();\n }, handleRejection.bind(null, promise)); // If Function.bind is not supported. Exception is handled in catch below\n } catch (ex) {\n handleRejection(promise, ex);\n }\n}\n\nfunction handleRejection (promise, reason) {\n rejectingErrors.push(reason);\n if (promise._state !== null) return;\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n reason = rejectionMapper(reason);\n promise._state = false;\n promise._value = reason;\n // Add the failure to a list of possibly uncaught errors\n addPossiblyUnhandledError(promise);\n propagateAllListeners(promise);\n if (shouldExecuteTick) endMicroTickScope();\n}\n\nfunction propagateAllListeners (promise) {\n //debug && linkToPreviousPromise(promise);\n var listeners = promise._listeners;\n promise._listeners = [];\n for (var i = 0, len = listeners.length; i < len; ++i) {\n propagateToListener(promise, listeners[i]);\n }\n var psd = promise._PSD;\n --psd.ref || psd.finalize(); // if psd.ref reaches zero, call psd.finalize();\n if (numScheduledCalls === 0) {\n // If numScheduledCalls is 0, it means that our stack is not in a callback of a scheduled call,\n // and that no deferreds where listening to this rejection or success.\n // Since there is a risk that our stack can contain application code that may\n // do stuff after this code is finished that may generate new calls, we cannot\n // call finalizers here.\n ++numScheduledCalls;\n asap(()=>{\n if (--numScheduledCalls === 0) finalizePhysicalTick(); // Will detect unhandled errors\n }, []);\n }\n}\n\nfunction propagateToListener(promise, listener) {\n if (promise._state === null) {\n promise._listeners.push(listener);\n return;\n }\n\n var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n if (cb === null) {\n // This Listener doesnt have a listener for the event being triggered (onFulfilled or onReject) so lets forward the event to any eventual listeners on the Promise instance returned by then() or catch()\n return (promise._state ? listener.resolve : listener.reject) (promise._value);\n }\n ++listener.psd.ref;\n ++numScheduledCalls;\n asap (callListener, [cb, promise, listener]);\n}\n\nfunction callListener (cb, promise, listener) {\n try {\n // Call callback and resolve our listener with it's return value.\n var ret, value = promise._value;\n \n if (!promise._state && rejectingErrors.length) rejectingErrors = [];\n // cb is onResolved\n ret = debug && promise._consoleTask ? promise._consoleTask.run(()=>cb (value)) : cb (value);\n if (!promise._state && rejectingErrors.indexOf(value) === -1) {\n markErrorAsHandled(promise); // Callback didnt do Promise.reject(err) nor reject(err) onto another promise.\n }\n listener.resolve(ret);\n } catch (e) {\n // Exception thrown in callback. Reject our listener.\n listener.reject(e);\n } finally {\n if (--numScheduledCalls === 0) finalizePhysicalTick();\n --listener.psd.ref || listener.psd.finalize();\n }\n}\n\n/* The callback to schedule with queueMicrotask().\n It runs a virtual microtick and executes any callback registered in microtickQueue.\n */\nfunction physicalTick() {\n usePSD(globalPSD, ()=>{\n // Make sure to reset the async context to globalPSD before\n // executing any of the microtick subscribers.\n beginMicroTickScope() && endMicroTickScope();\n });\n}\n\nexport function beginMicroTickScope() {\n var wasRootExec = isOutsideMicroTick;\n isOutsideMicroTick = false;\n needsNewPhysicalTick = false;\n return wasRootExec;\n}\n\n/* Executes micro-ticks without doing try..catch.\n This can be possible because we only use this internally and\n the registered functions are exception-safe (they do try..catch\n internally before calling any external method). If registering\n functions in the microtickQueue that are not exception-safe, this\n would destroy the framework and make it instable. So we don't export\n our asap method.\n*/\nexport function endMicroTickScope() {\n var callbacks, i, l;\n do {\n while (microtickQueue.length > 0) {\n callbacks = microtickQueue;\n microtickQueue = [];\n l = callbacks.length;\n for (i = 0; i < l; ++i) {\n var item = callbacks[i];\n item[0].apply(null, item[1]);\n }\n }\n } while (microtickQueue.length > 0);\n isOutsideMicroTick = true;\n needsNewPhysicalTick = true;\n}\n\nfunction finalizePhysicalTick() {\n var unhandledErrs = unhandledErrors;\n unhandledErrors = [];\n unhandledErrs.forEach(p => {\n p._PSD.onunhandled.call(null, p._value, p);\n });\n var finalizers = tickFinalizers.slice(0); // Clone first because finalizer may remove itself from list.\n var i = finalizers.length;\n while (i) finalizers[--i](); \n}\n\nfunction run_at_end_of_this_or_next_physical_tick (fn) {\n function finalizer() {\n fn();\n tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n }\n tickFinalizers.push(finalizer);\n ++numScheduledCalls;\n asap(()=>{\n if (--numScheduledCalls === 0) finalizePhysicalTick();\n }, []);\n}\n\nfunction addPossiblyUnhandledError(promise) {\n // Only add to unhandledErrors if not already there. The first one to add to this list\n // will be upon the first rejection so that the root cause (first promise in the\n // rejection chain) is the one listed.\n if (!unhandledErrors.some(p => p._value === promise._value))\n unhandledErrors.push(promise);\n}\n\nfunction markErrorAsHandled(promise) {\n // Called when a reject handled is actually being called.\n // Search in unhandledErrors for any promise whos _value is this promise_value (list\n // contains only rejected promises, and only one item per error)\n var i = unhandledErrors.length;\n while (i) if (unhandledErrors[--i]._value === promise._value) {\n // Found a promise that failed with this same error object pointer,\n // Remove that since there is a listener that actually takes care of it.\n unhandledErrors.splice(i, 1);\n return;\n }\n}\n\nfunction PromiseReject (reason) {\n return new DexiePromise(INTERNAL, false, reason);\n}\n\nexport function wrap (fn, errorCatcher) {\n var psd = PSD;\n return function() {\n var wasRootExec = beginMicroTickScope(),\n outerScope = PSD;\n\n try {\n switchToZone(psd, true);\n return fn.apply(this, arguments);\n } catch (e) {\n errorCatcher && errorCatcher(e);\n } finally {\n switchToZone(outerScope, false);\n if (wasRootExec) endMicroTickScope();\n }\n };\n}\n\n\n//\n// variables used for native await support\n//\nconst task = { awaits: 0, echoes: 0, id: 0}; // The ongoing macro-task when using zone-echoing.\nvar taskCounter = 0; // ID counter for macro tasks.\nvar zoneStack = []; // Stack of left zones to restore asynchronically.\nvar zoneEchoes = 0; // When > 0, zoneLeaveEcho is queued. When 0 and task.echoes is also 0, nothing is queued.\nvar totalEchoes = 0; // ID counter for micro-tasks. Used to detect possible native await in our Promise.prototype.then.\n\n\nvar zone_id_counter = 0;\nexport function newScope (fn, props, a1, a2) {\n var parent = PSD,\n psd = Object.create(parent);\n psd.parent = parent;\n psd.ref = 0;\n psd.global = false;\n psd.id = ++zone_id_counter;\n // Prepare for promise patching (done in usePSD):\n var globalEnv = globalPSD.env;\n psd.env = patchGlobalPromise ? {\n Promise: DexiePromise, // Changing window.Promise could be omitted for Chrome and Edge, where IDB+Promise plays well!\n PromiseProp: {value: DexiePromise, configurable: true, writable: true},\n all: DexiePromise.all,\n race: DexiePromise.race,\n allSettled: DexiePromise.allSettled,\n any: DexiePromise.any,\n resolve: DexiePromise.resolve,\n reject: DexiePromise.reject,\n } : {};\n if (props) extend(psd, props);\n \n // unhandleds and onunhandled should not be specifically set here.\n // Leave them on parent prototype.\n // unhandleds.push(err) will push to parent's prototype\n // onunhandled() will call parents onunhandled (with this scope's this-pointer though!)\n ++parent.ref;\n psd.finalize = function () {\n --this.parent.ref || this.parent.finalize();\n }\n var rv = usePSD (psd, fn, a1, a2);\n if (psd.ref === 0) psd.finalize();\n return rv;\n}\n\n// Function to call if scopeFunc returns NativePromise\n// Also for each NativePromise in the arguments to Promise.all()\nexport function incrementExpectedAwaits() {\n if (!task.id) task.id = ++taskCounter;\n ++task.awaits;\n task.echoes += ZONE_ECHO_LIMIT;\n return task.id;\n}\n\n// Function to call when 'then' calls back on a native promise where onAwaitExpected() had been called.\n// Also call this when a native await calls then method on a promise. In that case, don't supply\n// sourceTaskId because we already know it refers to current task.\nexport function decrementExpectedAwaits() {\n if (!task.awaits) return false;\n if (--task.awaits === 0) task.id = 0;\n task.echoes = task.awaits * ZONE_ECHO_LIMIT; // Will reset echoes to 0 if awaits is 0.\n return true;\n}\n\nif ((''+nativePromiseThen).indexOf('[native code]') === -1) {\n // If the native promise' prototype is patched, we cannot rely on zone echoing.\n // Disable that here:\n incrementExpectedAwaits = decrementExpectedAwaits = nop;\n}\n\n// Call from Promise.all() and Promise.race()\nexport function onPossibleParallellAsync (possiblePromise) {\n if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n incrementExpectedAwaits(); \n return possiblePromise.then(x => {\n decrementExpectedAwaits();\n return x;\n }, e => {\n decrementExpectedAwaits();\n return rejection(e);\n });\n }\n return possiblePromise;\n}\n\nfunction zoneEnterEcho(targetZone) {\n ++totalEchoes;\n //console.log(\"Total echoes \", totalEchoes);\n //if (task.echoes === 1) console.warn(\"Cancelling echoing of async context.\");\n if (!task.echoes || --task.echoes === 0) {\n task.echoes = task.awaits = task.id = 0; // Cancel echoing.\n }\n\n zoneStack.push(PSD);\n switchToZone(targetZone, true);\n}\n\nfunction zoneLeaveEcho() {\n var zone = zoneStack[zoneStack.length-1];\n zoneStack.pop();\n switchToZone(zone, false);\n}\n\nfunction switchToZone (targetZone, bEnteringZone) {\n var currentZone = PSD;\n if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {\n // Enter or leave zone asynchronically as well, so that tasks initiated during current tick\n // will be surrounded by the zone when they are invoked.\n queueMicrotask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n }\n if (targetZone === PSD) return;\n\n PSD = targetZone; // The actual zone switch occurs at this line.\n\n // Snapshot on every leave from global zone.\n if (currentZone === globalPSD) globalPSD.env = snapShot();\n\n if (patchGlobalPromise) {\n // Let's patch the global and native Promises (may be same or may be different)\n var GlobalPromise = globalPSD.env.Promise;\n // Swich environments (may be PSD-zone or the global zone. Both apply.)\n var targetEnv = targetZone.env;\n\n if (currentZone.global || targetZone.global) {\n // Leaving or entering global zone. It's time to patch / restore global Promise.\n\n // Set this Promise to window.Promise so that transiled async functions will work on Firefox, Safari and IE, as well as with Zonejs and angular.\n Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n\n // Support Promise.all() etc to work indexedDB-safe also when people are including es6-promise as a module (they might\n // not be accessing global.Promise but a local reference to it)\n GlobalPromise.all = targetEnv.all;\n GlobalPromise.race = targetEnv.race;\n GlobalPromise.resolve = targetEnv.resolve;\n GlobalPromise.reject = targetEnv.reject;\n if (targetEnv.allSettled) GlobalPromise.allSettled = targetEnv.allSettled;\n if (targetEnv.any) GlobalPromise.any = targetEnv.any;\n }\n }\n}\n\nfunction snapShot () {\n var GlobalPromise = _global.Promise;\n return patchGlobalPromise ? {\n Promise: GlobalPromise,\n PromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n all: GlobalPromise.all,\n race: GlobalPromise.race,\n allSettled: GlobalPromise.allSettled,\n any: GlobalPromise.any,\n resolve: GlobalPromise.resolve,\n reject: GlobalPromise.reject,\n } : {};\n}\n\nexport function usePSD (psd, fn, a1, a2, a3) {\n var outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn(a1, a2, a3);\n } finally {\n switchToZone(outerScope, false);\n }\n}\n\nfunction nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n return typeof fn !== 'function' ? fn : function () {\n var outerZone = PSD;\n if (possibleAwait) incrementExpectedAwaits();\n switchToZone(zone, true);\n try {\n return fn.apply(this, arguments);\n } finally {\n switchToZone(outerZone, false);\n if (cleanup) queueMicrotask(decrementExpectedAwaits);\n }\n };\n}\n\n/** Execute callback in global context */\nexport function execInGlobalContext(cb) {\n if (Promise === NativePromise && task.echoes === 0) {\n if (zoneEchoes === 0) {\n cb();\n } else {\n enqueueNativeMicroTask(cb);\n }\n } else {\n setTimeout(cb, 0);\n }\n}\n\nexport var rejection = DexiePromise.reject;\n\nexport {DexiePromise};\n","import { PSD, rejection, newScope } from \"../helpers/promise\";\nimport { DexieOptions } from \"../public/types/dexie-constructor\";\nimport { errnames, exceptions } from \"../errors\";\nimport { nop } from \"./chaining-functions\";\nimport { Transaction } from \"../classes/transaction\";\nimport { Dexie } from '../classes/dexie';\n\n/* Generate a temporary transaction when db operations are done outside a transaction scope.\n*/\nexport function tempTransaction (\n db: Dexie,\n mode: IDBTransactionMode,\n storeNames: string[],\n fn: (resolve, reject, trans: Transaction) => any)\n // Last argument is \"writeLocked\". But this doesnt apply to oneshot direct db operations, so we ignore it.\n{\n if (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) {\n if (db._state.openComplete) {\n // db.idbdb is falsy but openComplete is true. Must have been an exception durin open.\n // Don't wait for openComplete as it would lead to infinite loop.\n return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));\n }\n if (!db._state.isBeingOpened) {\n if (!db._state.autoOpen)\n return rejection(new exceptions.DatabaseClosed());\n db.open().catch(nop); // Open in background. If if fails, it will be catched by the final promise anyway.\n }\n return db._state.dbReadyPromise.then(() => tempTransaction(db, mode, storeNames, fn));\n } else {\n var trans = db._createTransaction(mode, storeNames, db._dbSchema);\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n } catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db.close({disableAutoOpen: false});\n return db.open().then(()=>tempTransaction(db, mode, storeNames, fn));\n }\n return rejection(ex);\n }\n return trans._promise(mode, (resolve, reject) => {\n return newScope(() => { // OPTIMIZATION POSSIBLE? newScope() not needed because it's already done in _promise.\n PSD.trans = trans;\n return fn(resolve, reject, trans);\n });\n }).then(result => {\n // Instead of resolving value directly, wait with resolving it until transaction has completed.\n // Otherwise the data would not be in the DB if requesting it in the then() operation.\n // Specifically, to ensure that the following expression will work:\n //\n // db.friends.put({name: \"Arne\"}).then(function () {\n // db.friends.where(\"name\").equals(\"Arne\").count(function(count) {\n // assert (count === 1);\n // });\n // });\n //\n if (mode === 'readwrite') try {trans.idbtrans.commit();} catch {}\n return mode === 'readonly' ? result : trans._completion.then(() => result);\n });/*.catch(err => { // Don't do this as of now. If would affect bulk- and modify methods in a way that could be more intuitive. But wait! Maybe change in next major.\n trans._reject(err);\n return rejection(err);\n });*/\n }\n}\n","import { Dexie } from \"../classes/dexie\";\n\nexport const DEXIE_VERSION = '{version}'; // Replaced by build-script.\nexport const maxString = String.fromCharCode(65535);\nexport const minKey = -Infinity; // minKey can be constant. maxKey must be a prop of Dexie (_maxKey)\nexport const INVALID_KEY_ARGUMENT =\n \"Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.\";\nexport const STRING_EXPECTED = \"String expected.\";\nexport const connections: Dexie[] = [];\nexport const dexieStackFrameFilter = frame => !/(dexie\\.js|dexie\\.min\\.js)/.test(frame);\nexport const DBNAMES_DB = '__dbnames';\nexport const READONLY = 'readonly';\nexport const READWRITE = 'readwrite';\n","export function combine(filter1, filter2) {\n return filter1 ?\n filter2 ?\n function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } :\n filter1 :\n filter2;\n}\n","import { DBCoreKeyRange, DBCoreRangeType } from '../public/types/dbcore';\n\nexport const AnyRange: DBCoreKeyRange = {\n type: DBCoreRangeType.Any,\n lower: -Infinity,\n lowerOpen: false,\n upper: [[]],\n upperOpen: false\n}\n\nexport const NeverRange: DBCoreKeyRange = {\n type: DBCoreRangeType.Never,\n lower: -Infinity,\n lowerOpen: true,\n upper: -Infinity,\n upperOpen: true\n}\n","import { deepClone, delByKeyPath, getByKeyPath } from './utils';\n\n// This workaround is needed since obj could be a custom-class instance with an\n// uninitialized keyPath. See the following comment for more context:\n// https://github.com/dfahlander/Dexie.js/issues/1280#issuecomment-823557881\nexport function workaroundForUndefinedPrimKey(keyPath: string | ArrayLike<string>) {\n // Workaround only needed for plain non-dotted keyPaths\n return typeof keyPath === \"string\" && !/\\./.test(keyPath) \n ? (obj: object) => {\n if (obj[keyPath] === undefined && (keyPath in obj)) {\n // property exists but is undefined. This will not be liked by Indexeddb.\n // Need to remove the property before adding it but we need to clone it before\n // doing that to not be intrusive.\n obj = deepClone(obj);\n delete obj[keyPath];\n }\n return obj;\n }\n : (obj: object) => obj;\n}","import { exceptions } from \"../../errors\";\n\nexport function Entity(){\n throw exceptions.Type(`Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.`);\n}\n","// Implementation of https://www.w3.org/TR/IndexedDB-3/#compare-two-keys\n\nimport { toStringTag } from './utils';\n\n// ... with the adjustment to return NaN instead of throwing.\nexport function cmp(a: any, b: any): number {\n try {\n const ta = type(a);\n const tb = type(b);\n if (ta !== tb) {\n if (ta === 'Array') return 1;\n if (tb === 'Array') return -1;\n if (ta === 'binary') return 1;\n if (tb === 'binary') return -1;\n if (ta === 'string') return 1;\n if (tb === 'string') return -1;\n if (ta === 'Date') return 1;\n if (tb !== 'Date') return NaN;\n return -1;\n }\n switch (ta) {\n case 'number':\n case 'Date':\n case 'string':\n return a > b ? 1 : a < b ? -1 : 0;\n case 'binary': {\n return compareUint8Arrays(getUint8Array(a), getUint8Array(b));\n }\n case 'Array':\n return compareArrays(a, b);\n }\n } catch {}\n return NaN; // Return value if any given args are valid keys.\n}\n\nexport function compareArrays(a: any[], b: any[]): number {\n const al = a.length;\n const bl = b.length;\n const l = al < bl ? al : bl;\n for (let i = 0; i < l; ++i) {\n const res = cmp(a[i], b[i]);\n if (res !== 0) return res;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\n\nexport function compareUint8Arrays(\n a: Uint8Array,\n b: Uint8Array\n) {\n const al = a.length;\n const bl = b.length;\n const l = al < bl ? al : bl;\n for (let i = 0; i < l; ++i) {\n if (a[i] !== b[i]) return a[i] < b[i] ? -1 : 1;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\n\n// Implementation of https://www.w3.org/TR/IndexedDB-3/#key-type\nfunction type(x: any) {\n const t = typeof x;\n if (t !== 'object') return t;\n if (ArrayBuffer.isView(x)) return 'binary';\n const tsTag = toStringTag(x); // Cannot use instanceof in Safari\n return tsTag === 'ArrayBuffer' ? 'binary' : (tsTag as 'Array' | 'Date');\n}\n\ntype BinaryType =\n | ArrayBuffer\n | DataView\n | Uint8ClampedArray\n | ArrayBufferView\n | Uint8Array\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array\n | Float64Array\n | BigInt64Array \n | BigUint64Array;\n\nfunction getUint8Array(a: BinaryType): Uint8Array {\n if (a instanceof Uint8Array) return a;\n if (ArrayBuffer.isView(a))\n // TypedArray or DataView\n return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return new Uint8Array(a); // ArrayBuffer\n}\n","import { DBCoreMutateResponse } from \"../../public/types/dbcore\";\nimport { Table } from \"./table\";\n\n\nexport function builtInDeletionTrigger (table: Table, keys: null | readonly any[], res: DBCoreMutateResponse): DBCoreMutateResponse | Promise<DBCoreMutateResponse> {\n // Delete related document updates. Otherwise, if a row with same ID is created\n // again, its document would not be empty.\n // Document providers will get notified on the main table's row deletion and destroy\n // document. Sync of this action is outside of the Y.js scope but will be handled\n // by the dexie cloud sync layer or equivalent sync layer.\n const { yProps } = table.schema;\n if (!yProps) return res;\n if (keys && res.numFailures > 0) keys = keys.filter((_, i) => !res.failures[i]);\n return Promise.all(yProps.map(({updatesTable}) => \n keys\n ? table.db.table(updatesTable).where('k').anyOf(keys).delete()\n : table.db.table(updatesTable).clear()\n )).then(() => res);\n}","import { isArray } from \"../functions/utils\";\nimport { PropModSpec } from \"../public/types/prop-modification\";\n\n/** Consistent change propagation across offline synced data.\n * \n * This class is executed client- and server side on sync, making\n * an operation consistent across sync for full consistency and accuracy.\n * \n * Example: An object represents a bank account with a balance.\n * One offline user adds $ 1.00 to the balance.\n * Another user (online) adds $ 2.00 to the balance.\n * When first user syncs, the balance becomes the sum of every operation (3.00).\n * \n * -- initial: balance is 0\n * 1. db.bankAccounts.update(1, { balance: new ProdModification({add: 100})}) // user 1 (offline)\n * 2. db.bankAccounts.update(1, { balance: new ProdModification({add: 200})}) // user 2 (online)\n * -- before user 1 syncs, balance is 200 (representing money with integers * 100 to avoid rounding issues)\n * <user 1 syncs>\n * -- balance is 300\n * \n * When new operations are added, they need to be added to:\n * 1. PropModSpec interface\n * 2. Here in PropModification with the logic they represent\n * 3. (Optionally) a sugar function for it, such as const mathAdd = (amount: number | BigInt) => new PropModification({mathAdd: amount})\n */\nexport class PropModification {\n [\"@@propmod\"]: PropModSpec;\n execute(value: any): any {\n const spec = this[\"@@propmod\"]\n // add (mathematical or set-wise)\n if (spec.add !== undefined) {\n const term = spec.add;\n // Set-addition on array representing a set of primitive types (strings, numbers)\n if (isArray(term)) {\n return [...(isArray(value) ? value : []), ...term].sort();\n }\n // Mathematical addition:\n if (typeof term === 'number') return (Number(value) || 0) + term; // if value is not convertible to number, return 0 + term\n if (typeof term === 'bigint') {\n try {\n return BigInt(value) + term;\n } catch {\n return BigInt(0) + term; // Unlike Number(value) that can return NaN, BigInt(value) throws if value is not BigInt, Number or numeric string\n }\n }\n throw new TypeError(`Invalid term ${term}`);\n }\n\n // remove (mathematical or set-wise)\n if (spec.remove !== undefined) {\n const subtrahend = spec.remove;\n // Set-addition on array representing a set of primitive types (strings, numbers)\n if (isArray(subtrahend)) {\n return isArray(value) ? value.filter(item => !subtrahend.includes(item)).sort() : [];\n } \n // Mathematical addition:\n if (typeof subtrahend === 'number') return Number(value) - subtrahend;\n if (typeof subtrahend === 'bigint') {\n try {\n return BigInt(value) - subtrahend;\n } catch {\n return BigInt(0) - subtrahend; // Unlike Number(value) that can return NaN, BigInt(value) throws if value is not BigInt, Number or numeric string\n }\n }\n throw new TypeError(`Invalid subtrahend ${subtrahend}`);\n }\n\n // Replace a prefix:\n const prefixToReplace = spec.replacePrefix?.[0];\n if (prefixToReplace && typeof value === 'string' && value.startsWith(prefixToReplace)) {\n return spec.replacePrefix[1] + value.substring(prefixToReplace.length);\n }\n return value;\n }\n\n constructor(spec: PropModSpec) {\n this[\"@@propmod\"] = spec;\n }\n}\n","import { getByKeyPath, keys, setByKeyPath } from './utils';\nimport { PropModification } from \"../helpers/prop-modification\";\n\nexport function applyUpdateSpec(\n obj: any,\n changes: { [keyPath: string]: any }\n): boolean {\n const keyPaths = keys(changes);\n const numKeys = keyPaths.length;\n let anythingModified = false;\n for (let i = 0; i < numKeys; ++i) {\n const keyPath = keyPaths[i];\n const value = changes[keyPath];\n const origValue = getByKeyPath(obj, keyPath);\n if (value instanceof PropModification) {\n setByKeyPath(obj, keyPath, value.execute(origValue));\n anythingModified = true;\n } else if (origValue !== value) {\n setByKeyPath(obj, keyPath, value); // Adding {keyPath: undefined} means that the keyPath should be deleted. Handled by setByKeyPath\n anythingModified = true;\n }\n }\n return anythingModified;\n}\n","import { BulkError, exceptions } from '../../errors';\nimport { Table as ITable } from '../../public/types/table';\nimport { TableSchema } from '../../public/types/table-schema';\nimport { TableHooks } from '../../public/types/table-hooks';\nimport { DexiePromise as Promise, PSD, newScope, rejection, beginMicroTickScope, endMicroTickScope } from '../../helpers/promise';\nimport { Transaction } from '../transaction';\nimport { Dexie } from '../dexie';\nimport { tempTransaction } from '../../functions/temp-transaction';\nimport { Collection } from '../collection';\nimport { isArray, keys, getByKeyPath, setByKeyPath, extend, getProto } from '../../functions/utils';\nimport { maxString } from '../../globals/constants';\nimport { combine } from '../../functions/combine';\nimport { PromiseExtended } from \"../../public/types/promise-extended\";\nimport { IndexableType } from '../../public/types/indexable-type';\nimport { debug } from '../../helpers/debug';\nimport { DBCoreTable } from '../../public/types/dbcore';\nimport { AnyRange } from '../../dbcore/keyrange';\nimport { workaroundForUndefinedPrimKey } from '../../functions/workaround-undefined-primkey';\nimport { Entity } from '../entity/Entity';\nimport { UpdateSpec } from '../../public';\nimport { cmp } from '../../functions/cmp';\nimport { builtInDeletionTrigger } from './table-helpers';\nimport { applyUpdateSpec } from '../../functions/apply-update-spec';\n\n/** class Table\n * \n * https://dexie.org/docs/Table/Table\n */\nexport class Table implements ITable<any, IndexableType> {\n db: Dexie;\n _tx?: Transaction;\n name: string;\n schema: TableSchema;\n hook: TableHooks;\n core: DBCoreTable;\n\n _trans(\n mode: IDBTransactionMode,\n fn: (idbtrans: IDBTransaction, dxTrans: Transaction) => PromiseLike<any> | void,\n writeLocked?: boolean | string) : PromiseExtended<any>\n {\n const trans: Transaction = this._tx || PSD.trans;\n const tableName = this.name;\n // @ts-ignore: Use Chrome's Async Stack Tagging API to allow tracing and simplify debugging for dexie users.\n const task = debug && typeof console !== 'undefined' && console.createTask && console.createTask(`Dexie: ${mode === 'readonly' ? 'read' : 'write' } ${this.name}`);\n \n function checkTableInTransaction(resolve, reject, trans: Transaction) {\n if (!trans.schema[tableName])\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n return fn(trans.idbtrans, trans) as Promise<any>;\n }\n // Surround all in a microtick scope.\n // Reason: Browsers (modern Safari + older others)\n // still as of 2018-10-10 has problems keeping a transaction\n // alive between micro ticks. Safari because if transaction\n // is created but not used in same microtick, it will go\n // away. That specific issue could be solved in DBCore\n // by opening the transaction just before using it instead.\n // But older Firefoxes and IE11 (with Promise polyfills)\n // will still have probs.\n // The beginMicrotickScope()/endMicrotickScope() works\n // in cooperation with Dexie.Promise to orchestrate\n // the micro-ticks in endMicrotickScope() rather than\n // in native engine.\n const wasRootExec = beginMicroTickScope();\n try {\n let p = trans && trans.db._novip === this.db._novip ?\n trans === PSD.trans ?\n trans._promise(mode, checkTableInTransaction, writeLocked) :\n newScope(() => trans._promise(mode, checkTableInTransaction, writeLocked), { trans: trans, transless: PSD.transless || PSD }) :\n tempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n if (task) { // Dexie.debug = true so we trace errors\n p._consoleTask = task;\n p = p.catch(err => {\n console.trace(err);\n return rejection(err);\n });\n }\n return p; \n } finally {\n if (wasRootExec) endMicroTickScope();\n }\n }\n\n /** Table.get()\n * \n * https://dexie.org/docs/Table/Table.get()\n * \n **/\n get(keyOrCrit, cb?) {\n if (keyOrCrit && keyOrCrit.constructor === Object)\n return this.where(keyOrCrit as { [key: string]: IndexableType }).first(cb);\n if (keyOrCrit == null) return rejection(new exceptions.Type(`Invalid argument to Table.get()`));\n\n return this._trans('readonly', (trans) => {\n return this.core.get({trans, key: keyOrCrit})\n .then(res => this.hook.reading.fire(res));\n }).then(cb);\n }\n\n /** Table.where()\n * \n * https://dexie.org/docs/Table/Table.where()\n * \n **/\n where(indexOrCrit: string | string[] | { [key: string]: IndexableType }) {\n if (typeof indexOrCrit === 'string')\n return new this.db.WhereClause(this, indexOrCrit);\n if (isArray(indexOrCrit))\n return new this.db.WhereClause(this, `[${indexOrCrit.join('+')}]`);\n // indexOrCrit is an object map of {[keyPath]:value} \n const keyPaths = keys(indexOrCrit);\n if (keyPaths.length === 1)\n // Only one critera. This was the easy case:\n return this\n .where(keyPaths[0])\n .equals(indexOrCrit[keyPaths[0]]);\n\n // Multiple criterias.\n // Let's try finding a compound index that matches all keyPaths in\n // arbritary order:\n const compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(ix => {\n if (\n ix.compound &&\n keyPaths.every(keyPath => ix.keyPath.indexOf(keyPath) >= 0)) {\n for (let i=0; i<keyPaths.length; ++i) {\n if (keyPaths.indexOf(ix.keyPath[i]) === -1) return false;\n }\n return true;\n }\n return false;\n }).sort((a,b) => a.keyPath.length - b.keyPath.length)[0];\n \n if (compoundIndex && this.db._maxKey !== maxString) {\n // Cool! We found such compound index\n // and this browser supports compound indexes (maxKey !== maxString)!\n const keyPathsInValidOrder = (compoundIndex.keyPath as string[]).slice(0, keyPaths.length);\n return this\n .where(keyPathsInValidOrder)\n .equals(keyPathsInValidOrder.map(kp => indexOrCrit[kp]));\n }\n\n if (!compoundIndex && debug) console.warn(\n `The query ${JSON.stringify(indexOrCrit)} on ${this.name} would benefit from a ` +\n `compound index [${keyPaths.join('+')}]`);\n\n // Ok, now let's fallback to finding at least one matching index\n // and filter the rest.\n const { idxByName } = this.schema;\n\n function equals(a, b) {\n return cmp(a, b) === 0; // Works with all indexable types including binary keys.\n }\n\n const [idx, filterFunction] = keyPaths.reduce(([prevIndex, prevFilterFn], keyPath) => {\n const index = idxByName[keyPath];\n const value = indexOrCrit[keyPath];\n return [\n prevIndex || index, // idx::=Pick index of first matching keypath\n prevIndex || !index ? // filter::=null if not needed, otherwise combine function filter\n combine(\n prevFilterFn,\n index && index.multi ?\n x => {\n const prop = getByKeyPath(x, keyPath);\n return isArray(prop) && prop.some(item => equals(value, item));\n } : x => equals(value, getByKeyPath(x, keyPath)))\n : prevFilterFn\n ];\n }, [null, null]);\n\n return idx ?\n this.where(idx.name).equals(indexOrCrit[idx.keyPath])\n .filter(filterFunction) :\n compoundIndex ?\n this.filter(filterFunction) : // Has compound but browser bad. Allow filter.\n this.where(keyPaths).equals(''); // No index at all. Fail lazily with \"[a+b+c] is not indexed\"\n }\n\n /** Table.filter()\n * \n * https://dexie.org/docs/Table/Table.filter()\n * \n **/\n filter(filterFunction: (obj: any) => boolean) {\n return this.toCollection().and(filterFunction);\n }\n\n /** Table.count()\n * \n * https://dexie.org/docs/Table/Table.count()\n * \n **/\n count(thenShortcut?: any) {\n return this.toCollection().count(thenShortcut);\n }\n\n /** Table.offset()\n * \n * https://dexie.org/docs/Table/Table.offset()\n * \n **/\n offset(offset: number) {\n return this.toCollection().offset(offset);\n }\n\n /** Table.limit()\n * \n * https://dexie.org/docs/Table/Table.limit()\n * \n **/\n limit(numRows: number) {\n return this.toCollection().limit(numRows);\n }\n\n /** Table.each()\n * \n * https://dexie.org/docs/Table/Table.each()\n * \n **/\n each(callback: (obj: any, cursor: { key: IndexableType, primaryKey: IndexableType }) => any) {\n return this.toCollection().each(callback);\n }\n\n /** Table.toArray()\n * \n * https://dexie.org/docs/Table/Table.toArray()\n * \n **/\n toArray(thenShortcut?: any) {\n return this.toCollection().toArray(thenShortcut);\n }\n\n /** Table.toCollection()\n * \n * https://dexie.org/docs/Table/Table.toCollection()\n * \n **/\n toCollection() {\n return new this.db.Collection(new this.db.WhereClause(this));\n }\n\n /** Table.orderBy()\n * \n * https://dexie.org/docs/Table/Table.orderBy()\n * \n **/\n orderBy(index: string | string[]) {\n return new this.db.Collection(\n new this.db.WhereClause(this, isArray(index) ?\n `[${index.join('+')}]` :\n index));\n }\n\n /** Table.reverse()\n * \n * https://dexie.org/docs/Table/Table.reverse()\n * \n **/\n reverse(): Collection {\n return this.toCollection().reverse();\n }\n\n /** Table.mapToClass()\n * \n * https://dexie.org/docs/Table/Table.mapToClass()\n * \n **/\n mapToClass(constructor: Function) {\n const {db, name: tableName} = this;\n this.schema.mappedClass = constructor;\n if (constructor.prototype instanceof Entity) {\n constructor = class extends (constructor as any) {\n get db () { return db; }\n table() { return tableName; }\n }\n }\n // Collect all inherited property names (including method names) by\n // walking the prototype chain. This is to avoid overwriting them from\n // database data - so application code can rely on inherited props never\n // becoming shadowed by database object props.\n const inheritedProps = new Set<string>();\n for (let proto = constructor.prototype; proto; proto = getProto(proto)) {\n Object.getOwnPropertyNames(proto).forEach(propName => inheritedProps.add(propName));\n }\n \n // Now, subscribe to the when(\"reading\") event to make all objects that come out from this table inherit from given class\n // no matter which method to use for reading (Table.get() or Table.where(...)... )\n const readHook = (obj: Object) => {\n if (!obj) return obj; // No valid object. (Value is null or undefined). Return as is.\n // Create a new object that derives from constructor:\n const res = Object.create(constructor.prototype);\n // Clone members (but never those that collide with a property in the prototype\n // hierchary (MUST BE ABLE TO RELY ON Entity methods and props!)):\n for (let m in obj) if (!inheritedProps.has(m)) try { res[m] = obj[m]; } catch (_) { }\n return res;\n };\n\n if (this.schema.readHook) {\n this.hook.reading.unsubscribe(this.schema.readHook);\n }\n this.schema.readHook = readHook;\n this.hook(\"reading\", readHook);\n return constructor;\n }\n\n /** @deprecated */\n defineClass() {\n function Class (content){\n extend(this, content);\n };\n return this.mapToClass(Class);\n }\n\n /** Table.add()\n * \n * https://dexie.org/docs/Table/Table.add()\n * \n **/\n add(obj, key?: IndexableType): PromiseExtended<IndexableType> {\n const {auto, keyPath} = this.schema.primKey;\n let objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', trans => {\n return this.core.mutate({trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd]});\n }).then(res => res.numFailures ? Promise.reject(res.failures[0]) : res.lastResult)\n .then(lastResult => {\n if (keyPath) {\n // This part should be here for backward compatibility.\n // If ever feeling too bad about this, please wait to a new major before removing it,\n // and document the change thoroughly.\n try{setByKeyPath(obj, keyPath, lastResult);}catch(_){};\n }\n return lastResult;\n });\n }\n\n /** Table.upsert()\n * \n * https://dexie.org/docs/Table/Table.upsert()\n * \n **/\n upsert(key: IndexableType, modifications: { [keyPath: string]: any; }): PromiseExtended<boolean> {\n const {keyPath} = this.schema.primKey;\n return this._trans('readwrite', trans => {\n return this.core.get({trans, key}).then(existing => {\n const obj = existing ?? {};\n applyUpdateSpec(obj, modifications);\n if (keyPath) setByKeyPath(obj, keyPath, key);\n return this.core.mutate({\n trans,\n type: 'put',\n values: [obj],\n keys: [key],\n upsert: true,\n updates: {keys: [key], changeSpecs: [modifications]}\n }).then(res => res.numFailures ? Promise.reject(res.failures[0]) : !!existing);\n });\n });\n }\n\n /** Table.update()\n * \n * https://dexie.org/docs/Table/Table.update()\n * \n **/\n update(keyOrObject, modifications: { [keyPath: string]: any; } | ((obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean)): PromiseExtended<number> {\n if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n const key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n if (key === undefined) return rejection(new exceptions.InvalidArgument(\n \"Given object does not contain its primary key\"));\n /*// object to modify. Also modify given object with the modifications:\n // This part should be here for backward compatibility.\n // If ever feeling too bad about mutating given object, please wait to a new major before removing it,\n // and document the change thoroughly. TODO: Document this change!\n if (!Object.isFrozen(keyOrObject)) try {\n if (typeof modifications !== \"function\") {\n keys(modifications).forEach(keyPath => {\n setByKeyPath(keyOrObject, keyPath, modifications[keyPath]);\n });\n } else {\n // Now since we support function argument, we should have a similar behavior here as well\n // (as long as we do this mutability stuff on the given object)\n modifications(keyOrObject, {value: keyOrObject, primKey: key});\n }\n } catch {\n // Maybe given object was frozen.\n // This part is not essential. Just move on as nothing happened...\n }*/\n return this.where(\":id\").equals(key).modify(modifications);\n } else {\n // key to modify\n return this.where(\":id\").equals(keyOrObject).modify(modifications);\n }\n }\n\n /** Table.put()\n * \n * https://dexie.org/docs/Table/Table.put()\n * \n **/\n put(obj, key?: IndexableType): PromiseExtended<IndexableType> {\n const {auto, keyPath} = this.schema.primKey;\n let objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans(\n 'readwrite',\n trans => this.core.mutate({trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null}))\n .then(res => res.numFailures ? Promise.reject(res.failures[0]) : res.lastResult)\n .then(lastResult => {\n if (keyPath) {\n // This part should be here for backward compatibility.\n // If ever feeling too bad about this, please wait to a new major before removing it,\n // and document the change thoroughly.\n try{setByKeyPath(obj, keyPath, lastResult);}catch(_){};\n }\n return lastResult;\n });\n }\n\n /** Table.delete()\n * \n * https://dexie.org/docs/Table/Table.delete()\n * \n **/\n delete(key: IndexableType): PromiseExtended<void> {\n return this._trans('readwrite',\n trans => this.core.mutate({trans, type: 'delete', keys: [key]})\n .then(res => builtInDeletionTrigger(this, [key], res))\n .then(res => res.numFailures ? Promise.reject(res.failures[0]) : undefined));\n ;\n }\n\n /** Table.clear()\n * \n * https://dexie.org/docs/Table/Table.clear()\n * \n **/\n clear() {\n return this._trans('readwrite',\n trans => this.core.mutate({trans, type: 'deleteRange', range: AnyRange})\n .then(res => builtInDeletionTrigger(this, null, res)))\n .then(res => res.numFailures ? Promise.reject(res.failures[0]) : undefined);\n }\n\n /** Table.bulkGet()\n * \n * https://dexie.org/docs/Table/Table.bulkGet()\n * \n * @param keys \n */\n bulkGet(keys: IndexableType[]) {\n return this._trans('readonly', trans => {\n return this.core.getMany({\n keys,\n trans\n }).then(result => result.map(res => this.hook.reading.fire(res)));\n });\n }\n\n /** Table.bulkAdd()\n * \n * https://dexie.org/docs/Table/Table.bulkAdd()\n * \n **/\n bulkAdd(\n objects: readonly any[],\n keysOrOptions?: ReadonlyArray<IndexableType> | { allKeys?: boolean },\n options?: { allKeys?: boolean }\n ) { \n const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions as { allKeys?: boolean });\n const wantResults = options ? options.allKeys : undefined;\n\n return this._trans('readwrite', trans => {\n const {auto, keyPath} = this.schema.primKey;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n\n const numObjects = objects.length; // Pick length here to allow garbage collection of objects later\n let objectsToAdd = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return this.core.mutate(\n {trans, type: 'add', keys: keys as IndexableType[], values: objectsToAdd, wantResults}\n )\n .then(({numFailures, results,lastResult, failures}) => {\n const result = wantResults ? results : lastResult;\n if (numFailures === 0) return result;\n throw new BulkError(\n `${this.name}.bulkAdd(): ${numFailures} of ${numObjects} operations failed`, failures);\n });\n });\n }\n\n /** Table.bulkPut()\n * \n * https://dexie.org/docs/Table/Table.bulkPut()\n * \n **/\n bulkPut(\n objects: readonly any[],\n keysOrOptions?: ReadonlyArray<IndexableType> | { allKeys?: boolean },\n options?: { allKeys?: boolean }\n ) { \n const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions as { allKeys?: boolean });\n const wantResults = options ? options.allKeys : undefined;\n\n return this._trans('readwrite', trans => {\n const {auto, keyPath} = this.schema.primKey;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n\n const numObjects = objects.length; // Pick length here to allow garbage collection of objects later\n let objectsToPut = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n\n return this.core.mutate(\n {trans, type: 'put', keys: keys as IndexableType[], values: objectsToPut, wantResults}\n )\n .then(({numFailures, results, lastResult, failures}) => {\n const result = wantResults ? results : lastResult;\n if (numFailures === 0) return result;\n throw new BulkError(\n `${this.name}.bulkPut(): ${numFailures} of ${numObjects} operations failed`, failures);\n });\n });\n }\n\n /** Table.bulkUpdate()\n *\n * https://dexie.org/docs/Table.Table.bulkUpdate()\n */\n bulkUpdate(\n keysAndChanges: readonly { key: any; changes: UpdateSpec<any> }[]\n ): PromiseExtended<number> {\n const coreTable = this.core;\n const keys = keysAndChanges.map((entry) => entry.key);\n const changeSpecs = keysAndChanges.map((entry) => entry.changes);\n const offsetMap: number[] = [];\n return this._trans('readwrite', (trans) => {\n return coreTable.getMany({ trans, keys, cache: 'clone' }).then((objs) => {\n const resultKeys: any[] = [];\n const resultObjs: any[] = [];\n keysAndChanges.forEach(({ key, changes }, idx) => {\n const obj = objs[idx];\n if (obj) {\n for (const keyPath of Object.keys(changes)) {\n const value = changes[keyPath];\n if (keyPath === this.schema.primKey.keyPath) {\n if (cmp(value, key) !== 0) {\n throw new exceptions.Constraint(\n `Cannot update primary key in bulkUpdate()`\n );\n }\n } else {\n setByKeyPath(obj, keyPath, value);\n }\n }\n offsetMap.push(idx);\n resultKeys.push(key);\n resultObjs.push(obj);\n }\n });\n const numEntries = resultKeys.length;\n return coreTable\n .mutate({\n trans,\n type: 'put',\n keys: resultKeys,\n values: resultObjs,\n updates: {\n keys,\n changeSpecs\n }\n })\n .then(({ numFailures, failures }) => {\n if (numFailures === 0) return numEntries;\n // Failure. bulkPut() may have a subset of keys\n // so we must translate returned 'failutes' into the offsets of given argument:\n for (const offset of Object.keys(failures)) {\n const mappedOffset = offsetMap[Number(offset)];\n if (mappedOffset != null) {\n const failure = failures[offset];\n delete failures[offset];\n failures[mappedOffset] = failure;\n }\n }\n throw new BulkError(\n `${this.name}.bulkUpdate(): ${numFailures} of ${numEntries} operations failed`,\n failures\n );\n });\n });\n });\n }\n\n /** Table.bulkDelete()\n * \n * https://dexie.org/docs/Table/Table.bulkDelete()\n * \n **/\n bulkDelete(keys: ReadonlyArray<IndexableType>): PromiseExtended<void> {\n const numKeys = keys.length;\n return this._trans('readwrite', trans => {\n return this.core.mutate({trans, type: 'delete', keys: keys as IndexableType[]})\n .then(res => builtInDeletionTrigger(this, keys, res));\n }).then(({numFailures, lastResult, failures}) => {\n if (numFailures === 0) return lastResult;\n throw new BulkError(\n `${this.name}.bulkDelete(): ${numFailures} of ${numKeys} operations failed`, failures);\n });\n }\n}\n","import {keys, isArray, asap} from '../functions/utils';\nimport {nop, mirror, reverseStoppableEventChain} from '../functions/chaining-functions';\nimport {exceptions} from '../errors';\n\nexport default function Events(ctx) {\n var evs = {};\n var rv = function (eventName, subscriber) {\n if (subscriber) {\n // Subscribe. If additional arguments than just the subscriber was provided, forward them as well.\n var i = arguments.length, args = new Array(i - 1);\n while (--i) args[i - 1] = arguments[i];\n evs[eventName].subscribe.apply(null, args);\n return ctx;\n } else if (typeof (eventName) === 'string') {\n // Return interface allowing to fire or unsubscribe from event\n return evs[eventName];\n }\n };\n rv.addEventType = add;\n \n for (var i = 1, l = arguments.length; i < l; ++i) {\n add(arguments[i]);\n }\n \n return rv;\n\n function add(eventName, chainFunction, defaultFunction) {\n if (typeof eventName === 'object') return addConfiguredEvents(eventName);\n if (!chainFunction) chainFunction = reverseStoppableEventChain;\n if (!defaultFunction) defaultFunction = nop;\n\n var context = {\n subscribers: [],\n fire: defaultFunction,\n subscribe: function (cb) {\n if (context.subscribers.indexOf(cb) === -1) {\n context.subscribers.push(cb);\n context.fire = chainFunction(context.fire, cb);\n }\n },\n unsubscribe: function (cb) {\n context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; });\n context.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n }\n };\n evs[eventName] = rv[eventName] = context;\n return context;\n }\n\n function addConfiguredEvents(cfg) {\n // events(this, {reading: [functionChain, nop]});\n keys(cfg).forEach(function (eventName) {\n var args = cfg[eventName];\n if (isArray(args)) {\n add(eventName, cfg[eventName][0], cfg[eventName][1]);\n } else if (args === 'asap') {\n // Rather than approaching event subscription using a functional approach, we here do it in a for-loop where subscriber is executed in its own stack\n // enabling that any exception that occur wont disturb the initiator and also not nescessary be catched and forgotten.\n var context = add(eventName, mirror, function fire() {\n // Optimazation-safe cloning of arguments into args.\n var i = arguments.length, args = new Array(i);\n while (i--) args[i] = arguments[i];\n // All each subscriber:\n context.subscribers.forEach(function (fn) {\n asap(function fireEvent() {\n fn.apply(null, args);\n });\n });\n });\n } else throw new exceptions.InvalidArgument(\"Invalid event config\");\n });\n }\n}\n","import { arrayToObject, derive } from './utils';\n\n\nexport function makeClassConstructor<TConstructor> (prototype: Object, constructor: Function) {\n /*const propertyDescriptorMap = arrayToObject(\n Object.getOwnPropertyNames(prototype),\n propKey => [propKey, Object.getOwnPropertyDescriptor(prototype, propKey)]);\n\n // Both derive and clone the prototype.\n // derive: So that x instanceof T returns true when T is the class template.\n // clone: Optimizes method access a bit (but actually not nescessary)\n const derivedPrototypeClone = Object.create(prototype, propertyDescriptorMap);\n derivedPrototypeClone.constructor = constructor;\n constructor.prototype = derivedPrototypeClone;\n return constructor as any as TConstructor;*/\n\n // Keep the above code in case we want to clone AND derive the parent prototype.\n // Reason would be optimization of property access.\n // The code below will only create a prototypal inheritance from given constructor function\n // to given prototype.\n derive(constructor).from({prototype});\n return constructor as any as TConstructor; \n}\n","import { Dexie } from '../dexie';\nimport { TableSchema } from '../../public/types/table-schema';\nimport { Transaction } from '../transaction/transaction';\nimport { hookCreatingChain, pureFunctionChain, nop, mirror, hookUpdatingChain, hookDeletingChain } from '../../functions/chaining-functions';\nimport { TableHooks } from '../../public/types/table-hooks';\nimport { Table } from './table';\nimport Events from '../../helpers/Events';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\n\nexport interface TableConstructor {\n new (name: string, tableSchema: TableSchema, optionalTrans?: Transaction) : Table;\n prototype: Table;\n}\n\n/** Generates a Table constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createTableConstructor (db: Dexie) {\n return makeClassConstructor<TableConstructor>(\n Table.prototype,\n\n function Table (this: Table, name: string, tableSchema: TableSchema, trans?: Transaction) {\n this.db = db;\n this._tx = trans;\n this.name = name;\n this.schema = tableSchema;\n this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n \"creating\": [hookCreatingChain, nop],\n \"reading\": [pureFunctionChain, mirror],\n \"updating\": [hookUpdatingChain, nop],\n \"deleting\": [hookDeletingChain, nop]\n }) as TableHooks;\n }\n\n );\n}\n","import { combine } from \"../../functions/combine\";\nimport { exceptions } from \"../../errors\";\nimport { hasOwn } from \"../../functions/utils\";\nimport { wrap } from \"../../helpers/promise\";\nimport { Collection } from './';\nimport { DBCoreCursor, DBCoreTable, DBCoreTransaction, DBCoreTableSchema, DBCoreRangeType } from '../../public/types/dbcore';\nimport { nop } from '../../functions/chaining-functions';\n\ntype CollectionContext = Collection[\"_ctx\"];\n\nexport function isPlainKeyRange (ctx: CollectionContext, ignoreLimitFilter?: boolean) {\n return !(ctx.filter || ctx.algorithm || ctx.or) &&\n (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n} \n\nexport function addFilter(ctx: CollectionContext, fn: Function) {\n ctx.filter = combine(ctx.filter, fn);\n}\n\nexport function addReplayFilter (ctx: CollectionContext, factory, isLimitFilter?) {\n var curr = ctx.replayFilter;\n ctx.replayFilter = curr ? ()=>combine(curr(), factory()) : factory;\n ctx.justLimit = isLimitFilter && !curr;\n}\n\nexport function addMatchFilter(ctx: CollectionContext, fn) {\n ctx.isMatch = combine(ctx.isMatch, fn);\n}\n\nexport function getIndexOrStore(ctx: CollectionContext, coreSchema: DBCoreTableSchema) {\n // TODO: Rewrite this. No need to know ctx.isPrimKey. ctx.index should hold the keypath.\n // Still, throw if not found!\n if (ctx.isPrimKey) return coreSchema.primaryKey;\n const index = coreSchema.getIndexByKeyPath(ctx.index);\n if (!index) throw new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n return index;\n}\n\nexport function openCursor(ctx: CollectionContext, coreTable: DBCoreTable, trans: DBCoreTransaction) {\n const index = getIndexOrStore(ctx, coreTable.schema);\n return coreTable.openCursor({\n trans,\n values: !ctx.keysOnly,\n reverse: ctx.dir === 'prev',\n unique: !!ctx.unique,\n query: {\n index, \n range: ctx.range\n }\n });\n}\n\nexport function iter (\n ctx: CollectionContext, \n fn: (item, cursor: DBCoreCursor, advance: Function)=>void,\n coreTrans: DBCoreTransaction,\n coreTable: DBCoreTable): Promise<any>\n{\n const filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n if (!ctx.or) {\n return iterate(\n openCursor(ctx, coreTable, coreTrans),\n combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n } else {\n const set = {};\n\n const union = (item: any, cursor: DBCoreCursor, advance) => {\n if (!filter || filter(cursor, advance, result=>cursor.stop(result), err => cursor.fail(err))) {\n var primaryKey = cursor.primaryKey;\n var key = '' + primaryKey;\n if (key === '[object ArrayBuffer]') key = '' + new Uint8Array(primaryKey);\n if (!hasOwn(set, key)) {\n set[key] = true;\n fn(item, cursor, advance);\n }\n }\n }\n\n return Promise.all([\n ctx.or._iterate(union, coreTrans),\n iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)\n ]);\n }\n}\n\nfunction iterate(cursorPromise: Promise<DBCoreCursor>, filter, fn, valueMapper): Promise<any> {\n \n // Apply valueMapper (hook('reading') or mappped class)\n var mappedFn = valueMapper ? (x,c,a) => fn(valueMapper(x),c,a) : fn;\n // Wrap fn with PSD and microtick stuff from Promise.\n var wrappedFn = wrap(mappedFn);\n \n return cursorPromise.then(cursor => {\n if (cursor) {\n return cursor.start(()=>{\n var c = ()=>cursor.continue();\n if (!filter || filter(cursor, advancer => c = advancer, val=>{cursor.stop(val);c=nop}, e => {cursor.fail(e);c = nop;}))\n wrappedFn(cursor.value, cursor, advancer => c = advancer);\n c();\n });\n }\n });\n}\n","import { Collection as ICollection } from \"../../public/types/collection\";\nimport { Dexie } from \"../dexie\";\nimport { Table } from \"../table\";\nimport { IndexableType, IndexableTypeArrayReadonly } from \"../../public/types/indexable-type\";\nimport { PromiseExtended } from \"../../public/types/promise-extended\";\nimport { iter, isPlainKeyRange, getIndexOrStore, addReplayFilter, addFilter, addMatchFilter } from \"./collection-helpers\";\nimport { rejection } from \"../../helpers/promise\";\nimport { combine } from \"../../functions/combine\";\nimport { extend, hasOwn, deepClone, keys, setByKeyPath, getByKeyPath } from \"../../functions/utils\";\nimport { ModifyError } from \"../../errors\";\nimport { ThenShortcut } from \"../../public/types/then-shortcut\";\nimport { Transaction } from '../transaction';\nimport { DBCoreCursor, DBCoreTransaction, DBCoreRangeType, DBCoreMutateResponse, DBCoreKeyRange } from '../../public/types/dbcore';\nimport { cmp } from \"../../functions/cmp\";\nimport { PropModification } from \"../../helpers/prop-modification\";\nimport { UpdateSpec } from \"../../public/types/update-spec\";\nimport { builtInDeletionTrigger } from \"../table/table-helpers\";\nimport { applyUpdateSpec } from \"../../functions/apply-update-spec\";\n\n/** class Collection\n * \n * https://dexie.org/docs/Collection/Collection\n */\nexport class Collection implements ICollection {\n db: Dexie;\n _ctx: {\n table: Table;\n index?: string | null;\n isPrimKey?: boolean;\n range: DBCoreKeyRange;\n keysOnly: boolean;\n dir: \"next\" | \"prev\";\n unique: \"\" | \"unique\";\n algorithm?: Function | null;\n filter?: Function | null;\n replayFilter: Function | null;\n justLimit: boolean; // True if a replayFilter is just a filter that performs a \"limit\" operation (or none at all)\n isMatch: Function | null;\n offset: number,\n limit: number,\n error: any, // If set, any promise must be rejected with this error\n or: Collection,\n valueMapper: (any) => any\n }\n \n _ondirectionchange?: Function;\n\n _read<T>(fn: (idbtrans: IDBTransaction, dxTrans: Transaction) => PromiseLike<T>, cb?): PromiseExtended<T> {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readonly', fn).then(cb);\n }\n\n _write<T>(fn: (idbtrans: IDBTransaction, dxTrans: Transaction) => PromiseLike<T>): PromiseExtended<T> {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readwrite', fn, \"locked\"); // When doing write operations on collections, always lock the operation so that upcoming operations gets queued.\n }\n\n _addAlgorithm(fn) {\n var ctx = this._ctx;\n ctx.algorithm = combine(ctx.algorithm, fn);\n }\n\n _iterate(\n fn: (item, cursor: DBCoreCursor, advance: Function) => void,\n coreTrans: DBCoreTransaction) : Promise<any>\n {\n return iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n }\n\n /** Collection.clone()\n * \n * https://dexie.org/docs/Collection/Collection.clone()\n * \n **/\n clone(props?): this {\n var rv = Object.create(this.constructor.prototype),\n ctx = Object.create(this._ctx);\n if (props) extend(ctx, props);\n rv._ctx = ctx;\n return rv;\n }\n\n /** Collection.raw()\n * \n * https://dexie.org/docs/Collection/Collection.raw()\n * \n **/\n raw(): this {\n this._ctx.valueMapper = null;\n return this;\n }\n\n /** Collection.each()\n * \n * https://dexie.org/docs/Collection/Collection.each()\n * \n **/\n each(fn: (obj, cursor: DBCoreCursor) => any): PromiseExtended<void> {\n var ctx = this._ctx;\n\n return this._read(trans => iter(ctx, fn, trans, ctx.table.core));\n }\n\n /** Collection.count()\n * \n * https://dexie.org/docs/Collection/Collection.count()\n * \n **/\n count(cb?) {\n return this._read(trans => {\n const ctx = this._ctx;\n const coreTable = ctx.table.core;\n if (isPlainKeyRange(ctx, true)) {\n // This is a plain key range. We can use the count() method if the index.\n return coreTable.count({\n trans,\n query: {\n index: getIndexOrStore(ctx, coreTable.schema),\n range: ctx.range\n }\n }).then(count => Math.min(count, ctx.limit));\n } else {\n // Algorithms, filters or expressions are applied. Need to count manually.\n var count = 0;\n return iter(ctx, () => { ++count; return false; }, trans, coreTable)\n .then(()=>count);\n }\n }).then(cb);\n }\n\n /** Collection.sortBy()\n * \n * https://dexie.org/docs/Collection/Collection.sortBy()\n * \n **/\n sortBy(keyPath: string): PromiseExtended<any[]>;\n sortBy<R>(keyPath: string, thenShortcut: ThenShortcut<any[], R>) : PromiseExtended<R>;\n sortBy(keyPath: string, cb?: ThenShortcut<any[], any>) {\n const parts = keyPath.split('.').reverse(),\n lastPart = parts[0],\n lastIndex = parts.length - 1;\n function getval(obj, i) {\n if (i) return getval(obj[parts[i]], i - 1);\n return obj[lastPart];\n }\n var order = this._ctx.dir === \"next\" ? 1 : -1;\n\n function sorter(a, b) {\n var aVal = getval(a, lastIndex),\n bVal = getval(b, lastIndex);\n return cmp(aVal, bVal) * order;\n }\n return this.toArray(function (a) {\n return a.sort(sorter);\n }).then(cb);\n }\n\n /** Collection.toArray()\n * \n * https://dexie.org/docs/Collection/Collection.toArray()\n * \n **/\n toArray(cb?): PromiseExtended<any[]> {\n return this._read(trans => {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n // Special optimation if we could use IDBObjectStore.getAll() or\n // IDBKeyRange.getAll():\n const {valueMapper} = ctx;\n const index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans,\n limit: ctx.limit,\n values: true,\n query: {\n index,\n range: ctx.range\n }\n }).then(({result}) => valueMapper ? result.map(valueMapper) : result);\n } else {\n // Getting array through a cursor.\n const a = [];\n return iter(ctx, item => a.push(item), trans, ctx.table.core).then(()=>a);\n }\n }, cb);\n }\n\n /** Collection.offset()\n * \n * https://dexie.org/docs/Collection/Collection.offset()\n * \n **/\n offset(offset: number) : Collection{\n var ctx = this._ctx;\n if (offset <= 0) return this;\n ctx.offset += offset; // For count()\n if (isPlainKeyRange(ctx)) {\n addReplayFilter(ctx, () => {\n var offsetLeft = offset;\n return (cursor, advance) => {\n if (offsetLeft === 0) return true;\n if (offsetLeft === 1) { --offsetLeft; return false; }\n advance(() => {\n cursor.advance(offsetLeft);\n offsetLeft = 0;\n });\n return false;\n };\n });\n } else {\n addReplayFilter(ctx, () => {\n var offsetLeft = offset;\n return () => (--offsetLeft < 0);\n });\n }\n return this;\n }\n\n /** Collection.limit()\n * \n * https://dexie.org/docs/Collection/Collection.limit()\n * \n **/\n limit(numRows: number) : Collection {\n this._ctx.limit = Math.min(this._ctx.limit, numRows); // For count()\n addReplayFilter(this._ctx, () => {\n var rowsLeft = numRows;\n return function (cursor, advance, resolve) {\n if (--rowsLeft <= 0) advance(resolve); // Stop after this item has been included\n return rowsLeft >= 0; // If numRows is already below 0, return false because then 0 was passed to numRows initially. Otherwise we wouldnt come here.\n };\n }, true);\n return this;\n }\n\n /** Collection.until()\n * \n * https://dexie.org/docs/Collection/Collection.until()\n * \n **/\n until(filterFunction: (x) => boolean, bIncludeStopEntry?) {\n addFilter(this._ctx, function (cursor, advance, resolve) {\n if (filterFunction(cursor.value)) {\n advance(resolve);\n return bIncludeStopEntry;\n } else {\n return true;\n }\n });\n return this;\n }\n\n /** Collection.first()\n * \n * https://dexie.org/docs/Collection/Collection.first()\n * \n **/\n first(cb?) {\n return this.limit(1).toArray(function (a) { return a[0]; }).then(cb);\n }\n\n /** Collection.last()\n * \n * https://dexie.org/docs/Collection/Collection.last()\n * \n **/\n last(cb?) {\n return this.reverse().first(cb);\n }\n\n /** Collection.filter()\n * \n * https://dexie.org/docs/Collection/Collection.filter()\n * \n **/\n filter(filterFunction: (x) => boolean): Collection {\n /// <param name=\"jsFunctionFilter\" type=\"Function\">function(val){return true/false}</param>\n addFilter(this._ctx, function (cursor) {\n return filterFunction(cursor.value);\n });\n // match filters not used in Dexie.js but can be used by 3rd part libraries to test a\n // collection for a match without querying DB. Used by Dexie.Observable.\n addMatchFilter(this._ctx, filterFunction);\n return this;\n }\n\n /** Collection.and()\n * \n * https://dexie.org/docs/Collection/Collection.and()\n * \n **/\n and(filter: (x) => boolean) {\n return this.filter(filter);\n }\n\n /** Collection.or()\n * \n * https://dexie.org/docs/Collection/Collection.or()\n * \n **/\n or(indexName: string) {\n return new this.db.WhereClause(this._ctx.table, indexName, this);\n }\n\n /** Collection.reverse()\n * \n * https://dexie.org/docs/Collection/Collection.reverse()\n * \n **/\n reverse() {\n this._ctx.dir = (this._ctx.dir === \"prev\" ? \"next\" : \"prev\");\n if (this._ondirectionchange) this._ondirectionchange(this._ctx.dir);\n return this;\n }\n\n /** Collection.desc()\n * \n * https://dexie.org/docs/Collection/Collection.desc()\n * \n **/\n desc() {\n return this.reverse();\n }\n\n /** Collection.eachKey()\n * \n * https://dexie.org/docs/Collection/Collection.eachKey()\n * \n **/\n eachKey(cb?) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.key, cursor); });\n }\n\n /** Collection.eachUniqueKey()\n * \n * https://dexie.org/docs/Collection/Collection.eachUniqueKey()\n * \n **/\n eachUniqueKey(cb?) {\n this._ctx.unique = \"unique\";\n return this.eachKey(cb);\n }\n\n /** Collection.eachPrimaryKey()\n * \n * https://dexie.org/docs/Collection/Collection.eachPrimaryKey()\n * \n **/\n eachPrimaryKey(cb?) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); });\n }\n\n /** Collection.keys()\n * \n * https://dexie.org/docs/Collection/Collection.keys()\n * \n **/\n keys(cb?) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.key);\n }).then(function () {\n return a;\n }).then(cb);\n }\n\n /** Collection.primaryKeys()\n * \n * https://dexie.org/docs/Collection/Collection.primaryKeys()\n * \n **/\n primaryKeys(cb?) : PromiseExtended<IndexableType[]> {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n // Special optimation if we could use IDBObjectStore.getAllKeys() or\n // IDBKeyRange.getAllKeys():\n return this._read(trans => {\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans,\n values: false,\n limit: ctx.limit,\n query: {\n index,\n range: ctx.range\n }});\n }).then(({result})=>result).then(cb);\n }\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.primaryKey);\n }).then(function () {\n return a;\n }).then(cb);\n }\n\n /** Collection.uniqueKeys()\n * \n * https://dexie.org/docs/Collection/Collection.uniqueKeys()\n * \n **/\n uniqueKeys(cb?) {\n this._ctx.unique = \"unique\";\n return this.keys(cb);\n }\n\n /** Collection.firstKey()\n * \n * https://dexie.org/docs/Collection/Collection.firstKey()\n * \n **/\n firstKey(cb?) {\n return this.limit(1).keys(function (a) { return a[0]; }).then(cb);\n }\n\n /** Collection.lastKey()\n * \n * https://dexie.org/docs/Collection/Collection.lastKey()\n * \n **/\n lastKey(cb?) {\n return this.reverse().firstKey(cb);\n }\n\n /** Collection.distinct()\n * \n * https://dexie.org/docs/Collection/Collection.distinct()\n * \n **/\n distinct() {\n var ctx = this._ctx,\n idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n if (!idx || !idx.multi) return this; // distinct() only makes differencies on multiEntry indexes.\n var set = {};\n addFilter(this._ctx, function (cursor: DBCoreCursor) {\n var strKey = cursor.primaryKey.toString(); // Converts any Date to String, String to String, Number to String and Array to comma-separated string\n var found = hasOwn(set, strKey);\n set[strKey] = true;\n return !found;\n });\n return this;\n }\n\n //\n // Methods that mutate storage\n //\n\n /** Collection.modify()\n * \n * https://dexie.org/docs/Collection/Collection.modify()\n * \n **/\n modify(changes: UpdateSpec<any> | ((obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean)): PromiseExtended<number> {\n var ctx = this._ctx;\n return this._write(trans => {\n var modifyer: (obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean\n if (typeof changes === 'function') {\n // Changes is a function that may update, add or delete propterties or even require a deletion the object itself (delete this.item)\n modifyer = changes as (obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean;\n } else {\n // changes is a set of {keyPath: value} and no one is listening to the updating hook.\n modifyer = item => applyUpdateSpec(item, changes);\n }\n\n const coreTable = ctx.table.core;\n const {outbound, extractKey} = coreTable.schema.primaryKey;\n let limit = 200;\n const modifyChunkSize = this.db._options.modifyChunkSize;\n if (modifyChunkSize) {\n if (typeof modifyChunkSize == 'object') {\n limit = modifyChunkSize[coreTable.name] || modifyChunkSize['*'] || 200;\n } else {\n limit = modifyChunkSize;\n }\n }\n const totalFailures = [];\n let successCount = 0;\n const failedKeys: IndexableType[] = [];\n const applyMutateResult = (expectedCount: number, res: DBCoreMutateResponse) => {\n const {failures, numFailures} = res;\n successCount += expectedCount - numFailures;\n for (let pos of keys(failures)) {\n totalFailures.push(failures[pos]);\n }\n }\n const isUnconditionalDelete = changes === deleteCallback; // Collection.delete() calls this.\n return this.clone().primaryKeys().then(keys => {\n const criteria = isPlainKeyRange(ctx) &&\n ctx.limit === Infinity &&\n (typeof changes !== 'function' || isUnconditionalDelete) && {\n index: ctx.index,\n range: ctx.range\n };\n\n const nextChunk = (offset: number) => {\n const count = Math.min(limit, keys.length - offset);\n const keysInChunk = keys.slice(offset, offset + count);\n return (isUnconditionalDelete ? Promise.resolve([]) : coreTable.getMany({\n trans,\n keys: keysInChunk,\n cache: \"immutable\" // Optimize for 2 things:\n // 1) observability-middleware can track changes better.\n // 2) hooks middleware don't have to query the existing values again when tracking changes.\n // We can use \"immutable\" because we promise to not touch the values we retrieve here!\n })).then(values => {\n const addValues = [];\n const putValues = [];\n const putKeys = outbound ? [] : null;\n const deleteKeys = isUnconditionalDelete ? keysInChunk : [];\n if (!isUnconditionalDelete) for (let i=0; i<count; ++i) {\n const origValue = values[i];\n const ctx = {\n value: deepClone(origValue),\n primKey: keys[offset+i]\n };\n if (modifyer.call(ctx, ctx.value, ctx) !== false) {\n if (ctx.value == null) {\n // Deleted\n deleteKeys.push(keys[offset+i]);\n } else if (!outbound && cmp(extractKey(origValue), extractKey(ctx.value)) !== 0) {\n // Changed primary key of inbound\n deleteKeys.push(keys[offset+i]);\n addValues.push(ctx.value)\n } else {\n // Changed value\n putValues.push(ctx.value);\n if (outbound) putKeys.push(keys[offset+i]);\n }\n }\n }\n\n return Promise.resolve(addValues.length > 0 &&\n coreTable.mutate({trans, type: 'add', values: addValues})\n .then(res => {\n for (let pos in res.failures) {\n // Remove from deleteKeys the key of the object that failed to change its primary key\n deleteKeys.splice(parseInt(pos), 1);\n }\n applyMutateResult(addValues.length, res);\n })\n ).then(()=>(putValues.length > 0 || (criteria && typeof changes === 'object')) &&\n coreTable.mutate({\n trans,\n type: 'put',\n keys: putKeys,\n values: putValues,\n criteria,\n changeSpec: typeof changes !== 'function'\n && changes,\n isAdditionalChunk: offset > 0\n }).then(res=>applyMutateResult(putValues.length, res))\n ).then(()=>(deleteKeys.length > 0 || (criteria && isUnconditionalDelete)) &&\n coreTable.mutate({\n trans,\n type: 'delete',\n keys: deleteKeys,\n criteria,\n isAdditionalChunk: offset > 0\n }).then(res => builtInDeletionTrigger(ctx.table, deleteKeys, res))\n .then(res => applyMutateResult(deleteKeys.length, res))\n ).then(()=>{\n return keys.length > offset + count && nextChunk(offset + limit);\n });\n });\n }\n\n return nextChunk(0).then(()=>{\n if (totalFailures.length > 0)\n throw new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys as IndexableTypeArrayReadonly);\n\n return keys.length;\n });\n });\n\n });\n }\n\n /** Collection.delete()\n * \n * https://dexie.org/docs/Collection/Collection.delete()\n * \n **/\n delete() : PromiseExtended<number> {\n var ctx = this._ctx,\n range = ctx.range;\n //deletingHook = ctx.table.hook.deleting.fire,\n //hasDeleteHook = deletingHook !== nop;\n if (isPlainKeyRange(ctx) &&\n !ctx.table.schema.yProps && // No Y documents on this table (requires special care)\n (ctx.isPrimKey || range.type === DBCoreRangeType.Any)) // if no range, we'll use clear().\n {\n // May use IDBObjectStore.delete(IDBKeyRange) in this case (Issue #208)\n // For chromium, this is the way most optimized version.\n // For IE/Edge, this could hang the indexedDB engine and make operating system instable\n // (https://gist.github.com/dfahlander/5a39328f029de18222cf2125d56c38f7)\n return this._write(trans => {\n // Our API contract is to return a count of deleted items, so we have to count() before delete().\n const {primaryKey} = ctx.table.core.schema;\n const coreRange = range;\n\n return ctx.table.core.count({trans, query: {index: primaryKey, range: coreRange}}).then(count => {\n return ctx.table.core.mutate({trans, type: 'deleteRange', range: coreRange})\n .then(({failures, numFailures}) => {\n if (numFailures) throw new ModifyError(\"Could not delete some values\",\n Object.keys(failures).map(pos => failures[pos]),\n count - numFailures);\n return count - numFailures;\n });\n });\n });\n }\n\n return this.modify(deleteCallback);\n }\n}\n\nconst deleteCallback = (value, ctx) => ctx.value = null;\n","import { Dexie } from '../../classes/dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { Collection } from './collection';\nimport { WhereClause } from '../where-clause/where-clause';\nimport { AnyRange } from '../../dbcore/keyrange';\nimport { DBCoreKeyRange } from '../../public/types/dbcore';\nimport { mirror } from '../../functions/chaining-functions';\n\n/** Constructs a Collection instance. */\nexport interface CollectionConstructor {\n new(whereClause?: WhereClause | null, keyRangeGenerator?: () => DBCoreKeyRange): Collection;\n prototype: Collection;\n}\n\n/** Generates a Collection constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createCollectionConstructor(db: Dexie) {\n return makeClassConstructor<CollectionConstructor>(\n Collection.prototype,\n\n function Collection(\n this: Collection,\n whereClause?: WhereClause | null,\n keyRangeGenerator?: () => DBCoreKeyRange)\n {\n this.db = db;\n let keyRange = AnyRange, error = null;\n if (keyRangeGenerator) try {\n keyRange = keyRangeGenerator();\n } catch (ex) {\n error = ex;\n }\n\n const whereCtx = whereClause._ctx;\n const table = whereCtx.table;\n const readingHook = table.hook.reading.fire;\n this._ctx = {\n table: table,\n index: whereCtx.index,\n isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)),\n range: keyRange,\n keysOnly: false,\n dir: \"next\",\n unique: \"\",\n algorithm: null,\n filter: null,\n replayFilter: null,\n justLimit: true, // True if a replayFilter is just a filter that performs a \"limit\" operation (or none at all)\n isMatch: null,\n offset: 0,\n limit: Infinity,\n error: error, // If set, any promise must be rejected with this error\n or: whereCtx.or,\n valueMapper: readingHook !== mirror ? readingHook : null\n };\n }\n );\n}\n","import { IndexableType } from '../public/types/indexable-type';\n\nexport function simpleCompare(a, b) {\n return a < b ? -1 : a === b ? 0 : 1;\n}\n\nexport function simpleCompareReverse(a, b) {\n return a > b ? -1 : a === b ? 0 : 1;\n}\n","import { WhereClause } from './where-clause';\nimport { Collection } from '../collection';\nimport { STRING_EXPECTED } from '../../globals/constants';\nimport { simpleCompare, simpleCompareReverse } from '../../functions/compare-functions';\nimport { IndexableType } from '../../public';\nimport { DBCoreKeyRange, DBCoreRangeType } from '../../public/types/dbcore';\n\nexport function fail(collectionOrWhereClause: Collection | WhereClause, err, T?) {\n var collection = collectionOrWhereClause instanceof WhereClause ?\n new collectionOrWhereClause.Collection (collectionOrWhereClause) :\n collectionOrWhereClause;\n \n collection._ctx.error = T ? new T(err) : new TypeError(err);\n return collection;\n}\n\nexport function emptyCollection(whereClause: WhereClause) {\n return new whereClause.Collection (whereClause, () => rangeEqual(\"\")).limit(0);\n}\n\nexport function upperFactory(dir: 'next' | 'prev') {\n return dir === \"next\" ?\n (s: string) => s.toUpperCase() :\n (s: string) => s.toLowerCase();\n}\n\nexport function lowerFactory(dir: 'next' | 'prev') {\n return dir === \"next\" ?\n (s: string) => s.toLowerCase() :\n (s: string) => s.toUpperCase();\n}\n\nexport function nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n var length = Math.min(key.length, lowerNeedle.length);\n var llp = -1;\n for (var i = 0; i < length; ++i) {\n var lwrKeyChar = lowerKey[i];\n if (lwrKeyChar !== lowerNeedle[i]) {\n if (cmp(key[i], upperNeedle[i]) < 0) return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n if (cmp(key[i], lowerNeedle[i]) < 0) return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n if (llp >= 0) return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n return null;\n }\n if (cmp(key[i], lwrKeyChar) < 0) llp = i;\n }\n if (length < lowerNeedle.length && dir === \"next\") return key + upperNeedle.substr(key.length);\n if (length < key.length && dir === \"prev\") return key.substr(0, upperNeedle.length);\n return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1));\n}\n\nexport function addIgnoreCaseAlgorithm(whereClause: WhereClause, match, needles, suffix) {\n /// <param name=\"needles\" type=\"Array\" elementType=\"String\"></param>\n var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix,\n needlesLen = needles.length;\n if (!needles.every(s => typeof s === 'string')) {\n return fail(whereClause, STRING_EXPECTED);\n }\n function initDirection(dir) {\n upper = upperFactory(dir);\n lower = lowerFactory(dir);\n compare = (dir === \"next\" ? simpleCompare : simpleCompareReverse);\n var needleBounds = needles.map(function (needle){\n return {lower: lower(needle), upper: upper(needle)};\n }).sort(function(a,b) {\n return compare(a.lower, b.lower);\n });\n upperNeedles = needleBounds.map(function (nb){ return nb.upper; });\n lowerNeedles = needleBounds.map(function (nb){ return nb.lower; });\n direction = dir;\n nextKeySuffix = (dir === \"next\" ? \"\" : suffix);\n }\n initDirection(\"next\");\n\n var c = new whereClause.Collection (\n whereClause,\n ()=>createRange(upperNeedles[0], lowerNeedles[needlesLen-1] + suffix)\n );\n\n c._ondirectionchange = function (direction) {\n // This event onlys occur before filter is called the first time.\n initDirection(direction);\n };\n\n var firstPossibleNeedle = 0;\n\n c._addAlgorithm(function (cursor, advance, resolve) {\n /// <param name=\"cursor\" type=\"IDBCursor\"></param>\n /// <param name=\"advance\" type=\"Function\"></param>\n /// <param name=\"resolve\" type=\"Function\"></param>\n var key = cursor.key;\n if (typeof key !== 'string') return false;\n var lowerKey = lower(key);\n if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n return true;\n } else {\n var lowestPossibleCasing = null;\n for (var i=firstPossibleNeedle; i<needlesLen; ++i) {\n var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction);\n if (casing === null && lowestPossibleCasing === null)\n firstPossibleNeedle = i + 1;\n else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) {\n lowestPossibleCasing = casing;\n }\n }\n if (lowestPossibleCasing !== null) {\n advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); });\n } else {\n advance(resolve);\n }\n return false;\n }\n });\n return c;\n}\n\nexport function createRange (lower: IndexableType, upper: IndexableType, lowerOpen?: boolean, upperOpen?: boolean): DBCoreKeyRange {\n return {\n type: DBCoreRangeType.Range,\n lower,\n upper,\n lowerOpen,\n upperOpen\n };\n}\n\nexport function rangeEqual (value: IndexableType) : DBCoreKeyRange {\n return {\n type: DBCoreRangeType.Equal,\n lower: value,\n upper: value\n };\n}\n","import { WhereClause as IWhereClause } from \"../../public/types/where-clause\";\nimport { Collection } from \"../collection\";\nimport { Table } from \"../table\";\nimport { IndexableType } from \"../../public/types/indexable-type\";\nimport { emptyCollection, fail, addIgnoreCaseAlgorithm, createRange, rangeEqual } from './where-clause-helpers';\nimport { INVALID_KEY_ARGUMENT, STRING_EXPECTED, maxString, minKey } from '../../globals/constants';\nimport { getArrayOf, NO_CHAR_ARRAY } from '../../functions/utils';\nimport { exceptions } from '../../errors';\nimport { Dexie } from '../dexie';\nimport { Collection as ICollection} from \"../../public/types/collection\";\n\n/** class WhereClause\n * \n * https://dexie.org/docs/WhereClause/WhereClause\n */\nexport class WhereClause implements IWhereClause {\n db: Dexie;\n _IDBKeyRange: typeof IDBKeyRange;\n _ctx: {\n table: Table;\n index: string;\n or: Collection;\n }\n _cmp: (a: IndexableType, b: IndexableType) => number;\n _ascending: (a: IndexableType, b: IndexableType) => number;\n _descending: (a: IndexableType, b: IndexableType) => number;\n _min: (a: IndexableType, b: IndexableType) => IndexableType;\n _max: (a: IndexableType, b: IndexableType) => IndexableType;\n\n get Collection() {\n return this._ctx.table.db.Collection;\n }\n\n /** WhereClause.between()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.between()\n * \n **/\n between(lower: IndexableType, upper: IndexableType, includeLower?: boolean, includeUpper?: boolean) {\n includeLower = includeLower !== false; // Default to true\n includeUpper = includeUpper === true; // Default to false\n try {\n if ((this._cmp(lower, upper) > 0) ||\n (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)))\n return emptyCollection(this); // Workaround for idiotic W3C Specification that DataError must be thrown if lower > upper. The natural result would be to return an empty collection.\n return new this.Collection(this, ()=>createRange(lower, upper, !includeLower, !includeUpper));\n } catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n }\n\n /** WhereClause.equals()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.equals()\n * \n **/\n equals(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => rangeEqual(value)) as ICollection;\n }\n\n /** WhereClause.above()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.above()\n * \n **/\n above(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(value, undefined, true));\n }\n\n /** WhereClause.aboveOrEqual()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.aboveOrEqual()\n * \n **/\n aboveOrEqual(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(value, undefined, false));\n }\n\n /** WhereClause.below()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.below()\n * \n **/\n below(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(undefined, value, false, true));\n }\n\n /** WhereClause.belowOrEqual()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.belowOrEqual()\n * \n **/\n belowOrEqual(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(undefined, value));\n }\n\n /** WhereClause.startsWith()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWith()\n * \n **/\n startsWith(str: string) {\n if (typeof str !== 'string') return fail(this, STRING_EXPECTED);\n return this.between(str, str + maxString, true, true);\n }\n\n /** WhereClause.startsWithIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWithIgnoreCase()\n * \n **/\n startsWithIgnoreCase(str: string) {\n if (str === \"\") return this.startsWith(str);\n return addIgnoreCaseAlgorithm(this, (x, a) => x.indexOf(a[0]) === 0, [str], maxString);\n }\n\n /** WhereClause.equalsIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.equalsIgnoreCase()\n * \n **/\n equalsIgnoreCase(str: string) {\n return addIgnoreCaseAlgorithm(this, (x, a) => x === a[0], [str], \"\");\n }\n\n /** WhereClause.anyOfIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.anyOfIgnoreCase()\n * \n **/\n anyOfIgnoreCase(...values: string[]): Collection;\n anyOfIgnoreCase(values: string[]): Collection;\n anyOfIgnoreCase() {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, (x, a) => a.indexOf(x) !== -1, set, \"\");\n }\n\n /** WhereClause.startsWithAnyOfIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWithAnyOfIgnoreCase()\n * \n **/\n startsWithAnyOfIgnoreCase(...values: string[]): Collection;\n startsWithAnyOfIgnoreCase(values: string[]): Collection;\n startsWithAnyOfIgnoreCase() {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, (x, a) => a.some(n => x.indexOf(n) === 0), set, maxString);\n }\n\n /** WhereClause.anyOf()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.anyOf()\n * \n **/\n anyOf(...values: string[]): Collection;\n anyOf(values: string[]): Collection;\n anyOf() {\n const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n let compare = this._cmp;\n try { set.sort(compare); } catch (e) { return fail(this, INVALID_KEY_ARGUMENT); }\n if (set.length === 0) return emptyCollection(this);\n const c = new this.Collection(this, () => createRange(set[0], set[set.length - 1]));\n\n c._ondirectionchange = direction => {\n compare = (direction === \"next\" ?\n this._ascending :\n this._descending);\n set.sort(compare);\n };\n\n let i = 0;\n c._addAlgorithm((cursor, advance, resolve) => {\n const key = cursor.key;\n while (compare(key, set[i]) > 0) {\n // The cursor has passed beyond this key. Check next.\n ++i;\n if (i === set.length) {\n // There is no next. Stop searching.\n advance(resolve);\n return false;\n }\n }\n if (compare(key, set[i]) === 0) {\n // The current cursor value should be included and we should continue a single step in case next item has the same key or possibly our next key in set.\n return true;\n } else {\n // cursor.key not yet at set[i]. Forward cursor to the next key to hunt for.\n advance(() => { cursor.continue(set[i]); });\n return false;\n }\n });\n return c;\n }\n\n /** WhereClause.notEqual()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.notEqual()\n * \n **/\n notEqual(value: IndexableType) {\n return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false });\n }\n\n /** WhereClause.noneOf()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.noneOf()\n * \n **/\n noneOf(...values: string[]): Collection;\n noneOf(values: string[]): Collection;\n noneOf() {\n const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return new this.Collection(this); // Return entire collection.\n try { set.sort(this._ascending); } catch (e) { return fail(this, INVALID_KEY_ARGUMENT); }\n // Transform [\"a\",\"b\",\"c\"] to a set of ranges for between/above/below: [[minKey,\"a\"], [\"a\",\"b\"], [\"b\",\"c\"], [\"c\",maxKey]]\n const ranges = set.reduce(\n (res, val) => res ?\n res.concat([[res[res.length - 1][1], val]]) :\n [[minKey, val]],\n null);\n ranges.push([set[set.length - 1], this.db._maxKey]);\n return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false });\n }\n\n /** WhereClause.inAnyRange()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.inAnyRange()\n * \n **/\n inAnyRange(\n ranges: ReadonlyArray<{ 0: IndexableType, 1: IndexableType }>,\n options?: { includeLowers?: boolean, includeUppers?: boolean })\n {\n const cmp = this._cmp,\n ascending = this._ascending,\n descending = this._descending,\n min = this._min,\n max = this._max;\n\n if (ranges.length === 0) return emptyCollection(this);\n if (!ranges.every(range =>\n range[0] !== undefined &&\n range[1] !== undefined &&\n ascending(range[0], range[1]) <= 0)) {\n return fail(\n this,\n \"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\",\n exceptions.InvalidArgument);\n }\n const includeLowers = !options || options.includeLowers !== false; // Default to true\n const includeUppers = options && options.includeUppers === true; // Default to false\n\n function addRange(ranges, newRange) {\n let i = 0, l = ranges.length;\n for (; i < l; ++i) {\n const range = ranges[i];\n if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n range[0] = min(range[0], newRange[0]);\n range[1] = max(range[1], newRange[1]);\n break;\n }\n }\n if (i === l)\n ranges.push(newRange);\n return ranges;\n }\n\n let sortDirection = ascending;\n function rangeSorter(a, b) { return sortDirection(a[0], b[0]); }\n\n // Join overlapping ranges\n let set;\n try {\n set = ranges.reduce(addRange, []);\n set.sort(rangeSorter);\n } catch (ex) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n\n let rangePos = 0;\n const keyIsBeyondCurrentEntry = includeUppers ?\n key => ascending(key, set[rangePos][1]) > 0 :\n key => ascending(key, set[rangePos][1]) >= 0;\n\n const keyIsBeforeCurrentEntry = includeLowers ?\n key => descending(key, set[rangePos][0]) > 0 :\n key => descending(key, set[rangePos][0]) >= 0;\n\n function keyWithinCurrentRange(key) {\n return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n }\n\n let checkKey = keyIsBeyondCurrentEntry;\n\n const c = new this.Collection(\n this,\n () => createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers));\n\n c._ondirectionchange = direction => {\n if (direction === \"next\") {\n checkKey = keyIsBeyondCurrentEntry;\n sortDirection = ascending;\n } else {\n checkKey = keyIsBeforeCurrentEntry;\n sortDirection = descending;\n }\n set.sort(rangeSorter);\n };\n\n c._addAlgorithm((cursor, advance, resolve) => {\n var key = cursor.key;\n while (checkKey(key)) {\n // The cursor has passed beyond this key. Check next.\n ++rangePos;\n if (rangePos === set.length) {\n // There is no next. Stop searching.\n advance(resolve);\n return false;\n }\n }\n if (keyWithinCurrentRange(key)) {\n // The current cursor value should be included and we should continue a single step in case next item has the same key or possibly our next key in set.\n return true;\n } else if (this._cmp(key, set[rangePos][1]) === 0 || this._cmp(key, set[rangePos][0]) === 0) {\n // includeUpper or includeLower is false so keyWithinCurrentRange() returns false even though we are at range border.\n // Continue to next key but don't include this one.\n return false;\n } else {\n // cursor.key not yet at set[i]. Forward cursor to the next key to hunt for.\n advance(() => {\n if (sortDirection === ascending) cursor.continue(set[rangePos][0]);\n else cursor.continue(set[rangePos][1]);\n });\n return false;\n }\n });\n return c;\n }\n\n /** WhereClause.startsWithAnyOf()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWithAnyOf()\n * \n **/\n startsWithAnyOf(...prefixes: string[]): Collection;\n startsWithAnyOf(prefixes: string[]): Collection;\n startsWithAnyOf() {\n const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n\n if (!set.every(s => typeof s === 'string')) {\n return fail(this, \"startsWithAnyOf() only works with strings\");\n }\n if (set.length === 0) return emptyCollection(this);\n\n return this.inAnyRange(set.map((str: string) => [str, str + maxString]));\n }\n\n}\n","import { Dexie } from '../dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { WhereClause } from './where-clause';\nimport { Table } from '../table';\nimport { Collection } from '../collection';\nimport { exceptions } from '../../errors';\nimport { cmp } from '../../functions/cmp';\n\nexport interface WhereClauseConstructor {\n new(table: Table, index?: string, orCollection?: Collection): WhereClause;\n prototype: WhereClause;\n}\n\n/** Generates a WhereClause constructor.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createWhereClauseConstructor(db: Dexie) {\n return makeClassConstructor<WhereClauseConstructor>(\n WhereClause.prototype,\n\n function WhereClause(this: WhereClause, table: Table, index?: string, orCollection?: Collection) {\n this.db = db;\n this._ctx = {\n table: table,\n index: index === \":id\" ? null : index,\n or: orCollection\n };\n this._cmp = this._ascending = cmp;\n this._descending = (a, b) => cmp(b, a);\n this._max = (a, b) => cmp(a,b) > 0 ? a : b;\n this._min = (a, b) => cmp(a,b) < 0 ? a : b;\n this._IDBKeyRange = db._deps.IDBKeyRange;\n if (!this._IDBKeyRange) throw new exceptions.MissingAPI();\n }\n );\n}\n","import { wrap } from \"../helpers/promise\";\n\nexport function eventRejectHandler(reject) {\n return wrap(function (event) {\n preventDefault(event);\n reject (event.target.error);\n return false;\n });\n}\n\nexport function eventSuccessHandler (resolve) {\n return wrap(function (event){\n resolve(event.target.result);\n });\n}\n\nexport function hookedEventRejectHandler (reject) {\n return wrap(function (event) {\n // See comment on hookedEventSuccessHandler() why wrap() is needed only when supporting hooks.\n \n var req = event.target,\n err = req.error,\n ctx = req._hookCtx,// Contains the hook error handler. Put here instead of closure to boost performance.\n hookErrorHandler = ctx && ctx.onerror;\n hookErrorHandler && hookErrorHandler(err);\n preventDefault(event);\n reject (err);\n return false;\n });\n}\n\nexport function hookedEventSuccessHandler(resolve) {\n // wrap() is needed when calling hooks because the rare scenario of:\n // * hook does a db operation that fails immediately (IDB throws exception)\n // For calling db operations on correct transaction, wrap makes sure to set PSD correctly.\n // wrap() will also execute in a virtual tick.\n // * If not wrapped in a virtual tick, direct exception will launch a new physical tick.\n // * If this was the last event in the bulk, the promise will resolve after a physical tick\n // and the transaction will have committed already.\n // If no hook, the virtual tick will be executed in the reject()/resolve of the final promise,\n // because it is always marked with _lib = true when created using Transaction._promise().\n return wrap(function(event) {\n var req = event.target,\n ctx = req._hookCtx,// Contains the hook error handler. Put here instead of closure to boost performance.\n result = ctx.value || req.result, // Pass the object value on updates. The result from IDB is the primary key.\n hookSuccessHandler = ctx && ctx.onsuccess;\n hookSuccessHandler && hookSuccessHandler(result);\n resolve && resolve(result);\n }, resolve);\n}\n\n\nexport function preventDefault(event) {\n if (event.stopPropagation) // IndexedDBShim doesnt support this on Safari 8 and below.\n event.stopPropagation();\n if (event.preventDefault) // IndexedDBShim doesnt support this on Safari 8 and below.\n event.preventDefault();\n}\n\nexport function BulkErrorHandlerCatchAll(errorList, done?, supportHooks?) {\n return (supportHooks ? hookedEventRejectHandler : eventRejectHandler)(e => {\n errorList.push(e);\n done && done();\n });\n}\n\n","import Events from '../helpers/Events';\nimport { GlobalDexieEvents } from '../public/types/db-events';\n\nexport const DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated' as 'storagemutated';\n\n// Name of the global event fired using DOM dispatchEvent (if not in node).\n// Reason for propagating this as a DOM event is for getting reactivity across\n// multiple versions of Dexie within the same app (as long as they are\n// compatible with regards to the event data).\n// If the ObservabilitySet protocol change in a way that would not be backward\n// compatible, make sure also update the event name to a new number at the end\n// so that two Dexie instances of different versions continue to work together\n// - maybe not able to communicate but won't fail due to unexpected data in\n// the detail property of the CustomEvent. If so, also make sure to udpate\n// docs and explain at which Dexie version the new name and format of the event\n// is being used.\nexport const STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';\n\nexport const globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME) as GlobalDexieEvents;\n","import { Transaction as ITransaction } from '../../public/types/transaction';\nimport { DexiePromise, wrap, rejection } from \"../../helpers/promise\";\nimport { DbSchema } from '../../public/types/db-schema';\nimport { assert, hasOwn } from '../../functions/utils';\nimport { PSD, usePSD } from '../../helpers/promise';\nimport { Dexie } from '../dexie';\nimport { exceptions } from '../../errors';\nimport { safariMultiStoreFix } from '../../functions/quirks';\nimport { preventDefault } from '../../functions/event-wrappers';\nimport { newScope } from '../../helpers/promise';\nimport * as Debug from '../../helpers/debug';\nimport { Table } from '../table';\nimport { globalEvents } from '../../globals/global-events';\n\n/** Transaction\n * \n * https://dexie.org/docs/Transaction/Transaction\n * \n **/\nexport class Transaction implements ITransaction {\n db: Dexie;\n active: boolean;\n mode: IDBTransactionMode;\n chromeTransactionDurability: IDBTransactionDurability;\n idbtrans: IDBTransaction;\n storeNames: string[];\n explicit?: boolean;\n on: any;\n parent?: Transaction;\n schema: DbSchema;\n _memoizedTables: {[tableName: string]: Table};\n\n _reculock: number;\n _blockedFuncs: { 0: () => any, 1: any }[];\n _resolve: () => void;\n _reject: (Error) => void;\n _waitingFor: DexiePromise; // for waitFor()\n _waitingQueue: Function[]; // for waitFor()\n _spinCount: number; // Just for debugging waitFor()\n _completion: DexiePromise;\n\n //\n // Transaction internal methods (not required by API users, but needed internally and eventually by dexie extensions)\n //\n\n /** Transaction._lock()\n * \n * Internal method.\n */\n _lock() {\n assert(!PSD.global); // Locking and unlocking reuires to be within a PSD scope.\n // Temporary set all requests into a pending queue if they are called before database is ready.\n ++this._reculock; // Recursive read/write lock pattern using PSD (Promise Specific Data) instead of TLS (Thread Local Storage)\n if (this._reculock === 1 && !PSD.global) PSD.lockOwnerFor = this;\n return this;\n }\n\n /** Transaction._unlock()\n * \n * Internal method.\n */\n _unlock() {\n assert(!PSD.global); // Locking and unlocking reuires to be within a PSD scope.\n if (--this._reculock === 0) {\n if (!PSD.global) PSD.lockOwnerFor = null;\n while (this._blockedFuncs.length > 0 && !this._locked()) {\n var fnAndPSD = this._blockedFuncs.shift();\n try { usePSD(fnAndPSD[1], fnAndPSD[0]); } catch (e) { }\n }\n }\n return this;\n }\n\n /** Transaction._lock()\n * \n * Internal method.\n */\n _locked() {\n // Checks if any write-lock is applied on this transaction.\n // To simplify the Dexie API for extension implementations, we support recursive locks.\n // This is accomplished by using \"Promise Specific Data\" (PSD).\n // PSD data is bound to a Promise and any child Promise emitted through then() or resolve( new Promise() ).\n // PSD is local to code executing on top of the call stacks of any of any code executed by Promise():\n // * callback given to the Promise() constructor (function (resolve, reject){...})\n // * callbacks given to then()/catch()/finally() methods (function (value){...})\n // If creating a new independant Promise instance from within a Promise call stack, the new Promise will derive the PSD from the call stack of the parent Promise.\n // Derivation is done so that the inner PSD __proto__ points to the outer PSD.\n // PSD.lockOwnerFor will point to current transaction object if the currently executing PSD scope owns the lock.\n return this._reculock && PSD.lockOwnerFor !== this;\n }\n\n /** Transaction.create()\n * \n * Internal method.\n * \n */\n create(idbtrans?: IDBTransaction & {[prop: string]: any}) {\n if (!this.mode) return this;\n const idbdb = this.db.idbdb;\n const dbOpenError = this.db._state.dbOpenError;\n assert(!this.idbtrans);\n if (!idbtrans && !idbdb) {\n switch (dbOpenError && dbOpenError.name) {\n case \"DatabaseClosedError\":\n // Errors where it is no difference whether it was caused by the user operation or an earlier call to db.open()\n throw new exceptions.DatabaseClosed(dbOpenError);\n case \"MissingAPIError\":\n // Errors where it is no difference whether it was caused by the user operation or an earlier call to db.open()\n throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n default:\n // Make it clear that the user operation was not what caused the error - the error had occurred earlier on db.open()!\n throw new exceptions.OpenFailed(dbOpenError);\n }\n }\n if (!this.active) throw new exceptions.TransactionInactive();\n assert(this._completion._state === null); // Completion Promise must still be pending.\n\n idbtrans = this.idbtrans = idbtrans ||\n (this.db.core \n ? this.db.core.transaction(this.storeNames, this.mode as 'readwrite' | 'readonly', { durability: this.chromeTransactionDurability })\n : idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })\n ) as IDBTransaction;\n\n idbtrans.onerror = wrap(ev => {\n preventDefault(ev);// Prohibit default bubbling to window.error\n this._reject(idbtrans.error);\n });\n idbtrans.onabort = wrap(ev => {\n preventDefault(ev);\n this.active && this._reject(new exceptions.Abort(idbtrans.error));\n this.active = false;\n this.on(\"abort\").fire(ev);\n });\n idbtrans.oncomplete = wrap(() => {\n this.active = false;\n this._resolve();\n if ('mutatedParts' in idbtrans) {\n globalEvents.storagemutated.fire(idbtrans[\"mutatedParts\"]);\n }\n });\n return this;\n }\n\n /** Transaction._promise()\n * \n * Internal method.\n */\n _promise(\n mode: IDBTransactionMode,\n fn: (resolve, reject, trans: Transaction) => PromiseLike<any> | void,\n bWriteLock?: string | boolean): DexiePromise\n {\n if (mode === 'readwrite' && this.mode !== 'readwrite')\n return rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n\n if (!this.active)\n return rejection(new exceptions.TransactionInactive());\n\n if (this._locked()) {\n return new DexiePromise((resolve, reject) => {\n this._blockedFuncs.push([() => {\n this._promise(mode, fn, bWriteLock).then(resolve, reject);\n }, PSD]);\n });\n\n } else if (bWriteLock) {\n return newScope(() => {\n var p = new DexiePromise((resolve, reject) => {\n this._lock();\n const rv = fn(resolve, reject, this);\n if (rv && rv.then) rv.then(resolve, reject);\n });\n p.finally(() => this._unlock());\n p._lib = true;\n return p;\n });\n\n } else {\n var p = new DexiePromise((resolve, reject) => {\n var rv = fn(resolve, reject, this);\n if (rv && rv.then) rv.then(resolve, reject);\n });\n p._lib = true;\n return p;\n }\n }\n\n /** Transaction._root()\n * \n * Internal method. Retrieves the root transaction in the tree of sub transactions.\n */\n _root() {\n return this.parent ? this.parent._root() : this;\n }\n\n /** Transaction.waitFor()\n * \n * Internal method. Can be accessed from the public API through\n * Dexie.waitFor(): https://dexie.org/docs/Dexie/Dexie.waitFor()\n * \n **/\n waitFor(promiseLike: PromiseLike<any>) {\n // Always operate on the root transaction (in case this is a sub stransaction)\n var root = this._root();\n // For stability reasons, convert parameter to promise no matter what type is passed to waitFor().\n // (We must be able to call .then() on it.)\n const promise = DexiePromise.resolve(promiseLike);\n if (root._waitingFor) {\n // Already called waitFor(). Wait for both to complete.\n root._waitingFor = root._waitingFor.then(() => promise);\n } else {\n // We're not in waiting state. Start waiting state.\n root._waitingFor = promise;\n root._waitingQueue = [];\n // Start interacting with indexedDB until promise completes:\n var store = root.idbtrans.objectStore(root.storeNames[0]);\n (function spin() {\n ++root._spinCount; // For debugging only\n while (root._waitingQueue.length) (root._waitingQueue.shift())();\n if (root._waitingFor) store.get(-Infinity).onsuccess = spin;\n }());\n }\n var currentWaitPromise = root._waitingFor;\n return new DexiePromise((resolve, reject) => {\n promise.then(\n res => root._waitingQueue.push(wrap(resolve.bind(null, res))),\n err => root._waitingQueue.push(wrap(reject.bind(null, err)))\n ).finally(() => {\n if (root._waitingFor === currentWaitPromise) {\n // No one added a wait after us. Safe to stop the spinning.\n root._waitingFor = null;\n }\n });\n });\n } \n\n /** Transaction.abort()\n * \n * https://dexie.org/docs/Transaction/Transaction.abort()\n */\n abort() {\n if (this.active) {\n this.active = false;\n if (this.idbtrans) this.idbtrans.abort();\n this._reject(new exceptions.Abort());\n }\n }\n\n /** Transaction.table()\n * \n * https://dexie.org/docs/Transaction/Transaction.table()\n */\n table(tableName: string) {\n const memoizedTables = (this._memoizedTables || (this._memoizedTables = {}));\n if (hasOwn(memoizedTables, tableName))\n return memoizedTables[tableName];\n const tableSchema = this.schema[tableName];\n if (!tableSchema) {\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\"); \n }\n\n const transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n transactionBoundTable.core = this.db.core.table(tableName);\n memoizedTables[tableName] = transactionBoundTable;\n return transactionBoundTable;\n }\n}\n","import { Dexie } from '../dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { Transaction } from './transaction';\nimport { DbSchema } from '../../public/types/db-schema';\nimport Events from '../../helpers/Events';\nimport Promise, { rejection } from '../../helpers/promise';\n\nexport interface TransactionConstructor<T extends Transaction=Transaction> {\n new (\n mode: IDBTransactionMode,\n storeNames: string[],\n dbschema: DbSchema,\n chromeTransactionDurability: IDBTransactionDurability,\n parent?: Transaction) : T;\n prototype: T;\n}\n\n/** Generates a Transaction constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createTransactionConstructor(db: Dexie) {\n return makeClassConstructor<TransactionConstructor<Transaction>>(\n Transaction.prototype,\n function Transaction (\n this: Transaction,\n mode: IDBTransactionMode,\n storeNames: string[],\n dbschema: DbSchema,\n chromeTransactionDurability: IDBTransactionDurability,\n parent?: Transaction)\n {\n if (mode !== 'readonly') storeNames.forEach(storeName => {\n // Uncollapse storeName to include Y update tables in case deletion of a record - then we must also delete its Y updates.\n const yProps = dbschema[storeName]?.yProps;\n if (yProps) storeNames = storeNames.concat(yProps.map(p => p.updatesTable));\n });\n\n this.db = db;\n this.mode = mode;\n this.storeNames = storeNames;\n this.schema = dbschema;\n this.chromeTransactionDurability = chromeTransactionDurability;\n this.idbtrans = null;\n this.on = Events(this, \"complete\", \"error\", \"abort\");\n this.parent = parent || null;\n this.active = true;\n this._reculock = 0;\n this._blockedFuncs = [];\n this._resolve = null;\n this._reject = null;\n this._waitingFor = null;\n this._waitingQueue = null;\n this._spinCount = 0; // Just for debugging waitFor()\n this._completion = new Promise ((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n \n this._completion.then(\n ()=> {\n this.active = false;\n this.on.complete.fire();\n },\n e => {\n var wasActive = this.active;\n this.active = false;\n this.on.error.fire(e);\n this.parent ?\n this.parent._reject(e) :\n wasActive && this.idbtrans && this.idbtrans.abort();\n return rejection(e); // Indicate we actually DO NOT catch this error.\n });\n \n });\n}\n","import { IndexSpec } from '../public/types/index-spec';\n\nexport function createIndexSpec(\n name: string,\n keyPath: string | string[],\n unique: boolean,\n multi: boolean,\n auto: boolean,\n compound: boolean,\n isPrimKey: boolean,\n type?: string\n): IndexSpec {\n return {\n name,\n keyPath,\n unique,\n multi,\n auto,\n compound,\n src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath),\n type\n }\n}\n\nexport function nameFromKeyPath (keyPath?: string | string[]): string {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n","import { IndexSpec } from '../public/types/index-spec';\nimport { TableSchema } from '../public/types/table-schema';\nimport { arrayToObject } from '../functions/utils';\n\nexport function createTableSchema(\n name: string,\n primKey: IndexSpec,\n indexes: IndexSpec[],\n): TableSchema {\n return {\n name,\n primKey,\n indexes,\n mappedClass: null,\n idxByName: arrayToObject(indexes, (index) => [index.name, index]),\n };\n}\n","import { maxString } from '../globals/constants';\n\nexport function safariMultiStoreFix(storeNames: string[]) {\n return storeNames.length === 1 ? storeNames[0] : storeNames;\n}\n\nexport function getNativeGetDatabaseNamesFn(indexedDB) {\n var fn = indexedDB && (indexedDB.getDatabaseNames || indexedDB.webkitGetDatabaseNames);\n return fn && fn.bind(indexedDB);\n}\n\nexport let getMaxKey = (IdbKeyRange: typeof IDBKeyRange) => {\n try {\n IdbKeyRange.only([[]]);\n getMaxKey = () => [[]];\n return [[]];\n } catch (e) {\n getMaxKey = () => maxString;\n return maxString;\n }\n}\n","import { getByKeyPath } from '../functions/utils';\n\nexport function getKeyExtractor (keyPath: null | string | string[]) : (a: any) => any {\n if (keyPath == null) {\n return () => undefined;\n } else if (typeof keyPath === 'string') {\n return getSinglePathKeyExtractor(keyPath);\n } else {\n return obj => getByKeyPath(obj, keyPath);\n }\n}\n\nexport function getSinglePathKeyExtractor(keyPath: string) {\n const split = keyPath.split('.');\n if (split.length === 1) {\n return obj => obj[keyPath];\n } else {\n return obj => getByKeyPath(obj, keyPath);\n }\n}\n","import {\n DBCore,\n DBCoreCursor,\n DBCoreOpenCursorRequest,\n DBCoreQueryRequest,\n DBCoreIndex,\n DBCoreKeyRange,\n DBCoreQueryResponse,\n DBCoreRangeType,\n DBCoreSchema,\n DBCoreTableSchema,\n DBCoreTable,\n DBCoreMutateResponse,\n} from \"../public/types/dbcore\";\nimport { isArray } from '../functions/utils';\nimport { eventRejectHandler, preventDefault } from '../functions/event-wrappers';\nimport { wrap } from '../helpers/promise';\nimport { getMaxKey } from '../functions/quirks';\nimport { getKeyExtractor } from './get-key-extractor';\n\nexport function arrayify<T>(arrayLike: {length: number, [index: number]: T}): T[] {\n return [].slice.call(arrayLike);\n}\nexport function pick<T,Prop extends keyof T>(obj: T, props: Prop[]): Pick<T, Prop> {\n const result = {} as Pick<T, Prop>;\n props.forEach(prop => result[prop] = obj[prop]);\n return result;\n}\n\nlet _id_counter = 0;\n\nexport function getKeyPathAlias(keyPath: null | string | string[]) {\n return keyPath == null ?\n \":id\" :\n typeof keyPath === 'string' ?\n keyPath :\n `[${keyPath.join('+')}]`;\n}\n\nexport function createDBCore (\n db: IDBDatabase,\n IdbKeyRange: typeof IDBKeyRange,\n tmpTrans: IDBTransaction) : DBCore\n{\n function extractSchema(db: IDBDatabase, trans: IDBTransaction) : {schema: DBCoreSchema, hasGetAll: boolean} {\n const tables = arrayify(db.objectStoreNames);\n return {\n schema: {\n name: db.name,\n tables: tables.map(table => trans.objectStore(table)).map(store => {\n const {keyPath, autoIncrement} = store;\n const compound = isArray(keyPath);\n const outbound = keyPath == null;\n const indexByKeyPath: {[keyPathAlias: string]: DBCoreIndex} = {};\n const result = {\n name: store.name,\n primaryKey: {\n name: null,\n isPrimaryKey: true,\n outbound,\n compound,\n keyPath,\n autoIncrement,\n unique: true,\n extractKey: getKeyExtractor(keyPath)\n } as DBCoreIndex,\n indexes: arrayify(store.indexNames).map(indexName => store.index(indexName))\n .map(index => {\n const {name, unique, multiEntry, keyPath} = index;\n const compound = isArray(keyPath);\n const result: DBCoreIndex = {\n name,\n compound,\n keyPath,\n unique,\n multiEntry,\n extractKey: getKeyExtractor(keyPath)\n };\n indexByKeyPath[getKeyPathAlias(keyPath)] = result;\n return result;\n }),\n getIndexByKeyPath: (keyPath: null | string | string[]) => indexByKeyPath[getKeyPathAlias(keyPath)]\n };\n indexByKeyPath[\":id\"] = result.primaryKey;\n if (keyPath != null) {\n indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n }\n return result;\n })\n },\n hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) &&\n !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) // Bug with getAll() on Safari ver<604. See discussion following PR #579\n };\n }\n\n function makeIDBKeyRange (range: DBCoreKeyRange) : IDBKeyRange | null {\n if (range.type === DBCoreRangeType.Any) return null;\n if (range.type === DBCoreRangeType.Never) throw new Error(\"Cannot convert never type to IDBKeyRange\");\n const {lower, upper, lowerOpen, upperOpen} = range;\n const idbRange = lower === undefined ?\n upper === undefined ?\n null : //IDBKeyRange.lowerBound(-Infinity, false) : // Any range (TODO: Should we return null instead?)\n IdbKeyRange.upperBound(upper, !!upperOpen) : // below\n upper === undefined ?\n IdbKeyRange.lowerBound(lower, !!lowerOpen) : // above\n IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n return idbRange;\n }\n\n function createDbCoreTable(tableSchema: DBCoreTableSchema): DBCoreTable {\n const tableName = tableSchema.name;\n\n function mutate ({trans, type, keys, values, range}) {\n return new Promise<DBCoreMutateResponse>((resolve, reject) => {\n resolve = wrap(resolve);\n const store = (trans as IDBTransaction).objectStore(tableName);\n const outbound = store.keyPath == null;\n const isAddOrPut = type === \"put\" || type === \"add\";\n if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange')\n throw new Error (\"Invalid operation type: \" + type);\n\n const {length} = keys || values || {length: 1}; // keys.length if keys. values.length if values. 1 if range.\n if (keys && values && keys.length !== values.length) {\n throw new Error(\"Given keys array must have same length as given values array.\");\n }\n if (length === 0)\n // No items to write. Don't even bother!\n return resolve({numFailures: 0, failures: {}, results: [], lastResult: undefined});\n\n let req: IDBRequest;\n const reqs: IDBRequest[] = [];\n \n const failures: {[operationNumber: number]: Error} = [];\n let numFailures = 0;\n const errorHandler = \n event => {\n ++numFailures;\n preventDefault(event);\n };\n \n if (type === 'deleteRange') {\n // Here the argument is the range\n if (range.type === DBCoreRangeType.Never)\n return resolve({numFailures, failures, results: [], lastResult: undefined}); // Deleting the Never range shoulnt do anything.\n if (range.type === DBCoreRangeType.Any)\n reqs.push(req = store.clear()); // Deleting the Any range is equivalent to store.clear()\n else\n reqs.push(req = store.delete(makeIDBKeyRange(range)));\n } else {\n // No matter add, put or delete - find out arrays of first and second arguments to it.\n const [args1, args2] = isAddOrPut ?\n outbound ?\n [values, keys] :\n [values, null] :\n [keys, null];\n\n if (isAddOrPut) {\n for (let i=0; i<length; ++i) {\n reqs.push(req = (args2 && args2[i] !== undefined ?\n store[type](args1[i], args2[i]) :\n store[type](args1[i])) as IDBRequest);\n req.onerror = errorHandler;\n }\n } else {\n for (let i=0; i<length; ++i) {\n reqs.push(req = store[type](args1[i]) as IDBRequest);\n req.onerror = errorHandler;\n }\n }\n }\n const done = event => {\n const lastResult = event.target.result;\n reqs.forEach((req, i) => req.error != null && (failures[i] = req.error));\n resolve({\n numFailures,\n failures,\n results: type === \"delete\" ? keys : reqs.map(req => req.result),\n lastResult\n });\n };\n \n req.onerror = event => { // wrap() not needed. All paths calling outside will wrap!\n errorHandler(event);\n done(event);\n };\n \n req.onsuccess = done;\n });\n }\n \n function openCursor ({trans, values, query, reverse, unique}: DBCoreOpenCursorRequest): Promise<DBCoreCursor>\n {\n return new Promise((resolve, reject) => {\n resolve = wrap(resolve);\n const {index, range} = query;\n const store = (trans as IDBTransaction).objectStore(tableName);\n // source\n const source = index.isPrimaryKey ?\n store :\n store.index(index.name);\n // direction\n const direction = reverse ?\n unique ?\n \"prevunique\" :\n \"prev\" :\n unique ?\n \"nextunique\" :\n \"next\";\n // request\n const req = values || !('openKeyCursor' in source) ?\n source.openCursor(makeIDBKeyRange(range), direction) :\n source.openKeyCursor(makeIDBKeyRange(range), direction);\n \n // iteration\n req.onerror = eventRejectHandler(reject);\n req.onsuccess = wrap(ev => {\n\n const cursor = req.result as unknown as DBCoreCursor;\n if (!cursor) {\n resolve(null);\n return;\n }\n (cursor as any).___id = ++_id_counter;\n (cursor as any).done = false;\n const _cursorContinue = cursor.continue.bind(cursor);\n let _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n if (_cursorContinuePrimaryKey) _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n const _cursorAdvance = cursor.advance.bind(cursor);\n const doThrowCursorIsNotStarted = ()=>{throw new Error(\"Cursor not started\");}\n const doThrowCursorIsStopped = ()=>{throw new Error(\"Cursor not stopped\");}\n (cursor as any).trans = trans;\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n cursor.fail = wrap(reject);\n cursor.next = function (this: DBCoreCursor) {\n // next() must work with \"this\" pointer in order to function correctly for ProxyCursors (derived objects)\n // without having to re-define next() on each child.\n let gotOne = 1;\n return this.start(() => gotOne-- ? this.continue() : this.stop()).then(() => this);\n };\n cursor.start = (callback) => {\n //console.log(\"Starting cursor\", (cursor as any).___id);\n const iterationPromise = new Promise<void>((resolveIteration, rejectIteration) =>{\n resolveIteration = wrap(resolveIteration);\n req.onerror = eventRejectHandler(rejectIteration);\n cursor.fail = rejectIteration;\n cursor.stop = value => {\n //console.log(\"Cursor stop\", cursor);\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n resolveIteration(value);\n };\n });\n // Now change req.onsuccess to a callback that doesn't call initCursor but just observer.next()\n const guardedCallback = () => {\n if (req.result) {\n //console.log(\"Next result\", cursor);\n try {\n callback();\n } catch (err) {\n cursor.fail(err);\n }\n } else {\n (cursor as any).done = true;\n cursor.start = ()=>{throw new Error(\"Cursor behind last entry\");}\n cursor.stop();\n }\n }\n req.onsuccess = wrap(ev => {\n //cursor.continue = _cursorContinue;\n //cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n //cursor.advance = _cursorAdvance;\n req.onsuccess = guardedCallback;\n guardedCallback();\n });\n cursor.continue = _cursorContinue;\n cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n cursor.advance = _cursorAdvance;\n guardedCallback();\n return iterationPromise;\n };\n resolve(cursor);\n }, reject); \n });\n }\n \n function query (hasGetAll: boolean) {\n return (request: DBCoreQueryRequest) => {\n return new Promise<DBCoreQueryResponse>((resolve, reject) => {\n resolve = wrap(resolve);\n const {trans, values, limit, query} = request;\n const nonInfinitLimit = limit === Infinity ? undefined : limit;\n const {index, range} = query;\n const store = (trans as IDBTransaction).objectStore(tableName);\n const source = index.isPrimaryKey ? store : store.index(index.name);\n const idbKeyRange = makeIDBKeyRange(range);\n if (limit === 0) return resolve({result: []});\n if (hasGetAll) {\n const req = values ?\n (source as any).getAll(idbKeyRange, nonInfinitLimit) :\n (source as any).getAllKeys(idbKeyRange, nonInfinitLimit);\n req.onsuccess = event => resolve({result: event.target.result});\n req.onerror = eventRejectHandler(reject);\n } else {\n let count = 0;\n const req = values || !('openKeyCursor' in source) ?\n source.openCursor(idbKeyRange) :\n source.openKeyCursor(idbKeyRange)\n const result = [];\n req.onsuccess = event => {\n const cursor = req.result as IDBCursorWithValue;\n if (!cursor) return resolve({result});\n result.push(values ? cursor.value : cursor.primaryKey);\n if (++count === limit) return resolve({result});\n cursor.continue();\n };\n req.onerror = eventRejectHandler(reject);\n }\n });\n };\n }\n \n return {\n name: tableName,\n schema: tableSchema,\n \n mutate,\n\n getMany ({trans, keys}) {\n return new Promise<any[]>((resolve, reject) => {\n resolve = wrap(resolve);\n const store = (trans as IDBTransaction).objectStore(tableName);\n const length = keys.length;\n const result = new Array(length);\n let keyCount = 0;\n let callbackCount = 0;\n let valueCount = 0;\n let req: IDBRequest & {_pos?: number};\n \n const successHandler = event => {\n const req = event.target;\n if ((result[req._pos] = req.result) != null) ++valueCount;\n if (++callbackCount === keyCount) resolve(result);\n };\n const errorHandler = eventRejectHandler(reject);\n \n for (let i=0; i<length; ++i) {\n const key = keys[i];\n if (key != null) {\n req = store.get(keys[i]);\n req._pos = i;\n req.onsuccess = successHandler;\n req.onerror = errorHandler;\n ++keyCount;\n }\n }\n if (keyCount === 0) resolve(result);\n });\n },\n\n get ({trans, key}) {\n return new Promise<any>((resolve, reject) => {\n resolve = wrap (resolve);\n const store = (trans as IDBTransaction).objectStore(tableName);\n const req = store.get(key);\n req.onsuccess = event => resolve((event.target as any).result);\n req.onerror = eventRejectHandler(reject);\n });\n },\n\n query: query(hasGetAll),\n \n openCursor,\n\n count ({query, trans}) {\n const {index, range} = query;\n return new Promise<number>((resolve, reject) => {\n const store = (trans as IDBTransaction).objectStore(tableName);\n const source = index.isPrimaryKey ? store : store.index(index.name);\n const idbKeyRange = makeIDBKeyRange(range);\n const req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n req.onsuccess = wrap(ev => resolve((ev.target as IDBRequest).result));\n req.onerror = eventRejectHandler(reject);\n });\n }\n };\n }\n\n const {schema, hasGetAll} = extractSchema(db, tmpTrans);\n const tables = schema.tables.map(tableSchema => createDbCoreTable(tableSchema));\n const tableMap: {[name: string]: DBCoreTable} = {};\n tables.forEach(table => tableMap[table.name] = table);\n return {\n stack: \"dbcore\",\n \n transaction: db.transaction.bind(db),\n\n table(name: string) {\n const result = tableMap[name];\n if (!result) throw new Error(`Table '${name}' not found`);\n return tableMap[name];\n },\n\n MIN_KEY: -Infinity,\n\n MAX_KEY: getMaxKey(IdbKeyRange),\n\n schema\n\n };\n}\n","import { Dexie } from './';\nimport { createDBCore } from '../../dbcore/dbcore-indexeddb';\nimport { DBCore } from '../../public/types/dbcore';\nimport { DexieDOMDependencies } from '../../public/types/dexie-dom-dependencies';\nimport { DexieStacks, Middleware } from '../../public/types/middleware';\nimport { exceptions } from '../../errors';\n\nfunction createMiddlewareStack<TStack extends {stack: string}>(\n stackImpl: {stack: string},\n middlewares: Middleware<{stack: string}>[]): TStack {\n return middlewares.reduce((down, {create}) => ({...down, ...create(down)}), stackImpl) as TStack;\n} \n\nfunction createMiddlewareStacks(\n middlewares: {[StackName in keyof DexieStacks]?: Middleware<DexieStacks[StackName]>[]},\n idbdb: IDBDatabase,\n {IDBKeyRange, indexedDB}: DexieDOMDependencies,\n tmpTrans: IDBTransaction): {[StackName in keyof DexieStacks]?: DexieStacks[StackName]}\n{\n const dbcore = createMiddlewareStack<DBCore>(\n createDBCore(idbdb, IDBKeyRange, tmpTrans),\n middlewares.dbcore);\n \n // TODO: Create other stacks the same way as above. They might be dependant on the result\n // of creating dbcore stack.\n\n return {\n dbcore\n };\n}\n\nexport function generateMiddlewareStacks(db: Dexie, tmpTrans: IDBTransaction) {\n const idbdb = tmpTrans.db;\n const stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n db.core = stacks.dbcore!;\n db.tables.forEach(table => {\n const tableName = table.name;\n if (db.core.schema.tables.some(tbl => tbl.name === tableName)) {\n table.core = db.core.table(tableName);\n if (db[tableName] instanceof db.Table) {\n db[tableName].core = table.core;\n }\n }\n });\n}\n","import { Dexie } from '../dexie';\nimport { DbSchema } from '../../public/types/db-schema';\nimport { _global } from \"../../globals/global\";\nimport { setProp, keys, slice, isArray, shallowClone, isAsyncFunction, defineProperty, getPropertyDescriptor } from '../../functions/utils';\nimport { Transaction } from '../transaction';\nimport { Version } from './version';\nimport Promise, { PSD, newScope, NativePromise, decrementExpectedAwaits, incrementExpectedAwaits } from '../../helpers/promise';\nimport { exceptions } from '../../errors';\nimport { TableSchema } from '../../public/types/table-schema';\nimport { IndexSpec } from '../../public/types/index-spec';\nimport { createIndexSpec, nameFromKeyPath } from '../../helpers/index-spec';\nimport { createTableSchema } from '../../helpers/table-schema';\nimport { generateMiddlewareStacks } from '../dexie/generate-middleware-stacks';\nimport { debug } from '../../helpers/debug';\nimport { PromiseExtended } from '../../public/types/promise-extended';\n\nexport function setApiOnPlace(db: Dexie, objs: Object[], tableNames: string[], dbschema: DbSchema) {\n tableNames.forEach(tableName => {\n const schema = dbschema[tableName];\n objs.forEach(obj => {\n const propDesc = getPropertyDescriptor(obj, tableName);\n if (!propDesc || (\"value\" in propDesc && propDesc.value === undefined)) {\n // Either the prop is not declared, or it is initialized to undefined.\n if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n // obj is a Transaction prototype (or prototype of a subclass to Transaction)\n // Make the API a getter that returns this.table(tableName)\n setProp(obj, tableName, {\n get(this: Transaction) { return this.table(tableName); },\n set(value: any) {\n // Issue #1039\n // Let \"this.schema = dbschema;\" and other props in transaction constructor work even if there's a name collision with the table name.\n defineProperty(this, tableName, {value, writable: true, configurable: true, enumerable: true});\n }\n });\n } else {\n // Table will not be bound to a transaction (will use Dexie.currentTransaction)\n obj[tableName] = new db.Table(tableName, schema);\n }\n }\n });\n });\n}\n\nexport function removeTablesApi(db: Dexie, objs: Object[]) {\n objs.forEach(obj => {\n for (let key in obj) {\n if (obj[key] instanceof db.Table) delete obj[key];\n }\n });\n}\n\nexport function lowerVersionFirst(a: Version, b: Version) {\n return a._cfg.version - b._cfg.version;\n}\n\nexport function runUpgraders(db: Dexie, oldVersion: number, idbUpgradeTrans: IDBTransaction, reject) {\n const globalSchema = db._dbSchema;\n if (idbUpgradeTrans.objectStoreNames.contains('$meta') && !globalSchema.$meta) {\n globalSchema.$meta = createTableSchema(\"$meta\", parseIndexSyntax(\"\")[0], []);\n db._storeNames.push('$meta');\n }\n const trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n trans.create(idbUpgradeTrans);\n trans._completion.catch(reject);\n const rejectTransaction = trans._reject.bind(trans);\n const transless = PSD.transless || PSD;\n newScope(() => {\n PSD.trans = trans;\n PSD.transless = transless;\n if (oldVersion === 0) {\n // Create tables:\n keys(globalSchema).forEach(tableName => {\n createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n });\n generateMiddlewareStacks(db, idbUpgradeTrans);\n Promise.follow(() => db.on.populate.fire(trans)).catch(rejectTransaction);\n } else {\n generateMiddlewareStacks(db, idbUpgradeTrans);\n return getExistingVersion(db, trans, oldVersion)\n .then(oldVersion => updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans))\n .catch(rejectTransaction);\n }\n });\n}\n\nexport type UpgradeQueueItem = (idbtrans: IDBTransaction) => PromiseLike<any> | void;\n\nexport function patchCurrentVersion(db: Dexie, idbUpgradeTrans: IDBTransaction) {\n createMissingTables(db._dbSchema, idbUpgradeTrans);\n if (idbUpgradeTrans.db.version % 10 === 0 && !idbUpgradeTrans.objectStoreNames.contains('$meta')) {\n // Rolled over to the next 10-ies due to many schema upgrades without bumping version.\n // No problem! We pin the database to its expected version by adding the $meta table so that next\n // time the programmer bumps the version and attaches, an upgrader, that upgrader will indeed run,\n // as well any further upgraders coming after that.\n idbUpgradeTrans.db.createObjectStore('$meta').add(Math.ceil((idbUpgradeTrans.db.version / 10) - 1), 'version');\n }\n const globalSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n adjustToExistingIndexNames(db, db._dbSchema, idbUpgradeTrans);\n const diff = getSchemaDiff(globalSchema, db._dbSchema);\n for (const tableChange of diff.change) {\n if (tableChange.change.length || tableChange.recreate) {\n console.warn(`Unable to patch indexes of table ${tableChange.name} because it has changes on the type of index or primary key.`);\n return;\n }\n const store = idbUpgradeTrans.objectStore(tableChange.name);\n tableChange.add.forEach(idx => {\n if (debug) console.debug(`Dexie upgrade patch: Creating missing index ${tableChange.name}.${idx.src}`);\n addIndex(store, idx);\n });\n }\n}\n\nfunction getExistingVersion(db: Dexie, trans: Transaction, oldVersion: number): PromiseExtended<number> {\n // In normal case, existing version is the native installed version divided by 10.\n // However, in case more than 10 schema changes have been made on the same version (such as while\n // developing an app), the native version may have passed beyond a multiple of 10 within the same version.\n // When that happens, a table $meta will have been created, containing a single entry with key \"version\"\n // and the value of the real old version to use when running upgraders going forward.\n if (trans.storeNames.includes('$meta')) {\n return trans.table('$meta').get('version').then(metaVersion => {\n return metaVersion != null ? metaVersion : oldVersion\n })\n } else {\n return Promise.resolve(oldVersion);\n }\n}\n\nfunction updateTablesAndIndexes(\n db: Dexie,\n oldVersion: number,\n trans: Transaction,\n idbUpgradeTrans: IDBTransaction)\n{\n // Upgrade version to version, step-by-step from oldest to newest version.\n // Each transaction object will contain the table set that was current in that version (but also not-yet-deleted tables from its previous version)\n const queue: UpgradeQueueItem[] = [];\n const versions = db._versions;\n let globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n let anyContentUpgraderHasRun = false;\n \n const versToRun = versions.filter(v => v._cfg.version >= oldVersion);\n if (versToRun.length === 0) {\n // Important not to continue at this point.\n // Coming here means we've already patched schema in patchCurrentVersion() after having\n // incremented native version to a value above the declared highest version.\n // When being in this mode, it means that there might be different versions the db competing\n // about it with different version of the schema. Therefore, we must avoid deleting tables\n // or indexes here so that both versions can co-exist until the application has been upgraded to\n // a version that declares no lower than the native version.\n // If after that, a downgrade happens again, we'll end up here again, accepting both versions\n // And we'll stay in this state until app developer releases a new declared version.\n return Promise.resolve(); \n }\n \n versToRun.forEach(version => {\n queue.push(() => {\n const oldSchema = globalSchema;\n const newSchema = version._cfg.dbschema;\n adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n\n globalSchema = db._dbSchema = newSchema;\n\n const diff = getSchemaDiff(oldSchema, newSchema);\n // Add tables \n diff.add.forEach(tuple => {\n createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n });\n // Change tables\n diff.change.forEach(change => {\n if (change.recreate) {\n throw new exceptions.Upgrade(\"Not yet support for changing primary key\");\n } else {\n const store = idbUpgradeTrans.objectStore(change.name);\n // Add indexes\n change.add.forEach(idx => addIndex(store, idx));\n // Update indexes\n change.change.forEach(idx => {\n store.deleteIndex(idx.name);\n addIndex(store, idx);\n });\n // Delete indexes\n change.del.forEach(idxName => store.deleteIndex(idxName));\n }\n });\n\n const contentUpgrade = version._cfg.contentUpgrade;\n\n if (contentUpgrade && version._cfg.version > oldVersion) {\n // Update db.core with new tables and indexes:\n generateMiddlewareStacks(db, idbUpgradeTrans);\n trans._memoizedTables = {}; // Invalidate memoization as transaction shape may change between versions.\n\n anyContentUpgraderHasRun = true;\n\n // Add to-be-deleted tables to contentUpgrade transaction\n let upgradeSchema = shallowClone(newSchema);\n diff.del.forEach(table => {\n upgradeSchema[table] = oldSchema[table];\n });\n\n // Safe to affect Transaction.prototype globally in this moment,\n // because when this code runs, there may not be any other code\n // that can access any transaction instance, else than this particular\n // upgrader function.\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema), upgradeSchema);\n trans.schema = upgradeSchema;\n\n // Support for native async await.\n const contentUpgradeIsAsync = isAsyncFunction(contentUpgrade);\n if (contentUpgradeIsAsync) {\n incrementExpectedAwaits();\n }\n \n let returnValue: any;\n const promiseFollowed = Promise.follow(() => {\n // Finally, call the scope function with our table and transaction arguments.\n returnValue = contentUpgrade(trans);\n if (returnValue) {\n if (contentUpgradeIsAsync) {\n // contentUpgrade is a native async function - we know for sure returnValue is native promise.\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n }\n }\n });\n return (returnValue && typeof returnValue.then === 'function' ?\n Promise.resolve(returnValue) : promiseFollowed.then(()=>returnValue));\n }\n });\n queue.push(idbtrans => {\n const newSchema = version._cfg.dbschema;\n // Delete old tables\n deleteRemovedTables(newSchema, idbtrans);\n // Restore the final API\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n trans.schema = db._dbSchema;\n });\n // Maintain the $meta table after this version's tables and indexes has been created and content upgraders have run.\n queue.push(idbtrans => {\n if (db.idbdb.objectStoreNames.contains('$meta')) {\n if (Math.ceil(db.idbdb.version / 10) === version._cfg.version) {\n // Remove $meta table if it's no more needed - we are in line with the native version\n db.idbdb.deleteObjectStore('$meta');\n delete db._dbSchema.$meta;\n db._storeNames = db._storeNames.filter(name => name !== '$meta');\n } else {\n // We're still not in line with the native version. Make sure to update the virtual version\n // to the successfully run version\n idbtrans.objectStore('$meta').put(version._cfg.version, 'version');\n }\n }\n }); \n });\n\n // Now, create a queue execution engine\n function runQueue() {\n return queue.length ? Promise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) :\n Promise.resolve();\n }\n\n return runQueue().then(() => {\n createMissingTables(globalSchema, idbUpgradeTrans); // At last, make sure to create any missing tables. (Needed by addons that add stores to DB without specifying version)\n });\n}\n\nexport interface SchemaDiff {\n del: string[],\n add: [string, TableSchema][];\n change: TableSchemaDiff[];\n}\n\nexport interface TableSchemaDiff {\n name: string,\n recreate: boolean,\n del: string[],\n add: IndexSpec[],\n change: IndexSpec[]\n}\n\nexport function getSchemaDiff(oldSchema: DbSchema, newSchema: DbSchema): SchemaDiff {\n const diff: SchemaDiff = {\n del: [], // Array of table names\n add: [], // Array of [tableName, newDefinition]\n change: [] // Array of {name: tableName, recreate: newDefinition, del: delIndexNames, add: newIndexDefs, change: changedIndexDefs}\n };\n let table: string;\n for (table in oldSchema) {\n if (!newSchema[table]) diff.del.push(table);\n }\n for (table in newSchema) {\n const oldDef = oldSchema[table],\n newDef = newSchema[table];\n if (!oldDef) {\n diff.add.push([table, newDef]);\n } else {\n const change = {\n name: table,\n def: newDef,\n recreate: false,\n del: [],\n add: [],\n change: []\n };\n if (\n (\n // compare keyPaths no matter if string or string[]\n // compare falsy keypaths same no matter if they are null or empty string.\n ''+(oldDef.primKey.keyPath||'')\n ) !== (\n ''+(newDef.primKey.keyPath||'')\n ) ||\n // Compare the autoIncrement flag also\n (oldDef.primKey.auto !== newDef.primKey.auto))\n {\n // Primary key has changed. Remove and re-add table.\n change.recreate = true;\n diff.change.push(change);\n } else {\n // Same primary key. Just find out what differs:\n const oldIndexes = oldDef.idxByName;\n const newIndexes = newDef.idxByName;\n let idxName: string;\n for (idxName in oldIndexes) {\n if (!newIndexes[idxName]) change.del.push(idxName);\n }\n for (idxName in newIndexes) {\n const oldIdx = oldIndexes[idxName],\n newIdx = newIndexes[idxName];\n if (!oldIdx) change.add.push(newIdx);\n else if (oldIdx.src !== newIdx.src) change.change.push(newIdx);\n }\n if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n diff.change.push(change);\n }\n }\n }\n }\n return diff;\n}\n\nexport function createTable(\n idbtrans: IDBTransaction,\n tableName: string,\n primKey: IndexSpec,\n indexes: IndexSpec[]\n) {\n const store = idbtrans.db.createObjectStore(\n tableName,\n primKey.keyPath ?\n { keyPath: primKey.keyPath, autoIncrement: primKey.auto } :\n { autoIncrement: primKey.auto }\n );\n indexes.forEach(idx => addIndex(store, idx));\n return store;\n}\n\nexport function createMissingTables(newSchema: DbSchema, idbtrans: IDBTransaction) {\n keys(newSchema).forEach(tableName => {\n if (!idbtrans.db.objectStoreNames.contains(tableName)) {\n if (debug) console.debug('Dexie: Creating missing table', tableName);\n createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n }\n });\n}\n\nexport function deleteRemovedTables(newSchema: DbSchema, idbtrans: IDBTransaction) {\n [].slice.call(idbtrans.db.objectStoreNames).forEach(storeName =>\n newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName));\n}\n\nexport function addIndex(store: IDBObjectStore, idx: IndexSpec) {\n store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi });\n}\n\nfunction buildGlobalSchema(\n db: Dexie,\n idbdb: IDBDatabase,\n tmpTrans: IDBTransaction\n) {\n const globalSchema = {};\n const dbStoreNames = slice(idbdb.objectStoreNames, 0);\n dbStoreNames.forEach(storeName => {\n const store = tmpTrans.objectStore(storeName);\n let keyPath = store.keyPath;\n const primKey = createIndexSpec(\n nameFromKeyPath(keyPath),\n keyPath || \"\",\n true,\n false,\n !!store.autoIncrement,\n keyPath && typeof keyPath !== \"string\",\n true\n );\n const indexes: IndexSpec[] = [];\n for (let j = 0; j < store.indexNames.length; ++j) {\n const idbindex = store.index(store.indexNames[j]);\n keyPath = idbindex.keyPath;\n var index = createIndexSpec(\n idbindex.name,\n keyPath,\n !!idbindex.unique,\n !!idbindex.multiEntry,\n false,\n keyPath && typeof keyPath !== \"string\",\n false\n );\n indexes.push(index);\n }\n globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n });\n return globalSchema;\n}\n\nexport function readGlobalSchema(db: Dexie, idbdb: IDBDatabase, tmpTrans: IDBTransaction) {\n db.verno = idbdb.version / 10;\n const globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n db._storeNames = slice(idbdb.objectStoreNames, 0);\n setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n}\n\nexport function verifyInstalledSchema(db: Dexie, tmpTrans: IDBTransaction): boolean {\n const installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n const diff = getSchemaDiff(installedSchema, db._dbSchema);\n return !(diff.add.length || diff.change.some(ch => ch.add.length || ch.change.length));\n}\n\nexport function adjustToExistingIndexNames(db: Dexie, schema: DbSchema, idbtrans: IDBTransaction) {\n // Issue #30 Problem with existing db - adjust to existing index names when migrating from non-dexie db\n const storeNames = idbtrans.db.objectStoreNames;\n\n for (let i = 0; i < storeNames.length; ++i) {\n const storeName = storeNames[i];\n const store = idbtrans.objectStore(storeName);\n db._hasGetAll = 'getAll' in store;\n\n for (let j = 0; j < store.indexNames.length; ++j) {\n const indexName = store.indexNames[j];\n const keyPath = store.index(indexName).keyPath;\n const dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n if (schema[storeName]) {\n const indexSpec = schema[storeName].idxByName[dexieName];\n if (indexSpec) {\n indexSpec.name = indexName;\n delete schema[storeName].idxByName[dexieName];\n schema[storeName].idxByName[indexName] = indexSpec;\n }\n }\n }\n }\n\n // Bug with getAll() on Safari ver<604 on Workers only, see discussion following PR #579\n if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n {\n db._hasGetAll = false;\n }\n}\n\nexport function parseIndexSyntax(primKeyAndIndexes: string): IndexSpec[] {\n return primKeyAndIndexes.split(',').map((index, indexNum) => {\n const typeSplit = index.split(':');\n const type = typeSplit[1]?.trim();\n index = typeSplit[0].trim();\n const name = index.replace(/([&*]|\\+\\+)/g, \"\"); // Remove \"&\", \"++\" and \"*\"\n // Let keyPath of \"[a+b]\" be [\"a\",\"b\"]:\n const keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n\n return createIndexSpec(\n name,\n keyPath || null,\n /\\&/.test(index),\n /\\*/.test(index),\n /\\+\\+/.test(index),\n isArray(keyPath),\n indexNum === 0,\n type\n );\n });\n}\n","import { Version as IVersion } from '../../public/types/version';\nimport { DbSchema } from '../../public/types/db-schema';\nimport { extend, keys } from '../../functions/utils';\nimport { Dexie } from '../dexie';\nimport { Transaction } from '../transaction';\nimport { removeTablesApi, setApiOnPlace, parseIndexSyntax } from './schema-helpers';\nimport { exceptions } from '../../errors';\nimport { createTableSchema } from '../../helpers/table-schema';\nimport { nop, promisableChain } from '../../functions/chaining-functions';\nimport { IndexSpec } from '../../public/types/index-spec';\nimport { TableSchema } from '../../public/types/table-schema';\n\n/** class Version\n *\n * https://dexie.org/docs/Version/Version\n */\nexport class Version implements IVersion {\n db: Dexie;\n _cfg: {\n version: number;\n storesSource: { [tableName: string]: string | null };\n dbschema: DbSchema;\n tables: {};\n contentUpgrade: Function | null;\n };\n\n _createTableSchema(\n name: string,\n primKey: IndexSpec,\n indexes: IndexSpec[]\n ): TableSchema {\n return createTableSchema(name, primKey, indexes);\n }\n\n _parseIndexSyntax(primKeyAndIndexes: string): IndexSpec[] {\n return parseIndexSyntax(primKeyAndIndexes);\n }\n\n _parseStoresSpec(\n stores: { [tableName: string]: string | null },\n outSchema: DbSchema\n ): any {\n keys(stores).forEach((tableName) => {\n if (stores[tableName] !== null) {\n let indexes = this._parseIndexSyntax(stores[tableName]);\n\n const primKey = indexes.shift();\n if (!primKey) {\n // {table: ':Y'} not supported.\n throw new exceptions.Schema(\n 'Invalid schema for table ' + tableName + ': ' + stores[tableName]\n );\n }\n\n primKey.unique = true;\n if (primKey.multi)\n throw new exceptions.Schema('Primary key cannot be multiEntry*');\n indexes.forEach((idx) => {\n if (idx.auto)\n throw new exceptions.Schema(\n 'Only primary key can be marked as autoIncrement (++)'\n );\n if (!idx.keyPath)\n throw new exceptions.Schema(\n 'Index must have a name and cannot be an empty string'\n );\n });\n const tblSchema = this._createTableSchema(\n tableName,\n primKey,\n indexes\n );\n outSchema[tableName] = tblSchema;\n }\n });\n }\n\n stores(stores: { [key: string]: string | null }): this {\n const db = this.db;\n this._cfg.storesSource = this._cfg.storesSource\n ? extend(this._cfg.storesSource, stores)\n : stores;\n const versions = db._versions;\n\n // Derive stores from earlier versions if they are not explicitely specified as null or a new syntax.\n const storesSpec: { [key: string]: string } = {};\n let dbschema: DbSchema = {};\n versions.forEach((version) => {\n // 'versions' is always sorted by lowest version first.\n extend(storesSpec, version._cfg.storesSource);\n dbschema = version._cfg.dbschema = {};\n version._parseStoresSpec(storesSpec, dbschema);\n });\n // Update the latest schema to this version\n db._dbSchema = dbschema;\n // Update APIs\n removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n setApiOnPlace(\n db,\n [db._allTables, db, db.Transaction.prototype, this._cfg.tables],\n keys(dbschema),\n dbschema\n );\n db._storeNames = keys(dbschema);\n return this;\n }\n\n upgrade(\n upgradeFunction: (trans: Transaction) => PromiseLike<any> | void\n ): this {\n this._cfg.contentUpgrade = promisableChain(\n this._cfg.contentUpgrade || nop,\n upgradeFunction\n );\n return this;\n }\n}\n","import { Dexie } from '../dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { Version } from './version';\n\nexport interface VersionConstructor {\n new(versionNumber: number): Version;\n prototype: Version;\n}\n\n/** Generates a Version constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createVersionConstructor(db: Dexie) {\n return makeClassConstructor<VersionConstructor>(\n Version.prototype,\n\n function Version(this: Version, versionNumber: number) {\n this.db = db;\n this._cfg = {\n version: versionNumber,\n storesSource: null,\n dbschema: {},\n tables: {},\n contentUpgrade: null\n };\n });\n\n}\n","import { Dexie } from \"../classes/dexie/dexie\";\nimport { Table } from \"../public/types/table\";\nimport { DBNAMES_DB } from \"../globals/constants\";\nimport { DexieDOMDependencies } from \"../public/types/dexie-dom-dependencies\";\nimport { nop } from \"../functions/chaining-functions\";\n\ntype IDBKeyNamesVar = typeof IDBKeyRange;\n\nfunction getDbNamesTable(indexedDB: IDBFactory, IDBKeyRange: IDBKeyNamesVar) {\n let dbNamesDB = indexedDB[\"_dbNamesDB\"];\n if (!dbNamesDB) {\n dbNamesDB = indexedDB[\"_dbNamesDB\"] = new Dexie(DBNAMES_DB, {\n addons: [],\n indexedDB,\n IDBKeyRange,\n });\n dbNamesDB.version(1).stores({ dbnames: \"name\" });\n }\n return dbNamesDB.table(\"dbnames\") as Table<{ name: string }, string>;\n}\n\nfunction hasDatabasesNative(indexedDB: IDBFactory) {\n return indexedDB && typeof indexedDB.databases === \"function\";\n}\n\nexport function getDatabaseNames({\n indexedDB,\n IDBKeyRange,\n}: DexieDOMDependencies) {\n return hasDatabasesNative(indexedDB)\n ? Promise.resolve(indexedDB.databases()).then((infos) =>\n infos\n // Select name prop of infos:\n .map((info) => info.name)\n // Filter out DBNAMES_DB as previous Dexie or browser version would not have included it in the result.\n .filter((name) => name !== DBNAMES_DB)\n )\n : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys();\n}\n\nexport function _onDatabaseCreated(\n { indexedDB, IDBKeyRange }: DexieDOMDependencies,\n name: string\n) {\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).put({name}).catch(nop);\n}\n\nexport function _onDatabaseDeleted(\n { indexedDB, IDBKeyRange }: DexieDOMDependencies,\n name: string\n) {\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop);\n}\n","import { newScope } from '../../helpers/promise';\nimport { PSD } from '../../helpers/promise';\n\nexport function vip (fn) {\n // To be used by subscribers to the on('ready') event.\n // This will let caller through to access DB even when it is blocked while the db.ready() subscribers are firing.\n // This would have worked automatically if we were certain that the Provider was using Dexie.Promise for all asyncronic operations. The promise PSD\n // from the provider.connect() call would then be derived all the way to when provider would call localDatabase.applyChanges(). But since\n // the provider more likely is using non-promise async APIs or other thenable implementations, we cannot assume that.\n // Note that this method is only useful for on('ready') subscribers that is returning a Promise from the event. If not using vip()\n // the database could deadlock since it wont open until the returned Promise is resolved, and any non-VIPed operation started by\n // the caller will not resolve until database is opened.\n return newScope(function () {\n PSD.letThrough = true; // Make sure we are let through if still blocking db due to onready is firing.\n return fn();\n });\n}\n\n","/**\n * Work around Safari 14 IndexedDB open bug.\n *\n * Safari has a horrible bug where IDB requests can hang while the browser is starting up. https://bugs.webkit.org/show_bug.cgi?id=226547\n * The only solution is to keep nudging it until it's awake.\n */\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n // No point putting other browsers or older versions of Safari through this mess.\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nexport default idbReady;\n","import { cmp } from \"../functions/cmp\";\nimport { extend, iteratorSymbol, props } from '../functions/utils';\nimport { IndexableType } from '../public';\nimport {\n EmptyRange,\n IntervalTree,\n IntervalTreeNode,\n RangeSetConstructor,\n RangeSetPrototype,\n} from \"../public/types/rangeset\";\n\n/* An interval tree implementation to efficiently detect overlapping ranges of queried indexes.\n *\n * https://en.wikipedia.org/wiki/Interval_tree\n * \n */\n\nfunction isEmptyRange(node: IntervalTree | {from: IndexableType, to: IndexableType}): node is EmptyRange {\n return !(\"from\" in node);\n}\n\nexport type RangeSet = RangeSetPrototype & IntervalTree;\n\nexport const RangeSet = function(fromOrTree: any, to?: any) {\n if (this) {\n // Called with new()\n extend(this, arguments.length ? {d:1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree} : {d:0});\n } else {\n // Called without new()\n const rv = new RangeSet();\n if (fromOrTree && (\"d\" in fromOrTree)) {\n extend(rv, fromOrTree);\n }\n return rv;\n }\n} as RangeSetConstructor;\n\nprops(RangeSet.prototype, {\n add(rangeSet: IntervalTree | {from: IndexableType, to: IndexableType}) {\n mergeRanges(this, rangeSet);\n return this;\n },\n addKey(key: IndexableType) {\n addRange(this, key, key);\n return this;\n },\n addKeys(keys: IndexableType[]) {\n keys.forEach(key => addRange(this, key, key));\n return this;\n },\n hasKey(key: IndexableType) {\n const node = getRangeSetIterator(this).next(key).value;\n return node && cmp(node.from, key) <= 0 && cmp(node.to, key) >= 0;\n },\n\n [iteratorSymbol](): Iterator<IntervalTreeNode, undefined, IndexableType | undefined> {\n return getRangeSetIterator(this);\n }\n});\n\nfunction addRange(target: IntervalTree, from: IndexableType, to: IndexableType) {\n const diff = cmp(from, to);\n // cmp() returns NaN if one of the args are IDB-invalid keys.\n // Avoid storing invalid keys in rangeset:\n if (isNaN(diff)) return;\n\n // Caller is trying to add a range where from is greater than to:\n if (diff > 0) throw RangeError();\n \n if (isEmptyRange(target)) return extend(target, { from, to, d: 1 });\n const left = target.l;\n const right = target.r;\n if (cmp(to, target.from) < 0) {\n left\n ? addRange(left, from, to)\n : (target.l = { from, to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.to) > 0) {\n right\n ? addRange(right, from, to)\n : (target.r = { from, to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n // Now we have some kind of overlap. We will be able to merge the new range into the node or let it be swallowed.\n\n // Grow left?\n if (cmp(from, target.from) < 0) {\n target.from = from;\n target.l = null; // Cut off for now. Re-add later.\n target.d = right ? right.d + 1 : 1;\n }\n // Grow right?\n if (cmp(to, target.to) > 0) {\n target.to = to;\n target.r = null; // Cut off for now. Re-add later.\n target.d = target.l ? target.l.d + 1 : 1;\n }\n const rightWasCutOff = !target.r;\n // Re-add left?\n if (left && !target.l) {\n //Ranges to the left may be swallowed. Cut it of and re-add all.\n //Could probably be done more efficiently!\n mergeRanges(target, left);\n }\n // Re-add right?\n if (right && rightWasCutOff) {\n //Ranges to the right may be swallowed. Cut it of and re-add all.\n //Could probably be done more efficiently!\n mergeRanges(target, right);\n }\n}\n\nexport function mergeRanges(target: IntervalTree, newSet: IntervalTree | {from: IndexableType, to: IndexableType}) {\n function _addRangeSet(\n target: IntervalTree,\n { from, to, l, r }: IntervalTreeNode | {from: IndexableType, to: IndexableType, l?: undefined, r?: undefined}\n ) {\n addRange(target, from, to);\n if (l) _addRangeSet(target, l);\n if (r) _addRangeSet(target, r);\n }\n\n if(!isEmptyRange(newSet)) _addRangeSet(target, newSet);\n}\n\nexport function rangesOverlap(\n rangeSet1: IntervalTree,\n rangeSet2: IntervalTree\n): boolean {\n // Start iterating other from scratch.\n const i1 = getRangeSetIterator(rangeSet2);\n let nextResult1 = i1.next();\n if (nextResult1.done) return false;\n let a = nextResult1.value;\n\n // Start iterating this from start of other\n const i2 = getRangeSetIterator(rangeSet1);\n let nextResult2 = i2.next(a.from); // Start from beginning of other range\n let b = nextResult2.value;\n\n while (!nextResult1.done && !nextResult2.done) {\n if (cmp(b!.from, a.to) <= 0 && cmp(b!.to, a.from) >= 0) return true;\n cmp(a.from, b!.from) < 0\n ? (a = (nextResult1 = i1.next(b!.from)).value!) // a is behind. forward it to beginning of next b-range\n : (b = (nextResult2 = i2.next(a.from)).value); // b is behind. forward it to beginning of next a-range\n }\n return false;\n}\n\ntype RangeSetIteratorState =\n | {\n up?: RangeSetIteratorState;\n n: IntervalTreeNode;\n s: 0 | 1 | 2 | 3;\n }\n | undefined\n | null;\nexport function getRangeSetIterator(\n node: EmptyRange | IntervalTreeNode\n): Generator<IntervalTreeNode, undefined, IndexableType | undefined> {\n let state: RangeSetIteratorState = isEmptyRange(node) ? null : { s: 0, n: node };\n\n return {\n next(key?) {\n const keyProvided = arguments.length > 0;\n while (state) {\n switch (state.s) {\n case 0:\n // Initial state for node.\n // Fast forward to leftmost node.\n state.s = 1;\n if (keyProvided) {\n while (state.n.l && cmp(key, state.n.from) < 0)\n state = { up: state, n: state.n.l, s: 1 };\n } else {\n while (state.n.l) state = { up: state, n: state.n.l, s: 1 };\n }\n // intentionally fall into case 1:\n case 1:\n // We're on a node where it's left part is already handled or does not exist.\n state.s = 2;\n if (!keyProvided || cmp(key, state.n.to) <= 0)\n return { value: state.n, done: false };\n case 2:\n // We've emitted our node and should continue with the right part or let parent take over from it's state 1\n if (state.n.r) {\n state.s = 3; // So when child is done, we know we're done.\n state = { up: state, n: state.n.r, s: 0 };\n continue; // Will fall in to case 0 with fast forward to left leaf of this subtree.\n }\n // intentionally fall into case 3:\n case 3:\n state = state.up;\n }\n }\n return { done: true };\n },\n } as Generator<IntervalTreeNode, undefined, IndexableType>;\n}\n\nfunction rebalance(target: IntervalTreeNode) {\n const diff = (target.r?.d || 0) - (target.l?.d || 0);\n const r = diff > 1 ? \"r\" : diff < -1 ? \"l\" : \"\";\n if (r) {\n\n // Rotate (https://en.wikipedia.org/wiki/Tree_rotation)\n //\n // \n // [OLDROOT]\n // [OLDROOT.L] [NEWROOT]\n // [NEWROOT.L] [NEWROOT.R]\n //\n // Is going to become:\n //\n // \n // [NEWROOT]\n // [OLDROOT] [NEWROOT.R]\n // [OLDROOT.L] [NEWROOT.L] \n\n // * clone now has the props of OLDROOT\n // Plan:\n // * target must be given the props of NEWROOT\n // * target[l] must point to a new OLDROOT\n // * target[r] must point to NEWROOT.R\n // * OLDROOT[r] must point to NEWROOT.L\n const l = r === \"r\" ? \"l\" : \"r\"; // Support both left/right rotation\n const rootClone = { ...target };\n // We're gonna copy props from target's right node into target so that target will\n // have same range as old target[r] (instead of changing pointers, we copy values.\n // that way we do not need to adjust pointers in parents).\n const oldRootRight = target[r]; \n target.from = oldRootRight.from;\n target.to = oldRootRight.to;\n target[r] = oldRootRight[r];\n rootClone[r] = oldRootRight[l];\n target[l] = rootClone;\n rootClone.d = computeDepth(rootClone);\n }\n target.d = computeDepth(target);\n}\n\nfunction computeDepth({ r, l }: Pick<IntervalTreeNode, \"l\" | \"r\">) {\n return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;\n}\n","import { cloneSimpleObjectTree, deepClone, keys, objectIsEmpty } from \"../functions/utils\";\nimport { mergeRanges, RangeSet } from \"../helpers/rangeset\";\nimport { ObservabilitySet } from \"../public/types/db-events\";\n\nexport function extendObservabilitySet(\n target: ObservabilitySet,\n newSet: ObservabilitySet\n): ObservabilitySet {\n keys(newSet).forEach(part => {\n if (target[part]) mergeRanges(target[part], newSet[part]);\n else target[part] = cloneSimpleObjectTree(newSet[part]); // Somewhat faster\n });\n return target;\n}\n","import { rangesOverlap } from '../helpers/rangeset';\nimport { ObservabilitySet } from '../public/types/db-events';\n\nexport function obsSetsOverlap(os1: ObservabilitySet, os2: ObservabilitySet) {\n return os1.all || os2.all || Object.keys(os1).some(\n (key) => os2[key] && rangesOverlap(os2[key], os1[key])\n );\n}\n","import { type GlobalQueryCache } from \"../../public/types/cache\";\n\nexport const cache: GlobalQueryCache = {}\n","import { CacheEntry, TblQueryCache } from '../../public/types/cache';\nimport { ObservabilitySet } from '../../public/types/db-events';\nimport { extendObservabilitySet } from '../extend-observability-set';\nimport { obsSetsOverlap } from '../obs-sets-overlap';\nimport { cache } from './cache';\n\nlet unsignaledParts: ObservabilitySet = {};\nlet isTaskEnqueued = false;\n\nexport function signalSubscribersLazily(part: ObservabilitySet, optimistic = false) {\n extendObservabilitySet(unsignaledParts, part);\n if (!isTaskEnqueued) {\n isTaskEnqueued = true;\n setTimeout(() => {\n isTaskEnqueued = false;\n const parts = unsignaledParts;\n unsignaledParts = {};\n signalSubscribersNow(parts, false);\n }, 0);\n }\n}\n\nexport function signalSubscribersNow(\n updatedParts: ObservabilitySet,\n deleteAffectedCacheEntries = false\n) {\n const queriesToSignal = new Set<() => void>();\n if (updatedParts.all) {\n // Signal all subscribers to requery.\n for (const tblCache of Object.values(cache)) {\n collectTableSubscribers(\n tblCache,\n updatedParts,\n queriesToSignal,\n deleteAffectedCacheEntries\n );\n }\n } else {\n for (const key in updatedParts) {\n const parts = /^idb\\:\\/\\/(.*)\\/(.*)\\//.exec(key);\n if (parts) {\n const [, dbName, tableName] = parts;\n const tblCache = cache[`idb://${dbName}/${tableName}`];\n if (tblCache)\n collectTableSubscribers(\n tblCache,\n updatedParts,\n queriesToSignal,\n deleteAffectedCacheEntries\n );\n }\n }\n }\n // Now when affected cache entries are removed, signal collected subscribers to requery.\n queriesToSignal.forEach((requery) => requery());\n}\n\nfunction collectTableSubscribers(\n tblCache: TblQueryCache,\n updatedParts: ObservabilitySet,\n outQueriesToSignal: Set<() => void>,\n deleteAffectedCacheEntries: boolean\n) {\n const updatedEntryLists: [string, CacheEntry[]][] = [];\n for (const [indexName, entries] of Object.entries(tblCache.queries.query)) {\n const filteredEntries: CacheEntry[] = [];\n for (const entry of entries) {\n if (obsSetsOverlap(updatedParts, entry.obsSet)) {\n // This query is affected by the mutation. Remove it from cache\n // and signal all subscribers to requery.\n entry.subscribers.forEach((requery) => outQueriesToSignal.add(requery));\n } else if (deleteAffectedCacheEntries) {\n filteredEntries.push(entry);\n }\n }\n // Collect cache entries to be updated\n if (deleteAffectedCacheEntries)\n updatedEntryLists.push([indexName, filteredEntries]);\n }\n if (deleteAffectedCacheEntries) {\n for (const [indexName, filteredEntries] of updatedEntryLists) {\n tblCache.queries.query[indexName] = filteredEntries;\n }\n }\n}\n","import { Dexie } from './dexie';\nimport * as Debug from '../../helpers/debug';\nimport { rejection } from '../../helpers/promise';\nimport { exceptions } from '../../errors';\nimport { eventRejectHandler, preventDefault } from '../../functions/event-wrappers';\nimport Promise, { wrap } from '../../helpers/promise';\nimport { connections } from '../../globals/constants';\nimport { runUpgraders, readGlobalSchema, adjustToExistingIndexNames, verifyInstalledSchema, patchCurrentVersion } from '../version/schema-helpers';\nimport { safariMultiStoreFix } from '../../functions/quirks';\nimport { _onDatabaseCreated } from '../../helpers/database-enumerator';\nimport { vip } from './vip';\nimport { promisableChain, nop } from '../../functions/chaining-functions';\nimport { generateMiddlewareStacks } from './generate-middleware-stacks';\nimport { slice } from '../../functions/utils';\nimport safari14Workaround from 'safari-14-idb-fix';\nimport { type ObservabilitySet } from '../../public/types/db-events';\nimport { RangeSet } from '../../helpers/rangeset';\nimport { DEXIE_STORAGE_MUTATED_EVENT_NAME, globalEvents } from '../../globals/global-events';\nimport { signalSubscribersNow } from '../../live-query/cache/signalSubscribers';\n\nexport function dexieOpen (db: Dexie) {\n const state = db._state;\n const {indexedDB} = db._deps;\n if (state.isBeingOpened || db.idbdb)\n return state.dbReadyPromise.then<Dexie>(() => state.dbOpenError ?\n rejection (state.dbOpenError) :\n db);\n state.isBeingOpened = true;\n state.dbOpenError = null;\n state.openComplete = false;\n const openCanceller = state.openCanceller;\n let nativeVerToOpen = Math.round(db.verno * 10);\n let schemaPatchMode = false;\n\n function throwIfCancelled() {\n // If state.openCanceller object reference is replaced, it means db.close() has been called,\n // meaning this open flow should be cancelled.\n if (state.openCanceller !== openCanceller) throw new exceptions.DatabaseClosed('db.open() was cancelled');\n }\n \n // Function pointers to call when the core opening process completes.\n let resolveDbReady = state.dbReadyResolve,\n // upgradeTransaction to abort on failure.\n upgradeTransaction: (IDBTransaction | null) = null,\n wasCreated = false;\n\n const tryOpenDB = () => new Promise((resolve, reject) => {\n throwIfCancelled();\n // If no API, throw!\n if (!indexedDB) throw new exceptions.MissingAPI();\n const dbName = db.name;\n \n const req = state.autoSchema || !nativeVerToOpen ?\n indexedDB.open(dbName) :\n indexedDB.open(dbName, nativeVerToOpen);\n if (!req) throw new exceptions.MissingAPI(); // May happen in Safari private mode, see https://github.com/dfahlander/Dexie.js/issues/134\n req.onerror = eventRejectHandler(reject);\n req.onblocked = wrap(db._fireOnBlocked);\n req.onupgradeneeded = wrap (e => {\n upgradeTransaction = req.transaction;\n if (state.autoSchema && !db._options.allowEmptyDB) { // Unless an addon has specified db._allowEmptyDB, lets make the call fail.\n // Caller did not specify a version or schema. Doing that is only acceptable for opening alread existing databases.\n // If onupgradeneeded is called it means database did not exist. Reject the open() promise and make sure that we\n // do not create a new database by accident here.\n req.onerror = preventDefault; // Prohibit onabort error from firing before we're done!\n upgradeTransaction.abort(); // Abort transaction (would hope that this would make DB disappear but it doesnt.)\n // Close database and delete it.\n req.result.close();\n const delreq = indexedDB.deleteDatabase(dbName); // The upgrade transaction is atomic, and javascript is single threaded - meaning that there is no risk that we delete someone elses database here!\n delreq.onsuccess = delreq.onerror = wrap(() => {\n reject (new exceptions.NoSuchDatabase(`Database ${dbName} doesnt exist`));\n });\n } else {\n upgradeTransaction.onerror = eventRejectHandler(reject);\n const oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion; // Safari 8 fix.\n wasCreated = oldVer < 1;\n db.idbdb = req.result;\n if (schemaPatchMode) {\n patchCurrentVersion(db, upgradeTransaction);\n }\n runUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n }\n }, reject);\n \n req.onsuccess = wrap (() => {\n // Core opening procedure complete. Now let's just record some stuff.\n upgradeTransaction = null;\n const idbdb = db.idbdb = req.result;\n\n const objectStoreNames = slice(idbdb.objectStoreNames);\n if (objectStoreNames.length > 0) try {\n const tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n if (state.autoSchema) readGlobalSchema(db, idbdb, tmpTrans);\n else {\n adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n if (!verifyInstalledSchema(db, tmpTrans) && !schemaPatchMode) {\n console.warn(`Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this.`);\n idbdb.close();\n nativeVerToOpen = idbdb.version + 1;\n schemaPatchMode = true;\n return resolve (tryOpenDB()); // Try again with new version (nativeVerToOpen\n }\n }\n generateMiddlewareStacks(db, tmpTrans);\n } catch (e) {\n // Safari 8 may bail out if > 1 store names. However, this shouldnt be a showstopper. Issue #120.\n // BUGBUG: It will bail out anyway as of Dexie 3.\n // Should we support Safari 8 anymore? Believe all\n // Dexie users use the shim for that platform anyway?!\n // If removing Safari 8 support, go ahead and remove the safariMultiStoreFix() function\n // as well as absurd upgrade version quirk for Safari.\n }\n \n connections.push(db); // Used for emulating versionchange event on IE/Edge/Safari.\n \n idbdb.onversionchange = wrap(ev => {\n state.vcFired = true; // detect implementations that not support versionchange (IE/Edge/Safari)\n db.on(\"versionchange\").fire(ev);\n });\n \n idbdb.onclose = wrap(() => {\n // Resolve issue #2186: Once Dexie.on.close is triggered, Dexie.isOpen() is still true.\n // Let the code path be the same as for db.close() so that db.isOpen() returns false\n // and every other state is reset the same way. \n db.close({ disableAutoOpen: false })\n });\n\n if (wasCreated) _onDatabaseCreated(db._deps, dbName);\n\n resolve();\n\n }, reject);\n }).catch(err => {\n switch (err?.name) {\n case \"UnknownError\":\n if (state.PR1398_maxLoop > 0) {\n // Bug in Chrome after clearing site data\n // https://github.com/dexie/Dexie.js/issues/543#issuecomment-1795736695\n state.PR1398_maxLoop--;\n console.warn('Dexie: Workaround for Chrome UnknownError on open()');\n return tryOpenDB();\n }\n break;\n case \"VersionError\":\n if (nativeVerToOpen > 0) {\n nativeVerToOpen = 0;\n return tryOpenDB();\n }\n break;\n }\n return Promise.reject(err);\n });\n \n // safari14Workaround = Workaround by jakearchibald for new nasty bug in safari 14.\n return Promise.race([\n openCanceller,\n (typeof navigator === 'undefined' ? Promise.resolve() : safari14Workaround()).then(tryOpenDB)\n ]).then(() => {\n // Before finally resolving the dbReadyPromise and this promise,\n // call and await all on('ready') subscribers:\n // Dexie.vip() makes subscribers able to use the database while being opened.\n // This is a must since these subscribers take part of the opening procedure.\n throwIfCancelled();\n state.onReadyBeingFired = [];\n return Promise.resolve(vip(()=>db.on.ready.fire(db.vip))).then(function fireRemainders() {\n if (state.onReadyBeingFired.length > 0) {\n // In case additional subscribers to db.on('ready') were added during the time db.on.ready.fire was executed.\n let remainders = state.onReadyBeingFired.reduce(promisableChain, nop);\n state.onReadyBeingFired = [];\n return Promise.resolve(vip(()=>remainders(db.vip))).then(fireRemainders)\n }\n });\n }).finally(()=>{\n if (state.openCanceller === openCanceller) {\n // Only modify state if not cancelled in the mean time.\n state.onReadyBeingFired = null;\n state.isBeingOpened = false;\n }\n }).catch(err => {\n state.dbOpenError = err; // Record the error. It will be used to reject further promises of db operations.\n try {\n // Did we fail within onupgradeneeded? Make sure to abort the upgrade transaction so it doesnt commit.\n upgradeTransaction && upgradeTransaction.abort();\n } catch { }\n if (openCanceller === state.openCanceller) {\n // Still in the same open flow - The error reason was not due to external call to db.close().\n // Make sure to call db.close() to finalize resources.\n db._close(); // Closes and resets idbdb, removes connections, resets dbReadyPromise and openCanceller so that a later db.open() is fresh.\n }\n return rejection (err);\n }).finally(()=>{\n state.openComplete = true;\n resolveDbReady(); // dbReadyPromise is resolved no matter if open() rejects or resolved. It's just to wake up waiters.\n }).then(()=>{\n if (wasCreated) {\n // Propagate full range on primary keys and indexes on all tables now that the DB is ready and opened,\n // and all upgraders and on('ready') subscribers have run.\n const everything: ObservabilitySet = {};\n db.tables.forEach(table => {\n table.schema.indexes.forEach(idx => {\n if (idx.name) everything[`idb://${db.name}/${table.name}/${idx.name}`] = new RangeSet(-Infinity, [[[]]]);\n });\n everything[`idb://${db.name}/${table.name}/`] = everything[`idb://${db.name}/${table.name}/:dels`] = new RangeSet(-Infinity, [[[]]]);\n });\n // Database was created. If another tab had it open when it was deleted and reopened, that tab must be updated now.\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME).fire(everything);\n // Wipe the cache and trigger optimistic queries:\n signalSubscribersNow(everything, true);\n }\n // Resolve the db.open() with the db instance.\n return db;\n });\n}\n","import { isArray } from '../functions/utils';\n\nexport function awaitIterator (iterator: Iterator<any>) {\n var callNext = result => iterator.next(result),\n doThrow = error => iterator.throw(error),\n onSuccess = step(callNext),\n onError = step(doThrow);\n\n function step(getNext: (any)=>any) {\n return (val?) => {\n var next = getNext(val),\n value = next.value;\n\n return next.done ? value :\n (!value || typeof value.then !== 'function' ?\n isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) :\n value.then(onSuccess, onError));\n };\n }\n\n return step(callNext)();\n}\n","import { TransactionMode } from '../../public/types/transaction-mode';\nimport { errnames, exceptions } from '../../errors';\nimport { flatten, isAsyncFunction } from '../../functions/utils';\nimport { Dexie } from './dexie';\nimport { Transaction } from '../transaction';\nimport { awaitIterator } from '../../helpers/yield-support';\nimport Promise, {\n PSD,\n NativePromise,\n decrementExpectedAwaits,\n rejection,\n incrementExpectedAwaits\n} from '../../helpers/promise';\n\nexport function extractTransactionArgs(mode: TransactionMode, _tableArgs_, scopeFunc) {\n // Let table arguments be all arguments between mode and last argument.\n var i = arguments.length;\n if (i < 2) throw new exceptions.InvalidArgument(\"Too few arguments\");\n // Prevent optimzation killer (https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments)\n // and clone arguments except the first one into local var 'args'.\n var args = new Array(i - 1);\n while (--i) args[i - 1] = arguments[i];\n // Let scopeFunc be the last argument and pop it so that args now only contain the table arguments.\n scopeFunc = args.pop();\n var tables = flatten(args); // Support using array as middle argument, or a mix of arrays and non-arrays.\n return [mode, tables, scopeFunc];\n}\n\nexport function enterTransactionScope(\n db: Dexie,\n mode: IDBTransactionMode,\n storeNames: string[],\n parentTransaction: Transaction | undefined,\n scopeFunc: ()=>PromiseLike<any> | any\n) {\n return Promise.resolve().then(() => {\n // Keep a pointer to last non-transactional PSD to use if someone calls Dexie.ignoreTransaction().\n const transless = PSD.transless || PSD;\n // Our transaction.\n //return new Promise((resolve, reject) => {\n const trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n trans.explicit = true;\n // Let the transaction instance be part of a Promise-specific data (PSD) value.\n const zoneProps = {\n trans: trans,\n transless: transless\n };\n\n if (parentTransaction) {\n // Emulate transaction commit awareness for inner transaction (must 'commit' when the inner transaction has no more operations ongoing)\n trans.idbtrans = parentTransaction.idbtrans;\n } else {\n try {\n trans.create(); // Create the native transaction so that complete() or error() will trigger even if no operation is made upon it.\n // @ts-ignore Mark the idbtrans object with \"_explicit\". DBCore middleware won't have access to Dexie trans but will need to have this info.\n trans.idbtrans._explicit = true;\n db._state.PR1398_maxLoop = 3;\n } catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db.close({disableAutoOpen: false});\n return db.open().then(() => enterTransactionScope(\n db,\n mode,\n storeNames,\n null,\n scopeFunc\n ));\n }\n return rejection(ex);\n }\n }\n\n // Support for native async await.\n const scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n\n let returnValue;\n const promiseFollowed = Promise.follow(() => {\n // Finally, call the scope function with our table and transaction arguments.\n returnValue = scopeFunc.call(trans, trans);\n if (returnValue) {\n if (scopeFuncIsAsync) {\n // scopeFunc is a native async function - we know for sure returnValue is native promise.\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n } else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n // scopeFunc returned an iterator with throw-support. Handle yield as await.\n returnValue = awaitIterator(returnValue);\n }\n }\n }, zoneProps);\n return (returnValue && typeof returnValue.then === 'function' ?\n // Promise returned. User uses promise-style transactions.\n Promise.resolve(returnValue).then(x => trans.active ?\n x // Transaction still active. Continue.\n : rejection(new exceptions.PrematureCommit(\n \"Transaction committed too early. See http://bit.ly/2kdckMn\")))\n // No promise returned. Wait for all outstanding promises before continuing. \n : promiseFollowed.then(() => returnValue)\n ).then(x => {\n // sub transactions don't react to idbtrans.oncomplete. We must trigger a completion:\n if (parentTransaction) trans._resolve();\n // wait for trans._completion\n // (if root transaction, this means 'complete' event. If sub-transaction, we've just fired it ourselves)\n return trans._completion.then(() => x);\n }).catch(e => {\n trans._reject(e); // Yes, above then-handler were maybe not called because of an unhandled rejection in scopeFunc!\n return rejection(e);\n });\n });\n}\n","import {\n DBCore,\n DBCoreIndex,\n DBCoreKeyRange,\n DBCoreQueryRequest,\n DBCoreRangeType,\n DBCoreOpenCursorRequest,\n DBCoreCountRequest,\n DBCoreCursor,\n DBCoreTable,\n} from \"../public/types/dbcore\";\nimport { isArray } from '../functions/utils';\nimport { getKeyExtractor } from './get-key-extractor';\nimport { getKeyPathAlias } from './dbcore-indexeddb';\nimport { Middleware } from '../public/types/middleware';\n\ninterface VirtualIndex extends DBCoreIndex {\n /** True if this index is virtual, i.e. represents a compound index internally,\n * but makes it act as as having a subset of its keyPaths.\n */\n isVirtual: boolean;\n\n /** Number of keypaths that this index comprises. Can be 0..N.\n * Note: This is the length of the *virtual index*, not the real index.\n */\n keyLength: number;\n\n /** Number of popped keypaths from the real index.\n */\n keyTail: number;\n\n /** LowLevelIndex represents the actual IndexedDB index behind it */\n lowLevelIndex: DBCoreIndex;\n}\n\n// Move into some util:\nexport function pad (a: any | any[], value: any, count: number) {\n const result = isArray(a) ? a.slice() : [a];\n for (let i=0; i<count; ++i) result.push(value);\n return result;\n}\n\n\nexport function createVirtualIndexMiddleware (down: DBCore) : DBCore {\n return {\n ...down,\n table(tableName: string) {\n const table = down.table(tableName);\n const {schema} = table;\n const indexLookup: {[indexAlias: string]: VirtualIndex[]} = {};\n const allVirtualIndexes: VirtualIndex[] = [];\n\n function addVirtualIndexes (keyPath: null | string | string[], keyTail: number, lowLevelIndex: DBCoreIndex): VirtualIndex {\n const keyPathAlias = getKeyPathAlias(keyPath);\n const indexList = (indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || []);\n const keyLength = keyPath == null ? 0: typeof keyPath === 'string' ? 1 : keyPath.length;\n const isVirtual = keyTail > 0;\n const virtualIndex = {\n ...lowLevelIndex,\n name: isVirtual\n ? `${keyPathAlias}(virtual-from:${lowLevelIndex.name})`\n : lowLevelIndex.name,\n lowLevelIndex,\n isVirtual,\n keyTail,\n keyLength,\n extractKey: getKeyExtractor(keyPath),\n unique: !isVirtual && lowLevelIndex.unique\n };\n indexList.push(virtualIndex);\n if (!virtualIndex.isPrimaryKey) {\n allVirtualIndexes.push(virtualIndex);\n }\n if (keyLength > 1) {\n const virtualKeyPath = keyLength === 2 ?\n keyPath[0] : // This is a compound [a, b]. Add a virtual normal index a.\n keyPath.slice(0, keyLength - 1); // This is compound [a,b,c]. Add virtual compound [a,b].\n addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n }\n indexList.sort((a,b) => a.keyTail - b.keyTail); // Shortest keyTail is the best one (represents real index)\n return virtualIndex;\n }\n \n const primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n indexLookup[\":id\"] = [primaryKey];\n for (const index of schema.indexes) {\n addVirtualIndexes(index.keyPath, 0, index);\n }\n \n function findBestIndex(keyPath: null | string | string[]): VirtualIndex {\n const result = indexLookup[getKeyPathAlias(keyPath)];\n return result && result[0];\n }\n \n function translateRange (range: DBCoreKeyRange, keyTail: number): DBCoreKeyRange {\n return {\n type: range.type === DBCoreRangeType.Equal ?\n DBCoreRangeType.Range :\n range.type,\n lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n lowerOpen: true, // doesn't matter true or false\n upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n upperOpen: true // doesn't matter true or false\n };\n }\n \n function translateRequest (req: DBCoreQueryRequest): DBCoreQueryRequest;\n function translateRequest (req: DBCoreOpenCursorRequest): DBCoreOpenCursorRequest;\n function translateRequest (req: DBCoreCountRequest): DBCoreCountRequest {\n const index = req.query.index as VirtualIndex;\n return index.isVirtual ? {\n ...req,\n query: {\n index: index.lowLevelIndex,\n range: translateRange(req.query.range, index.keyTail)\n }\n } : req;\n }\n \n const result: DBCoreTable = {\n ...table,\n schema: {\n ...schema,\n primaryKey,\n indexes: allVirtualIndexes,\n getIndexByKeyPath: findBestIndex\n },\n\n count(req) {\n return table.count(translateRequest(req));\n }, \n \n query(req) {\n return table.query(translateRequest(req));\n },\n \n openCursor(req) {\n const {keyTail, isVirtual, keyLength} = (req.query.index as VirtualIndex);\n if (!isVirtual) return table.openCursor(req);\n \n function createVirtualCursor(cursor: DBCoreCursor) : DBCoreCursor {\n function _continue (key?: any) {\n key != null ?\n cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) :\n req.unique ?\n cursor.continue(\n cursor.key.slice(0, keyLength)\n .concat(req.reverse\n ? down.MIN_KEY\n : down.MAX_KEY, keyTail)\n ) :\n cursor.continue()\n }\n const virtualCursor = Object.create(cursor, {\n continue: {value: _continue},\n continuePrimaryKey: {\n value(key: any, primaryKey: any) {\n cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n }\n },\n primaryKey: {\n get() {\n return cursor.primaryKey;\n }\n },\n key: {\n get() {\n const key = cursor.key as any[]; // A virtual cursor always operates on compound key\n return keyLength === 1 ?\n key[0] : // Cursor.key should not be an array.\n key.slice(0, keyLength); // Cursor.key should be first part of array.\n }\n },\n value: {\n get() {\n return cursor.value;\n }\n }\n });\n return virtualCursor;\n }\n \n return table.openCursor(translateRequest(req))\n .then(cursor => cursor && createVirtualCursor(cursor));\n }\n };\n return result;\n }\n }\n}\n\nexport const virtualIndexMiddleware : Middleware<DBCore> = {\n stack: \"dbcore\",\n name: \"VirtualIndexMiddleware\",\n level: 1,\n create: createVirtualIndexMiddleware\n};\n\n","import { keys, hasOwn, toStringTag } from './utils';\n\nexport function getObjectDiff(a: any, b: any, rv?: any, prfx?: string) {\n // Compares objects a and b and produces a diff object.\n rv = rv || {};\n prfx = prfx || '';\n keys(a).forEach((prop) => {\n if (!hasOwn(b, prop)) {\n // Property removed\n rv[prfx + prop] = undefined;\n } else {\n var ap = a[prop],\n bp = b[prop];\n if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n const apTypeName = toStringTag(ap);\n const bpTypeName = toStringTag(bp);\n\n if (apTypeName !== bpTypeName) {\n rv[prfx + prop] = b[prop]; // Property changed to other type\n } else if (apTypeName === 'Object') {\n // Pojo objects (not Date, ArrayBuffer, Array etc). Go deep.\n getObjectDiff(ap, bp, rv, prfx + prop + '.');\n } else if (ap !== bp) {\n // Values differ.\n // Could have checked if Date, arrays or binary types have same\n // content here but I think that would be a suboptimation.\n // Prefer simplicity.\n rv[prfx + prop] = b[prop];\n }\n } else if (ap !== bp) rv[prfx + prop] = b[prop]; // Primitive value changed\n }\n });\n keys(b).forEach((prop) => {\n if (!hasOwn(a, prop)) {\n rv[prfx + prop] = b[prop]; // Property added\n }\n });\n return rv;\n}\n","import {\n DBCoreAddRequest,\n DBCorePutRequest,\n DBCoreDeleteRequest,\n DBCoreIndex,\n DBCoreTable,\n} from \"../public/types/dbcore\";\n\nexport function getEffectiveKeys (\n primaryKey: DBCoreIndex,\n req: (Pick<DBCoreAddRequest | DBCorePutRequest, \"type\" | \"values\"> & {keys?: any[]}) | Pick<DBCoreDeleteRequest, \"keys\" | \"type\">)\n{\n //const {outbound} = primaryKey;\n if (req.type === 'delete') return req.keys;\n return req.keys || req.values.map(primaryKey.extractKey)\n}\n","import {\n DBCore,\n DBCoreTable,\n DBCoreMutateResponse,\n DBCoreDeleteRangeRequest,\n DBCoreAddRequest,\n DBCorePutRequest,\n DBCoreDeleteRequest,\n DBCoreTransaction,\n DBCoreKeyRange\n} from \"../public/types/dbcore\";\nimport { nop } from '../functions/chaining-functions';\nimport { hasOwn, setByKeyPath } from '../functions/utils';\nimport { getObjectDiff } from \"../functions/get-object-diff\";\nimport { PSD } from '../helpers/promise';\n//import { LockableTableMiddleware } from '../dbcore/lockable-table-middleware';\nimport { getEffectiveKeys } from '../dbcore/get-effective-keys';\nimport { Middleware } from '../public/types/middleware';\nimport { Transaction } from '../classes/transaction';\n\nexport const hooksMiddleware: Middleware<DBCore> = {\n stack: \"dbcore\",\n name: \"HooksMiddleware\",\n level: 2,\n create: (downCore: DBCore) => ({\n ...downCore,\n table(tableName: string) {\n const downTable = downCore.table(tableName);\n const {primaryKey} = downTable.schema;\n \n const tableMiddleware: DBCoreTable = {\n ...downTable,\n mutate(req):Promise<DBCoreMutateResponse> {\n const dxTrans = PSD.trans as Transaction;\n // Hooks can be transaction-bound. Need to grab them from transaction.table and not\n // db.table!\n const {deleting, creating, updating} = dxTrans.table(tableName).hook;\n switch (req.type) {\n case 'add':\n if (creating.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>addPutOrDelete(req), true);\n case 'put':\n if (creating.fire === nop && updating.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>addPutOrDelete(req), true);\n case 'delete':\n if (deleting.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>addPutOrDelete(req), true);\n case 'deleteRange':\n if (deleting.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>deleteRange(req), true);\n }\n // Any of the breaks above happened (no hooks) - do the default:\n return downTable.mutate(req);\n\n\n function addPutOrDelete(req: DBCoreAddRequest | DBCorePutRequest | DBCoreDeleteRequest): Promise<DBCoreMutateResponse> {\n const dxTrans = PSD.trans;\n const keys = req.keys || getEffectiveKeys(primaryKey, req);\n if (!keys) throw new Error(\"Keys missing\");\n // Clone Request and set keys arg\n req = req.type === 'add' || req.type === 'put' ?\n {...req, keys} :\n {...req};\n if (req.type !== 'delete') req.values = [...req.values];\n if (req.keys) req.keys = [...req.keys];\n \n return getExistingValues(downTable, req, keys).then (existingValues => {\n const contexts = keys.map((key, i) => {\n const existingValue = existingValues[i];\n const ctx = { onerror: null, onsuccess: null };\n if (req.type === 'delete') {\n // delete operation\n deleting.fire.call(ctx, key, existingValue, dxTrans);\n } else if (req.type === 'add' || existingValue === undefined) {\n // The add() or put() resulted in a create\n const generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n if (key == null && generatedPrimaryKey != null) {\n key = generatedPrimaryKey;\n req.keys[i] = key;\n if (!primaryKey.outbound) {\n setByKeyPath(req.values[i], primaryKey.keyPath, key);\n }\n }\n } else {\n // The put() operation resulted in an update\n const objectDiff = getObjectDiff(existingValue, req.values[i]);\n const additionalChanges = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n if (additionalChanges) {\n const requestedValue = req.values[i];\n Object.keys(additionalChanges).forEach(keyPath => {\n if (hasOwn(requestedValue, keyPath)) {\n // keyPath is already present as a literal property of the object\n requestedValue[keyPath] = additionalChanges[keyPath];\n } else {\n // keyPath represents a new or existing path into the object\n setByKeyPath(requestedValue, keyPath, additionalChanges[keyPath]);\n }\n });\n }\n }\n return ctx;\n });\n return downTable.mutate(req).then(({failures, results, numFailures, lastResult}) => {\n for (let i=0; i<keys.length; ++i) {\n const primKey = results ? results[i] : keys[i];\n const ctx = contexts[i];\n if (primKey == null) {\n ctx.onerror && ctx.onerror(failures[i]);\n } else {\n ctx.onsuccess && ctx.onsuccess(\n req.type === 'put' && existingValues[i] ? // the put resulted in an update\n req.values[i] : // update hooks expects existing value\n primKey // create hooks expects primary key\n );\n }\n }\n return {failures, results, numFailures, lastResult};\n }).catch(error => {\n contexts.forEach(ctx => ctx.onerror && ctx.onerror(error));\n return Promise.reject(error);\n });\n });\n }\n \n function deleteRange(req: DBCoreDeleteRangeRequest): Promise<DBCoreMutateResponse> {\n return deleteNextChunk(req.trans, req.range, 10000);\n }\n \n function deleteNextChunk(trans: DBCoreTransaction, range: DBCoreKeyRange, limit: number) {\n // Query what keys in the DB within the given range\n return downTable.query({trans, values: false, query: {index: primaryKey, range}, limit})\n .then(({result}) => {\n // Given a set of keys, bulk delete those using the same procedure as in addPutOrDelete().\n // This will make sure that deleting hook is called.\n return addPutOrDelete({type: 'delete', keys: result, trans}).then(res => {\n if (res.numFailures > 0) return Promise.reject(res.failures[0]);\n if (result.length < limit) {\n return {failures: [], numFailures: 0, lastResult: undefined} as DBCoreMutateResponse;\n } else {\n return deleteNextChunk(trans, {...range, lower: result[result.length - 1], lowerOpen: true}, limit);\n }\n });\n })\n }\n }\n };\n //const {lock, lockableMiddleware} = LockableTableMiddleware(tableMiddleware);\n\n return tableMiddleware;\n },\n }) as DBCore\n};\n\nfunction getExistingValues(\n table: DBCoreTable,\n req: DBCoreAddRequest | DBCorePutRequest | DBCoreDeleteRequest,\n effectiveKeys: any[]\n) {\n return req.type === \"add\"\n ? Promise.resolve([])\n : table.getMany({ trans: req.trans, keys: effectiveKeys, cache: \"immutable\" });\n}\n","import { deepClone } from \"../functions/utils\";\nimport { DBCore } from \"../public/types/dbcore\";\nimport { Middleware } from \"../public/types/middleware\";\nimport Promise from \"../helpers/promise\";\nimport { cmp } from '../functions/cmp';\n\nexport function getFromTransactionCache(\n keys: readonly any[],\n cache: { keys: any[]; values: any[] } | undefined | null,\n clone?: boolean\n) {\n try {\n if (!cache) return null;\n if (cache.keys.length < keys.length) return null;\n const result: any[] = [];\n // Compare if the exact same order of keys was retrieved in same transaction:\n // Allow some cached keys to be omitted from provided set of keys\n // Use case: 1. getMany(keys) 2. update a subset of those 3. call put with the updated ones ==> middlewares should be able to find old values\n for (let i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) {\n if (cmp(cache.keys[i], keys[j]) !== 0) continue;\n result.push(clone ? deepClone(cache.values[i]) : cache.values[i]);\n ++j;\n }\n // If got all keys caller was looking for, return result.\n return result.length === keys.length ? result : null;\n } catch {\n return null;\n }\n}\n\nexport const cacheExistingValuesMiddleware: Middleware<DBCore> = {\n stack: \"dbcore\",\n level: -1,\n create: (core) => {\n return {\n table: (tableName) => {\n const table = core.table(tableName);\n return {\n ...table,\n getMany: (req) => {\n if (!req.cache) {\n return table.getMany(req);\n }\n const cachedResult = getFromTransactionCache(\n req.keys,\n req.trans[\"_cache\"],\n req.cache === \"clone\"\n );\n if (cachedResult) {\n return Promise.resolve(cachedResult);\n }\n return table.getMany(req).then((res) => {\n req.trans[\"_cache\"] = {\n keys: req.keys,\n values: req.cache === \"clone\" ? deepClone(res) : res,\n };\n return res;\n });\n },\n mutate: (req) => {\n // Invalidate cache on any mutate except \"add\" which can't change existing values:\n if (req.type !== \"add\") req.trans[\"_cache\"] = null;\n return table.mutate(req);\n },\n };\n },\n };\n },\n};\n","import { DBCore, DBCoreTable } from '../../public/types/dbcore';\nimport { LiveQueryContext } from '../live-query';\n\nexport function isCachableContext(ctx: LiveQueryContext, table: DBCoreTable) {\n return (\n ctx.trans.mode === 'readonly' &&\n !!ctx.subscr &&\n !ctx.trans.explicit &&\n ctx.trans.db._options.cache !== 'disabled' &&\n !table.schema.primaryKey.outbound\n );\n}\n\n","import { DBCoreCountRequest, DBCoreGetManyRequest, DBCoreGetRequest, DBCoreOpenCursorRequest, DBCoreQueryRequest } from '../../public/types/dbcore';\n\n\nexport function isCachableRequest(type: string, req: Partial<DBCoreQueryRequest & DBCoreCountRequest & DBCoreGetManyRequest & DBCoreGetRequest & DBCoreOpenCursorRequest>) {\n switch (type) {\n case 'query':\n return req.values && !req.unique;\n case 'get':\n return false;\n case 'getMany':\n return false;\n case 'count':\n return false;\n case 'openCursor':\n return false;\n }\n}\n","import { LiveQueryContext } from \".\";\nimport { getFromTransactionCache } from \"../dbcore/cache-existing-values-middleware\";\nimport { getEffectiveKeys } from \"../dbcore/get-effective-keys\";\nimport { exceptions } from \"../errors\";\nimport { cmp } from \"../functions/cmp\";\nimport { isArray, keys } from \"../functions/utils\";\nimport { PSD } from \"../helpers/promise\";\nimport { RangeSet } from \"../helpers/rangeset\";\nimport { ObservabilitySet } from \"../public/types/db-events\";\nimport {\n DBCore,\n DBCoreCountRequest,\n DBCoreCursor,\n DBCoreGetManyRequest,\n DBCoreGetRequest,\n DBCoreIndex,\n DBCoreOpenCursorRequest,\n DBCoreQueryRequest,\n DBCoreQueryResponse,\n DBCoreTable,\n DBCoreTableSchema,\n DBCoreTransaction,\n} from \"../public/types/dbcore\";\nimport { Middleware } from \"../public/types/middleware\";\nimport { isCachableContext } from \"./cache/is-cachable-context\";\nimport { isCachableRequest } from \"./cache/is-cachable-request\";\nimport { extendObservabilitySet } from \"./extend-observability-set\";\n\nexport const observabilityMiddleware: Middleware<DBCore> = {\n stack: \"dbcore\",\n level: 0,\n name: \"Observability\",\n create: (core) => {\n const dbName = core.schema.name;\n const FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);\n\n return {\n ...core,\n transaction: (stores, mode, options) => {\n if (PSD.subscr && mode !== 'readonly') {\n throw new exceptions.ReadOnly(`Readwrite transaction in liveQuery context. Querier source: ${(PSD as LiveQueryContext).querier}`);\n }\n return core.transaction(stores, mode, options);\n },\n table: (tableName) => {\n const table = core.table(tableName);\n const { schema } = table;\n const { primaryKey, indexes } = schema;\n const { extractKey, outbound } = primaryKey;\n const indexesWithAutoIncPK = primaryKey.autoIncrement && indexes.filter(\n (index) => index.compound && (index.keyPath as string[]).includes(primaryKey.keyPath as string)\n );\n const tableClone: DBCoreTable = {\n ...table,\n mutate: (req) => {\n const trans = req.trans as DBCoreTransaction & {\n mutatedParts?: ObservabilitySet;\n };\n const mutatedParts = req.mutatedParts || (req.mutatedParts = {});\n const getRangeSet = (indexName: string) => {\n const part = `idb://${dbName}/${tableName}/${indexName}`;\n return (mutatedParts[part] ||\n (mutatedParts[part] = new RangeSet())) as RangeSet;\n };\n const pkRangeSet = getRangeSet(\"\");\n const delsRangeSet = getRangeSet(\":dels\");\n\n const { type } = req;\n let [keys, newObjs] =\n req.type === \"deleteRange\"\n ? [req.range] // keys will be an DBCoreKeyRange object - transformed later on to a [from,to]-style range.\n : req.type === \"delete\"\n ? [req.keys] // keys known already here. newObjs will be undefined.\n : req.values.length < 50\n ? [getEffectiveKeys(primaryKey, req).filter(id => id), req.values] // keys except autoIncremented - they will be added later on.\n : []; // keys and newObjs will both be undefined - changeSpec will become true (changed for entire table)\n\n const oldCache = req.trans[\"_cache\"];\n\n // Add the mutated table and optionally keys to the mutatedTables set on the transaction.\n // Used by subscribers to txcommit event and for Collection.prototype.subscribe().\n if (isArray(keys)) {\n // keys is an array - delete, add or put of less than 50 rows.\n // Individual keys (add put or delete)\n pkRangeSet.addKeys(keys);\n // Only get oldObjs if they have been cached recently\n // (This applies to Collection.modify() only, but also if updating/deleting hooks have subscribers)\n const oldObjs = type === 'delete' || keys.length === newObjs.length ? getFromTransactionCache(keys, oldCache) : null;\n\n // Supply detailed values per index for both old and new objects:\n if (!oldObjs) {\n // add, delete or put and we don't know old values.\n // Indicate this in the \":dels\" part, for the sake of count() and primaryKeys() queries only!\n delsRangeSet.addKeys(keys);\n }\n if (oldObjs || newObjs) {\n // No matter if knowning oldObjs or not, track the indices if it's a put, add or delete.\n trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);\n }\n } else if (keys) {\n // keys is a DBCoreKeyRange object. Transform it to [from,to]-style range.\n // As we can't know deleted index ranges, mark index-based subscriptions must trigger.\n // (above/below-style ranges are not supported in RangeSet.ts, so we must replace open ends\n // with core.MIN_KEY and core.MAX_KEY respectively. This is what solves issue #2067!\n const range = {\n from: keys.lower ?? core.MIN_KEY,\n to: keys.upper ?? core.MAX_KEY\n };\n delsRangeSet.add(range);\n // deleteRange. keys is a DBCoreKeyRange objects. Transform it to [from,to]-style range.\n pkRangeSet.add(range);\n } else {\n // Too many requests to record the details without slowing down write performance.\n // Let's just record a generic large range on primary key, the virtual :dels index and\n // all secondary indices:\n pkRangeSet.add(FULL_RANGE);\n delsRangeSet.add(FULL_RANGE);\n schema.indexes.forEach(idx => getRangeSet(idx.name).add(FULL_RANGE));\n }\n\n return table.mutate(req).then((res) => {\n // Merge the mutated parts from the request into the transaction's mutatedParts\n // now when the request went fine.\n if (keys && (req.type === 'add' || req.type === 'put')) {\n // Less than 50 requests (keys truthy) (otherwise we've added full range anyway)\n // autoincrement means we might not have got all keys until now\n pkRangeSet.addKeys(res.results);\n if (indexesWithAutoIncPK) {\n // Dexie Issue 1946:\n // If an auto-incremented primary key is part of a compound index,\n // we need to compute the resulting value of that index after inserting\n // the rows.\n indexesWithAutoIncPK.forEach(idx => {\n // Extract values of this compound index where primary key is not yet set:\n const idxVals = req.values.map(v => idx.extractKey(v));\n // Find the position of the primary key in the index:\n const pkPos = (idx.keyPath as string[]).findIndex(prop => prop === primaryKey.keyPath);\n // Update idxVals with the resulting primary keys to complete the index value:\n for (let i = 0, len = res.results!.length; i < len; ++i) {\n idxVals[i][pkPos] = res.results![i];\n }\n // Add the updated index to the rangeset:\n getRangeSet(idx.name).addKeys(idxVals);\n });\n }\n }\n trans.mutatedParts = extendObservabilitySet (\n trans.mutatedParts || {},\n mutatedParts\n );\n return res;\n });\n },\n };\n\n const getRange: (req: any) => [DBCoreIndex, RangeSet] = ({\n query: { index, range },\n }:\n | DBCoreQueryRequest\n | DBCoreCountRequest\n | DBCoreOpenCursorRequest) => [\n index,\n new RangeSet(range.lower ?? core.MIN_KEY, range.upper ?? core.MAX_KEY),\n ];\n\n const readSubscribers: {[method in\n Exclude<keyof DBCoreTable, \"name\" | \"schema\" | \"mutate\">]: \n (req: any) => [DBCoreIndex, RangeSet]\n } = {\n get: (req) => [primaryKey, new RangeSet(req.key)],\n getMany: (req) => [primaryKey, new RangeSet().addKeys(req.keys)],\n count: getRange,\n query: getRange,\n openCursor: getRange,\n }\n\n keys(readSubscribers).forEach((method: 'get' | 'getMany' | 'count' | 'query' | 'openCursor') => {\n tableClone[method] = function (\n req:\n | DBCoreGetRequest\n | DBCoreGetManyRequest\n | DBCoreQueryRequest\n | DBCoreCountRequest\n | DBCoreOpenCursorRequest\n ) {\n const { subscr } = PSD as LiveQueryContext;\n const isLiveQuery = !!subscr;\n let cachable = isCachableContext(PSD as LiveQueryContext, table) && isCachableRequest(method, req);\n const obsSet = cachable\n ? req.obsSet = {} // Implicit read transaction - track changes for this query only for the request's duration\n : subscr; // Explicit read transaction - track changes across entire live query\n\n if (isLiveQuery) {\n // Current zone want's to track all queries so they can be subscribed to.\n // (The query is executed within a \"liveQuery\" zone)\n // Check whether the query applies to a certain set of ranges:\n // Track what we should be observing:\n const getRangeSet = (indexName: string) => {\n const part = `idb://${dbName}/${tableName}/${indexName}`;\n return (obsSet[part] ||\n (obsSet[part] = new RangeSet())) as RangeSet;\n };\n const pkRangeSet = getRangeSet(\"\");\n const delsRangeSet = getRangeSet(\":dels\");\n const [queriedIndex, queriedRanges] = readSubscribers[method](req);\n // A generic rule here: queried ranges should always be subscribed to.\n if (method === 'query' && queriedIndex.isPrimaryKey && !(req as DBCoreQueryRequest).values) {\n // A pure primay-key based Collection where only .primaryKeys() is requested. Don't wakeup on other changes than added or deleted primary keys within queried range.\n delsRangeSet.add(queriedRanges);\n } else {\n getRangeSet(queriedIndex.name || \"\").add(queriedRanges);\n }\n if (!queriedIndex.isPrimaryKey) {\n // Only count(), query() and openCursor() operates on secondary indices.\n // Since put(), delete() and deleteRange() mutations may happen without knowing oldObjs,\n // the mutate() method will be missing what secondary indices that are being deleted from\n // the subscribed range. We are working around this issue by recording all the resulting\n // primary keys from the queries. This only works for those kinds of queries where we can\n // derive the primary key from the result.\n // In this block we are accomplishing this using various strategies depending on the properties\n // of the query result.\n\n if (method === \"count\") {\n // We've got a problem! Delete and put mutations happen without known the oldObjs.\n // Those mutation could change the count.\n // Solution: Dedicated \":dels\" url represends a subscription to all mutations without oldObjs\n // (specially triggered in the mutators put(), delete() and deleteRange() when they don't know oldObject)\n delsRangeSet.add(FULL_RANGE);\n } else {\n // openCursor() or query()\n\n // Prepare a keysPromise in case the we're doing an IDBIndex.getAll() on a store with outbound keys.\n const keysPromise =\n method === \"query\" &&\n outbound &&\n (req as DBCoreQueryRequest).values &&\n table.query({\n ...(req as DBCoreQueryRequest),\n values: false,\n });\n\n return table[method].apply(this, arguments).then((res) => {\n if (method === \"query\") {\n if (outbound && (req as DBCoreQueryRequest).values) {\n // If keys are outbound, we can't use extractKey to map what keys to observe.\n // We've queried an index (like 'dateTime') on an outbound table\n // and retrieve a list of objects\n // from who we cannot know their primary keys.\n // \"Luckily\" though, we've prepared the keysPromise to assist us in exact this condition.\n return keysPromise.then(\n ({ result: resultingKeys }: DBCoreQueryResponse) => {\n pkRangeSet.addKeys(resultingKeys);\n return res;\n }\n );\n }\n // query() inbound values, keys or outbound keys. Secondary indexes only since\n // for primary keys we would only add results within the already registered range.\n const pKeys = (req as DBCoreQueryRequest).values\n ? (res as DBCoreQueryResponse).result.map(extractKey)\n : (res as DBCoreQueryResponse).result;\n if ((req as DBCoreQueryRequest).values) {\n // Subscribe to any mutation made on the returned keys,\n // so that we detect both deletions and updated properties.\n pkRangeSet.addKeys(pKeys);\n } else {\n // Subscribe only to mutations on the returned keys\n // in case the mutator was unable to know oldObjs.\n // If it has oldObj, the mutator won't put anything in \":dels\" because\n // it can more fine-grained put the exact removed and added index value in the correct\n // index range that we subscribe to in the queried range sets.\n // We don't load values so a change on a property outside our index will not\n // require us to re-execute the query.\n delsRangeSet.addKeys(pKeys);\n }\n } else if (method === \"openCursor\") {\n // Caller requests a cursor.\n // For the same reason as when method===\"query\", we only need to observe\n // those keys whose values are possibly used or rendered - which could\n // only happen on keys where they get the cursor's key, primaryKey or value.\n const cursor: DBCoreCursor | null = res;\n const wantValues = (req as DBCoreOpenCursorRequest).values;\n return (\n cursor &&\n Object.create(cursor, {\n key: {\n get() {\n delsRangeSet.addKey(cursor.primaryKey);\n return cursor.key;\n },\n },\n primaryKey: {\n get() {\n const pkey = cursor.primaryKey;\n delsRangeSet.addKey(pkey);\n return pkey;\n },\n },\n value: {\n get() {\n wantValues && pkRangeSet.addKey(cursor.primaryKey);\n return cursor.value;\n },\n },\n })\n );\n }\n return res;\n });\n }\n }\n }\n return table[method].apply(this, arguments);\n };\n });\n return tableClone;\n },\n };\n },\n};\n\nfunction trackAffectedIndexes(\n getRangeSet: (index: string) => RangeSet,\n schema: DBCoreTableSchema,\n oldObjs: readonly any[] | undefined,\n newObjs: readonly any[] | undefined\n) {\n function addAffectedIndex(ix: DBCoreIndex) {\n const rangeSet = getRangeSet(ix.name || \"\");\n function extractKey(obj: any) {\n return obj != null ? ix.extractKey(obj) : null;\n }\n const addKeyOrKeys = (key: any) => ix.multiEntry && isArray(key)\n // multiEntry and the old property was an array - add each array entry to the rangeSet:\n ? key.forEach(key => rangeSet.addKey(key))\n // Not multiEntry or the old property was not an array - add each array entry to the rangeSet:\n : rangeSet.addKey(key);\n\n (oldObjs || newObjs).forEach((_, i) => {\n const oldKey = oldObjs && extractKey(oldObjs[i]);\n const newKey = newObjs && extractKey(newObjs[i]);\n if (cmp(oldKey, newKey) !== 0) {\n // The index has changed. Add both old and new value of the index.\n if (oldKey != null) addKeyOrKeys(oldKey); // If oldKey is invalid key, addKey() will be a noop.\n if (newKey != null) addKeyOrKeys(newKey); // If newKey is invalid key, addKey() will be a noop.\n }\n });\n }\n schema.indexes.forEach(addAffectedIndex);\n}\n","import { delArrayItem, isArray } from '../../functions/utils';\nimport { TblQueryCache } from '../../public/types/cache';\nimport {\n DBCoreMutateRequest,\n DBCoreMutateResponse,\n} from '../../public/types/dbcore';\n\nexport function adjustOptimisticFromFailures(\n tblCache: TblQueryCache,\n req: DBCoreMutateRequest,\n res: DBCoreMutateResponse\n): DBCoreMutateRequest {\n if (res.numFailures === 0) return req;\n if (req.type === 'deleteRange') {\n // numFailures > 0 means the deleteRange operation failed in its whole.\n return null;\n }\n\n const numBulkOps = req.keys\n ? req.keys.length\n : 'values' in req && req.values\n ? req.values.length\n : 1;\n if (res.numFailures === numBulkOps) {\n // Same number of failures as the number of ops. This means that all ops failed.\n return null;\n }\n\n const clone: DBCoreMutateRequest = { ...req };\n\n if (isArray(clone.keys)) {\n clone.keys = clone.keys.filter((_, i) => !(i in res.failures));\n }\n if ('values' in clone && isArray(clone.values)) {\n clone.values = clone.values.filter((_, i) => !(i in res.failures));\n }\n return clone;\n}\n","import { cmp } from '../../functions/cmp';\nimport { IndexableType } from '../../public';\nimport { DBCoreKeyRange } from '../../public/types/dbcore';\n\nexport function isAboveLower(key: IndexableType, range: DBCoreKeyRange) {\n return range.lower === undefined\n ? true // lower is less than anything because it is undefined\n : range.lowerOpen\n ? cmp(key, range.lower) > 0 // lowerOpen: Exclude lower bound\n : cmp(key, range.lower) >= 0; // !lowerOpen: Include lower bound\n}\n\nexport function isBelowUpper(key: IndexableType, range: DBCoreKeyRange) {\n return range.upper === undefined\n ? true // upper is greater than anything because it is undefined\n : range.upperOpen\n ? cmp(key, range.upper) < 0 // upperOpen: Exclude upper bound\n : cmp(key, range.upper) <= 0; // !upperOpen: Include upper bound\n}\n\nexport function isWithinRange(key: IndexableType, range: DBCoreKeyRange) {\n return isAboveLower(key, range) && isBelowUpper(key, range);\n}\n","import { cmp } from '../../functions/cmp';\nimport { isArray } from '../../functions/utils';\nimport { RangeSet } from '../../helpers/rangeset';\nimport { CacheEntry } from '../../public/types/cache';\nimport {\n DBCoreMutateRequest,\n DBCoreQueryRequest,\n DBCoreTable,\n} from '../../public/types/dbcore';\nimport { isWithinRange } from './is-within-range';\n\nexport function applyOptimisticOps(\n result: any[],\n req: DBCoreQueryRequest,\n ops: DBCoreMutateRequest[] | undefined,\n table: DBCoreTable,\n cacheEntry: CacheEntry,\n immutable: boolean\n): any[] {\n if (!ops || ops.length === 0) return result;\n const index = req.query.index;\n const { multiEntry } = index;\n const queryRange = req.query.range;\n const primaryKey = table.schema.primaryKey;\n const extractPrimKey = primaryKey.extractKey!;\n const extractIndex = index.extractKey!;\n const extractLowLevelIndex = (index.lowLevelIndex || index).extractKey!;\n\n let finalResult = ops.reduce((result, op) => {\n let modifedResult = result;\n const includedValues: any[] = [];\n if (op.type === 'add' || op.type === 'put') {\n const includedPKs = new RangeSet(); // For ignoring duplicates\n for (let i = op.values.length - 1; i >= 0; --i) {\n // backwards to prioritize last value of same PK\n const value = op.values[i];\n const pk = extractPrimKey(value);\n if (includedPKs.hasKey(pk)) continue;\n const key = extractIndex(value);\n if (\n multiEntry && isArray(key)\n ? key.some((k) => isWithinRange(k, queryRange))\n : isWithinRange(key, queryRange)\n ) {\n includedPKs.addKey(pk);\n includedValues.push(value);\n }\n }\n }\n switch (op.type) {\n case 'add': {\n const existingKeys = new RangeSet().addKeys(\n req.values ? result.map((v) => extractPrimKey(v)) : result\n );\n\n modifedResult = result.concat(\n req.values\n ? includedValues.filter((v) => {\n const key = extractPrimKey(v);\n if (existingKeys.hasKey(key)) return false;\n existingKeys.addKey(key);\n return true;\n })\n : includedValues\n .map((v) => extractPrimKey(v))\n .filter((k) => {\n if (existingKeys.hasKey(k)) return false;\n existingKeys.addKey(k);\n return true;\n })\n );\n break;\n }\n case 'put': {\n const keySet = new RangeSet().addKeys(\n op.values.map((v) => extractPrimKey(v))\n );\n modifedResult = result\n .filter(\n // Remove all items that are being replaced\n (item) => !keySet.hasKey(req.values ? extractPrimKey(item) : item)\n )\n .concat(\n // Add all items that are being put (sorting will be done later)\n req.values\n ? includedValues\n : includedValues.map((v) => extractPrimKey(v))\n );\n break;\n }\n case 'delete':\n const keysToDelete = new RangeSet().addKeys(op.keys);\n modifedResult = result.filter(\n (item) =>\n !keysToDelete.hasKey(req.values ? extractPrimKey(item) : item)\n );\n\n break;\n case 'deleteRange':\n const range = op.range;\n modifedResult = result.filter(\n (item) => !isWithinRange(extractPrimKey(item), range)\n );\n break;\n }\n return modifedResult;\n }, result);\n\n // If no changes were made, we can return the original result.\n if (finalResult === result) return result;\n\n // Sort the result on sortIndex:\n finalResult.sort((a, b) =>\n cmp(extractLowLevelIndex(a), extractLowLevelIndex(b)) ||\n cmp(extractPrimKey(a), extractPrimKey(b))\n );\n\n // If we have a limit we need to respect it:\n if (req.limit && req.limit < Infinity) {\n if (finalResult.length > req.limit) {\n finalResult.length = req.limit; // Cut of any extras after sorting correctly.\n } else if (result.length === req.limit && finalResult.length < req.limit) {\n // We're missing some items because of the limit. We need to add them back.\n // The easiest way is to mark the cache entry as dirty, which will cause\n // it to be requeried after the write-transaction successfully completes.\n cacheEntry.dirty = true;\n }\n }\n return immutable ? Object.freeze(finalResult) as any[] : finalResult;\n}\n","import { cmp } from '../../functions/cmp';\nimport { DBCoreKeyRange } from '../../public/types/dbcore';\n\nexport function areRangesEqual(r1: DBCoreKeyRange, r2: DBCoreKeyRange) {\n return (\n cmp(r1.lower, r2.lower) === 0 &&\n cmp(r1.upper, r2.upper) === 0 &&\n !!r1.lowerOpen === !!r2.lowerOpen &&\n !!r1.upperOpen === !!r2.upperOpen\n );\n}\n","import { cmp } from '../../functions/cmp';\nimport { DBCoreKeyRange } from '../../public/types/dbcore';\n\nexport function compareLowers(lower1: any, lower2: any, lowerOpen1: boolean, lowerOpen2: boolean) {\n if (lower1 === undefined) return lower2 !== undefined ? -1 : 0;\n if (lower2 === undefined) return 1; // since lower1 !== undefined\n const c = cmp(lower1, lower2);\n if (c === 0) {\n if (lowerOpen1 && lowerOpen2) return 0;\n if (lowerOpen1) return 1\n if (lowerOpen2) return -1;\n }\n return c;\n}\n\nexport function compareUppers(upper1: any, upper2: any, upperOpen1: boolean, upperOpen2: boolean) {\n if (upper1 === undefined) return upper2 !== undefined ? 1 : 0;\n if (upper2 === undefined) return -1; // since upper1 !== undefined\n const c = cmp(upper1, upper2);\n if (c === 0) {\n if (upperOpen1 && upperOpen2) return 0;\n if (upperOpen1) return -1\n if (upperOpen2) return 1;\n }\n return c;\n}\n\nexport function isSuperRange(r1: DBCoreKeyRange, r2: DBCoreKeyRange) {\n return (\n compareLowers(r1.lower, r2.lower, r1.lowerOpen, r2.lowerOpen) <= 0 &&\n compareUppers(r1.upper, r2.upper, r1.upperOpen, r2.upperOpen) >= 0\n );\n}","import { CacheEntry, TblQueryCache } from '../../public/types/cache';\nimport {\n DBCoreCountRequest,\n DBCoreQueryRequest,\n} from '../../public/types/dbcore';\nimport { areRangesEqual } from './are-ranges-equal';\nimport { cache } from './cache';\nimport { isSuperRange } from './is-super-range';\n\nexport function findCompatibleQuery(\n dbName: string,\n tableName: string,\n type: 'query',\n req: DBCoreQueryRequest\n): [] | [CacheEntry, boolean, TblQueryCache, CacheEntry[]];\nexport function findCompatibleQuery(\n dbName: string,\n tableName: string,\n type: 'count',\n req: DBCoreCountRequest\n): [] | [CacheEntry, boolean, TblQueryCache, CacheEntry[]];\nexport function findCompatibleQuery(\n dbName: string,\n tableName: string,\n type: 'query' | 'count',\n req: Partial<DBCoreQueryRequest> & Partial<DBCoreCountRequest>\n): [] | [CacheEntry, boolean, TblQueryCache, CacheEntry[]] {\n const tblCache = cache[`idb://${dbName}/${tableName}`];\n if (!tblCache) return [];\n const queries = tblCache.queries[type];\n if (!queries) return [null, false, tblCache, null];\n const indexName = req.query ? req.query.index.name : null;\n const entries = queries[indexName || ''];\n if (!entries) return [null, false, tblCache, null];\n\n switch (type) {\n case 'query':\n const equalEntry = entries.find(\n (entry) =>\n (entry.req as DBCoreQueryRequest).limit === req.limit &&\n (entry.req as DBCoreQueryRequest).values === req.values &&\n areRangesEqual(entry.req.query.range, req.query.range)\n );\n if (equalEntry)\n return [\n equalEntry,\n true, // exact match\n tblCache,\n entries,\n ];\n const superEntry = entries.find((entry) => {\n const limit = 'limit' in entry.req ? entry.req.limit : Infinity;\n return (\n limit >= req.limit &&\n (req.values ? (entry.req as DBCoreQueryRequest).values : true) &&\n isSuperRange(entry.req.query.range, req.query.range)\n );\n });\n return [superEntry, false, tblCache, entries];\n case 'count':\n const countQuery = entries.find((entry) =>\n areRangesEqual(entry.req.query.range, req.query.range)\n );\n return [countQuery, !!countQuery, tblCache, entries];\n }\n}\n","import { delArrayItem } from \"../../functions/utils\";\nimport { CacheEntry } from \"../../public/types/cache\";\n\nexport function subscribeToCacheEntry(cacheEntry: CacheEntry, container: CacheEntry[], requery: ()=>void, signal: AbortSignal) {\n cacheEntry.subscribers.add(requery);\n signal.addEventListener(\"abort\", () => {\n cacheEntry.subscribers.delete(requery);\n if (cacheEntry.subscribers.size === 0) {\n enqueForDeletion(cacheEntry, container);\n }\n });\n}\n\n\nfunction enqueForDeletion(cacheEntry: CacheEntry, container: CacheEntry[]) {\n setTimeout(() => {\n if (cacheEntry.subscribers.size === 0) { // Still empty (no new subscribers readded after grace time)\n delArrayItem(container, cacheEntry);\n }\n }, 3000);\n}\n","import { LiveQueryContext } from '..';\nimport type { Transaction } from '../../classes/transaction';\nimport { getEffectiveKeys } from '../../dbcore/get-effective-keys';\nimport { deepClone, delArrayItem, setByKeyPath } from '../../functions/utils';\nimport DexiePromise, { PSD } from '../../helpers/promise';\nimport { ObservabilitySet } from '../../public/types/db-events';\nimport {\n DBCore, DBCoreMutateRequest, DBCoreMutateResponse, DBCoreQueryRequest,\n DBCoreQueryResponse\n} from '../../public/types/dbcore';\nimport { Middleware } from '../../public/types/middleware';\nimport { obsSetsOverlap } from '../obs-sets-overlap';\nimport { adjustOptimisticFromFailures } from './adjust-optimistic-request-from-failures';\nimport { applyOptimisticOps } from './apply-optimistic-ops';\nimport { cache } from './cache';\nimport { findCompatibleQuery } from './find-compatible-query';\nimport { isCachableContext } from './is-cachable-context';\nimport { isCachableRequest } from './is-cachable-request';\nimport { signalSubscribersLazily } from './signalSubscribers';\nimport { subscribeToCacheEntry } from './subscribe-cachentry';\n\nexport const cacheMiddleware: Middleware<DBCore> = {\n stack: 'dbcore',\n level: 0,\n name: 'Cache',\n create: (core) => {\n const dbName = core.schema.name;\n const coreMW: DBCore = {\n ...core,\n transaction: (stores, mode, options) => {\n const idbtrans = core.transaction(\n stores,\n mode,\n options\n ) as IDBTransaction & {\n mutatedParts?: ObservabilitySet;\n _explicit?: boolean;\n };\n // Maintain TblQueryCache.ops array when transactions commit or abort\n if (mode === 'readwrite') {\n const ac = new AbortController();\n const { signal } = ac;\n const endTransaction = (wasCommitted: boolean) => () => {\n ac.abort();\n if (mode === 'readwrite') {\n // Collect which subscribers to notify:\n const affectedSubscribers = new Set<()=>void>();\n\n // Go through all tables in transaction and check if they have any optimistic updates\n for (const storeName of stores) {\n const tblCache = cache[`idb://${dbName}/${storeName}`];\n if (tblCache) {\n const table = core.table(storeName);\n // Pick optimistic ops that are part of this transaction\n const ops = tblCache.optimisticOps.filter(\n (op) => op.trans === idbtrans\n );\n // Transaction was marked as _explicit in enterTransactionScope(), transaction-helpers.ts.\n if (idbtrans._explicit && wasCommitted && idbtrans.mutatedParts) {\n // Invalidate all queries that overlap with the mutated parts and signal their subscribers\n for (const entries of Object.values(\n tblCache.queries.query\n )) {\n for (const entry of entries.slice()) {\n if (obsSetsOverlap(entry.obsSet, idbtrans.mutatedParts)) {\n delArrayItem(entries, entry); // Remove the entry from the cache so it can be refreshed\n entry.subscribers.forEach((requery) => affectedSubscribers.add(requery));\n }\n }\n }\n } else if (ops.length > 0) {\n // Remove them from the optimisticOps array\n tblCache.optimisticOps = tblCache.optimisticOps.filter(\n (op) => op.trans !== idbtrans\n );\n // Commit or abort the optimistic updates\n for (const entries of Object.values(\n tblCache.queries.query\n )) {\n for (const entry of entries.slice()) {\n if (\n entry.res != null && // if entry.promise but not entry.res, we're fine. Query will resume now and get the result.\n idbtrans.mutatedParts/* &&\n obsSetsOverlap(entry.obsSet, idbtrans.mutatedParts)*/\n ) {\n if (wasCommitted && !entry.dirty) {\n const freezeResults = Object.isFrozen(entry.res);\n const modRes = applyOptimisticOps(\n entry.res as any[],\n entry.req,\n ops,\n table,\n entry,\n freezeResults\n );\n if (entry.dirty) {\n // Found out at this point that the entry is dirty - not to rely on!\n delArrayItem(entries, entry);\n entry.subscribers.forEach((requery) => affectedSubscribers.add(requery));\n } else if (modRes !== entry.res) {\n entry.res = modRes;\n // Update promise\n entry.promise = DexiePromise.resolve({result: modRes} satisfies DBCoreQueryResponse);\n \n // No need to notify subscribers. They already have this value.\n // We have just updated the value of the cache without having to\n // requery the database - because we know the result for this\n // query based on computing the operations and applying them\n // to the previous result.\n }\n } else {\n if (entry.dirty) {\n // If the entry is dirty we need to get rid of it so that\n // a new entry will be created when the query is run again.\n delArrayItem(entries, entry);\n }\n // If we're not committing, we need to notify subscribers that the\n // optimistic updates are no longer valid.\n entry.subscribers.forEach((requery) => affectedSubscribers.add(requery));\n }\n }\n }\n }\n }\n }\n }\n affectedSubscribers.forEach((requery) => requery());\n }\n };\n idbtrans.addEventListener('abort', endTransaction(false), {\n signal,\n });\n idbtrans.addEventListener('error', endTransaction(false), {\n signal,\n });\n idbtrans.addEventListener('complete', endTransaction(true), {\n signal,\n });\n }\n return idbtrans;\n },\n table(tableName: string) {\n const downTable = core.table(tableName);\n const primKey = downTable.schema.primaryKey;\n const tableMW = {\n ...downTable,\n mutate(req: DBCoreMutateRequest): Promise<DBCoreMutateResponse> {\n const trans = PSD.trans as Transaction;\n if (\n primKey.outbound || // Non-inbound tables are harded to apply optimistic updates on because we can't know primary key of results\n trans.db._options.cache === 'disabled' || // User has opted-out from caching\n trans.explicit || // It's an explicit write transaction being made. Don't affect cache until transaction commits.\n trans.idbtrans.mode !== 'readwrite' // We only handle 'readwrite' in our transaction override. 'versionchange' transactions don't use cache (from populate or upgraders).\n ) {\n // Just forward the request to the core.\n return downTable.mutate(req);\n }\n // Find the TblQueryCache for this table:\n const tblCache = cache[`idb://${dbName}/${tableName}`];\n if (!tblCache) return downTable.mutate(req);\n\n const promise = downTable.mutate(req);\n if ((req.type === 'add' || req.type === 'put') && (req.values.length >= 50 || getEffectiveKeys(primKey, req).some(key => key == null))) {\n // There are some autoIncremented keys not set yet. Need to wait for completion before we can reliably enqueue the operation.\n // (or there are too many objects so we lazy out to avoid performance bottleneck for large bulk inserts)\n promise.then((res) => { // We need to extract result keys and generate cloned values with the keys set (so that applyOptimisticOps can work)\n // But we have a problem! The req.mutatedParts is still not complete so we have to actively add the keys to the unsignaledParts set manually.\n const reqWithResolvedKeys = {\n ...req,\n values: req.values.map((value, i) => {\n if (res.failures[i]) return value; // No need to rewrite a failing value\n const valueWithKey = primKey.keyPath?.includes('.')\n ? deepClone(value)\n : {\n ...value,\n };\n setByKeyPath(valueWithKey, primKey.keyPath, res.results![i]);\n return valueWithKey;\n })\n };\n const adjustedReq = adjustOptimisticFromFailures(tblCache, reqWithResolvedKeys, res);\n tblCache.optimisticOps.push(adjustedReq);\n // Signal subscribers after the observability middleware has complemented req.mutatedParts with the new keys.\n // We must queue the task so that we get the req.mutatedParts updated by observability middleware first.\n // If we refactor the dependency between observability middleware and this middleware we might not need to queue the task.\n queueMicrotask(()=>req.mutatedParts && signalSubscribersLazily(req.mutatedParts)); // Reason for double laziness: in user awaits put and then does another put, signal once.\n });\n } else {\n // Enque the operation immediately\n tblCache.optimisticOps.push(req);\n // Signal subscribers that there are mutated parts\n req.mutatedParts && signalSubscribersLazily(req.mutatedParts);\n promise.then((res) => {\n if (res.numFailures > 0) {\n // In case the operation failed, we need to remove it from the optimisticOps array.\n delArrayItem(tblCache.optimisticOps, req);\n const adjustedReq = adjustOptimisticFromFailures(tblCache, req, res);\n if (adjustedReq) {\n tblCache.optimisticOps.push(adjustedReq);\n }\n req.mutatedParts && signalSubscribersLazily(req.mutatedParts); // Signal the rolling back of the operation.\n }\n });\n promise.catch(()=> {\n // In case the operation failed, we need to remove it from the optimisticOps array.\n delArrayItem(tblCache.optimisticOps, req);\n req.mutatedParts && signalSubscribersLazily(req.mutatedParts); // Signal the rolling back of the operation.\n });\n }\n return promise;\n },\n query(req: DBCoreQueryRequest): Promise<DBCoreQueryResponse> {\n if (!isCachableContext(PSD, downTable) || !isCachableRequest(\"query\", req)) return downTable.query(req);\n const freezeResults =\n (PSD as LiveQueryContext).trans?.db._options.cache === 'immutable';\n const { requery, signal } = PSD as LiveQueryContext;\n let [cacheEntry, exactMatch, tblCache, container] =\n findCompatibleQuery(dbName, tableName, 'query', req);\n if (cacheEntry && exactMatch) {\n cacheEntry.obsSet = req.obsSet!; // So that optimistic result is monitored.\n // How? - because observability-middleware will track result where optimistic\n // mutations are applied and record it in the cacheEntry.\n // TODO: CHANGE THIS! The difference is resultKeys only.\n // Wanted behavior:\n // * cacheEntry obsSet should represent the obsSet without optimistic updates (so it can be checked when merging ops in tx commit)\n // * cacheEntry optimisticObsSet should represent the obsSet with current optimistic updates. It should be updated when adding an op\n // by adding the primary keys of the put/add/delete operation to the set.\n // * observability-middleware should stop recording req.obsSet when a cache entry exact match is found because it won't be used anyway.\n // I'm thinking of merging observability-middleware with cache-middleware into one single middleware because the dependencies are too\n // tight between them.\n } else {\n // --> TODO here: If not exact match, check if we have a superset to extract\n // the data from.\n\n // No cached result found. We need to query the database and cache the result.\n const promise = downTable.query(req).then((res) => {\n // Freeze or clone results\n const result = res.result;\n if (cacheEntry) cacheEntry.res = result;\n if (freezeResults) {\n // For performance reasons don't deep freeze.\n // Only freeze the top-level array and its items.\n // This is good enough to teach users that the result must be treated as immutable\n // without enforcing it recursively on the entire result (which is not even possible\n // for things like Date objects and typed arrays)\n for (let i = 0, l = result.length; i < l; ++i) {\n Object.freeze(result[i]);\n }\n Object.freeze(result);\n } else {\n // If not frozen, we need to clone the result to avoid user mutating the cache\n // When we do this, user's must feel conformable with the fact that the result\n // can be mutated deeply - user is not expected to have any respect for immutability.\n res.result = deepClone(result);\n }\n return res;\n }).catch(error => {\n // In case the query operation failed, we need to remove it from the cache\n // so that subsequent calls does not get the same error but re-evaluate\n // the query.\n if (container && cacheEntry) delArrayItem(container, cacheEntry);\n return Promise.reject(error);\n });\n cacheEntry = {\n obsSet: req.obsSet!,\n promise,\n subscribers: new Set(),\n type: 'query',\n req,\n dirty: false,\n };\n if (container) {\n container.push(cacheEntry);\n } else {\n container = [cacheEntry];\n if (!tblCache) {\n tblCache = cache[`idb://${dbName}/${tableName}`] = {\n queries: {\n query: {},\n count: {},\n },\n objs: new Map(),\n optimisticOps: [],\n unsignaledParts: {}\n };\n }\n tblCache.queries.query[req.query.index.name || ''] = container;\n }\n }\n subscribeToCacheEntry(cacheEntry, container!, requery, signal);\n return cacheEntry.promise.then((res: DBCoreQueryResponse) => {\n return {\n result: applyOptimisticOps(\n res.result,\n req,\n tblCache?.optimisticOps,\n downTable,\n cacheEntry!,\n freezeResults\n ) as any[], // readonly any[]\n };\n });\n },\n };\n return tableMW;\n },\n };\n return coreMW;\n },\n};\n\n\n","import { type Dexie } from \"../classes/dexie\";\nimport { type Table } from \"../classes/table\";\nimport { type Transaction } from \"../classes/transaction\";\n\nexport function vipify<T extends Table | Transaction>(\n target: T,\n vipDb: Dexie\n): T {\n return new Proxy(target, {\n get (target, prop, receiver) {\n // The \"db\" prop of the table or transaction is the only one we need to\n // override. The rest of the props can be accessed from the original\n // object.\n if (prop === 'db') return vipDb;\n return Reflect.get(target, prop, receiver);\n }\n });\n}\n","// Import types from the public API\nimport { Dexie as IDexie } from \"../../public/types/dexie\";\nimport { DexieOptions, DexieConstructor } from \"../../public/types/dexie-constructor\";\nimport { DbEvents, DbEventFns } from \"../../public/types/db-events\";\n//import { PromiseExtended, PromiseExtendedConstructor } from '../../public/types/promise-extended';\nimport { Table as ITable } from '../../public/types/table';\nimport { TableSchema } from \"../../public/types/table-schema\";\nimport { DbSchema } from '../../public/types/db-schema';\n\n// Internal imports\nimport { Table, TableConstructor, createTableConstructor } from \"../table\";\nimport { Collection, CollectionConstructor, createCollectionConstructor } from '../collection';\nimport { WhereClause } from '../where-clause/where-clause';\nimport { WhereClauseConstructor, createWhereClauseConstructor } from '../where-clause/where-clause-constructor';\nimport { Transaction } from '../transaction';\nimport { TransactionConstructor, createTransactionConstructor } from '../transaction/transaction-constructor';\nimport { Version } from \"../version/version\";\nimport { VersionConstructor, createVersionConstructor } from '../version/version-constructor';\n\n// Other imports...\nimport { DexieEventSet } from '../../public/types/dexie-event-set';\nimport { DexieExceptionClasses } from '../../public/types/errors';\nimport { DexieDOMDependencies } from '../../public/types/dexie-dom-dependencies';\nimport { nop, promisableChain } from '../../functions/chaining-functions';\nimport Promise, { PSD, globalPSD } from '../../helpers/promise';\nimport { extend, override, keys, hasOwn } from '../../functions/utils';\nimport Events from '../../helpers/Events';\nimport { maxString, connections, READONLY, READWRITE } from '../../globals/constants';\nimport { getMaxKey } from '../../functions/quirks';\nimport { exceptions } from '../../errors';\nimport { lowerVersionFirst } from '../version/schema-helpers';\nimport { dexieOpen } from './dexie-open';\nimport { wrap } from '../../helpers/promise';\nimport { _onDatabaseDeleted } from '../../helpers/database-enumerator';\nimport { eventRejectHandler } from '../../functions/event-wrappers';\nimport { extractTransactionArgs, enterTransactionScope } from './transaction-helpers';\nimport { TransactionMode } from '../../public/types/transaction-mode';\nimport { rejection } from '../../helpers/promise';\nimport { usePSD } from '../../helpers/promise';\nimport { DBCore } from '../../public/types/dbcore';\nimport { Middleware, DexieStacks } from '../../public/types/middleware';\nimport { virtualIndexMiddleware } from '../../dbcore/virtual-index-middleware';\nimport { hooksMiddleware } from '../../hooks/hooks-middleware';\nimport { IndexableType } from '../../public';\nimport { observabilityMiddleware } from '../../live-query/observability-middleware';\nimport { cacheExistingValuesMiddleware } from '../../dbcore/cache-existing-values-middleware';\nimport { cacheMiddleware } from \"../../live-query/cache/cache-middleware\";\nimport { vipify } from \"../../helpers/vipify\";\n\nexport interface DbReadyState {\n dbOpenError: any;\n isBeingOpened: boolean;\n onReadyBeingFired: undefined | Function[];\n openComplete: boolean;\n dbReadyResolve: () => void;\n dbReadyPromise: Promise<any>;\n cancelOpen: (reason?: Error) => void;\n openCanceller: Promise<any> & { _stackHolder?: Error };\n autoSchema: boolean;\n vcFired?: boolean;\n PR1398_maxLoop?: number;\n autoOpen?: boolean;\n}\n\nexport class Dexie implements IDexie {\n _options: DexieOptions;\n _state: DbReadyState;\n _versions: Version[];\n _storeNames: string[];\n _deps: DexieDOMDependencies;\n _allTables: { [name: string]: Table; };\n _createTransaction: (this: Dexie, mode: IDBTransactionMode, storeNames: ArrayLike<string>, dbschema: { [tableName: string]: TableSchema; }, parentTransaction?: Transaction) => Transaction;\n _dbSchema: { [tableName: string]: TableSchema; };\n _hasGetAll?: boolean;\n _maxKey: IndexableType;\n _fireOnBlocked: (ev: Event) => void;\n _middlewares: {[StackName in keyof DexieStacks]?: Middleware<DexieStacks[StackName]>[]} = {};\n _vip?: boolean;\n _novip: Dexie;// db._novip is to escape to orig db from db.vip.\n core: DBCore;\n\n name: string;\n verno: number = 0;\n idbdb: IDBDatabase | null;\n vip: Dexie;\n on: DbEvents;\n once: DbEventFns;\n\n Table: TableConstructor;\n WhereClause: WhereClauseConstructor;\n Collection: CollectionConstructor;\n Version: VersionConstructor;\n Transaction: TransactionConstructor;\n static disableBfCache?: boolean;\n\n constructor(name: string, options?: DexieOptions) {\n const deps = (Dexie as any as DexieConstructor).dependencies;\n this._options = options = {\n // Default Options\n addons: (Dexie as any as DexieConstructor).addons, // Pick statically registered addons by default\n autoOpen: true, // Don't require db.open() explicitely.\n // Default DOM dependency implementations from static prop.\n indexedDB: deps.indexedDB, // Backend IndexedDB api. Default to browser env.\n IDBKeyRange: deps.IDBKeyRange, // Backend IDBKeyRange api. Default to browser env.\n cache: 'cloned', // Default to cloned for backward compatibility. For best performance and least memory consumption use 'immutable'.\n ...options\n }; \n this._deps = {\n indexedDB: options.indexedDB as IDBFactory,\n IDBKeyRange: options.IDBKeyRange as typeof IDBKeyRange\n };\n const {\n addons,\n } = options;\n this._dbSchema = {};\n this._versions = [];\n this._storeNames = [];\n this._allTables = {};\n this.idbdb = null;\n this._novip = this;\n const state: DbReadyState = {\n dbOpenError: null,\n isBeingOpened: false,\n onReadyBeingFired: null,\n openComplete: false,\n dbReadyResolve: nop,\n dbReadyPromise: null as Promise,\n cancelOpen: nop,\n openCanceller: null as Promise,\n autoSchema: true,\n PR1398_maxLoop: 3,\n autoOpen: options.autoOpen,\n };\n state.dbReadyPromise = new Promise(resolve => {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new Promise((_, reject) => {\n state.cancelOpen = reject;\n });\n this._state = state;\n this.name = name;\n this.on = Events(this,\n \"populate\",\n \"blocked\",\n \"versionchange\",\n \"close\",\n { ready: [promisableChain, nop] }\n ) as DbEvents;\n this.once = (event: any, callback: any) => {\n const fn = (...args: any[]) => {\n this.on(event).unsubscribe(fn);\n callback.apply(this, args);\n };\n return this.on(event as any, fn);\n };\n this.on.ready.subscribe = override(this.on.ready.subscribe, subscribe => {\n return (subscriber, bSticky) => {\n (Dexie as any as DexieConstructor).vip(() => {\n const state = this._state;\n if (state.openComplete) {\n // Database already open. Call subscriber asap.\n if (!state.dbOpenError) Promise.resolve().then(subscriber);\n // bSticky: Also subscribe to future open sucesses (after close / reopen) \n if (bSticky) subscribe(subscriber);\n } else if (state.onReadyBeingFired) {\n // db.on('ready') subscribers are currently being executed and have not yet resolved or rejected\n state.onReadyBeingFired.push(subscriber);\n if (bSticky) subscribe(subscriber);\n } else {\n // Database not yet open. Subscribe to it.\n subscribe(subscriber);\n // If bSticky is falsy, make sure to unsubscribe subscriber when fired once.\n const db = this;\n if (!bSticky) subscribe(function unsubscribe() {\n db.on.ready.unsubscribe(subscriber);\n db.on.ready.unsubscribe(unsubscribe);\n });\n }\n });\n }\n });\n\n // Create derived classes bound to this instance of Dexie:\n this.Collection = createCollectionConstructor(this);\n this.Table = createTableConstructor(this);\n this.Transaction = createTransactionConstructor(this);\n this.Version = createVersionConstructor(this);\n this.WhereClause = createWhereClauseConstructor(this);\n\n // Default subscribers to \"versionchange\" and \"blocked\".\n // Can be overridden by custom handlers. If custom handlers return false, these default\n // behaviours will be prevented.\n this.on(\"versionchange\", ev => {\n // Default behavior for versionchange event is to close database connection.\n // Caller can override this behavior by doing db.on(\"versionchange\", function(){ return false; });\n // Let's not block the other window from making it's delete() or open() call.\n // NOTE! This event is never fired in IE,Edge or Safari.\n if (ev.newVersion > 0)\n console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`);\n else\n console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`);\n this.close({disableAutoOpen: false});\n // In many web applications, it would be recommended to force window.reload()\n // when this event occurs. To do that, subscribe to the versionchange event\n // and call window.location.reload(true) if ev.newVersion > 0 (not a deletion)\n // The reason for this is that your current web app obviously has old schema code that needs\n // to be updated. Another window got a newer version of the app and needs to upgrade DB but\n // your window is blocking it unless we close it here.\n });\n this.on(\"blocked\", ev => {\n if (!ev.newVersion || ev.newVersion < ev.oldVersion)\n console.warn(`Dexie.delete('${this.name}') was blocked`);\n else\n console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${ev.oldVersion / 10}`);\n });\n\n this._maxKey = getMaxKey(options.IDBKeyRange as typeof IDBKeyRange);\n\n this._createTransaction = (\n mode: IDBTransactionMode,\n storeNames: string[],\n dbschema: DbSchema,\n parentTransaction?: Transaction) => new this.Transaction(mode, storeNames, dbschema, this._options.chromeTransactionDurability, parentTransaction);\n\n this._fireOnBlocked = ev => {\n this.on(\"blocked\").fire(ev);\n // Workaround (not fully*) for missing \"versionchange\" event in IE,Edge and Safari:\n connections\n .filter(c => c.name === this.name && c !== this && !c._state.vcFired)\n .map(c => c.on(\"versionchange\").fire(ev));\n }\n\n // Default middlewares:\n this.use(cacheExistingValuesMiddleware);\n this.use(cacheMiddleware);\n this.use(observabilityMiddleware);\n this.use(virtualIndexMiddleware);\n this.use(hooksMiddleware);\n\n const vipDB = new Proxy(this, {\n get: (_, prop, receiver) => {\n if (prop === '_vip') return true;\n if (prop === 'table') return (tableName: string) => vipify(this.table(tableName), vipDB);\n const rv = Reflect.get(_, prop, receiver);\n if (rv instanceof Table) return vipify(rv, vipDB);\n if (prop === 'tables') return (rv as Table[]).map(t => vipify(t, vipDB));\n if (prop === '_createTransaction') return function() {\n const tx: Transaction = (rv as typeof this._createTransaction).apply(this, arguments);\n return vipify(tx, vipDB);\n }\n return rv;\n }\n });\n this.vip = vipDB;\n\n // Call each addon:\n addons.forEach(addon => addon(this));\n }\n\n version(versionNumber: number): Version {\n if (isNaN(versionNumber) || versionNumber < 0.1) throw new exceptions.Type(`Given version is not a positive number`);\n versionNumber = Math.round(versionNumber * 10) / 10;\n if (this.idbdb || this._state.isBeingOpened)\n throw new exceptions.Schema(\"Cannot add version when database is open\");\n this.verno = Math.max(this.verno, versionNumber);\n const versions = this._versions;\n var versionInstance = versions.filter(\n v => v._cfg.version === versionNumber)[0];\n if (versionInstance) return versionInstance;\n versionInstance = new this.Version(versionNumber);\n versions.push(versionInstance);\n versions.sort(lowerVersionFirst);\n versionInstance.stores({}); // Derive earlier schemas by default.\n // Disable autoschema mode, as at least one version is specified.\n this._state.autoSchema = false;\n return versionInstance;\n }\n\n _whenReady<T>(fn: () => Promise<T>): Promise<T> {\n return (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new Promise<T>((resolve, reject) => {\n if (this._state.openComplete) {\n // idbdb is falsy but openComplete is true. Must have been an exception durin open.\n // Don't wait for openComplete as it would lead to infinite loop.\n return reject(new exceptions.DatabaseClosed(this._state.dbOpenError));\n }\n if (!this._state.isBeingOpened) {\n if (!this._state.autoOpen) {\n reject(new exceptions.DatabaseClosed());\n return;\n }\n this.open().catch(nop); // Open in background. If if fails, it will be catched by the final promise anyway.\n }\n this._state.dbReadyPromise.then(resolve, reject);\n }).then(fn);\n }\n\n use({stack, create, level, name}: Middleware<DBCore>): this {\n if (name) this.unuse({stack, name}); // Be able to replace existing middleware.\n const middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n middlewares.push({stack, create, level: level == null ? 10 : level, name});\n middlewares.sort((a, b) => a.level - b.level);\n // Todo update db.core and db.tables...core ? Or should be expect this to have effect\n // only after next open()?\n return this;\n }\n\n unuse({stack, create}: Middleware<{stack: keyof DexieStacks}>): this;\n unuse({stack, name}: {stack: keyof DexieStacks, name: string}): this;\n unuse({stack, name, create}: {stack: keyof DexieStacks, name?: string, create?: Function}) {\n if (stack && this._middlewares[stack]) {\n this._middlewares[stack] = this._middlewares[stack].filter(mw =>\n create ? mw.create !== create : // Given middleware has a create method. Match that exactly.\n name ? mw.name !== name : // Given middleware spec \n false);\n }\n return this;\n }\n\n open() {\n return usePSD(\n globalPSD, // Enforce global scope here since db.open() can be part of a live query or transaction scope\n () => dexieOpen(this)\n );\n }\n\n _close(): void {\n this.on.close.fire(new CustomEvent('close'));\n const state = this._state;\n const idx = connections.indexOf(this);\n if (idx >= 0) connections.splice(idx, 1);\n if (this.idbdb) {\n try { this.idbdb.close(); } catch (e) { }\n this.idbdb = null;\n } \n // Reset dbReadyPromise promise:\n if (!state.isBeingOpened) {\n // Only if not being opened, reset these promises.\n // Otherwise, keep them so existing promise consumers will resolve when db\n // db is reopened later on, in case closing for purpose reopening, using {disableAutoOpen: false}.\n state.dbReadyPromise = new Promise(resolve => {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new Promise((_, reject) => {\n state.cancelOpen = reject;\n });\n }\n }\n\n close({disableAutoOpen} = {disableAutoOpen: true}): void {\n const state = this._state;\n if (disableAutoOpen) {\n if (state.isBeingOpened) {\n // cancel before the call to this._close() because this._close() will recreate dbReadyPromise and openCanceller.\n state.cancelOpen(new exceptions.DatabaseClosed());\n }\n this._close();\n state.autoOpen = false;\n state.dbOpenError = new exceptions.DatabaseClosed();\n } else {\n this._close();\n state.autoOpen = this._options.autoOpen ||\n state.isBeingOpened; // If an open call is ongoing, that same promise will resolve when db is reopend.\n state.openComplete = false;\n state.dbOpenError = null;\n }\n }\n\n delete(closeOptions = {disableAutoOpen: true}): Promise<void> {\n // Prevent accidentially doing db.delete(1) when intention was to do db.[table].delete(1).\n const hasInvalidArguments = arguments.length > 0 && typeof arguments[0] !== 'object'; \n const state = this._state;\n return new Promise((resolve, reject) => {\n const doDelete = () => {\n this.close(closeOptions);\n var req = this._deps.indexedDB.deleteDatabase(this.name);\n req.onsuccess = wrap(() => {\n _onDatabaseDeleted(this._deps, this.name);\n resolve();\n });\n req.onerror = eventRejectHandler(reject);\n req.onblocked = this._fireOnBlocked;\n }\n // Prevent accidentially doing db.delete(1) when intention was to do db.[table].delete(1).\n if (hasInvalidArguments) throw new exceptions.InvalidArgument(\"Invalid closeOptions argument to db.delete()\");\n if (state.isBeingOpened) {\n state.dbReadyPromise.then(doDelete);\n } else {\n doDelete();\n }\n });\n }\n\n backendDB() {\n return this.idbdb;\n }\n\n isOpen() {\n return this.idbdb !== null;\n }\n\n hasBeenClosed() {\n const dbOpenError = this._state.dbOpenError;\n return dbOpenError && (dbOpenError.name === 'DatabaseClosed');\n }\n\n hasFailed() {\n return this._state.dbOpenError !== null;\n }\n\n dynamicallyOpened() {\n return this._state.autoSchema;\n }\n\n get tables () {\n return keys(this._allTables).map(name => this._allTables[name]);\n }\n\n transaction(): Promise {\n const args = extractTransactionArgs.apply(this, arguments);\n return this._transaction.apply(this, args);\n }\n\n _transaction(mode: TransactionMode, tables: Array<ITable | string>, scopeFunc: Function) {\n let parentTransaction = PSD.trans as Transaction | undefined;\n // Check if parent transactions is bound to this db instance, and if caller wants to reuse it\n if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1) parentTransaction = null;\n const onlyIfCompatible = mode.indexOf('?') !== -1;\n mode = mode.replace('!', '').replace('?', '') as TransactionMode; // Ok. Will change arguments[0] as well but we wont touch arguments henceforth.\n let idbMode: IDBTransactionMode,\n storeNames;\n\n try {\n //\n // Get storeNames from arguments. Either through given table instances, or through given table names.\n //\n storeNames = tables.map(table => {\n var storeName = table instanceof this.Table ? table.name : table;\n if (typeof storeName !== 'string') throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n return storeName;\n });\n\n //\n // Resolve mode. Allow shortcuts \"r\" and \"rw\".\n //\n if (mode == \"r\" || mode === READONLY)\n idbMode = READONLY;\n else if (mode == \"rw\" || mode == READWRITE)\n idbMode = READWRITE;\n else\n throw new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n\n if (parentTransaction) {\n // Basic checks\n if (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n if (onlyIfCompatible) {\n // Spawn new transaction instead.\n parentTransaction = null; \n }\n else throw new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n }\n if (parentTransaction) {\n storeNames.forEach(storeName => {\n if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n if (onlyIfCompatible) {\n // Spawn new transaction instead.\n parentTransaction = null; \n }\n else throw new exceptions.SubTransaction(\"Table \" + storeName +\n \" not included in parent transaction.\");\n }\n });\n }\n if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n // '?' mode should not keep using an inactive transaction.\n parentTransaction = null;\n }\n }\n } catch (e) {\n return parentTransaction ?\n parentTransaction._promise(null, (_, reject) => {reject(e);}) :\n rejection (e);\n }\n // If this is a sub-transaction, lock the parent and then launch the sub-transaction.\n const enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n return (parentTransaction ?\n parentTransaction._promise(idbMode, enterTransaction, \"lock\") :\n PSD.trans ?\n // no parent transaction despite PSD.trans exists. Make sure also\n // that the zone we create is not a sub-zone of current, because\n // Promise.follow() should not wait for it if so.\n usePSD(PSD.transless, ()=>this._whenReady(enterTransaction)) :\n this._whenReady (enterTransaction));\n }\n\n table(tableName: string): Table;\n table<T, TKey extends IndexableType=IndexableType>(tableName: string): ITable<T, TKey>;\n table(tableName: string): Table {\n if (!hasOwn(this._allTables, tableName)) {\n throw new exceptions.InvalidTable(`Table ${tableName} does not exist`); }\n return this._allTables[tableName];\n }\n}\n","import {\n Observable as IObservable,\n Observer,\n Subscription,\n} from \"../../public/types/observable\";\n\nconst symbolObservable: typeof Symbol.observable =\n typeof Symbol !== \"undefined\" && \"observable\" in Symbol\n ? Symbol.observable\n : \"@@observable\" as any;\n\nexport class Observable<T> implements IObservable<T> {\n private _subscribe: (observer: Observer<T>) => Subscription;\n hasValue?: ()=>boolean;\n getValue?: ()=>T;\n\n constructor(subscribe: (observer: Observer<T>) => Subscription) {\n this._subscribe = subscribe;\n }\n\n subscribe(\n onNext?: ((value: T) => void) | null,\n onError?: ((error: any) => void) | null,\n onComplete?: (() => void) | null\n ): Subscription;\n subscribe(observer?: Observer<T> | null): Subscription;\n subscribe(x?: any, error?: any, complete?: any): Subscription {\n return this._subscribe(\n !x || typeof x === \"function\" ? { next: x, error, complete } : x\n );\n }\n\n [symbolObservable]() {\n return this;\n }\n}\n","import { _global } from '../../globals/global';\nimport { DexieDOMDependencies } from '../../public/types/dexie-dom-dependencies';\n\nexport let domDeps: DexieDOMDependencies\n\ntry {\n domDeps = {\n // Required:\n indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n };\n} catch (e) {\n domDeps = { indexedDB: null, IDBKeyRange: null };\n}\n","import { _global, isAsyncFunction, keys, objectIsEmpty } from '../functions/utils';\nimport {\n globalEvents,\n DEXIE_STORAGE_MUTATED_EVENT_NAME,\n} from '../globals/global-events';\nimport {\n beginMicroTickScope,\n decrementExpectedAwaits,\n endMicroTickScope,\n execInGlobalContext,\n incrementExpectedAwaits,\n NativePromise,\n newScope,\n PSD,\n usePSD,\n} from '../helpers/promise';\nimport { ObservabilitySet } from '../public/types/db-events';\nimport {\n Observable as IObservable,\n Subscription,\n} from '../public/types/observable';\nimport { Observable } from '../classes/observable/observable';\nimport { extendObservabilitySet } from './extend-observability-set';\nimport { rangesOverlap } from '../helpers/rangeset';\nimport { domDeps } from '../classes/dexie/dexie-dom-dependencies';\nimport { Transaction } from '../classes/transaction';\nimport { obsSetsOverlap } from './obs-sets-overlap';\n\nexport interface LiveQueryContext {\n subscr: ObservabilitySet;\n signal: AbortSignal;\n requery: () => void;\n trans: null | Transaction;\n querier: Function; // For debugging purposes and Error messages\n}\n\nexport function liveQuery<T>(querier: () => T | Promise<T>): IObservable<T> {\n let hasValue = false;\n let currentValue: T;\n const observable = new Observable<T>((observer) => {\n const scopeFuncIsAsync = isAsyncFunction(querier);\n function execute(ctx: LiveQueryContext) {\n const wasRootExec = beginMicroTickScope(); // Performance: Avoid starting a new microtick scope within the async context.\n try {\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n let rv = newScope(querier, ctx);\n if (scopeFuncIsAsync) {\n // Make sure to set rv = rv.finally in order to wait to after decrementExpectedAwaits() has been called.\n // This fixes zone leaking issue that the liveQuery zone can leak to observer's next microtask.\n rv = (rv as Promise<any>).finally(decrementExpectedAwaits);\n }\n return rv;\n } finally {\n wasRootExec && endMicroTickScope(); // Given that we created the microtick scope, we must also end it.\n }\n }\n\n let closed = false;\n let abortController: AbortController;\n\n let accumMuts: ObservabilitySet = {};\n let currentObs: ObservabilitySet = {};\n\n const subscription: Subscription = {\n get closed() {\n return closed;\n },\n unsubscribe: () => {\n if (closed) return;\n closed = true;\n if (abortController) abortController.abort();\n if (startedListening) globalEvents.storagemutated.unsubscribe(mutationListener);\n },\n };\n\n observer.start && observer.start(subscription); // https://github.com/tc39/proposal-observable\n\n let startedListening = false;\n\n const doQuery = () => execInGlobalContext(_doQuery);\n\n function shouldNotify() {\n return obsSetsOverlap(currentObs, accumMuts);\n }\n\n const mutationListener = (parts: ObservabilitySet) => {\n extendObservabilitySet(accumMuts, parts);\n if (shouldNotify()) {\n doQuery();\n }\n };\n\n const _doQuery = () => {\n if (\n closed || // closed - don't run!\n !domDeps.indexedDB) // SSR in sveltekit, nextjs etc\n {\n return;\n }\n accumMuts = {};\n const subscr: ObservabilitySet = {};\n // Abort signal fill three purposes:\n // 1. Abort the query if the observable is unsubscribed.\n // 2. Abort the query if a new query is made before the previous one has completed.\n // 3. For cached queries to know if they should remain in memory or could be enqued for being freed up.\n // (they will remain in memory for a short time and if noone needs them again, they will eventually be freed up)\n if (abortController) abortController.abort(); // Cancel previous query. Last query will be cancelled on unsubscribe().\n abortController = new AbortController();\n \n const ctx: LiveQueryContext = {\n subscr,\n signal: abortController.signal,\n requery: doQuery,\n querier,\n trans: null // Make the scope transactionless (don't reuse transaction from outer scope of the caller of subscribe())\n }\n const ret = execute(ctx);\n Promise.resolve(ret).then(\n (result) => {\n hasValue = true;\n currentValue = result;\n if (closed || ctx.signal.aborted) {\n // closed - no subscriber anymore.\n // signal.aborted - new query was made before this one completed and\n // the querier might have catched AbortError and return successful result.\n // If so, we should not rely in that result because we know we have aborted\n // this run, which means there's another run going on that will handle accumMuts\n // and we must not base currentObs on the half-baked subscr.\n return;\n }\n accumMuts = {};\n // Update what we are subscribing for based on this last run:\n currentObs = subscr;\n if (!objectIsEmpty(currentObs) && !startedListening) {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);\n startedListening = true;\n }\n execInGlobalContext(()=>!closed && observer.next && observer.next(result));\n },\n (err) => {\n hasValue = false;\n if (!['DatabaseClosedError', 'AbortError'].includes(err?.name)) {\n if (!closed) execInGlobalContext(()=>{\n if (closed) return;\n observer.error && observer.error(err);\n });\n }\n }\n );\n };\n\n // Use setTimeot here to guarantee execution in a private macro task before and\n // after. The helper executeInGlobalContext(_doQuery) is not enough here because\n // caller of `subscribe()` could be anything, such as a frontend framework that will\n // continue in the same tick after subscribe() is called and call other\n // eftects, that could involve dexie operations such as writing to the DB.\n // If that happens, the private zone echoes from a live query tast started here\n // could still be ongoing when the other operations start and make them inherit\n // the async context from a live query.\n setTimeout(doQuery, 0);\n return subscription;\n });\n observable.hasValue = () => hasValue;\n observable.getValue = () => currentValue;\n return observable;\n}\n","import { Dexie as _Dexie } from './dexie';\nimport { _global } from '../../globals/global';\nimport { props, derive, extend, override, getByKeyPath, setByKeyPath, delByKeyPath, shallowClone, deepClone, asap } from '../../functions/utils';\nimport { getObjectDiff } from \"../../functions/get-object-diff\";\nimport { fullNameExceptions } from '../../errors';\nimport { DexieConstructor } from '../../public/types/dexie-constructor';\nimport { getDatabaseNames } from '../../helpers/database-enumerator';\nimport { PSD } from '../../helpers/promise';\nimport { usePSD } from '../../helpers/promise';\nimport { newScope } from '../../helpers/promise';\nimport { rejection } from '../../helpers/promise';\nimport { awaitIterator } from '../../helpers/yield-support';\nimport Promise from '../../helpers/promise';\nimport * as Debug from '../../helpers/debug';\nimport { dexieStackFrameFilter, minKey, connections, DEXIE_VERSION } from '../../globals/constants';\nimport Events from '../../helpers/Events';\nimport { exceptions } from '../../errors';\nimport { errnames } from '../../errors';\nimport { getMaxKey } from '../../functions/quirks';\nimport { vip } from './vip';\nimport { globalEvents } from '../../globals/global-events';\nimport { liveQuery } from '../../live-query/live-query';\nimport { extendObservabilitySet } from '../../live-query/extend-observability-set';\nimport { domDeps } from './dexie-dom-dependencies';\nimport { cmp } from '../../functions/cmp';\nimport { cache } from '../../live-query/cache/cache';\n\n/* (Dexie) is an instance of DexieConstructor, as defined in public/types/dexie-constructor.d.ts\n* (new Dexie()) is an instance of Dexie, as defined in public/types/dexie.d.ts\n* \n* Why we're doing this?\n\n* Because we've choosen to define the public Dexie API using a DexieConstructor interface\n* rather than declaring a class. On that interface, all static props are defined.\n* In practice, class Dexie's constructor implements DexieConstructor and all member props\n* are defined in interface Dexie. We could say, it's a typescript limitation of not being\n* able to define a static interface that forces us to do the cast below.\n*/\nconst Dexie = _Dexie as any as DexieConstructor;\n\n//\n// Set all static methods and properties onto Dexie:\n// \nprops(Dexie, {\n\n // Dexie.BulkError = class BulkError {...};\n // Dexie.XXXError = class XXXError {...};\n ...fullNameExceptions,\n\n //\n // Static delete() method.\n //\n delete(databaseName: string) {\n const db = new Dexie(databaseName, {addons: []});\n return db.delete();\n },\n\n //\n // Static exists() method.\n //\n exists(name: string) {\n return new Dexie(name, { addons: [] }).open().then(db => {\n db.close();\n return true;\n }).catch('NoSuchDatabaseError', () => false);\n },\n\n //\n // Static method for retrieving a list of all existing databases at current host.\n //\n getDatabaseNames(cb) {\n try {\n return getDatabaseNames(Dexie.dependencies).then(cb);\n } catch {\n return rejection(new exceptions.MissingAPI());\n }\n },\n\n /** @deprecated */\n defineClass() {\n function Class(content) {\n extend(this, content);\n }\n return Class;\n },\n\n ignoreTransaction(scopeFunc) {\n // In case caller is within a transaction but needs to create a separate transaction.\n // Example of usage:\n //\n // Let's say we have a logger function in our app. Other application-logic should be unaware of the\n // logger function and not need to include the 'logentries' table in all transaction it performs.\n // The logging should always be done in a separate transaction and not be dependant on the current\n // running transaction context. Then you could use Dexie.ignoreTransaction() to run code that starts a new transaction.\n //\n // Dexie.ignoreTransaction(function() {\n // db.logentries.add(newLogEntry);\n // });\n //\n // Unless using Dexie.ignoreTransaction(), the above example would try to reuse the current transaction\n // in current Promise-scope.\n //\n // An alternative to Dexie.ignoreTransaction() would be setImmediate() or setTimeout(). The reason we still provide an\n // API for this because\n // 1) The intention of writing the statement could be unclear if using setImmediate() or setTimeout().\n // 2) setTimeout() would wait unnescessary until firing. This is however not the case with setImmediate().\n // 3) setImmediate() is not supported in the ES standard.\n // 4) You might want to keep other PSD state that was set in a parent PSD, such as PSD.letThrough.\n return PSD.trans ?\n usePSD(PSD.transless, scopeFunc) : // Use the closest parent that was non-transactional.\n scopeFunc(); // No need to change scope because there is no ongoing transaction.\n },\n\n vip,\n\n async: function (generatorFn: Function) {\n return function () {\n try {\n var rv = awaitIterator(generatorFn.apply(this, arguments));\n if (!rv || typeof rv.then !== 'function')\n return Promise.resolve(rv);\n return rv;\n } catch (e) {\n return rejection(e);\n }\n };\n },\n\n spawn: function (generatorFn, args, thiz) {\n try {\n var rv = awaitIterator(generatorFn.apply(thiz, args || []));\n if (!rv || typeof rv.then !== 'function')\n return Promise.resolve(rv);\n return rv;\n } catch (e) {\n return rejection(e);\n }\n },\n\n // Dexie.currentTransaction property\n currentTransaction: {\n get: () => PSD.trans || null\n },\n\n waitFor: function (promiseOrFunction, optionalTimeout) {\n // If a function is provided, invoke it and pass the returning value to Transaction.waitFor()\n const promise = Promise.resolve(\n typeof promiseOrFunction === 'function' ?\n Dexie.ignoreTransaction(promiseOrFunction) :\n promiseOrFunction)\n .timeout(optionalTimeout || 60000); // Default the timeout to one minute. Caller may specify Infinity if required. \n\n // Run given promise on current transaction. If no current transaction, just return a Dexie promise based\n // on given value.\n return PSD.trans ?\n PSD.trans.waitFor(promise) :\n promise;\n },\n\n // Export our Promise implementation since it can be handy as a standalone Promise implementation\n Promise: Promise,\n\n // Dexie.debug proptery:\n // Dexie.debug = false\n // Dexie.debug = true\n // Dexie.debug = \"dexie\" - don't hide dexie's stack frames.\n debug: {\n get: () => Debug.debug,\n set: value => {\n Debug.setDebug(value, value === 'dexie' ? () => true : dexieStackFrameFilter);\n }\n },\n\n // Export our derive/extend/override methodology\n derive: derive, // Deprecate?\n extend: extend, // Deprecate?\n props: props,\n override: override, // Deprecate?\n // Export our Events() function - can be handy as a toolkit\n Events: Events,\n on: globalEvents,\n liveQuery,\n extendObservabilitySet,\n // Utilities\n getByKeyPath: getByKeyPath,\n setByKeyPath: setByKeyPath,\n delByKeyPath: delByKeyPath,\n shallowClone: shallowClone,\n deepClone: deepClone,\n getObjectDiff: getObjectDiff,\n cmp,\n asap: asap,\n //maxKey: new Dexie('',{addons:[]})._maxKey,\n minKey: minKey,\n // Addon registry\n addons: [],\n // Global DB connection list\n connections: connections,\n\n //MultiModifyError: exceptions.Modify, // Obsolete!\n errnames: errnames,\n\n // Export other static classes\n //IndexSpec: IndexSpec, Obsolete!\n //TableSchema: TableSchema, Obsolete!\n\n //\n // Dependencies\n //\n // These will automatically work in browsers with indexedDB support, or where an indexedDB polyfill has been included.\n //\n // In node.js, however, these properties must be set \"manually\" before instansiating a new Dexie().\n // For node.js, you need to require indexeddb-js or similar and then set these deps.\n //\n dependencies: domDeps,\n cache,\n\n // API Version Number: Type Number, make sure to always set a version number that can be comparable correctly. Example: 0.9, 0.91, 0.92, 1.0, 1.01, 1.1, 1.2, 1.21, etc.\n semVer: DEXIE_VERSION,\n version: DEXIE_VERSION.split('.')\n .map(n => parseInt(n))\n .reduce((p, c, i) => p + (c / Math.pow(10, i * 2))),\n\n // https://github.com/dfahlander/Dexie.js/issues/186\n // typescript compiler tsc in mode ts-->es5 & commonJS, will expect require() to return\n // x.default. Workaround: Set Dexie.default = Dexie.\n // default: Dexie, // Commented because solved in index-umd.ts instead.\n // Make it possible to import {Dexie} (non-default import)\n // Reason 1: May switch to that in future.\n // Reason 2: We declare it both default and named exported in d.ts to make it possible\n // to let addons extend the Dexie interface with Typescript 2.1 (works only when explicitely\n // exporting the symbol, not just default exporting)\n // Dexie: Dexie // Commented because solved in index-umd.ts instead.\n});\n\nDexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);\n","import { globalEvents, DEXIE_STORAGE_MUTATED_EVENT_NAME, STORAGE_MUTATED_DOM_EVENT_NAME } from '../globals/global-events';\nimport { ObservabilitySet } from \"../public/types/db-events\";\nimport { signalSubscribersNow } from './cache/signalSubscribers';\n\nif (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, updatedParts => {\n if (!propagatingLocally) {\n let event: CustomEvent<ObservabilitySet>;\n event = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {\n detail: updatedParts\n });\n propagatingLocally = true;\n dispatchEvent(event);\n propagatingLocally = false;\n }\n });\n addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, ({detail}: CustomEvent<ObservabilitySet>) => {\n if (!propagatingLocally) {\n propagateLocally(detail);\n }\n });\n}\n\n/** Called from listeners to BroadcastChannel and DOM event to\n * propagate the event locally into dexie's storagemutated event\n * and invalidate cached queries.\n * \n * This function is only called when the event is not originating\n * from this same Dexie module - either from another redundant dexie import\n * or from a foreign tab or worker. That's why we need to invalidate\n * the cache when this happens.\n */\nexport function propagateLocally(updateParts: ObservabilitySet) {\n let wasMe = propagatingLocally;\n try {\n propagatingLocally = true;\n // Fire the \"storagemutated\" event.\n globalEvents.storagemutated.fire(updateParts);\n // Invalidate cached queries and signal subscribers to requery.\n signalSubscribersNow(updateParts, true);\n } finally {\n propagatingLocally = wasMe;\n }\n}\n\nexport let propagatingLocally = false;\n","import {\n globalEvents,\n STORAGE_MUTATED_DOM_EVENT_NAME,\n DEXIE_STORAGE_MUTATED_EVENT_NAME,\n} from '../globals/global-events';\nimport { propagateLocally, propagatingLocally } from './propagate-locally';\n\nexport let bc: BroadcastChannel;\n\nexport let createBC = ()=>{};\n\nif (typeof BroadcastChannel !== 'undefined') {\n createBC = () => {\n bc = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);\n bc.onmessage = ev => ev.data && propagateLocally(ev.data);\n }\n createBC();\n\n /**\n * The Node.js BroadcastChannel will prevent the node process from exiting\n * if the BroadcastChannel is not closed.\n * Therefore we have to call unref() which allows the process to finish\n * properly even when the BroadcastChannel is never closed.\n * @link https://nodejs.org/api/worker_threads.html#broadcastchannelunref\n * @link https://github.com/dexie/Dexie.js/pull/1576\n */\n if (typeof (bc as any).unref === 'function') {\n (bc as any).unref();\n }\n \n //\n // Propagate local changes to remote tabs, windows and workers via BroadcastChannel\n //\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, (changedParts) => {\n if (!propagatingLocally) {\n bc.postMessage(changedParts);\n }\n });\n}\n","import { Dexie } from \"./classes/dexie\";\nimport { connections } from \"./globals/constants\";\nimport { debug } from \"./helpers/debug\";\nimport { RangeSet } from \"./helpers/rangeset\";\nimport { bc, createBC } from \"./live-query/enable-broadcast\";\nimport { propagateLocally } from \"./live-query/propagate-locally\";\n\n\nif (typeof addEventListener !== 'undefined') {\n addEventListener('pagehide', (event) => {\n if (!Dexie.disableBfCache && event.persisted) {\n if (debug) console.debug('Dexie: handling persisted pagehide');\n bc?.close();\n for (const db of connections) {\n db.close({disableAutoOpen: false});\n }\n }\n });\n addEventListener('pageshow', (event) => {\n if (!Dexie.disableBfCache && event.persisted) {\n if (debug) console.debug('Dexie: handling persisted pageshow');\n createBC();\n propagateLocally({all: new RangeSet(-Infinity, [[]])}); // Trigger all queries to requery\n }\n });\n}\n","import { PropModification } from \"../../helpers/prop-modification\";\n\nexport function add(value: number | bigint | Array<string | number>) {\n return new PropModification({add: value});\n}\n","import { PropModification } from \"../../helpers/prop-modification\";\n\nexport function remove(value: number | bigint | Array<string | number>) {\n return new PropModification({remove: value});\n}\n","import { PropModification } from \"../../helpers/prop-modification\";\n\nexport function replacePrefix(a: string, b:string) {\n return new PropModification({replacePrefix: [a, b]});\n}\n","import { Dexie } from './classes/dexie';\nimport { DexieConstructor } from './public/types/dexie-constructor';\nimport { DexiePromise } from './helpers/promise';\nimport { mapError } from './errors';\nimport * as Debug from './helpers/debug';\nimport { dexieStackFrameFilter } from './globals/constants';\n\n// Generate all static properties such as Dexie.maxKey etc\n// (implement interface DexieConstructor):\nimport './classes/dexie/dexie-static-props';\nimport './live-query/enable-broadcast';\nimport './support-bfcache';\nimport { liveQuery } from './live-query/live-query';\nimport { Entity } from './classes/entity/Entity';\nimport { cmp } from './functions/cmp';\nimport { PropModification } from './helpers/prop-modification';\nimport { replacePrefix, add, remove } from './functions/propmods';\n\n\n// Set rejectionMapper of DexiePromise so that it generally tries to map\n// DOMErrors and DOMExceptions to a DexieError instance with same name but with\n// async stack support and with a prototypal inheritance from DexieError and Error.\n// of Map DOMErrors and DOMExceptions to corresponding Dexie errors.\nDexiePromise.rejectionMapper = mapError;\n\n// Let the async stack filter focus on app code and filter away frames from dexie.min.js:\nDebug.setDebug(Debug.debug, dexieStackFrameFilter);\n\nexport { RangeSet, mergeRanges, rangesOverlap } from \"./helpers/rangeset\";\nexport { Dexie, liveQuery }; // Comply with public/index.d.ts.\nexport { Entity };\nexport { cmp };\nexport { PropModification, replacePrefix, add, remove };\nexport default Dexie;\n","// Issue #1127. Need another index.ts for the UMD module with only a default export\n// like it was before.\n// In practice though, the UMD export will also export the named export in \n// https://github.com/dfahlander/Dexie.js/blob/c9187ae60c0d7a424f85bab3af179fbbc9901c8e/src/classes/dexie/dexie-static-props.ts#L223-L228\nimport Dexie from \"./index\";\nimport * as namedExports from \"./index\";\nimport { __assign } from 'tslib';\n__assign(Dexie, namedExports, {default: Dexie});\nexport default Dexie;\n","function extendedTypeof(val) {\n if (val === null) {\n return \"null\";\n }\n if (Array.isArray(val)) {\n return \"array\";\n }\n return typeof val;\n}\nfunction isObject(val) {\n return extendedTypeof(val) === \"object\";\n}\nfunction isAsyncIterable(val) {\n return typeof Object(val)[Symbol.asyncIterator] === \"function\";\n}\nfunction isAsyncGenerator(val) {\n return isObject(val) && typeof Object(val)[Symbol.asyncIterator] === \"function\" && typeof val.return === \"function\";\n}\nfunction areGraphQLFormattedErrors(obj) {\n return Array.isArray(obj) && // must be at least one error\n obj.length > 0 && // error has at least a message\n obj.every((ob) => \"message\" in ob);\n}\nfunction limitCloseReason(reason, whenTooLong) {\n return reason.length < 124 ? reason : whenTooLong;\n}\n\nconst GRAPHQL_TRANSPORT_WS_PROTOCOL = \"graphql-transport-ws\";\nconst DEPRECATED_GRAPHQL_WS_PROTOCOL = \"graphql-ws\";\nvar CloseCode = /* @__PURE__ */ ((CloseCode2) => {\n CloseCode2[CloseCode2[\"InternalServerError\"] = 4500] = \"InternalServerError\";\n CloseCode2[CloseCode2[\"InternalClientError\"] = 4005] = \"InternalClientError\";\n CloseCode2[CloseCode2[\"BadRequest\"] = 4400] = \"BadRequest\";\n CloseCode2[CloseCode2[\"BadResponse\"] = 4004] = \"BadResponse\";\n CloseCode2[CloseCode2[\"Unauthorized\"] = 4401] = \"Unauthorized\";\n CloseCode2[CloseCode2[\"Forbidden\"] = 4403] = \"Forbidden\";\n CloseCode2[CloseCode2[\"SubprotocolNotAcceptable\"] = 4406] = \"SubprotocolNotAcceptable\";\n CloseCode2[CloseCode2[\"ConnectionInitialisationTimeout\"] = 4408] = \"ConnectionInitialisationTimeout\";\n CloseCode2[CloseCode2[\"ConnectionAcknowledgementTimeout\"] = 4504] = \"ConnectionAcknowledgementTimeout\";\n CloseCode2[CloseCode2[\"SubscriberAlreadyExists\"] = 4409] = \"SubscriberAlreadyExists\";\n CloseCode2[CloseCode2[\"TooManyInitialisationRequests\"] = 4429] = \"TooManyInitialisationRequests\";\n return CloseCode2;\n})(CloseCode || {});\nvar MessageType = /* @__PURE__ */ ((MessageType2) => {\n MessageType2[\"ConnectionInit\"] = \"connection_init\";\n MessageType2[\"ConnectionAck\"] = \"connection_ack\";\n MessageType2[\"Ping\"] = \"ping\";\n MessageType2[\"Pong\"] = \"pong\";\n MessageType2[\"Subscribe\"] = \"subscribe\";\n MessageType2[\"Next\"] = \"next\";\n MessageType2[\"Error\"] = \"error\";\n MessageType2[\"Complete\"] = \"complete\";\n return MessageType2;\n})(MessageType || {});\nfunction validateMessage(val) {\n if (!isObject(val)) {\n throw new Error(\n `Message is expected to be an object, but got ${extendedTypeof(val)}`\n );\n }\n if (!val.type) {\n throw new Error(`Message is missing the 'type' property`);\n }\n if (typeof val.type !== \"string\") {\n throw new Error(\n `Message is expects the 'type' property to be a string, but got ${extendedTypeof(\n val.type\n )}`\n );\n }\n switch (val.type) {\n case \"connection_init\" /* ConnectionInit */:\n case \"connection_ack\" /* ConnectionAck */:\n case \"ping\" /* Ping */:\n case \"pong\" /* Pong */: {\n if (val.payload != null && !isObject(val.payload)) {\n throw new Error(\n `\"${val.type}\" message expects the 'payload' property to be an object or nullish or missing, but got \"${val.payload}\"`\n );\n }\n break;\n }\n case \"subscribe\" /* Subscribe */: {\n if (typeof val.id !== \"string\") {\n throw new Error(\n `\"${val.type}\" message expects the 'id' property to be a string, but got ${extendedTypeof(\n val.id\n )}`\n );\n }\n if (!val.id) {\n throw new Error(\n `\"${val.type}\" message requires a non-empty 'id' property`\n );\n }\n if (!isObject(val.payload)) {\n throw new Error(\n `\"${val.type}\" message expects the 'payload' property to be an object, but got ${extendedTypeof(\n val.payload\n )}`\n );\n }\n if (typeof val.payload.query !== \"string\") {\n throw new Error(\n `\"${val.type}\" message payload expects the 'query' property to be a string, but got ${extendedTypeof(\n val.payload.query\n )}`\n );\n }\n if (val.payload.variables != null && !isObject(val.payload.variables)) {\n throw new Error(\n `\"${val.type}\" message payload expects the 'variables' property to be a an object or nullish or missing, but got ${extendedTypeof(\n val.payload.variables\n )}`\n );\n }\n if (val.payload.operationName != null && extendedTypeof(val.payload.operationName) !== \"string\") {\n throw new Error(\n `\"${val.type}\" message payload expects the 'operationName' property to be a string or nullish or missing, but got ${extendedTypeof(\n val.payload.operationName\n )}`\n );\n }\n if (val.payload.extensions != null && !isObject(val.payload.extensions)) {\n throw new Error(\n `\"${val.type}\" message payload expects the 'extensions' property to be a an object or nullish or missing, but got ${extendedTypeof(\n val.payload.extensions\n )}`\n );\n }\n break;\n }\n case \"next\" /* Next */: {\n if (typeof val.id !== \"string\") {\n throw new Error(\n `\"${val.type}\" message expects the 'id' property to be a string, but got ${extendedTypeof(\n val.id\n )}`\n );\n }\n if (!val.id) {\n throw new Error(\n `\"${val.type}\" message requires a non-empty 'id' property`\n );\n }\n if (!isObject(val.payload)) {\n throw new Error(\n `\"${val.type}\" message expects the 'payload' property to be an object, but got ${extendedTypeof(\n val.payload\n )}`\n );\n }\n break;\n }\n case \"error\" /* Error */: {\n if (typeof val.id !== \"string\") {\n throw new Error(\n `\"${val.type}\" message expects the 'id' property to be a string, but got ${extendedTypeof(\n val.id\n )}`\n );\n }\n if (!val.id) {\n throw new Error(\n `\"${val.type}\" message requires a non-empty 'id' property`\n );\n }\n if (!areGraphQLFormattedErrors(val.payload)) {\n throw new Error(\n `\"${val.type}\" message expects the 'payload' property to be an array of GraphQL errors, but got ${JSON.stringify(\n val.payload\n )}`\n );\n }\n break;\n }\n case \"complete\" /* Complete */: {\n if (typeof val.id !== \"string\") {\n throw new Error(\n `\"${val.type}\" message expects the 'id' property to be a string, but got ${extendedTypeof(\n val.id\n )}`\n );\n }\n if (!val.id) {\n throw new Error(\n `\"${val.type}\" message requires a non-empty 'id' property`\n );\n }\n break;\n }\n default:\n throw new Error(`Invalid message 'type' property \"${val.type}\"`);\n }\n return val;\n}\nfunction parseMessage(data, reviver) {\n return validateMessage(\n typeof data === \"string\" ? JSON.parse(data, reviver) : data\n );\n}\nfunction stringifyMessage(msg, replacer) {\n validateMessage(msg);\n return JSON.stringify(msg, replacer);\n}\n\nexport { CloseCode as C, DEPRECATED_GRAPHQL_WS_PROTOCOL as D, GRAPHQL_TRANSPORT_WS_PROTOCOL as G, MessageType as M, isAsyncGenerator as a, isAsyncIterable as b, isObject as i, limitCloseReason as l, parseMessage as p, stringifyMessage as s, validateMessage as v };\n","import { i as isObject, G as GRAPHQL_TRANSPORT_WS_PROTOCOL, s as stringifyMessage, M as MessageType, C as CloseCode, l as limitCloseReason, p as parseMessage } from './common-CGW11Fyb.js';\nexport { D as DEPRECATED_GRAPHQL_WS_PROTOCOL, v as validateMessage } from './common-CGW11Fyb.js';\n\nfunction createClient(options) {\n const {\n url,\n connectionParams,\n lazy = true,\n onNonLazyError = console.error,\n lazyCloseTimeout: lazyCloseTimeoutMs = 0,\n keepAlive = 0,\n disablePong,\n connectionAckWaitTimeout = 0,\n retryAttempts = 5,\n retryWait = async function randomisedExponentialBackoff(retries2) {\n const retryDelaySeconds = Math.pow(2, retries2);\n await new Promise(\n (resolve) => setTimeout(\n resolve,\n retryDelaySeconds * 1e3 + // add random timeout from 300ms to 3s\n Math.floor(Math.random() * (3e3 - 300) + 300)\n )\n );\n },\n shouldRetry = isLikeCloseEvent,\n on,\n webSocketImpl,\n /**\n * Generates a v4 UUID to be used as the ID using `Math`\n * as the random number generator. Supply your own generator\n * in case you need more uniqueness.\n *\n * Reference: https://gist.github.com/jed/982883\n */\n generateID = function generateUUID() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0, v = c == \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n },\n jsonMessageReplacer: replacer,\n jsonMessageReviver: reviver\n } = options;\n let ws;\n if (webSocketImpl) {\n if (!isWebSocket(webSocketImpl)) {\n throw new Error(\"Invalid WebSocket implementation provided\");\n }\n ws = webSocketImpl;\n } else if (typeof WebSocket !== \"undefined\") {\n ws = WebSocket;\n } else if (typeof global !== \"undefined\") {\n ws = global.WebSocket || // @ts-expect-error: Support more browsers\n global.MozWebSocket;\n } else if (typeof window !== \"undefined\") {\n ws = window.WebSocket || // @ts-expect-error: Support more browsers\n window.MozWebSocket;\n }\n if (!ws)\n throw new Error(\n \"WebSocket implementation missing; on Node you can `import WebSocket from 'ws';` and pass `webSocketImpl: WebSocket` to `createClient`\"\n );\n const WebSocketImpl = ws;\n const emitter = (() => {\n const message = /* @__PURE__ */ (() => {\n const listeners2 = {};\n return {\n on(id, listener) {\n listeners2[id] = listener;\n return () => {\n delete listeners2[id];\n };\n },\n emit(message2) {\n if (\"id\" in message2) listeners2[message2.id]?.(message2);\n }\n };\n })();\n const listeners = {\n connecting: on?.connecting ? [on.connecting] : [],\n opened: on?.opened ? [on.opened] : [],\n connected: on?.connected ? [on.connected] : [],\n ping: on?.ping ? [on.ping] : [],\n pong: on?.pong ? [on.pong] : [],\n message: on?.message ? [message.emit, on.message] : [message.emit],\n closed: on?.closed ? [on.closed] : [],\n error: on?.error ? [on.error] : []\n };\n return {\n onMessage: message.on,\n on(event, listener) {\n const l = listeners[event];\n l.push(listener);\n return () => {\n l.splice(l.indexOf(listener), 1);\n };\n },\n emit(event, ...args) {\n for (const listener of [...listeners[event]]) {\n listener(...args);\n }\n }\n };\n })();\n function errorOrClosed(cb) {\n const listening = [\n // errors are fatal and more critical than close events, throw them first\n emitter.on(\"error\", (err) => {\n listening.forEach((unlisten) => unlisten());\n cb(err);\n }),\n // closes can be graceful and not fatal, throw them second (if error didnt throw)\n emitter.on(\"closed\", (event) => {\n listening.forEach((unlisten) => unlisten());\n cb(event);\n })\n ];\n }\n let connecting, locks = 0, lazyCloseTimeout, retrying = false, retries = 0, disposed = false;\n async function connect() {\n clearTimeout(lazyCloseTimeout);\n const [socket, throwOnClose] = await (connecting ?? (connecting = new Promise(\n (connected, denied) => (async () => {\n if (retrying) {\n await retryWait(retries);\n if (!locks) {\n connecting = void 0;\n return denied({ code: 1e3, reason: \"All Subscriptions Gone\" });\n }\n retries++;\n }\n emitter.emit(\"connecting\", retrying);\n const socket2 = new WebSocketImpl(\n typeof url === \"function\" ? await url() : url,\n GRAPHQL_TRANSPORT_WS_PROTOCOL\n );\n let connectionAckTimeout, queuedPing;\n function enqueuePing() {\n if (isFinite(keepAlive) && keepAlive > 0) {\n clearTimeout(queuedPing);\n queuedPing = setTimeout(() => {\n if (socket2.readyState === WebSocketImpl.OPEN) {\n socket2.send(stringifyMessage({ type: MessageType.Ping }));\n emitter.emit(\"ping\", false, void 0);\n }\n }, keepAlive);\n }\n }\n errorOrClosed((errOrEvent) => {\n connecting = void 0;\n clearTimeout(connectionAckTimeout);\n clearTimeout(queuedPing);\n denied(errOrEvent);\n if (errOrEvent instanceof TerminatedCloseEvent) {\n socket2.close(4499, \"Terminated\");\n socket2.onerror = null;\n socket2.onclose = null;\n }\n });\n socket2.onerror = (err) => emitter.emit(\"error\", err);\n socket2.onclose = (event) => emitter.emit(\"closed\", event);\n socket2.onopen = async () => {\n try {\n emitter.emit(\"opened\", socket2);\n const payload = typeof connectionParams === \"function\" ? await connectionParams() : connectionParams;\n if (socket2.readyState !== WebSocketImpl.OPEN) return;\n socket2.send(\n stringifyMessage(\n payload ? {\n type: MessageType.ConnectionInit,\n payload\n } : {\n type: MessageType.ConnectionInit\n // payload is completely absent if not provided\n },\n replacer\n )\n );\n if (isFinite(connectionAckWaitTimeout) && connectionAckWaitTimeout > 0) {\n connectionAckTimeout = setTimeout(() => {\n socket2.close(\n CloseCode.ConnectionAcknowledgementTimeout,\n \"Connection acknowledgement timeout\"\n );\n }, connectionAckWaitTimeout);\n }\n enqueuePing();\n } catch (err) {\n emitter.emit(\"error\", err);\n socket2.close(\n CloseCode.InternalClientError,\n limitCloseReason(\n err instanceof Error ? err.message : String(err),\n \"Internal client error\"\n )\n );\n }\n };\n let acknowledged = false;\n socket2.onmessage = ({ data }) => {\n try {\n const message = parseMessage(data, reviver);\n emitter.emit(\"message\", message);\n if (message.type === \"ping\" || message.type === \"pong\") {\n emitter.emit(message.type, true, message.payload);\n if (message.type === \"pong\") {\n enqueuePing();\n } else if (!disablePong) {\n socket2.send(\n stringifyMessage(\n message.payload ? {\n type: MessageType.Pong,\n payload: message.payload\n } : {\n type: MessageType.Pong\n // payload is completely absent if not provided\n }\n )\n );\n emitter.emit(\"pong\", false, message.payload);\n }\n return;\n }\n if (acknowledged) return;\n if (message.type !== MessageType.ConnectionAck)\n throw new Error(\n `First message cannot be of type ${message.type}`\n );\n clearTimeout(connectionAckTimeout);\n acknowledged = true;\n emitter.emit(\"connected\", socket2, message.payload, retrying);\n retrying = false;\n retries = 0;\n connected([\n socket2,\n new Promise((_, reject) => errorOrClosed(reject))\n ]);\n } catch (err) {\n socket2.onmessage = null;\n emitter.emit(\"error\", err);\n socket2.close(\n CloseCode.BadResponse,\n limitCloseReason(\n err instanceof Error ? err.message : String(err),\n \"Bad response\"\n )\n );\n }\n };\n })()\n )));\n if (socket.readyState === WebSocketImpl.CLOSING) await throwOnClose;\n let release = () => {\n };\n const released = new Promise((resolve) => release = resolve);\n return [\n socket,\n release,\n Promise.race([\n // wait for\n released.then(() => {\n if (!locks) {\n const complete = () => socket.close(1e3, \"Normal Closure\");\n if (isFinite(lazyCloseTimeoutMs) && lazyCloseTimeoutMs > 0) {\n lazyCloseTimeout = setTimeout(() => {\n if (socket.readyState === WebSocketImpl.OPEN) complete();\n }, lazyCloseTimeoutMs);\n } else {\n complete();\n }\n }\n }),\n // or\n throwOnClose\n ])\n ];\n }\n function shouldRetryConnectOrThrow(errOrCloseEvent) {\n if (isLikeCloseEvent(errOrCloseEvent) && (isFatalInternalCloseCode(errOrCloseEvent.code) || [\n CloseCode.InternalServerError,\n CloseCode.InternalClientError,\n CloseCode.BadRequest,\n CloseCode.BadResponse,\n CloseCode.Unauthorized,\n // CloseCode.Forbidden, might grant access out after retry\n CloseCode.SubprotocolNotAcceptable,\n // CloseCode.ConnectionInitialisationTimeout, might not time out after retry\n // CloseCode.ConnectionAcknowledgementTimeout, might not time out after retry\n CloseCode.SubscriberAlreadyExists,\n CloseCode.TooManyInitialisationRequests\n // 4499, // Terminated, probably because the socket froze, we want to retry\n ].includes(errOrCloseEvent.code)))\n throw errOrCloseEvent;\n if (disposed) return false;\n if (isLikeCloseEvent(errOrCloseEvent) && errOrCloseEvent.code === 1e3)\n return locks > 0;\n if (!retryAttempts || retries >= retryAttempts) throw errOrCloseEvent;\n if (!shouldRetry(errOrCloseEvent)) throw errOrCloseEvent;\n return retrying = true;\n }\n if (!lazy) {\n (async () => {\n locks++;\n for (; ; ) {\n try {\n const [, , throwOnClose] = await connect();\n await throwOnClose;\n } catch (errOrCloseEvent) {\n try {\n if (!shouldRetryConnectOrThrow(errOrCloseEvent)) return;\n } catch (errOrCloseEvent2) {\n return onNonLazyError?.(errOrCloseEvent2);\n }\n }\n }\n })();\n }\n function subscribe(payload, sink) {\n const id = generateID(payload);\n let done = false, errored = false, releaser = () => {\n locks--;\n done = true;\n };\n (async () => {\n locks++;\n for (; ; ) {\n try {\n const [socket, release, waitForReleaseOrThrowOnClose] = await connect();\n if (done) return release();\n const unlisten = emitter.onMessage(id, (message) => {\n switch (message.type) {\n case MessageType.Next: {\n sink.next(message.payload);\n return;\n }\n case MessageType.Error: {\n errored = true, done = true;\n sink.error(message.payload);\n releaser();\n return;\n }\n case MessageType.Complete: {\n done = true;\n releaser();\n return;\n }\n }\n });\n socket.send(\n stringifyMessage(\n {\n id,\n type: MessageType.Subscribe,\n payload\n },\n replacer\n )\n );\n releaser = () => {\n if (!done && socket.readyState === WebSocketImpl.OPEN)\n socket.send(\n stringifyMessage(\n {\n id,\n type: MessageType.Complete\n },\n replacer\n )\n );\n locks--;\n done = true;\n release();\n };\n await waitForReleaseOrThrowOnClose.finally(unlisten);\n return;\n } catch (errOrCloseEvent) {\n if (!shouldRetryConnectOrThrow(errOrCloseEvent)) return;\n }\n }\n })().then(() => {\n if (!errored) sink.complete();\n }).catch((err) => {\n sink.error(err);\n });\n return () => {\n if (!done) releaser();\n };\n }\n return {\n on: emitter.on,\n subscribe,\n iterate(request) {\n const pending = [];\n const deferred = {\n done: false,\n error: null,\n resolve: () => {\n }\n };\n const dispose = subscribe(request, {\n next(val) {\n pending.push(val);\n deferred.resolve();\n },\n error(err) {\n deferred.done = true;\n deferred.error = err;\n deferred.resolve();\n },\n complete() {\n deferred.done = true;\n deferred.resolve();\n }\n });\n const iterator = async function* iterator2() {\n for (; ; ) {\n if (!pending.length) {\n await new Promise((resolve) => deferred.resolve = resolve);\n }\n while (pending.length) {\n yield pending.shift();\n }\n if (deferred.error) {\n throw deferred.error;\n }\n if (deferred.done) {\n return;\n }\n }\n }();\n iterator.throw = async (err) => {\n if (!deferred.done) {\n deferred.done = true;\n deferred.error = err;\n deferred.resolve();\n }\n return { done: true, value: void 0 };\n };\n iterator.return = async () => {\n dispose();\n return { done: true, value: void 0 };\n };\n return iterator;\n },\n async dispose() {\n disposed = true;\n if (connecting) {\n const [socket] = await connecting;\n socket.close(1e3, \"Normal Closure\");\n }\n },\n terminate() {\n if (connecting) {\n emitter.emit(\"closed\", new TerminatedCloseEvent());\n }\n }\n };\n}\nclass TerminatedCloseEvent extends Error {\n name = \"TerminatedCloseEvent\";\n message = \"4499: Terminated\";\n code = 4499;\n reason = \"Terminated\";\n wasClean = false;\n}\nfunction isLikeCloseEvent(val) {\n return isObject(val) && \"code\" in val && \"reason\" in val;\n}\nfunction isFatalInternalCloseCode(code) {\n if ([\n 1e3,\n // Normal Closure is not an erroneous close code\n 1001,\n // Going Away\n 1006,\n // Abnormal Closure\n 1005,\n // No Status Received\n 1012,\n // Service Restart\n 1013,\n // Try Again Later\n 1014\n // Bad Gateway\n ].includes(code))\n return false;\n return code >= 1e3 && code <= 1999;\n}\nfunction isWebSocket(val) {\n return typeof val === \"function\" && \"constructor\" in val && \"CLOSED\" in val && \"CLOSING\" in val && \"CONNECTING\" in val && \"OPEN\" in val;\n}\n\nexport { CloseCode, GRAPHQL_TRANSPORT_WS_PROTOCOL, MessageType, TerminatedCloseEvent, createClient, parseMessage, stringifyMessage };\n","import type { DocumentNode } from 'graphql';\nimport { print } from 'graphql';\nimport { createClient, type Client as WsClient } from 'graphql-ws';\nimport {\n\tcreateGraphQLError,\n\tDvinaAuthenticationError,\n\tDvinaError,\n\tDvinaGraphQLError,\n\tGRAPHQL_ERROR_CODES,\n} from '../error.js';\nimport type { GraphQLErrorEntry } from '../error.js';\n\n// ─── Types ───────────────────────────────────────────────────────────────────\n\nexport interface WsTransportOptions {\n\t/** Full GraphQL WebSocket endpoint URL (e.g. 'wss://api.dvina.ai/graphql') */\n\turl: string;\n\t/**\n\t * Returns an auth token.\n\t * When called with `{ forceRefresh: true }`, the callback must bypass any\n\t * cache and obtain a brand-new token (e.g. via Auth0's silent refresh).\n\t */\n\tgetToken: (options?: { forceRefresh?: boolean }) => Promise<string>;\n\t/** Returns the preferred language, or undefined */\n\tgetLanguage: () => string | undefined;\n\t/** Returns the user's IANA timezone when available. */\n\tgetUserTimezone?: () => string | undefined;\n\t/**\n\t * Optional global error callback. Called with terminal typed errors that are\n\t * about to be thrown to the consumer.\n\t */\n\tonError?: (error: DvinaError) => void;\n}\n\nexport interface WsTransport {\n\t/** The underlying graphql-ws client (for lifecycle management) */\n\tclient: WsClient;\n\t/** Subscribe to a GraphQL subscription, returns an AsyncIterable of results */\n\tsubscribe: <T>(document: DocumentNode, variables?: Record<string, unknown>) => AsyncIterable<T>;\n\t/** Terminate the WebSocket connection (e.g. after token refresh) */\n\tterminate: () => void;\n}\n\nconst NON_AUTH_CODES = new Set<string>([\n\tGRAPHQL_ERROR_CODES.SESSION_TOKEN_LIMIT_REACHED,\n\tGRAPHQL_ERROR_CODES.STORAGE_LIMIT_REACHED,\n\tGRAPHQL_ERROR_CODES.DEEP_ANALYSIS_LIMIT_EXCEEDED,\n\tGRAPHQL_ERROR_CODES.PLAN_DETAIL_RESTRICTION,\n\tGRAPHQL_ERROR_CODES.RESOURCE_NOT_FOUND,\n]);\n\nconst MAX_SUBSCRIPTION_AUTH_RETRIES = 1;\n\nfunction isGraphQLErrorEntry(value: unknown): value is GraphQLErrorEntry {\n\treturn typeof value === 'object' && value !== null && typeof (value as { message?: unknown }).message === 'string';\n}\n\nfunction extractGraphQLErrors(value: unknown): GraphQLErrorEntry[] | undefined {\n\tif (!Array.isArray(value)) {\n\t\treturn undefined;\n\t}\n\n\tconst errors = value.filter(isGraphQLErrorEntry);\n\treturn errors.length > 0 ? errors : undefined;\n}\n\nfunction normalizeSubscriptionError(error: unknown, query: string, variables?: Record<string, unknown>): unknown {\n\tconst errors = extractGraphQLErrors(error);\n\tif (errors?.length) {\n\t\treturn createGraphQLError(errors, query, variables);\n\t}\n\n\treturn error;\n}\n\nfunction isAuthError(errors?: readonly GraphQLErrorEntry[]): boolean {\n\tif (!errors?.length) {\n\t\treturn false;\n\t}\n\n\tfor (const err of errors) {\n\t\tconst rawCode = err.extensions?.['code'];\n\t\tif (rawCode !== undefined && rawCode !== null) {\n\t\t\tif (rawCode === 4401 || rawCode === '4401') {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst code = String(rawCode).toUpperCase();\n\t\t\tif (NON_AUTH_CODES.has(code)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (code === 'UNAUTHORIZED' || code === 'UNAUTHENTICATED') {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tif (err.message === 'Unauthorized') {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n// ─── WebSocket Transport ─────────────────────────────────────────────────────\n\n/**\n * Create a graphql-ws based subscription transport with:\n * - Auth token in connectionParams\n * - Language header in connectionParams\n * - Auto-reconnect with exponential backoff\n * - Token refresh on 4401 close code\n * - Keep-alive (30s)\n */\nexport function createWsTransport(options: WsTransportOptions): WsTransport {\n\tlet lastCloseCode: number | null = null;\n\tlet nextToken: string | undefined;\n\tlet currentToken: string | undefined;\n\tlet refreshPromise: Promise<void> | null = null;\n\n\tasync function refreshToken(): Promise<void> {\n\t\tif (!refreshPromise) {\n\t\t\tconst failedToken = currentToken;\n\t\t\trefreshPromise = options\n\t\t\t\t.getToken({ forceRefresh: true })\n\t\t\t\t.then((token) => {\n\t\t\t\t\tif (!token || token === failedToken) {\n\t\t\t\t\t\tthrow new DvinaAuthenticationError('Token refresh did not produce a new token', failedToken);\n\t\t\t\t\t}\n\n\t\t\t\t\tnextToken = token;\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\trefreshPromise = null;\n\t\t\t\t});\n\t\t}\n\n\t\treturn refreshPromise;\n\t}\n\n\tasync function prepareSubscriptionConnection(): Promise<void> {\n\t\tconst token = nextToken ?? (await options.getToken());\n\n\t\tif (!currentToken) {\n\t\t\tnextToken = token;\n\t\t\treturn;\n\t\t}\n\n\t\tif (token === currentToken) {\n\t\t\treturn;\n\t\t}\n\n\t\tnextToken = token;\n\t\tclient.terminate();\n\t}\n\n\tconst client = createClient({\n\t\turl: options.url,\n\t\tconnectionParams: async () => {\n\t\t\tconst token = nextToken ?? (await options.getToken());\n\t\t\tcurrentToken = token;\n\t\t\tnextToken = undefined;\n\t\t\tconst lang = options.getLanguage();\n\t\t\tconst userTimezone = options.getUserTimezone?.();\n\t\t\treturn {\n\t\t\t\t...(token && { authorization: `Bearer ${token}` }),\n\t\t\t\t...(lang && { 'x-preferred-language': lang }),\n\t\t\t\t...(userTimezone && { 'x-user-timezone': userTimezone }),\n\t\t\t};\n\t\t},\n\t\tshouldRetry: () => true,\n\t\tkeepAlive: 30_000,\n\t\tretryWait: async (attempt: number) => {\n\t\t\t// If closed with 4401 (auth error), refresh token before reconnecting\n\t\t\tif (lastCloseCode === 4401) {\n\t\t\t\tlastCloseCode = null;\n\n\t\t\t\ttry {\n\t\t\t\t\tawait refreshToken();\n\t\t\t\t} catch {\n\t\t\t\t\t// Token refresh failed — will retry on next attempt\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Exponential backoff with cap: 200ms, 400ms, 800ms, 1600ms, 2000ms, ...\n\t\t\tconst delay = Math.min(200 * Math.pow(2, attempt - 1), 2000);\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\n\t\t},\n\t\ton: {\n\t\t\tclosed: (event) => {\n\t\t\t\tlastCloseCode = (event as CloseEvent).code;\n\t\t\t},\n\t\t},\n\t});\n\n\tfunction subscribe<T>(document: DocumentNode, variables?: Record<string, unknown>): AsyncIterable<T> {\n\t\tconst query = print(document);\n\n\t\tconst subscribeOnce = (): AsyncIterable<T> => ({\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\tconst queue: T[] = [];\n\t\t\t\tlet pending: {\n\t\t\t\t\tresolve: (value: IteratorResult<T>) => void;\n\t\t\t\t\treject: (reason?: unknown) => void;\n\t\t\t\t} | null = null;\n\t\t\t\tlet done = false;\n\t\t\t\tlet error: unknown = null;\n\t\t\t\tlet unsubscribe: () => void = () => undefined;\n\n\t\t\t\tconst finishWithError = (terminalError: unknown): void => {\n\t\t\t\t\terror = terminalError;\n\t\t\t\t\tdone = true;\n\t\t\t\t\tif (pending) {\n\t\t\t\t\t\tpending.reject(terminalError);\n\t\t\t\t\t\tpending = null;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst finish = (): void => {\n\t\t\t\t\tdone = true;\n\t\t\t\t\tif (pending) {\n\t\t\t\t\t\tpending.resolve({ value: undefined as any, done: true });\n\t\t\t\t\t\tpending = null;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tunsubscribe = client.subscribe<T>(\n\t\t\t\t\t{\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\tvariables: variables as Record<string, unknown>,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tnext: (value) => {\n\t\t\t\t\t\t\tif (done) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst graphQLErrors = extractGraphQLErrors((value as { errors?: unknown }).errors);\n\t\t\t\t\t\t\tif (graphQLErrors?.length && !value.data) {\n\t\t\t\t\t\t\t\tconst terminalError = createGraphQLError(graphQLErrors, query, variables);\n\t\t\t\t\t\t\t\tfinishWithError(terminalError);\n\t\t\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (value.data) {\n\t\t\t\t\t\t\t\tif (pending) {\n\t\t\t\t\t\t\t\t\tpending.resolve({ value: value.data, done: false });\n\t\t\t\t\t\t\t\t\tpending = null;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tqueue.push(value.data);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: (err) => {\n\t\t\t\t\t\t\tif (done) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst terminalError = normalizeSubscriptionError(err, query, variables);\n\t\t\t\t\t\t\tfinishWithError(terminalError);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcomplete: () => {\n\t\t\t\t\t\t\tif (done) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfinish();\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tnext(): Promise<IteratorResult<T>> {\n\t\t\t\t\t\tif (queue.length > 0) {\n\t\t\t\t\t\t\treturn Promise.resolve({ value: queue.shift()!, done: false });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (done) {\n\t\t\t\t\t\t\tif (error) return Promise.reject(error);\n\t\t\t\t\t\t\treturn Promise.resolve({ value: undefined as any, done: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn new Promise<IteratorResult<T>>((resolve, reject) => {\n\t\t\t\t\t\t\tpending = { resolve, reject };\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\treturn(): Promise<IteratorResult<T>> {\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\tpending?.resolve({ value: undefined as any, done: true });\n\t\t\t\t\t\tpending = null;\n\t\t\t\t\t\treturn Promise.resolve({ value: undefined as any, done: true });\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\tlet authRetryCount = 0;\n\t\t\t\tlet attemptYieldedValue = false;\n\t\t\t\tlet currentIterator: AsyncIterator<T> | null = null;\n\n\t\t\t\tconst ensureIterator = async () => {\n\t\t\t\t\tif (currentIterator) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tawait prepareSubscriptionConnection();\n\t\t\t\t\tcurrentIterator = subscribeOnce()[Symbol.asyncIterator]();\n\t\t\t\t};\n\n\t\t\t\treturn {\n\t\t\t\t\tasync next(): Promise<IteratorResult<T>> {\n\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\tawait ensureIterator();\n\t\t\t\t\t\t\tconst iterator = currentIterator;\n\n\t\t\t\t\t\t\tif (!iterator) {\n\t\t\t\t\t\t\t\tthrow new DvinaAuthenticationError('Subscription iterator could not be initialized');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst result = await iterator.next();\n\t\t\t\t\t\t\t\tif (!result.done) {\n\t\t\t\t\t\t\t\t\tattemptYieldedValue = true;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tconst isSubscriptionAuthError =\n\t\t\t\t\t\t\t\t\terror instanceof DvinaGraphQLError && isAuthError(error.errors);\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tisSubscriptionAuthError &&\n\t\t\t\t\t\t\t\t\t!attemptYieldedValue &&\n\t\t\t\t\t\t\t\t\tauthRetryCount < MAX_SUBSCRIPTION_AUTH_RETRIES\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tauthRetryCount += 1;\n\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tawait refreshToken();\n\t\t\t\t\t\t\t\t\t\tclient.terminate();\n\t\t\t\t\t\t\t\t\t\tattemptYieldedValue = false;\n\t\t\t\t\t\t\t\t\t\tcurrentIterator = subscribeOnce()[Symbol.asyncIterator]();\n\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t} catch (refreshError) {\n\t\t\t\t\t\t\t\t\t\tconst terminalError =\n\t\t\t\t\t\t\t\t\t\t\trefreshError instanceof DvinaError\n\t\t\t\t\t\t\t\t\t\t\t\t? refreshError\n\t\t\t\t\t\t\t\t\t\t\t\t: new DvinaAuthenticationError('Token refresh failed', currentToken);\n\t\t\t\t\t\t\t\t\t\toptions.onError?.(terminalError);\n\t\t\t\t\t\t\t\t\t\tthrow terminalError;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (isSubscriptionAuthError && authRetryCount > 0) {\n\t\t\t\t\t\t\t\t\tconst terminalError = new DvinaAuthenticationError(\n\t\t\t\t\t\t\t\t\t\t'Authentication failed after token refresh',\n\t\t\t\t\t\t\t\t\t\tcurrentToken,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\toptions.onError?.(terminalError);\n\t\t\t\t\t\t\t\t\tthrow terminalError;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (error instanceof DvinaError) {\n\t\t\t\t\t\t\t\t\toptions.onError?.(error);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tasync return(): Promise<IteratorResult<T>> {\n\t\t\t\t\t\tif (currentIterator && typeof currentIterator.return === 'function') {\n\t\t\t\t\t\t\treturn currentIterator.return();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn { value: undefined as any, done: true };\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\tclient,\n\t\tsubscribe,\n\t\tterminate: () => client.terminate(),\n\t};\n}\n","/* eslint-disable */\n/* tslint:disable */\n// Auto-generated by @dvina/codegen-sdk\n// Do not edit manually\n\nimport type { CacheRule } from './store/sync-engine.js';\n\n/**\n * SHA-256 fingerprint (first 16 hex chars) of the entity schema.\n * Changes whenever tables, primary keys, or indexes are modified.\n * Used at runtime to detect schema drift and auto-clear stale IndexedDB stores.\n */\nexport const SCHEMA_HASH = '04e320a007a4cbc3';\n\n/**\n * Dexie schema definitions for entity tables.\n * Generated from the GraphQL schema entity types.\n *\n * Convention: PK only (minimal indexing). Unique alternate keys\n * are prefixed with `&`. Compound keys use `[a+b]` syntax.\n */\nexport const DB_ENTITY_SCHEMA: Record<string, string> = {\n actions: 'id',\n agents: 'id',\n artifacts: 'id',\n chatMessages: 'id',\n chats: 'id',\n contentBlocks: 'id',\n contentMasks: 'id',\n cubeModels: 'id',\n databaseCatalogs: 'engineKey',\n databaseEngines: 'key',\n databases: 'id',\n deepAnalysisUsages: 'id',\n documentCatalogs: 'formatKey',\n documentContents: 'id',\n documentFormats: 'key',\n documents: 'id',\n feedback: 'id, &chatMessageId',\n files: 'id',\n folders: 'id',\n inferenceRequestAudits: 'id',\n insights: 'id',\n integrationCatalogs: 'providerKey',\n integrationProviders: 'key',\n integrations: 'id',\n interpretations: 'id',\n invocations: 'id',\n mcpClientInformations: 'id',\n mcpCodeVerifiers: 'id',\n mcpServers: 'id',\n mcpTokens: 'id',\n mcpTools: 'id',\n modelTokenUsages: 'id',\n notifications: 'id',\n pulseAppSummaryModels: 'integrationId',\n pulseEvents: 'id',\n pulseEventStatsModels: 'id',\n pulseTriggerSettingModels: '[integrationId+slug]',\n relations: 'id',\n reportMembers: '[reportId+insightId]',\n reports: 'id',\n resolvedFileUrls: 'id',\n syncEvents: 'id',\n tables: 'id',\n tokenUsages: 'id',\n usageWindowsStatusTypes: 'id',\n userSkillFileModels: 'id',\n userSkillFiles: 'id',\n userSkillFolderModels: 'id',\n userSkillFolders: 'id',\n windowDetailTypes: 'id',\n};\n\n/**\n * Maps GraphQL `__typename` to Dexie table name.\n * Generated from entity models discovered by codegen.\n */\nexport const TYPENAME_TO_TABLE: Record<string, string> = {\n Action: 'actions',\n Agent: 'agents',\n Artifact: 'artifacts',\n Chat: 'chats',\n ChatMessage: 'chatMessages',\n ContentBlock: 'contentBlocks',\n ContentMask: 'contentMasks',\n CubeModel: 'cubeModels',\n Database: 'databases',\n DatabaseCatalog: 'databaseCatalogs',\n DatabaseEngine: 'databaseEngines',\n DeepAnalysisUsage: 'deepAnalysisUsages',\n Document: 'documents',\n DocumentCatalog: 'documentCatalogs',\n DocumentContent: 'documentContents',\n DocumentFormat: 'documentFormats',\n Feedback: 'feedback',\n File: 'files',\n Folder: 'folders',\n InferenceRequestAudit: 'inferenceRequestAudits',\n Insight: 'insights',\n Integration: 'integrations',\n IntegrationCatalog: 'integrationCatalogs',\n IntegrationProvider: 'integrationProviders',\n Interpretation: 'interpretations',\n Invocation: 'invocations',\n McpClientInformation: 'mcpClientInformations',\n McpCodeVerifier: 'mcpCodeVerifiers',\n McpServer: 'mcpServers',\n McpTokens: 'mcpTokens',\n McpTool: 'mcpTools',\n ModelTokenUsage: 'modelTokenUsages',\n Notification: 'notifications',\n PulseAppSummaryModel: 'pulseAppSummaryModels',\n PulseEvent: 'pulseEvents',\n PulseEventStatsModel: 'pulseEventStatsModels',\n PulseTriggerSettingModel: 'pulseTriggerSettingModels',\n Relation: 'relations',\n Report: 'reports',\n ReportMember: 'reportMembers',\n ResolvedFileUrl: 'resolvedFileUrls',\n SyncEvent: 'syncEvents',\n Table: 'tables',\n TokenUsage: 'tokenUsages',\n UsageWindowsStatusType: 'usageWindowsStatusTypes',\n UserSkillFile: 'userSkillFiles',\n UserSkillFileModel: 'userSkillFileModels',\n UserSkillFolder: 'userSkillFolders',\n UserSkillFolderModel: 'userSkillFolderModels',\n WindowDetailType: 'windowDetailTypes',\n};\n\n/**\n * Reverse map: Dexie table name → GraphQL `__typename`.\n */\nexport const TABLE_TO_TYPENAME: Record<string, string> = {\n actions: 'Action',\n agents: 'Agent',\n artifacts: 'Artifact',\n chatMessages: 'ChatMessage',\n chats: 'Chat',\n contentBlocks: 'ContentBlock',\n contentMasks: 'ContentMask',\n cubeModels: 'CubeModel',\n databaseCatalogs: 'DatabaseCatalog',\n databaseEngines: 'DatabaseEngine',\n databases: 'Database',\n deepAnalysisUsages: 'DeepAnalysisUsage',\n documentCatalogs: 'DocumentCatalog',\n documentContents: 'DocumentContent',\n documentFormats: 'DocumentFormat',\n documents: 'Document',\n feedback: 'Feedback',\n files: 'File',\n folders: 'Folder',\n inferenceRequestAudits: 'InferenceRequestAudit',\n insights: 'Insight',\n integrationCatalogs: 'IntegrationCatalog',\n integrationProviders: 'IntegrationProvider',\n integrations: 'Integration',\n interpretations: 'Interpretation',\n invocations: 'Invocation',\n mcpClientInformations: 'McpClientInformation',\n mcpCodeVerifiers: 'McpCodeVerifier',\n mcpServers: 'McpServer',\n mcpTokens: 'McpTokens',\n mcpTools: 'McpTool',\n modelTokenUsages: 'ModelTokenUsage',\n notifications: 'Notification',\n pulseAppSummaryModels: 'PulseAppSummaryModel',\n pulseEvents: 'PulseEvent',\n pulseEventStatsModels: 'PulseEventStatsModel',\n pulseTriggerSettingModels: 'PulseTriggerSettingModel',\n relations: 'Relation',\n reportMembers: 'ReportMember',\n reports: 'Report',\n resolvedFileUrls: 'ResolvedFileUrl',\n syncEvents: 'SyncEvent',\n tables: 'Table',\n tokenUsages: 'TokenUsage',\n usageWindowsStatusTypes: 'UsageWindowsStatusType',\n userSkillFileModels: 'UserSkillFileModel',\n userSkillFiles: 'UserSkillFile',\n userSkillFolderModels: 'UserSkillFolderModel',\n userSkillFolders: 'UserSkillFolder',\n windowDetailTypes: 'WindowDetailType',\n};\n\n/**\n * Primary key configuration for tables that differ from the default `id`.\n * Tables not listed here use `id` as primary key.\n */\nexport const PRIMARY_KEY_CONFIG: Record<string, string | string[]> = {\n databaseCatalogs: 'engineKey',\n databaseEngines: 'key',\n documentCatalogs: 'formatKey',\n documentFormats: 'key',\n integrationCatalogs: 'providerKey',\n integrationProviders: 'key',\n pulseAppSummaryModels: 'integrationId',\n pulseTriggerSettingModels: ['integrationId', 'slug'],\n reportMembers: ['reportId', 'insightId'],\n};\n\n/**\n * Convention-based cache rules for mutations.\n * Generated from the GraphQL schema mutation names.\n *\n * - `create*` -> prepend to connection query results\n * - `update*` -> upsert in entity table (liveQuery auto-updates)\n * - `delete*` -> evict from entity table + query results + cascade\n * - Non-CRUD mutations -> just upsert the returned entity (no special rules)\n */\nexport const MUTATION_CACHE_RULES: Record<string, CacheRule> = {\n createAgent: { type: 'create', entityType: 'agents', connectionFields: ['agents'] },\n createChat: { type: 'create', entityType: 'chats', connectionFields: ['chats'] },\n createDatabase: { type: 'create', entityType: 'databases', connectionFields: ['databases'] },\n createDocument: { type: 'create', entityType: 'documents', connectionFields: ['documents'] },\n createFeedback: { type: 'create', entityType: 'feedback', connectionFields: ['feedback'] },\n createFolder: { type: 'create', entityType: 'folders', connectionFields: ['folders'] },\n createInsight: { type: 'create', entityType: 'insights', connectionFields: ['insights'] },\n createIntegration: { type: 'create', entityType: 'integrations', connectionFields: ['integrations'] },\n createReport: { type: 'create', entityType: 'reports', connectionFields: ['reports'] },\n createTable: { type: 'create', entityType: 'tables', connectionFields: ['tables'] },\n createUserSkillFile: { type: 'create', entityType: 'userSkillFiles', connectionFields: ['userSkillFiles'] },\n createUserSkillFolder: { type: 'create', entityType: 'userSkillFolders', connectionFields: ['userSkillFolders'] },\n deleteAgent: { type: 'delete', entityType: 'agents', connectionFields: ['agents'] },\n deleteArtifact: { type: 'delete', entityType: 'artifacts', connectionFields: ['artifacts'] },\n deleteChat: { type: 'delete', entityType: 'chats', connectionFields: ['chats'], cascadeDelete: [{ entityType: 'chatMessages', cascadeDelete: [{ entityType: 'contentBlocks', cascadeDelete: [{ entityType: 'contentMasks' }] }, { entityType: 'feedback', relationFields: ['chatMessageId'] }] }] },\n deleteDatabase: { type: 'delete', entityType: 'databases', connectionFields: ['databases'] },\n deleteDocument: { type: 'delete', entityType: 'documents', connectionFields: ['documents'], cascadeDelete: [{ entityType: 'documentContents' }, { entityType: 'tables', cascadeDelete: [{ entityType: 'relations', relationFields: ['fromTableId', 'toTableId'] }, { entityType: 'cubeModels', relationFields: ['id'] }] }] },\n deleteFolder: { type: 'delete', entityType: 'folders', connectionFields: ['folders'] },\n deleteInsight: { type: 'delete', entityType: 'insights', connectionFields: ['insights'], cascadeDelete: [{ entityType: 'reportMembers' }] },\n deleteInsights: { type: 'delete', entityType: 'insights', connectionFields: ['insights'], cascadeDelete: [{ entityType: 'reportMembers' }] },\n deleteIntegration: { type: 'delete', entityType: 'integrations', connectionFields: ['integrations'] },\n deleteReport: { type: 'delete', entityType: 'reports', connectionFields: ['reports'], cascadeDelete: [{ entityType: 'reportMembers' }] },\n deleteTable: { type: 'delete', entityType: 'tables', connectionFields: ['tables'], cascadeDelete: [{ entityType: 'relations', relationFields: ['fromTableId', 'toTableId'] }, { entityType: 'cubeModels', relationFields: ['id'] }] },\n deleteUserSkillFile: { type: 'delete', entityType: 'userSkillFiles', connectionFields: ['userSkillFiles'] },\n deleteUserSkillFolder: { type: 'delete', entityType: 'userSkillFolders', connectionFields: ['userSkillFolders'] },\n updateAgent: { type: 'update', entityType: 'agents' },\n updateChat: { type: 'update', entityType: 'chats' },\n updateDatabase: { type: 'update', entityType: 'databases' },\n updateDocument: { type: 'update', entityType: 'documents' },\n updateFolder: { type: 'update', entityType: 'folders' },\n updateInsight: { type: 'update', entityType: 'insights' },\n updateReport: { type: 'update', entityType: 'reports' },\n updateTable: { type: 'update', entityType: 'tables' },\n updateUserSkillFile: { type: 'update', entityType: 'userSkillFiles' },\n updateUserSkillFolder: { type: 'update', entityType: 'userSkillFolders' },\n};\n","// Making the module version consumable via require - to prohibit\n// multiple occurrancies of the same module in the same app\n// (dual package hazard, https://nodejs.org/api/packages.html#dual-package-hazard)\nimport _Dexie from \"./dist/dexie.js\";\nconst DexieSymbol = Symbol.for(\"Dexie\");\nconst Dexie = globalThis[DexieSymbol] || (globalThis[DexieSymbol] = _Dexie);\nif (_Dexie.semVer !== Dexie.semVer) {\n throw new Error(`Two different versions of Dexie loaded in the same app: ${_Dexie.semVer} and ${Dexie.semVer}`);\n}\nconst { liveQuery, mergeRanges, rangesOverlap, RangeSet, cmp, Entity,\n PropModification, replacePrefix, add, remove,\n DexieYProvider } = Dexie;\nexport { liveQuery, mergeRanges, rangesOverlap, RangeSet, cmp, Dexie, Entity,\n PropModification, replacePrefix, add, remove,\n DexieYProvider};\n \nexport default Dexie;\n","import { Dexie, type Table } from 'dexie';\nimport type { Dexie as DexieInstance } from 'dexie';\nimport type { DocumentNode } from 'graphql';\nimport { DB_ENTITY_SCHEMA, TYPENAME_TO_TABLE, PRIMARY_KEY_CONFIG, SCHEMA_HASH } from '../_generated_store.js';\n\n// ─── JWT Decode ──────────────────────────────────────────────────────────────\n\n/** Auth0 custom claims namespace used by the Dvina API */\nconst CLAIMS_NAMESPACE = 'https://auth.dvina.ai/claims';\n\ninterface DvinaClaims {\n\tworkspaceId: string;\n\tuserId: string;\n\t[key: string]: unknown;\n}\n\n/**\n * Decode a JWT payload without verification (we only need the claims for\n * building the database name — the server validates the token).\n */\nfunction decodeJwtPayload(token: string): Record<string, unknown> {\n\tconst parts = token.split('.');\n\tif (parts.length !== 3) {\n\t\tthrow new Error('Invalid JWT: expected 3 parts');\n\t}\n\t// Base64url → Base64 → JSON\n\tconst base64 = parts[1].replace(/-/g, '+').replace(/_/g, '/');\n\tconst json = typeof atob === 'function' ? atob(base64) : Buffer.from(base64, 'base64').toString('utf-8');\n\treturn JSON.parse(json);\n}\n\n/**\n * Extract workspaceId and userId from the Dvina JWT claims.\n */\nexport function extractClaims(token: string): DvinaClaims {\n\tconst payload = decodeJwtPayload(token);\n\tconst claims = payload[CLAIMS_NAMESPACE] as Record<string, unknown> | undefined;\n\n\tif (!claims) {\n\t\tthrow new Error(`JWT missing claims namespace: ${CLAIMS_NAMESPACE}`);\n\t}\n\n\tconst workspaceId = claims['workspaceId'] ?? claims['workspace_id'];\n\tconst userId = claims['userId'] ?? claims['user_id'] ?? payload['sub'];\n\n\tif (typeof workspaceId !== 'string' || !workspaceId) {\n\t\tthrow new Error('JWT claims missing workspaceId');\n\t}\n\tif (typeof userId !== 'string' || !userId) {\n\t\tthrow new Error('JWT claims missing userId');\n\t}\n\n\treturn { workspaceId, userId };\n}\n\n// ─── Query Result Cache ──────────────────────────────────────────────────────\n\n/** Cached result metadata for a specific query + variables combination */\nexport interface QueryResultEntry {\n\t/** Hash of document name + serialized variables */\n\tkey: string;\n\t/** The entity table these IDs refer to (e.g. 'chats', 'reports') */\n\tentityType: string;\n\t/** Ordered list of entity IDs returned by this query */\n\tentityIds: string[];\n\t/** Relay PageInfo for cursor-based pagination */\n\tpageInfo?: {\n\t\thasNextPage: boolean;\n\t\thasPreviousPage: boolean;\n\t\tstartCursor?: string | null;\n\t\tendCursor?: string | null;\n\t};\n\t/** Total count if the server returned it */\n\ttotalCount?: number;\n\t/** Timestamp of the last server fetch */\n\tfetchedAt: number;\n}\n\n// ─── Pending Mutation (future offline queue) ─────────────────────────────────\n\nexport interface PendingMutationEntry {\n\t/** Auto-incremented ID */\n\tid?: number;\n\t/** Mutation operation name */\n\toperationName: string;\n\t/** Serialized DocumentNode name (to re-resolve at replay time) */\n\tdocumentName: string;\n\t/** Serialized variables */\n\tvariables: Record<string, unknown>;\n\t/** Timestamp when the mutation was queued */\n\tqueuedAt: number;\n\t/** Number of retry attempts so far */\n\tretries: number;\n}\n\n// ─── Sync Metadata ───────────────────────────────────────────────────────────\n\nexport interface SyncMetadataEntry {\n\t/** Metadata key (e.g. 'lastSyncTimestamp', 'schemaVersion') */\n\tkey: string;\n\t/** Arbitrary value */\n\tvalue: unknown;\n}\n\n// ─── Entity Record Types ─────────────────────────────────────────────────────\n\n/**\n * Base entity record stored in Dexie.\n *\n * Most entities use `id` as primary key, but some use alternative keys:\n * - `DataSourceTypeDetails` uses `type` (enum string)\n * - `ReportMember` uses compound key `[reportId, insightId]`\n *\n * Use `getPrimaryKeyField()` / `resolvePrimaryKey()` for PK-safe access.\n */\nexport interface EntityRecord {\n\t__typename?: string;\n\t[key: string]: unknown;\n}\n\n// ─── Database ────────────────────────────────────────────────────────────────\n\n/**\n * Build the database name from workspace and user IDs.\n * Each workspace+user combination gets its own IndexedDB database.\n */\nfunction buildDbName(workspaceId: string, userId: string): string {\n\treturn `dvina_${workspaceId}_${userId}`;\n}\n\n/**\n * Dexie schema version.\n *\n * Dexie requires a monotonically-increasing integer version. We keep this at 1\n * and instead detect schema drift via `SCHEMA_HASH` (a fingerprint of the\n * generated entity schema). When the hash changes the database is deleted and\n * recreated — safe because IndexedDB is a cache layer and data is replayed\n * from the server via the sync engine.\n */\nconst SCHEMA_VERSION = 1;\n\n/**\n * Meta tables for the SyncEngine (query result cache, offline mutation queue, sync state).\n * These are schema-agnostic and hand-maintained.\n */\nconst META_TABLES: Record<string, string> = {\n\t_queryResults: 'key, entityType, fetchedAt',\n\t_pendingMutations: '++id, operationName, queuedAt',\n\t_sync: 'key',\n};\n\n/**\n * Build the complete Dexie schema by combining auto-generated entity tables\n * with hand-maintained meta tables.\n */\nfunction buildFullSchema(): Record<string, string> {\n\treturn { ...DB_ENTITY_SCHEMA, ...META_TABLES };\n}\n\n/**\n * The Dvina IndexedDB database.\n *\n * One database per workspace+user, lazily created on first access.\n * Entity tables are auto-generated from the GraphQL schema (via `_generated_store.ts`).\n * Meta tables (`_queryResults`, `_pendingMutations`, `_sync`) support\n * the SyncEngine's caching and offline mutation queue.\n *\n * Uses Dexie v4 — we create an instance with `new Dexie(name)` and define\n * the schema via `.version().stores()`.\n */\nexport class DvinaDatabase {\n\treadonly db: DexieInstance;\n\tprivate readonly _dbName: string;\n\n\t/**\n\t * Resolves when the schema-hash check is complete.\n\t * Consumers that depend on a consistent schema should await this before\n\t * performing reads/writes. The factory function `getOrCreateDatabase`\n\t * handles this automatically.\n\t */\n\treadonly ready: Promise<void>;\n\n\tconstructor(workspaceId: string, userId: string) {\n\t\tthis._dbName = buildDbName(workspaceId, userId);\n\t\tthis.db = new Dexie(this._dbName) as DexieInstance;\n\t\tthis.db.version(SCHEMA_VERSION).stores(buildFullSchema());\n\t\tthis.ready = this._ensureSchemaCompatibility();\n\t}\n\n\t// ─── Schema Compatibility ─────────────────────────────────\n\n\t/**\n\t * Verify that the stored schema hash matches the current codegen hash.\n\t * If the hashes differ the database is deleted and recreated so that\n\t * stale indexes / missing tables never cause silent data corruption.\n\t *\n\t * On a fresh database (no stored hash) the current hash is persisted.\n\t */\n\tprivate async _ensureSchemaCompatibility(): Promise<void> {\n\t\ttry {\n\t\t\tconst entry = await this._sync.get('schemaHash');\n\t\t\tconst storedHash = entry?.value as string | undefined;\n\n\t\t\tif (storedHash && storedHash !== SCHEMA_HASH) {\n\t\t\t\t// Schema has changed — wipe and recreate\n\t\t\t\tthis.db.close();\n\t\t\t\tawait new Dexie(this._dbName).delete();\n\n\t\t\t\t// Re-open with the current schema\n\t\t\t\t(this as { db: DexieInstance }).db = new Dexie(this._dbName) as DexieInstance;\n\t\t\t\tthis.db.version(SCHEMA_VERSION).stores(buildFullSchema());\n\t\t\t}\n\n\t\t\t// Persist the current hash (idempotent on match, sets on fresh/recreated)\n\t\t\tawait this._sync.put({ key: 'schemaHash', value: SCHEMA_HASH });\n\t\t} catch {\n\t\t\t// First-ever open may throw if the DB didn't exist yet;\n\t\t\t// Dexie auto-creates tables on first real access, so the put\n\t\t\t// below will succeed on the next open. Silently continue.\n\t\t}\n\t}\n\n\t// ─── Meta Table Accessors ─────────────────────────────────\n\n\tget _queryResults() {\n\t\treturn this.db.table<QueryResultEntry, string>('_queryResults');\n\t}\n\tget _pendingMutations() {\n\t\treturn this.db.table<PendingMutationEntry, number>('_pendingMutations');\n\t}\n\tget _sync() {\n\t\treturn this.db.table<SyncMetadataEntry, string>('_sync');\n\t}\n\n\t// ─── Delegated Methods ─────────────────────────────────────\n\n\t/** Get a table by name (generic accessor for all entity tables) */\n\ttable<T = unknown, TKey = unknown>(tableName: string): Table<T, TKey> {\n\t\treturn this.db.table<T, TKey>(tableName);\n\t}\n\n\t/** Access all tables */\n\tget allTables(): Table[] {\n\t\treturn this.db.tables;\n\t}\n\n\t/** Run a read-write transaction across specified tables */\n\ttransaction<U>(mode: 'rw' | 'r', tables: Table[], scope: () => PromiseLike<U> | U) {\n\t\treturn this.db.transaction(mode as 'rw', tables, scope);\n\t}\n\n\t/** Close the database connection and evict from the module-level cache. */\n\tclose(): void {\n\t\tthis.db.close();\n\t\tdbCache.delete(this._dbName);\n\t}\n\n\t// ─── Sync Metadata Helpers ────────────────────────────────\n\n\t/** Get the last processed sync event ID, or '0' if none. */\n\tasync getLastSyncId(): Promise<string> {\n\t\tconst entry = await this._sync.get('lastSyncId');\n\t\treturn (entry?.value as string) ?? '0';\n\t}\n\n\t/** Persist the last processed sync event ID. */\n\tasync setLastSyncId(syncId: string): Promise<void> {\n\t\tawait this._sync.put({ key: 'lastSyncId', value: syncId });\n\t}\n\n\t/** Get the last applied remote cache epoch, or 0 if none. */\n\tasync getCacheEpoch(): Promise<number> {\n\t\tconst entry = await this._sync.get('cacheEpoch');\n\t\tconst value = Number(entry?.value ?? 0);\n\t\treturn Number.isFinite(value) && value >= 0 ? value : 0;\n\t}\n\n\t/** Persist the last applied remote cache epoch. */\n\tasync setCacheEpoch(cacheEpoch: number): Promise<void> {\n\t\tawait this._sync.put({ key: 'cacheEpoch', value: Math.max(0, Math.trunc(cacheEpoch)) });\n\t}\n}\n\n// ─── Table Name Mapping ──────────────────────────────────────────────────────\n\n/**\n * Resolve a GraphQL `__typename` to the corresponding Dexie table name.\n * Returns `undefined` for types that are not stored (e.g. PageInfo, Connection wrappers).\n *\n * Uses the auto-generated TYPENAME_TO_TABLE map from `_generated_store.ts`.\n */\nexport function resolveTableName(typename: string): string | undefined {\n\treturn TYPENAME_TO_TABLE[typename];\n}\n\n/**\n * Get the primary key field name for a given table.\n * Most entities use `id`; exceptions are defined in the auto-generated PRIMARY_KEY_CONFIG.\n */\nexport function getPrimaryKeyField(tableName: string): string | string[] {\n\treturn PRIMARY_KEY_CONFIG[tableName] ?? 'id';\n}\n\n/**\n * Get the primary key value for an entity record.\n * Returns the value in Dexie-native format:\n * - Simple key: string (e.g. 'abc123')\n * - Compound key: string[] (e.g. ['reportId', 'insightId'])\n */\nexport function getPrimaryKeyValue(tableName: string, record: Record<string, unknown>): string | string[] {\n\tconst pkField = getPrimaryKeyField(tableName);\n\tif (Array.isArray(pkField)) {\n\t\treturn pkField.map((f) => String(record[f]));\n\t}\n\treturn String(record[pkField]);\n}\n\n/**\n * Serialize a primary key to a single string for use in `_queryResults.entityIds`.\n * Compound keys are joined with ':' (e.g. 'reportId:insightId').\n */\nexport function primaryKeyToString(tableName: string, record: Record<string, unknown>): string {\n\tconst pk = getPrimaryKeyValue(tableName, record);\n\treturn Array.isArray(pk) ? pk.join(':') : pk;\n}\n\n/**\n * Deserialize a primary-key string (as produced by `primaryKeyToString`) back\n * into the Dexie-native key format.\n * - Simple key tables: returns the string as-is.\n * - Compound key tables: splits on ':' and returns a string[].\n */\nexport function parsePrimaryKeyString(tableName: string, keyStr: string): string | string[] {\n\tconst pkField = getPrimaryKeyField(tableName);\n\tif (Array.isArray(pkField)) {\n\t\treturn keyStr.split(':');\n\t}\n\treturn keyStr;\n}\n\n// ─── Query Hash ──────────────────────────────────────────────────────────────\n\n/**\n * JSON replacer that sorts object keys at every nesting level.\n * Ensures deterministic serialization regardless of property insertion order.\n */\nfunction deepSortReplacer(_key: string, value: unknown): unknown {\n\tif (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n\t\treturn Object.keys(value as Record<string, unknown>)\n\t\t\t.sort()\n\t\t\t.reduce<Record<string, unknown>>((sorted, k) => {\n\t\t\t\tsorted[k] = (value as Record<string, unknown>)[k];\n\t\t\t\treturn sorted;\n\t\t\t}, {});\n\t}\n\treturn value;\n}\n\nfunction hashString(value: string): string {\n\tlet hash = 2166136261;\n\n\tfor (let i = 0; i < value.length; i++) {\n\t\thash ^= value.charCodeAt(i);\n\t\thash = Math.imul(hash, 16777619);\n\t}\n\n\treturn (hash >>> 0).toString(36);\n}\n\nfunction buildDocumentFingerprint(document?: DocumentNode): string | undefined {\n\tif (!document) {\n\t\treturn undefined;\n\t}\n\n\treturn hashString(JSON.stringify(document, deepSortReplacer));\n}\n\n/**\n * Build a stable hash key for a query + variables combination.\n * Used as the primary key in the `_queryResults` table.\n *\n * We use a simple string concatenation approach — deterministic and fast.\n * Variables are deep-sorted by key at every nesting level to ensure\n * stability regardless of property order.\n */\n\nexport function buildQueryKey(\n\toperationName: string,\n\tvariables?: Record<string, unknown>,\n\tdocument?: DocumentNode,\n): string {\n\tconst documentFingerprint = buildDocumentFingerprint(document);\n\tconst baseKey = documentFingerprint ? `${operationName}#${documentFingerprint}` : operationName;\n\n\tif (!variables || Object.keys(variables).length === 0) {\n\t\treturn baseKey;\n\t}\n\tconst sortedVars = JSON.stringify(variables, deepSortReplacer);\n\treturn `${baseKey}:${sortedVars}`;\n}\n\n// ─── Database Factory ────────────────────────────────────────────────────────\n\n/** Cached database instances by name */\nconst dbCache = new Map<string, DvinaDatabase>();\n\n/**\n * Get or create a DvinaDatabase instance.\n *\n * Databases are cached by name to avoid opening multiple connections\n * to the same IndexedDB database. The returned promise resolves once\n * the schema-hash compatibility check is complete; after that the\n * database is guaranteed to match the current codegen schema.\n *\n * @param token - A valid JWT from which workspaceId and userId are extracted\n * @returns The DvinaDatabase instance after schema compatibility is ensured\n */\nexport async function getOrCreateDatabase(token: string): Promise<DvinaDatabase> {\n\tconst { workspaceId, userId } = extractClaims(token);\n\tconst name = buildDbName(workspaceId, userId);\n\n\tlet db = dbCache.get(name);\n\tif (db) {\n\t\tawait db.ready;\n\t\treturn db;\n\t}\n\n\tdb = new DvinaDatabase(workspaceId, userId);\n\tdbCache.set(name, db);\n\tawait db.ready;\n\treturn db;\n}\n\n/**\n * Close and remove a cached database instance.\n * Useful for logout / workspace switching.\n */\nexport function closeDatabase(token: string): void {\n\tconst { workspaceId, userId } = extractClaims(token);\n\tconst name = buildDbName(workspaceId, userId);\n\tconst db = dbCache.get(name);\n\tif (db) {\n\t\tdb.close();\n\t\tdbCache.delete(name);\n\t}\n}\n\n/**\n * Delete the IndexedDB database entirely.\n * Use with caution — this wipes all cached data for the workspace+user.\n */\nexport async function deleteDatabase(token: string): Promise<void> {\n\tconst { workspaceId, userId } = extractClaims(token);\n\tconst name = buildDbName(workspaceId, userId);\n\n\t// Close if open\n\tconst db = dbCache.get(name);\n\tif (db) {\n\t\tdb.close();\n\t\tdbCache.delete(name);\n\t}\n\n\t// Use the Dexie constructor's static delete method\n\tconst tempDb = new Dexie(name) as DexieInstance;\n\tawait tempDb.delete();\n}\n","/**\n * SSE transport for delta sync.\n *\n * Connects to the backend SSE endpoint and emits sync events.\n * Uses EventSource in browser environments and a fetch-based\n * fallback for environments without native EventSource.\n *\n * Features:\n * - Fetch-based SSE with Authorization header (no query parameter token exposure)\n * - Automatic reconnection with exponential backoff\n * - Auth failure detection with short-delay retry for token refresh\n * - Automatic re-registration and periodic refresh of active query subscriptions\n * - Event listener pattern for processing sync events\n */\n\n// ─── Types ───────────────────────────────────────────────────────────────────\n\nexport interface SseSyncEvent {\n\tid: string;\n\ttype: 'upsert' | 'delete';\n\tmodelName: string;\n\tentityId: string;\n\tpayload: Record<string, unknown> | null;\n}\n\nexport interface SseQueryEvent {\n\ttype: 'add' | 'remove';\n\tsubscriptionId: string;\n\tentityId: string;\n\tentityType: string;\n}\n\nexport interface SubscriptionDescriptor {\n\tid: string;\n\tentityType: string;\n\toperationName: string;\n\tmodelName: string;\n\tfilter?: Record<string, unknown>;\n}\n\nexport interface SseTransportOptions {\n\t/** Full SSE endpoint URL (e.g. 'https://api.dvina.ai/api/sync/stream') */\n\turl: string;\n\t/**\n\t * Returns an auth token.\n\t * When called with `{ forceRefresh: true }`, the callback must bypass any\n\t * cache and obtain a brand-new token (e.g. via Auth0's silent refresh).\n\t */\n\tgetToken: (options?: { forceRefresh?: boolean }) => Promise<string>;\n\t/** Called when a sync event is received */\n\tonEvent: (event: SseSyncEvent) => void;\n\t/** Called when a query event is received (server-driven subscription update) */\n\tonQueryEvent?: (event: SseQueryEvent) => void;\n\t/** Called when the initial cursor is received (fresh connection) */\n\tonCursor?: (syncId: string) => void;\n\t/** Called when the server signals that the sync gap is unrecoverable and a full resync is needed */\n\tonFullResync?: () => void;\n\t/** Called after a reconnect successfully re-registers active subscriptions */\n\tonReconnect?: () => void;\n\t/** Called on connection state changes */\n\tonStateChange?: (state: 'connecting' | 'connected' | 'disconnected') => void;\n}\n\nexport interface SseTransport {\n\t/** Start the SSE connection */\n\tconnect(lastSyncId?: string): Promise<void>;\n\t/** Close the SSE connection */\n\tdisconnect(): void;\n\t/** Whether the transport is currently connected */\n\treadonly connected: boolean;\n\t/** Register a query subscription (fire-and-forget POST) */\n\tsubscribe(descriptor: SubscriptionDescriptor): void;\n\t/** Unregister a query subscription (fire-and-forget POST) */\n\tunsubscribe(subscriptionId: string): void;\n}\n\n// ─── Internal Auth Error ──────────────────────────────────────────────────────\n\n/** Sentinel error to distinguish auth failures from other connection errors. */\nclass AuthSseError extends Error {\n\tconstructor(public readonly status: number) {\n\t\tsuper(`SSE auth failed: ${status}`);\n\t\tthis.name = 'AuthSseError';\n\t}\n}\n\n// ─── Reconnect Configuration ─────────────────────────────────────────────────\n\nconst INITIAL_RECONNECT_DELAY_MS = 1_000;\nconst MAX_RECONNECT_DELAY_MS = 30_000;\nconst RECONNECT_BACKOFF_MULTIPLIER = 2;\nconst MAX_CONSECUTIVE_AUTH_FAILURES = 3;\nconst SUBSCRIPTION_REFRESH_INTERVAL_MS = 5 * 60 * 1_000;\n\n// ─── Factory ─────────────────────────────────────────────────────────────────\n\n/**\n * Create an SSE transport for delta sync.\n *\n * Uses a fetch-based SSE implementation instead of the native EventSource API\n * so that we can send the auth token via the `Authorization` header. This\n * avoids exposing tokens in URL query parameters (which end up in server\n * logs, browser history, and referrer headers).\n */\nexport function createSseTransport(options: SseTransportOptions): SseTransport {\n\tlet abortController: AbortController | undefined;\n\tlet isConnected = false;\n\tlet reconnectDelay = INITIAL_RECONNECT_DELAY_MS;\n\tlet reconnectTimer: ReturnType<typeof setTimeout> | undefined;\n\tlet refreshTimer: ReturnType<typeof setInterval> | undefined;\n\tlet shouldReconnect = false;\n\tlet currentLastSyncId: string | undefined;\n\t/** Set to true after an auth error so the next doConnect uses forceRefresh. */\n\tlet needsForceRefresh = false;\n\tlet consecutiveAuthFailures = 0;\n\tlet hasConnectedOnce = false;\n\tconst activeSubscriptions = new Map<string, SubscriptionDescriptor>();\n\n\tasync function connect(lastSyncId?: string): Promise<void> {\n\t\tdisconnect();\n\t\tshouldReconnect = true;\n\t\tcurrentLastSyncId = lastSyncId;\n\t\tawait doConnect();\n\t}\n\n\tasync function doConnect(): Promise<void> {\n\t\tif (!shouldReconnect) return;\n\n\t\tabortController = new AbortController();\n\t\toptions.onStateChange?.('connecting');\n\n\t\ttry {\n\t\t\tconst forceRefresh = needsForceRefresh;\n\t\t\tneedsForceRefresh = false;\n\t\t\tconst token = await options.getToken(forceRefresh ? { forceRefresh: true } : undefined);\n\n\t\t\t// Build URL with lastSyncId query parameter\n\t\t\tconst url = new URL(options.url);\n\t\t\tif (currentLastSyncId && currentLastSyncId !== '0') {\n\t\t\t\turl.searchParams.set('lastSyncId', currentLastSyncId);\n\t\t\t}\n\n\t\t\tconst response = await fetch(url.toString(), {\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t\tAccept: 'text/event-stream',\n\t\t\t\t\t'Cache-Control': 'no-cache',\n\t\t\t\t},\n\t\t\t\tsignal: abortController.signal,\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\t// Auth errors get special handling: short delay + reset backoff.\n\t\t\t\t// getToken() will be called again on reconnect, which should\n\t\t\t\t// return a refreshed token if the provider supports it (e.g. Auth0).\n\t\t\t\tif (response.status === 401 || response.status === 403) {\n\t\t\t\t\tthrow new AuthSseError(response.status);\n\t\t\t\t}\n\t\t\t\tthrow new Error(`SSE connection failed: ${response.status} ${response.statusText}`);\n\t\t\t}\n\n\t\t\tif (!response.body) {\n\t\t\t\tthrow new Error('SSE response has no body');\n\t\t\t}\n\n\t\t\t// Successful connection — reset counters\n\t\t\tisConnected = true;\n\t\t\tconsecutiveAuthFailures = 0;\n\t\t\treconnectDelay = INITIAL_RECONNECT_DELAY_MS;\n\t\t\toptions.onStateChange?.('connected');\n\n\t\t\tconst isReconnect = hasConnectedOnce;\n\t\t\thasConnectedOnce = true;\n\t\t\tawait syncActiveSubscriptions(token);\n\t\t\tstartSubscriptionRefresh();\n\n\t\t\tif (isReconnect && activeSubscriptions.size > 0) {\n\t\t\t\toptions.onReconnect?.();\n\t\t\t}\n\n\t\t\t// Parse SSE stream\n\t\t\tawait parseSseStream(response.body, abortController.signal);\n\t\t} catch (err) {\n\t\t\tif ((err as Error).name === 'AbortError') {\n\t\t\t\t// Intentional disconnect — don't reconnect\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tisConnected = false;\n\t\t\tstopSubscriptionRefresh();\n\t\t\toptions.onStateChange?.('disconnected');\n\n\t\t\t// Schedule reconnect\n\t\t\tif (shouldReconnect) {\n\t\t\t\t// Auth errors: short fixed delay (token likely just needs refreshing)\n\t\t\t\t// Other errors: exponential backoff\n\t\t\t\tconst isAuth = err instanceof AuthSseError;\n\t\t\t\tif (isAuth) {\n\t\t\t\t\tconsecutiveAuthFailures++;\n\t\t\t\t\tif (consecutiveAuthFailures >= MAX_CONSECUTIVE_AUTH_FAILURES) {\n\t\t\t\t\t\t// Too many consecutive auth failures — stop retrying\n\t\t\t\t\t\tdisconnect();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tneedsForceRefresh = true;\n\t\t\t\t}\n\t\t\t\tconst delay = isAuth ? INITIAL_RECONNECT_DELAY_MS : reconnectDelay;\n\n\t\t\t\treconnectTimer = setTimeout(() => {\n\t\t\t\t\tdoConnect();\n\t\t\t\t}, delay);\n\n\t\t\t\tif (!isAuth) {\n\t\t\t\t\treconnectDelay = Math.min(reconnectDelay * RECONNECT_BACKOFF_MULTIPLIER, MAX_RECONNECT_DELAY_MS);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function parseSseStream(body: ReadableStream<Uint8Array>, signal: AbortSignal): Promise<void> {\n\t\tconst reader = body.getReader();\n\t\tconst decoder = new TextDecoder();\n\t\tlet buffer = '';\n\n\t\ttry {\n\t\t\twhile (!signal.aborted) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) break;\n\n\t\t\t\tbuffer += decoder.decode(value, { stream: true });\n\n\t\t\t\t// SSE events are separated by double newlines.\n\t\t\t\t// The SSE spec treats \\r\\n, \\r, and \\n as valid line endings,\n\t\t\t\t// so we handle all variants for cross-server compatibility.\n\t\t\t\tconst parts = buffer.split(/(?:\\r\\n|\\r|\\n){2}/);\n\t\t\t\t// Keep the last incomplete part in the buffer\n\t\t\t\tbuffer = parts.pop() ?? '';\n\n\t\t\t\tfor (const part of parts) {\n\t\t\t\t\tprocessEventBlock(part.trim());\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\treader.releaseLock();\n\t\t}\n\n\t\t// Stream ended — reconnect if we should\n\t\tif (shouldReconnect) {\n\t\t\tisConnected = false;\n\t\t\tstopSubscriptionRefresh();\n\t\t\toptions.onStateChange?.('disconnected');\n\t\t\treconnectTimer = setTimeout(() => {\n\t\t\t\tdoConnect();\n\t\t\t}, reconnectDelay);\n\t\t}\n\t}\n\n\tfunction processEventBlock(block: string): void {\n\t\tif (!block || block.startsWith(':')) {\n\t\t\t// Comment (keep-alive) or empty — ignore\n\t\t\treturn;\n\t\t}\n\n\t\tlet eventId: string | undefined;\n\t\tlet eventType: string | undefined;\n\t\tlet eventData: string | undefined;\n\n\t\tfor (const line of block.split(/\\r\\n|\\r|\\n/)) {\n\t\t\tif (line.startsWith('id: ')) {\n\t\t\t\teventId = line.slice(4).trim();\n\t\t\t} else if (line.startsWith('event: ')) {\n\t\t\t\teventType = line.slice(7).trim();\n\t\t\t} else if (line.startsWith('data: ')) {\n\t\t\t\teventData = line.slice(6);\n\t\t\t}\n\t\t}\n\n\t\tif (eventType === 'token-expired') {\n\t\t\t// Server indicates the JWT has expired — force refresh on reconnect\n\t\t\tneedsForceRefresh = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventType === 'full-resync') {\n\t\t\t// Server indicates the sync gap is unrecoverable (events pruned).\n\t\t\t// The client must clear its local store and refetch all data.\n\t\t\toptions.onFullResync?.();\n\t\t\treturn;\n\t\t}\n\n\t\tif ((eventType === 'query-add' || eventType === 'query-remove') && eventData) {\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse(eventData) as Omit<SseQueryEvent, 'type'>;\n\t\t\t\toptions.onQueryEvent?.({\n\t\t\t\t\ttype: eventType === 'query-add' ? 'add' : 'remove',\n\t\t\t\t\t...parsed,\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\t// Malformed event — skip\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventId) return;\n\n\t\t// Update the current sync cursor for reconnection\n\t\tcurrentLastSyncId = eventId;\n\n\t\tif (eventType === 'cursor') {\n\t\t\t// Initial cursor event (fresh connection)\n\t\t\toptions.onCursor?.(eventId);\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventType === 'sync' && eventData) {\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse(eventData) as Omit<SseSyncEvent, 'id'>;\n\t\t\t\toptions.onEvent({\n\t\t\t\t\tid: eventId,\n\t\t\t\t\t...parsed,\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\t// Malformed event — skip\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction disconnect(): void {\n\t\tshouldReconnect = false;\n\t\tisConnected = false;\n\t\tstopSubscriptionRefresh();\n\t\tif (reconnectTimer) {\n\t\t\tclearTimeout(reconnectTimer);\n\t\t\treconnectTimer = undefined;\n\t\t}\n\t\tif (abortController) {\n\t\t\tabortController.abort();\n\t\t\tabortController = undefined;\n\t\t}\n\t\toptions.onStateChange?.('disconnected');\n\t}\n\n\t/**\n\t * Fire-and-forget POST to register a query subscription.\n\t * Each POST carries a fresh JWT (StreamableHttp pattern).\n\t */\n\tfunction subscribe(descriptor: SubscriptionDescriptor): void {\n\t\tactiveSubscriptions.set(descriptor.id, descriptor);\n\t\tif (isConnected) {\n\t\t\tstartSubscriptionRefresh();\n\t\t}\n\t\tpostMessage({ type: 'subscribe', subscription: descriptor }).catch(() => {});\n\t}\n\n\t/**\n\t * Fire-and-forget POST to unregister a query subscription.\n\t */\n\tfunction unsubscribe(subscriptionId: string): void {\n\t\tactiveSubscriptions.delete(subscriptionId);\n\t\tif (activeSubscriptions.size === 0) {\n\t\t\tstopSubscriptionRefresh();\n\t\t}\n\t\tpostMessage({ type: 'unsubscribe', subscriptionId }).catch(() => {});\n\t}\n\n\tfunction startSubscriptionRefresh(): void {\n\t\tif (!isConnected || activeSubscriptions.size === 0 || refreshTimer) {\n\t\t\treturn;\n\t\t}\n\n\t\trefreshTimer = setInterval(() => {\n\t\t\tsyncActiveSubscriptions().catch(() => {});\n\t\t}, SUBSCRIPTION_REFRESH_INTERVAL_MS);\n\t}\n\n\tfunction stopSubscriptionRefresh(): void {\n\t\tif (!refreshTimer) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearInterval(refreshTimer);\n\t\trefreshTimer = undefined;\n\t}\n\n\tasync function syncActiveSubscriptions(token?: string): Promise<void> {\n\t\tif (activeSubscriptions.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resolvedToken = token ?? (await options.getToken().catch(() => undefined));\n\t\tif (!resolvedToken) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait Promise.all(\n\t\t\tArray.from(activeSubscriptions.values()).map((descriptor) =>\n\t\t\t\tpostMessage({ type: 'subscribe', subscription: descriptor }, resolvedToken).catch(() => {}),\n\t\t\t),\n\t\t);\n\t}\n\n\t/**\n\t * Send a POST message to the sync endpoint (StreamableHttp upstream).\n\t */\n\tasync function postMessage(body: Record<string, unknown>, token?: string): Promise<void> {\n\t\tconst resolvedToken = token ?? (await options.getToken());\n\t\tconst url = new URL(options.url);\n\t\tawait fetch(url.toString(), {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${resolvedToken}`,\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t},\n\t\t\tbody: JSON.stringify(body),\n\t\t});\n\t}\n\n\treturn {\n\t\tconnect,\n\t\tdisconnect,\n\t\tsubscribe,\n\t\tunsubscribe,\n\t\tget connected() {\n\t\t\treturn isConnected;\n\t\t},\n\t};\n}\n","import type { DvinaQueryRef } from '../types.js';\n\n/**\n * A DvinaQueryRef that maps values from a source ref through a transform function.\n * Used by generated operation classes to hydrate raw GraphQL data into model instances.\n *\n * Delegates all operations (refetch, fetchMore, dispose) to the source ref,\n * and transforms each yielded value through the provided function.\n */\nexport class MappedDvinaQueryRef<TRaw, TModel> implements DvinaQueryRef<TModel> {\n\tprivate _source: DvinaQueryRef<TRaw>;\n\tprivate _transform: (raw: TRaw) => TModel;\n\n\tpublic get current(): TModel | undefined {\n\t\tconst raw = this._source.current;\n\t\treturn raw !== undefined ? this._transform(raw) : undefined;\n\t}\n\n\tconstructor(source: DvinaQueryRef<TRaw>, transform: (raw: TRaw) => TModel) {\n\t\tthis._source = source;\n\t\tthis._transform = transform;\n\t}\n\n\tpublic async refetch(variables?: Record<string, unknown>): Promise<TModel> {\n\t\tconst raw = await this._source.refetch(variables);\n\t\treturn this._transform(raw);\n\t}\n\n\tpublic async fetchMore(variables: Record<string, unknown>): Promise<void> {\n\t\treturn this._source.fetchMore(variables);\n\t}\n\n\tpublic dispose(): void {\n\t\tthis._source.dispose();\n\t}\n\n\tasync *[Symbol.asyncIterator](): AsyncIterator<TModel> {\n\t\tfor await (const raw of this._source) {\n\t\t\tyield this._transform(raw);\n\t\t}\n\t}\n}\n\n/**\n * Maximum number of values buffered per consumer before oldest entries are\n * dropped. Mirrors the backpressure strategy used by DexieLiveQueryRef to\n * prevent unbounded memory growth when a consumer iterates slower than the\n * inner ref emits.\n */\nconst MAX_QUEUE_SIZE = 64;\n\n/** An independent async iterator consumer with its own buffered queue. */\ninterface DeferredConsumer<T> {\n\tqueue: T[];\n\tresolve?: (value: IteratorResult<T>) => void;\n\treject?: (error: unknown) => void;\n\tdisposed: boolean;\n}\n\n/**\n * A DvinaQueryRef that wraps a lazily-resolved inner ref.\n *\n * Used by the lazy SyncEngine proxy to allow `watch()` to return immediately\n * even before the SyncEngine is initialized. The inner ref is created\n * asynchronously (after DB + engine init) and values are forwarded.\n *\n * Supports multiple concurrent consumers — each `for await` loop gets its\n * own independent queue so all consumers receive every value.\n *\n * Consumers see a normal `DvinaQueryRef<T>` — the deferred initialization\n * is transparent. Iterator pulls block until the inner ref emits its first value.\n */\nexport class DeferredDvinaQueryRef<T> implements DvinaQueryRef<T> {\n\tprivate _innerRef?: DvinaQueryRef<T>;\n\tprivate _innerPromise: Promise<DvinaQueryRef<T>>;\n\tprivate _disposed = false;\n\n\t/** Active consumers — each `[Symbol.asyncIterator]()` call registers one */\n\tprivate _consumers = new Set<DeferredConsumer<T>>();\n\n\tpublic current: T | undefined;\n\n\tconstructor(innerPromise: Promise<DvinaQueryRef<T>>) {\n\t\tthis._innerPromise = innerPromise;\n\n\t\t// When the inner ref resolves, start forwarding its values\n\t\tthis._innerPromise.then(\n\t\t\t(ref) => {\n\t\t\t\tif (this._disposed) {\n\t\t\t\t\tref.dispose();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._innerRef = ref;\n\t\t\t\tthis.current = ref.current;\n\n\t\t\t\t// Start consuming the inner ref's async iterator and forward values\n\t\t\t\tthis._forwardValues(ref);\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\t// Engine init failed — reject all pending consumer pulls\n\t\t\t\tfor (const consumer of this._consumers) {\n\t\t\t\t\tif (consumer.reject) {\n\t\t\t\t\t\tconsumer.reject(error);\n\t\t\t\t\t\tconsumer.reject = undefined;\n\t\t\t\t\t\tconsumer.resolve = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n\n\tprivate async _forwardValues(ref: DvinaQueryRef<T>): Promise<void> {\n\t\ttry {\n\t\t\tfor await (const value of ref) {\n\t\t\t\tif (this._disposed) break;\n\t\t\t\tthis.current = value;\n\t\t\t\tthis._broadcast(value);\n\t\t\t}\n\t\t} catch {\n\t\t\t// Inner ref errored or was disposed — silently stop forwarding\n\t\t}\n\t\t// Signal done to all consumers\n\t\tfor (const consumer of this._consumers) {\n\t\t\tif (consumer.disposed) continue;\n\t\t\tif (consumer.resolve) {\n\t\t\t\tconsumer.resolve({ value: undefined as never, done: true });\n\t\t\t\tconsumer.resolve = undefined;\n\t\t\t\tconsumer.reject = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Broadcast a value to all active consumers */\n\tprivate _broadcast(value: T): void {\n\t\tfor (const consumer of this._consumers) {\n\t\t\tif (consumer.disposed) continue;\n\t\t\tif (consumer.resolve) {\n\t\t\t\t// Consumer is actively waiting — deliver immediately\n\t\t\t\tconsumer.resolve({ value, done: false });\n\t\t\t\tconsumer.resolve = undefined;\n\t\t\t\tconsumer.reject = undefined;\n\t\t\t} else {\n\t\t\t\t// Consumer is busy — buffer the value, dropping oldest if full\n\t\t\t\tif (consumer.queue.length >= MAX_QUEUE_SIZE) {\n\t\t\t\t\tconsumer.queue.shift();\n\t\t\t\t}\n\t\t\t\tconsumer.queue.push(value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async refetch(variables?: Record<string, unknown>): Promise<T> {\n\t\tconst ref = this._innerRef ?? (await this._innerPromise);\n\t\tconst result = await ref.refetch(variables);\n\t\tthis.current = result;\n\t\treturn result;\n\t}\n\n\tpublic async fetchMore(variables: Record<string, unknown>): Promise<void> {\n\t\tconst ref = this._innerRef ?? (await this._innerPromise);\n\t\treturn ref.fetchMore(variables);\n\t}\n\n\tpublic dispose(): void {\n\t\tif (this._disposed) return;\n\t\tthis._disposed = true;\n\t\tthis._innerRef?.dispose();\n\n\t\t// Signal done to all consumers\n\t\tfor (const consumer of this._consumers) {\n\t\t\tconsumer.disposed = true;\n\t\t\tif (consumer.resolve) {\n\t\t\t\tconsumer.resolve({ value: undefined as never, done: true });\n\t\t\t\tconsumer.resolve = undefined;\n\t\t\t\tconsumer.reject = undefined;\n\t\t\t}\n\t\t}\n\t\tthis._consumers.clear();\n\t}\n\n\t[Symbol.asyncIterator](): AsyncIterator<T> {\n\t\tconst consumer: DeferredConsumer<T> = { queue: [], disposed: false };\n\t\tthis._consumers.add(consumer);\n\n\t\treturn {\n\t\t\tnext: () => {\n\t\t\t\tif (this._disposed || consumer.disposed) {\n\t\t\t\t\treturn Promise.resolve({ value: undefined as never, done: true as const });\n\t\t\t\t}\n\n\t\t\t\t// If there's a buffered value, return it immediately\n\t\t\t\tif (consumer.queue.length > 0) {\n\t\t\t\t\treturn Promise.resolve({ value: consumer.queue.shift()!, done: false as const });\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, wait for the next broadcast\n\t\t\t\treturn new Promise<IteratorResult<T>>((resolve, reject) => {\n\t\t\t\t\tconsumer.resolve = resolve;\n\t\t\t\t\tconsumer.reject = reject;\n\t\t\t\t});\n\t\t\t},\n\t\t\treturn: () => {\n\t\t\t\tconsumer.disposed = true;\n\t\t\t\tthis._consumers.delete(consumer);\n\t\t\t\t// Only dispose the ref if no consumers remain\n\t\t\t\t// (callers may still use .current / .refetch)\n\t\t\t\treturn Promise.resolve({ value: undefined as never, done: true as const });\n\t\t\t},\n\t\t};\n\t}\n}\n","import { liveQuery, type Observable as DexieObservable } from 'dexie';\nimport type { DvinaQueryRef } from '../types.js';\n\n// ─── Types ───────────────────────────────────────────────────────────────────\n\n/**\n * Factory that reads from Dexie and returns the current value.\n * Called by `liveQuery()` — Dexie tracks which tables are accessed\n * and re-runs the factory when those tables change.\n */\nexport type DexieQueryFactory<T> = () => Promise<T> | T;\n\n/**\n * Callback invoked by the SyncEngine to re-fetch from the server.\n * The SyncEngine normalizes the response and writes to Dexie,\n * which triggers the liveQuery to re-emit.\n */\nexport type RefetchCallback<T> = (variables?: Record<string, unknown>) => Promise<T>;\n\n/**\n * Callback for cursor-based pagination.\n * Fetches the next page from the server, normalizes and appends to the store.\n */\nexport type FetchMoreCallback = (variables: Record<string, unknown>) => Promise<void>;\n\n// ─── Constants ────────────────────────────────────────────────────────────────\n\n/**\n * Maximum number of values buffered per consumer before oldest entries are\n * dropped. This prevents unbounded memory growth when a consumer iterates\n * slower than the liveQuery emits (e.g., a `for await` body doing heavy work).\n *\n * Drop-oldest is the correct strategy for liveQuery: consumers always want\n * the most recent state, so stale intermediate snapshots can be discarded.\n */\nconst MAX_CONSUMER_QUEUE_SIZE = 64;\n\n// ─── Consumer ─────────────────────────────────────────────────────────────────\n\n/** An independent async iterator consumer with its own buffered queue. */\ninterface Consumer<T> {\n\tqueue: T[];\n\tresolve?: (value: IteratorResult<T>) => void;\n\treject?: (error: unknown) => void;\n\tdisposed: boolean;\n}\n\n// ─── DexieLiveQueryRef ───────────────────────────────────────────────────────\n\n/**\n * Dexie-backed implementation of `DvinaQueryRef<T>`.\n *\n * Wraps Dexie's `liveQuery()` observable and converts its push-based\n * subscription into a pull-based `AsyncIterable` using an internal queue.\n *\n * Supports multiple concurrent consumers — each `for await` loop gets its\n * own independent queue so all consumers receive every value.\n *\n * When any Dexie table accessed by the `queryFactory` changes, liveQuery\n * re-runs the factory and emits the new value. This is the core reactivity\n * mechanism: mutations write to Dexie → liveQuery re-fires → all watchers\n * get the updated data automatically.\n *\n * **Cold start behavior**: The first emission waits for the server fetch\n * to complete, so there's no flash of empty state.\n *\n * @example\n * ```typescript\n * const ref = new DexieLiveQueryRef(\n * () => db.chats.toArray(),\n * (vars) => syncEngine.fetchQuery(ChatsDocument, vars),\n * (vars) => syncEngine.fetchMore(ChatsDocument, vars),\n * );\n * for await (const chats of ref) {\n * console.log(chats);\n * }\n * ```\n */\nexport class DexieLiveQueryRef<T> implements DvinaQueryRef<T> {\n\tprivate _queryFactory: DexieQueryFactory<T>;\n\tprivate _refetch: RefetchCallback<T>;\n\tprivate _fetchMore: FetchMoreCallback;\n\tprivate _observable: DexieObservable<T>;\n\tprivate _subscription: { unsubscribe(): void } | undefined;\n\tprivate _disposed = false;\n\n\t/** Active consumers — each `[Symbol.asyncIterator]()` call registers one */\n\tprivate _consumers = new Set<Consumer<T>>();\n\n\t/** Whether the first server fetch has completed */\n\tprivate _initialized = false;\n\t/** Pending callbacks waiting for initialization */\n\tprivate _initWaiters: Array<() => void> = [];\n\n\tpublic current: T | undefined;\n\n\tconstructor(queryFactory: DexieQueryFactory<T>, refetch: RefetchCallback<T>, fetchMore: FetchMoreCallback) {\n\t\tthis._queryFactory = queryFactory;\n\t\tthis._refetch = refetch;\n\t\tthis._fetchMore = fetchMore;\n\n\t\t// Create the Dexie liveQuery observable\n\t\tthis._observable = liveQuery(this._queryFactory);\n\n\t\t// Subscribe to liveQuery emissions\n\t\tthis._subscription = this._observable.subscribe({\n\t\t\tnext: (value) => {\n\t\t\t\t// Skip emissions until initialization is complete (cold start)\n\t\t\t\tif (!this._initialized) return;\n\n\t\t\t\tthis.current = value;\n\t\t\t\tthis._broadcast(value);\n\t\t\t},\n\t\t\terror: (err) => {\n\t\t\t\t// Skip liveQuery errors before initialization — _initializeWatch\n\t\t\t\t// handles the cold-start error path and calls _markFailed with\n\t\t\t\t// the more meaningful network error instead.\n\t\t\t\tif (!this._initialized) return;\n\n\t\t\t\tfor (const consumer of this._consumers) {\n\t\t\t\t\tif (consumer.reject) {\n\t\t\t\t\t\tconsumer.reject(err);\n\t\t\t\t\t\tconsumer.reject = undefined;\n\t\t\t\t\t\tconsumer.resolve = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * Mark this query as initialized (first server fetch complete).\n\t * Called by the SyncEngine after the initial fetch + normalization.\n\t * This triggers the first emission to any waiting iterators.\n\t */\n\tpublic _markInitialized(initialValue: T): void {\n\t\tthis._initialized = true;\n\t\tthis.current = initialValue;\n\t\tthis._broadcast(initialValue);\n\n\t\t// Resolve any waiters\n\t\tfor (const waiter of this._initWaiters) {\n\t\t\twaiter();\n\t\t}\n\t\tthis._initWaiters = [];\n\t}\n\n\t/**\n\t * Mark this query as failed during initialization.\n\t * Called when both the server fetch and cache fallback fail,\n\t * so consumers aren't left waiting indefinitely.\n\t */\n\tpublic _markFailed(error: unknown): void {\n\t\tfor (const consumer of this._consumers) {\n\t\t\tif (consumer.reject) {\n\t\t\t\tconsumer.reject(error);\n\t\t\t\tconsumer.reject = undefined;\n\t\t\t\tconsumer.resolve = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Broadcast a value to all active consumers */\n\tprivate _broadcast(value: T): void {\n\t\tfor (const consumer of this._consumers) {\n\t\t\tif (consumer.disposed) continue;\n\t\t\tif (consumer.resolve) {\n\t\t\t\t// Consumer is actively waiting — deliver immediately\n\t\t\t\tconsumer.resolve({ value, done: false });\n\t\t\t\tconsumer.resolve = undefined;\n\t\t\t\tconsumer.reject = undefined;\n\t\t\t} else {\n\t\t\t\t// Consumer is busy — buffer the value, dropping oldest if full\n\t\t\t\tif (consumer.queue.length >= MAX_CONSUMER_QUEUE_SIZE) {\n\t\t\t\t\tconsumer.queue.shift();\n\t\t\t\t}\n\t\t\t\tconsumer.queue.push(value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async refetch(variables?: Record<string, unknown>): Promise<T> {\n\t\tconst result = await this._refetch(variables);\n\t\t// The refetch writes to Dexie, which triggers liveQuery to re-emit.\n\t\t// We also update current directly for immediate access.\n\t\tthis.current = result;\n\t\treturn result;\n\t}\n\n\tpublic async fetchMore(variables: Record<string, unknown>): Promise<void> {\n\t\tawait this._fetchMore(variables);\n\t\t// Like refetch, the fetchMore writes to Dexie, triggering liveQuery.\n\t}\n\n\tpublic dispose(): void {\n\t\tif (this._disposed) return;\n\t\tthis._disposed = true;\n\t\tthis._subscription?.unsubscribe();\n\t\tthis._subscription = undefined;\n\n\t\t// Signal done to all consumers\n\t\tfor (const consumer of this._consumers) {\n\t\t\tconsumer.disposed = true;\n\t\t\tif (consumer.resolve) {\n\t\t\t\tconsumer.resolve({ value: undefined as never, done: true });\n\t\t\t\tconsumer.resolve = undefined;\n\t\t\t\tconsumer.reject = undefined;\n\t\t\t}\n\t\t}\n\t\tthis._consumers.clear();\n\n\t\t// Resolve any init waiters\n\t\tfor (const waiter of this._initWaiters) {\n\t\t\twaiter();\n\t\t}\n\t\tthis._initWaiters = [];\n\t}\n\n\t[Symbol.asyncIterator](): AsyncIterator<T> {\n\t\tconst consumer: Consumer<T> = { queue: [], disposed: false };\n\t\tthis._consumers.add(consumer);\n\n\t\treturn {\n\t\t\tnext: () => {\n\t\t\t\tif (this._disposed || consumer.disposed) {\n\t\t\t\t\treturn Promise.resolve({\n\t\t\t\t\t\tvalue: undefined as never,\n\t\t\t\t\t\tdone: true as const,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// If there's a buffered value, return it immediately\n\t\t\t\tif (consumer.queue.length > 0) {\n\t\t\t\t\treturn Promise.resolve({\n\t\t\t\t\t\tvalue: consumer.queue.shift()!,\n\t\t\t\t\t\tdone: false as const,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, wait for the next broadcast\n\t\t\t\treturn new Promise<IteratorResult<T>>((resolve, reject) => {\n\t\t\t\t\tconsumer.resolve = resolve;\n\t\t\t\t\tconsumer.reject = reject;\n\t\t\t\t});\n\t\t\t},\n\t\t\treturn: () => {\n\t\t\t\tconsumer.disposed = true;\n\t\t\t\tthis._consumers.delete(consumer);\n\t\t\t\t// Only dispose the ref if no consumers remain\n\t\t\t\t// (callers may still use .current / .refetch)\n\t\t\t\treturn Promise.resolve({\n\t\t\t\t\tvalue: undefined as never,\n\t\t\t\t\tdone: true as const,\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t}\n}\n","import { resolveTableName, getPrimaryKeyField } from './database.js';\n\n// ─── Types ───────────────────────────────────────────────────────────────────\n\n/** A map of table names → arrays of entity records to upsert */\nexport type NormalizedEntities = Map<string, Record<string, unknown>[]>;\n\n/** Connection metadata extracted during normalization */\nexport interface ConnectionInfo {\n\t/** Table name of the connection's node type */\n\tentityType: string;\n\t/** Ordered list of entity IDs (or compound keys as strings) */\n\tentityIds: string[];\n\t/** Relay PageInfo */\n\tpageInfo?: {\n\t\thasNextPage: boolean;\n\t\thasPreviousPage: boolean;\n\t\tstartCursor?: string | null;\n\t\tendCursor?: string | null;\n\t};\n\t/** Total count if returned by the server */\n\ttotalCount?: number;\n}\n\n/** Result of normalizing a full GraphQL response */\nexport interface NormalizationResult {\n\t/** Entities to upsert into Dexie tables */\n\tentities: NormalizedEntities;\n\t/** Connection metadata (if the root result is a connection) */\n\tconnection?: ConnectionInfo;\n\t/**\n\t * Nested connections found in entity fields (for Smart Fetch).\n\t * Key format: `{parentTable}.{parentId}.{fieldName}`\n\t * e.g. `reports.rpt_1.insights`\n\t */\n\tnestedConnections?: Map<string, ConnectionInfo>;\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Check if a value looks like a GraphQL entity (has __typename and an identifier).\n */\nfunction isEntityLike(value: unknown): value is Record<string, unknown> {\n\tif (typeof value !== 'object' || value === null) return false;\n\tconst obj = value as Record<string, unknown>;\n\tif (typeof obj['__typename'] !== 'string') return false;\n\tconst tableName = resolveTableName(obj['__typename']);\n\tif (!tableName) return false;\n\n\t// Must have a primary key\n\tconst pkField = getPrimaryKeyField(tableName);\n\tif (Array.isArray(pkField)) {\n\t\treturn pkField.every((f) => obj[f] !== undefined && obj[f] !== null);\n\t}\n\treturn obj[pkField] !== undefined && obj[pkField] !== null;\n}\n\n/**\n * Check if a value looks like a Relay connection (has nodes array and pageInfo).\n */\nfunction isConnectionLike(value: unknown): value is Record<string, unknown> {\n\tif (typeof value !== 'object' || value === null) return false;\n\tconst obj = value as Record<string, unknown>;\n\tconst typename = obj['__typename'];\n\treturn typeof typename === 'string' && typename.endsWith('Connection');\n}\n\n/**\n * Extract the entity ID as a string for use in `_queryResults.entityIds`.\n * Handles compound keys by joining with a separator.\n */\nfunction extractEntityId(tableName: string, record: Record<string, unknown>): string {\n\tconst pkField = getPrimaryKeyField(tableName);\n\tif (Array.isArray(pkField)) {\n\t\treturn pkField.map((f) => String(record[f])).join(':');\n\t}\n\treturn String(record[pkField]);\n}\n\n/**\n * Flatten a single entity record for Dexie storage.\n *\n * - Scalar fields are kept as-is\n * - Nested entity objects (with __typename + id) are replaced with their ID as a FK field\n * (but only if the FK field isn't already present — fragments already include `agentId` etc.)\n * - Nested arrays of entity references are stored as ID arrays (e.g. `messageIds: ['m1', 'm2']`)\n * - Non-entity nested objects (e.g. piiMaskRules JSON) are kept as-is\n */\nfunction flattenEntity(data: Record<string, unknown>): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tif (key === '__typename') {\n\t\t\tresult[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Nested array\n\t\tif (Array.isArray(value)) {\n\t\t\t// Check if items are entity references\n\t\t\tif (value.length > 0 && isEntityLike(value[0])) {\n\t\t\t\t// Store as ID array for relationship tracking\n\t\t\t\tconst refTableName = resolveTableName((value[0] as Record<string, unknown>)['__typename'] as string);\n\t\t\t\tif (refTableName) {\n\t\t\t\t\tresult[`${key}Ids`] = value.map((item) =>\n\t\t\t\t\t\textractEntityId(refTableName, item as Record<string, unknown>),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Non-entity array (e.g. string[], number[]) — keep as-is\n\t\t\t\tresult[key] = value;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Nested connection (from Smart Fetch) — skip, handled by extractEntity\n\t\tif (isConnectionLike(value)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Nested single entity reference\n\t\tif (isEntityLike(value)) {\n\t\t\t// The FK field (e.g. `agentId`) is usually already present in the fragment.\n\t\t\t// We only store the reference ID if the FK field isn't already there.\n\t\t\tconst fkField = `${key}Id`;\n\t\t\tif (!(fkField in data)) {\n\t\t\t\tconst refTableName = resolveTableName((value as Record<string, unknown>)['__typename'] as string);\n\t\t\t\tif (refTableName) {\n\t\t\t\t\tresult[fkField] = extractEntityId(refTableName, value as Record<string, unknown>);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Don't store the nested object itself — it's normalized into its own table\n\t\t\tcontinue;\n\t\t}\n\n\t\t// When a nullable entity reference is explicitly null in the response\n\t\t// (e.g. `agent: null`), clear the synthetic FK field (`agentId`) so that\n\t\t// mergeEntityRecord doesn't preserve a stale FK from a previous response\n\t\t// that included the full entity object.\n\t\t// We check if the PascalCase version of the field name maps to a known\n\t\t// entity table to avoid creating spurious FK nulls for scalar fields.\n\t\tif (value === null) {\n\t\t\tconst pascalKey = key.charAt(0).toUpperCase() + key.slice(1);\n\t\t\tif (resolveTableName(pascalKey)) {\n\t\t\t\tconst fkField = `${key}Id`;\n\t\t\t\tif (!(fkField in data)) {\n\t\t\t\t\tresult[fkField] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Nested non-entity object (e.g. JSON scalar, PageInfo for non-connection contexts)\n\t\t// or scalar value — keep as-is\n\t\tresult[key] = value;\n\t}\n\n\treturn result;\n}\n\n// ─── Main Normalizer ─────────────────────────────────────────────────────────\n\n/**\n * Walk a GraphQL response tree and extract all entities into normalized records.\n *\n * This is a generic normalizer that works with any fragment shape produced by\n * the codegen-doc plugin. It recursively walks the response:\n *\n * 1. If a value has `__typename` and maps to a known Dexie table → extract as entity\n * 2. If a value looks like a Connection → extract nodes + pageInfo\n * 3. Nested entity references (objects with __typename + id) are also extracted\n *\n * The result contains:\n * - `entities`: Map of tableName → records[] to upsert into Dexie\n * - `connection`: Metadata about the root connection (if applicable)\n */\nexport function normalize(data: Record<string, unknown>, rootField?: string): NormalizationResult {\n\tconst entities: NormalizedEntities = new Map();\n\tconst nestedConnections = new Map<string, ConnectionInfo>();\n\tlet connection: ConnectionInfo | undefined;\n\n\t// Get the root value (unwrap the query root field)\n\tconst rootValue = rootField ? data[rootField] : data;\n\tif (!rootValue || typeof rootValue !== 'object') {\n\t\treturn { entities };\n\t}\n\n\t// Check if root is a connection\n\tif (isConnectionLike(rootValue)) {\n\t\tconnection = normalizeConnection(rootValue as Record<string, unknown>, entities, nestedConnections);\n\t} else if (Array.isArray(rootValue)) {\n\t\t// Array of entities (rare, but possible for non-connection lists)\n\t\tfor (const item of rootValue) {\n\t\t\tif (isEntityLike(item)) {\n\t\t\t\textractEntity(item as Record<string, unknown>, entities, nestedConnections);\n\t\t\t}\n\t\t}\n\t} else if (isEntityLike(rootValue)) {\n\t\t// Single entity\n\t\textractEntity(rootValue as Record<string, unknown>, entities, nestedConnections);\n\t}\n\n\treturn {\n\t\tentities,\n\t\tconnection,\n\t\tnestedConnections: nestedConnections.size > 0 ? nestedConnections : undefined,\n\t};\n}\n\n/**\n * Normalize a connection response (nodes + pageInfo + totalCount).\n */\nfunction normalizeConnection(\n\tconnData: Record<string, unknown>,\n\tentities: NormalizedEntities,\n\tnestedConnections: Map<string, ConnectionInfo>,\n): ConnectionInfo {\n\tconst nodes = (connData['nodes'] as Record<string, unknown>[]) ?? [];\n\tconst pageInfoRaw = connData['pageInfo'] as Record<string, unknown> | undefined;\n\tconst totalCount = connData['totalCount'] as number | undefined;\n\n\tconst entityIds: string[] = [];\n\tlet entityType = '';\n\n\tconst connTypename = connData['__typename'];\n\tif (typeof connTypename === 'string' && connTypename.endsWith('Connection')) {\n\t\tconst modelTypename = connTypename.slice(0, -'Connection'.length);\n\t\tconst inferredTable = resolveTableName(modelTypename);\n\t\tif (inferredTable) {\n\t\t\tentityType = inferredTable;\n\t\t}\n\t}\n\n\tfor (const node of nodes) {\n\t\tif (isEntityLike(node)) {\n\t\t\tconst tableName = resolveTableName(node['__typename'] as string);\n\t\t\tif (tableName) {\n\t\t\t\tentityType = tableName;\n\t\t\t\tentityIds.push(extractEntityId(tableName, node));\n\t\t\t\textractEntity(node, entities, nestedConnections);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst pageInfo = pageInfoRaw\n\t\t? {\n\t\t\t\thasNextPage: pageInfoRaw['hasNextPage'] as boolean,\n\t\t\t\thasPreviousPage: pageInfoRaw['hasPreviousPage'] as boolean,\n\t\t\t\tstartCursor: pageInfoRaw['startCursor'] as string | null | undefined,\n\t\t\t\tendCursor: pageInfoRaw['endCursor'] as string | null | undefined,\n\t\t\t}\n\t\t: undefined;\n\n\treturn { entityType, entityIds, pageInfo, totalCount };\n}\n\n/**\n * Extract a single entity from a GraphQL response object.\n * Recursively extracts nested entity references into their own tables.\n * Also detects nested connection fields (from Smart Fetch) and extracts\n * their metadata into `nestedConnections`.\n */\nfunction extractEntity(\n\tdata: Record<string, unknown>,\n\tentities: NormalizedEntities,\n\tnestedConnections: Map<string, ConnectionInfo>,\n): void {\n\tconst typename = data['__typename'] as string;\n\tconst tableName = resolveTableName(typename);\n\tif (!tableName) return;\n\n\tconst parentId = extractEntityId(tableName, data);\n\n\t// Recursively extract nested entities and detect nested connections\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tif (key === '__typename') continue;\n\n\t\t// Detect nested connections (Smart Fetch includes)\n\t\tif (isConnectionLike(value)) {\n\t\t\tconst connInfo = normalizeConnection(value as Record<string, unknown>, entities, nestedConnections);\n\t\t\t// Store with key: parentTable.parentId.fieldName\n\t\t\tconst connKey = `${tableName}.${parentId}.${key}`;\n\t\t\tnestedConnections.set(connKey, connInfo);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tconst entityItems = value.filter((item): item is Record<string, unknown> => isEntityLike(item));\n\n\t\t\tif (entityItems.length > 0) {\n\t\t\t\tconst childTable = resolveTableName(entityItems[0]['__typename'] as string);\n\t\t\t\tif (childTable) {\n\t\t\t\t\tconst connKey = `${tableName}.${parentId}.${key}`;\n\t\t\t\t\tnestedConnections.set(connKey, {\n\t\t\t\t\t\tentityType: childTable,\n\t\t\t\t\t\tentityIds: entityItems.map((item) => extractEntityId(childTable, item)),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const item of value) {\n\t\t\t\tif (isEntityLike(item)) {\n\t\t\t\t\textractEntity(item as Record<string, unknown>, entities, nestedConnections);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isEntityLike(value)) {\n\t\t\textractEntity(value as Record<string, unknown>, entities, nestedConnections);\n\n\t\t\t// Smart Fetch: store single entity relation in nestedConnections\n\t\t\t// so reconstructEntity can find it via _queryResults lookup.\n\t\t\tconst childTypename = (value as Record<string, unknown>)['__typename'] as string;\n\t\t\tconst childTable = resolveTableName(childTypename);\n\t\t\tif (childTable) {\n\t\t\t\tconst childId = extractEntityId(childTable, value as Record<string, unknown>);\n\t\t\t\tconst connKey = `${tableName}.${parentId}.${key}`;\n\t\t\t\tnestedConnections.set(connKey, {\n\t\t\t\t\tentityType: childTable,\n\t\t\t\t\tentityIds: [childId],\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Flatten and store this entity\n\tconst record = flattenEntity(data);\n\tconst list = entities.get(tableName);\n\tif (list) {\n\t\tlist.push(record);\n\t} else {\n\t\tentities.set(tableName, [record]);\n\t}\n}\n\n// ─── Merge Helpers ───────────────────────────────────────────────────────────\n\n/**\n * Merge new entity data into an existing record.\n * New fields overwrite old ones; fields not present in the new data are preserved.\n * This allows partial fragment responses to update records without losing data\n * from fuller fragments.\n */\nexport function mergeEntityRecord(\n\texisting: Record<string, unknown>,\n\tincoming: Record<string, unknown>,\n): Record<string, unknown> {\n\tconst result = { ...existing };\n\tfor (const [key, value] of Object.entries(incoming)) {\n\t\t// Don't overwrite with undefined/null unless the incoming explicitly sets it\n\t\tif (value !== undefined) {\n\t\t\tresult[key] = value;\n\t\t}\n\t}\n\treturn result;\n}\n","/**\n * CacheManager — Query result cache operations\n *\n * Manages the `_queryResults` Dexie table that stores connection metadata\n * (ordered entity IDs, pageInfo, totalCount) for relay-style pagination.\n *\n * Responsibilities:\n * - Write / append / read / invalidate query result entries\n * - Remove entity references from query results (used by delete operations)\n * - Prepend entity references to query results (used by create operations)\n */\n\nimport type { DvinaDatabase, QueryResultEntry } from './database.js';\nimport { buildQueryKey } from './database.js';\nimport type { ConnectionInfo } from './normalization.js';\n\nexport class CacheManager {\n\tconstructor(private _db: DvinaDatabase) {}\n\n\t/**\n\t * Write connection metadata to the `_queryResults` table.\n\t */\n\tasync writeQueryResult(queryKey: string, connection: ConnectionInfo): Promise<void> {\n\t\tconst entry: QueryResultEntry = {\n\t\t\tkey: queryKey,\n\t\t\tentityType: connection.entityType,\n\t\t\tentityIds: connection.entityIds,\n\t\t\tpageInfo: connection.pageInfo,\n\t\t\ttotalCount: connection.totalCount,\n\t\t\tfetchedAt: Date.now(),\n\t\t};\n\t\tawait this._db._queryResults.put(entry);\n\t}\n\n\t/**\n\t * Append new page results to an existing query result entry.\n\t * Used by `fetchMore()` for cursor-based pagination.\n\t */\n\tasync appendQueryResult(queryKey: string, connection: ConnectionInfo): Promise<void> {\n\t\tconst existing = await this._db._queryResults.get(queryKey);\n\t\tif (existing) {\n\t\t\t// Append new entity IDs (avoid duplicates)\n\t\t\tconst existingIds = new Set(existing.entityIds);\n\t\t\tconst newIds = connection.entityIds.filter((id) => !existingIds.has(id));\n\n\t\t\texisting.entityIds = [...existing.entityIds, ...newIds];\n\t\t\texisting.pageInfo = connection.pageInfo ?? existing.pageInfo;\n\t\t\texisting.totalCount = connection.totalCount ?? existing.totalCount;\n\t\t\texisting.fetchedAt = Date.now();\n\t\t\tawait this._db._queryResults.put(existing);\n\t\t} else {\n\t\t\t// No existing entry — create one\n\t\t\tawait this.writeQueryResult(queryKey, connection);\n\t\t}\n\t}\n\n\t/**\n\t * Read query result metadata from the store.\n\t */\n\tasync getQueryResult(\n\t\toperationName: string,\n\t\tvariables?: Record<string, unknown>,\n\t): Promise<QueryResultEntry | undefined> {\n\t\tconst key = buildQueryKey(operationName, variables);\n\t\treturn await this._db._queryResults.get(key);\n\t}\n\n\t/**\n\t * Invalidate (delete) a query result, forcing the next watch() to refetch.\n\t */\n\tasync invalidateQuery(operationName: string, variables?: Record<string, unknown>): Promise<void> {\n\t\tconst key = buildQueryKey(operationName, variables);\n\t\tawait this._db._queryResults.delete(key);\n\t}\n\n\t/**\n\t * Remove an entity ID from all query results for a given entity type.\n\t * Used by delete operations (both sync events and mutations).\n\t */\n\tasync removeEntityFromQueryResults(entityType: string, entityId: string): Promise<void> {\n\t\tconst queryResults: QueryResultEntry[] = await this._db._queryResults\n\t\t\t.where('entityType')\n\t\t\t.equals(entityType)\n\t\t\t.toArray();\n\n\t\tconst modified: QueryResultEntry[] = [];\n\t\tfor (const qr of queryResults) {\n\t\t\tconst idx = qr.entityIds.indexOf(entityId);\n\t\t\tif (idx >= 0) {\n\t\t\t\tqr.entityIds = qr.entityIds.filter((eid: string) => eid !== entityId);\n\t\t\t\tif (qr.totalCount !== undefined) {\n\t\t\t\t\tqr.totalCount = Math.max(0, qr.totalCount - 1);\n\t\t\t\t}\n\t\t\t\tmodified.push(qr);\n\t\t\t}\n\t\t}\n\t\tif (modified.length > 0) {\n\t\t\tawait this._db._queryResults.bulkPut(modified);\n\t\t}\n\t}\n\n\t/**\n\t * Prepend an entity ID to all query results for a given entity type.\n\t * Handles temp ID replacement if an optimistic temp ID is already present.\n\t *\n\t * @param isTempId - Predicate to check if an existing ID is a temp placeholder\n\t */\n\tasync prependEntityToQueryResults(\n\t\tentityType: string,\n\t\tentityId: string,\n\t\tisTempId: (id: string) => boolean,\n\t): Promise<void> {\n\t\tconst queryResults: QueryResultEntry[] = await this._db._queryResults\n\t\t\t.where('entityType')\n\t\t\t.equals(entityType)\n\t\t\t.toArray();\n\n\t\tfor (const qr of queryResults) {\n\t\t\t// Only prepend if not already in the list (might be from optimistic)\n\t\t\tconst tempIdx = qr.entityIds.findIndex((eid: string) => isTempId(eid));\n\t\t\tif (tempIdx >= 0) {\n\t\t\t\t// Replace temp ID with real ID\n\t\t\t\tqr.entityIds[tempIdx] = entityId;\n\t\t\t} else if (!qr.entityIds.includes(entityId)) {\n\t\t\t\tqr.entityIds = [entityId, ...qr.entityIds];\n\t\t\t\tif (qr.totalCount !== undefined) {\n\t\t\t\t\tqr.totalCount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait this._db._queryResults.put(qr);\n\t\t}\n\t}\n\n\t/**\n\t * Prepend an entity ID to matching query results for a given entity type,\n\t * using the entity payload to determine which query results are relevant.\n\t *\n\t * For **nested connection queries** (where variables contain an `id` field\n\t * representing the parent entity), the entity is only prepended if one of\n\t * its field values matches that parent `id`. This prevents a ChatMessage\n\t * from being added to the wrong Chat's message list.\n\t *\n\t * For **top-level connection queries** (no `id` in variables), the entity\n\t * is always prepended (filter evaluation is not performed client-side).\n\t *\n\t * Used by SSE sync to make newly created entities visible to active watchers.\n\t */\n\tasync prependEntityToMatchingQueryResults(\n\t\tentityType: string,\n\t\tentityId: string,\n\t\tpayload: Record<string, unknown>,\n\t): Promise<void> {\n\t\tconst queryResults: QueryResultEntry[] = await this._db._queryResults\n\t\t\t.where('entityType')\n\t\t\t.equals(entityType)\n\t\t\t.toArray();\n\n\t\t// Collect all payload values for fast parent ID matching\n\t\tconst payloadValues = new Set(Object.values(payload).filter((v): v is string => typeof v === 'string'));\n\n\t\tfor (const qr of queryResults) {\n\t\t\t// Parse variables from the query key to check for parent ID\n\t\t\tconst colonIdx = qr.key.indexOf(':');\n\t\t\tif (colonIdx !== -1) {\n\t\t\t\ttry {\n\t\t\t\t\tconst vars = JSON.parse(qr.key.slice(colonIdx + 1)) as Record<string, unknown>;\n\t\t\t\t\tif (typeof vars.id === 'string' && !payloadValues.has(vars.id)) {\n\t\t\t\t\t\t// Nested query with a parent ID that doesn't match — skip\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Malformed key — skip safety check, prepend anyway\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepend if not already present\n\t\t\tif (!qr.entityIds.includes(entityId)) {\n\t\t\t\tqr.entityIds = [entityId, ...qr.entityIds];\n\t\t\t\tif (qr.totalCount !== undefined) {\n\t\t\t\t\tqr.totalCount++;\n\t\t\t\t}\n\t\t\t\tawait this._db._queryResults.put(qr);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Prepend an entity ID to a single specific query result entry by its exact key.\n\t * Used by server-driven subscriptions (query-add events) — the server has\n\t * already evaluated the filter, so we trust that the entity belongs in this\n\t * specific query result.\n\t */\n\tasync prependEntityToSpecificQueryResult(queryKey: string, entityId: string): Promise<void> {\n\t\tconst qr = await this._db._queryResults.get(queryKey);\n\t\tif (!qr) return;\n\n\t\tif (!qr.entityIds.includes(entityId)) {\n\t\t\tqr.entityIds = [entityId, ...qr.entityIds];\n\t\t\tif (qr.totalCount !== undefined) {\n\t\t\t\tqr.totalCount++;\n\t\t\t}\n\t\t\tawait this._db._queryResults.put(qr);\n\t\t}\n\t}\n\n\t/**\n\t * Remove an entity ID from a single specific query result entry by its exact key.\n\t * Used by server-driven subscriptions (query-remove events) — the server has\n\t * determined that the entity no longer matches this query's filter.\n\t */\n\tasync removeEntityFromSpecificQueryResult(queryKey: string, entityId: string): Promise<void> {\n\t\tconst qr = await this._db._queryResults.get(queryKey);\n\t\tif (!qr) return;\n\n\t\tconst idx = qr.entityIds.indexOf(entityId);\n\t\tif (idx >= 0) {\n\t\t\tqr.entityIds = qr.entityIds.filter((eid: string) => eid !== entityId);\n\t\t\tif (qr.totalCount !== undefined) {\n\t\t\t\tqr.totalCount = Math.max(0, qr.totalCount - 1);\n\t\t\t}\n\t\t\tawait this._db._queryResults.put(qr);\n\t\t}\n\t}\n\n\t/**\n\t * Batch-remove multiple entity IDs from query results of a given entity type.\n\t * Used by cascade delete operations.\n\t */\n\tasync removeEntitiesFromQueryResults(entityType: string, entityIds: string[]): Promise<void> {\n\t\tconst queryResults: QueryResultEntry[] = await this._db._queryResults\n\t\t\t.where('entityType')\n\t\t\t.equals(entityType)\n\t\t\t.toArray();\n\n\t\tconst deleteSet = new Set(entityIds);\n\t\tconst modified: QueryResultEntry[] = [];\n\t\tfor (const qr of queryResults) {\n\t\t\tconst before = qr.entityIds.length;\n\t\t\tqr.entityIds = qr.entityIds.filter((eid: string) => !deleteSet.has(eid));\n\t\t\tif (qr.entityIds.length !== before) {\n\t\t\t\tif (qr.totalCount !== undefined) {\n\t\t\t\t\tqr.totalCount = Math.max(0, qr.totalCount - (before - qr.entityIds.length));\n\t\t\t\t}\n\t\t\t\tmodified.push(qr);\n\t\t\t}\n\t\t}\n\t\tif (modified.length > 0) {\n\t\t\tawait this._db._queryResults.bulkPut(modified);\n\t\t}\n\t}\n}\n","/**\n * Shared utilities for store executors.\n */\n\n/**\n * Get the root field name from a GraphQL response.\n * GraphQL responses have the shape `{ data: { fieldName: ... } }` but\n * our transport already unwraps `data`, so we get `{ fieldName: ... }`.\n */\nexport function getRootField(data: Record<string, unknown>): string | undefined {\n\tconst keys = Object.keys(data);\n\t// GraphQL responses typically have exactly one root field\n\treturn keys.length === 1 ? keys[0] : undefined;\n}\n","/**\n * QueryExecutor — Query execution and watch (reactive query) logic\n *\n * Responsibilities:\n * - Execute GraphQL queries via HTTP transport\n * - Normalize responses and write entities to Dexie\n * - Write connection metadata to the query result cache\n * - Create reactive watch() queries backed by Dexie liveQuery\n */\n\nimport type { DocumentNode } from 'graphql';\nimport type { DvinaDatabase } from './database.js';\nimport { buildQueryKey, getPrimaryKeyField } from './database.js';\nimport { normalize, mergeEntityRecord } from './normalization.js';\nimport type { NormalizedEntities } from './normalization.js';\nimport { DexieLiveQueryRef } from './live-query.js';\nimport { getRootField } from './utils.js';\nimport type { CacheManager } from './cache-manager.js';\nimport type { HttpTransport } from '../transport/http.js';\nimport type { DvinaQueryRef } from '../types.js';\n\n/**\n * Maximum age (in milliseconds) for a cached query result before it is\n * revalidated in the background. Aligned with the server-side sync event\n * prune window so that clients whose cache is older than this threshold\n * will always get fresh data — even if the sync events that would have\n * updated them have already been pruned.\n */\nconst CACHE_TTL_MS = 7 * 24 * 60 * 60 * 1_000; // 7 days\n\nfunction isMissingDexieTableError(error: unknown): boolean {\n\tif (!(error instanceof Error)) {\n\t\treturn false;\n\t}\n\n\treturn /table\\s+.+\\s+does not exist/i.test(error.message);\n}\n\nexport class QueryExecutor {\n\t/**\n\t * Tracks in-flight queries to deduplicate concurrent identical requests.\n\t * When multiple callers (e.g. 20 watch() cold-starts) request the same\n\t * query with the same variables simultaneously, only one HTTP request is\n\t * made and all callers share the same Promise.\n\t */\n\tprivate _inflight = new Map<string, Promise<unknown>>();\n\n\tconstructor(\n\t\tprivate _db: DvinaDatabase,\n\t\tprivate _http: HttpTransport,\n\t\tprivate _cache: CacheManager,\n\t) {}\n\n\t/**\n\t * Execute a query: fetch from server -> normalize -> write to Dexie -> return raw data.\n\t *\n\t * For connection queries, also writes the ordered entity IDs to `_queryResults`\n\t * so that `watch()` can reconstruct the same ordered list from the store.\n\t *\n\t * Concurrent calls with the same operationName + variables are deduplicated:\n\t * only one HTTP request is made and all callers receive the same result.\n\t */\n\tasync query<T>(document: DocumentNode, variables?: Record<string, unknown>, operationName?: string): Promise<T> {\n\t\t// Deduplicate concurrent identical requests\n\t\tconst dedupeKey = operationName ? buildQueryKey(operationName, variables, document) : undefined;\n\n\t\tif (dedupeKey) {\n\t\t\tconst existing = this._inflight.get(dedupeKey);\n\t\t\tif (existing) return existing as Promise<T>;\n\t\t}\n\n\t\tconst promise = this._executeQuery<T>(document, variables, operationName).finally(() => {\n\t\t\tif (dedupeKey) {\n\t\t\t\tthis._inflight.delete(dedupeKey);\n\t\t\t}\n\t\t});\n\n\t\tif (dedupeKey) {\n\t\t\tthis._inflight.set(dedupeKey, promise);\n\t\t}\n\n\t\treturn promise;\n\t}\n\n\t/**\n\t * Internal query execution — always performs an HTTP request.\n\t */\n\tprivate async _executeQuery<T>(\n\t\tdocument: DocumentNode,\n\t\tvariables?: Record<string, unknown>,\n\t\toperationName?: string,\n\t): Promise<T> {\n\t\tconst data = await this._http.request<T>(document, variables);\n\n\t\t// Find the root field name from the response\n\t\tconst rootField = getRootField(data as Record<string, unknown>);\n\t\tif (rootField) {\n\t\t\tconst { entities, connection, nestedConnections } = normalize(data as Record<string, unknown>, rootField);\n\n\t\t\t// Write normalized entities to Dexie\n\t\t\tawait this.writeEntities(entities);\n\n\t\t\t// Write connection metadata if this is a connection query\n\t\t\tif (connection && operationName) {\n\t\t\t\tconst queryKey = buildQueryKey(operationName, variables, document);\n\t\t\t\tawait this._cache.writeQueryResult(queryKey, connection);\n\t\t\t}\n\n\t\t\t// Write nested connection metadata (from Smart Fetch includes)\n\t\t\tif (nestedConnections) {\n\t\t\t\tfor (const [connKey, connInfo] of nestedConnections) {\n\t\t\t\t\tawait this._cache.writeQueryResult(connKey, connInfo);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t}\n\n\t/**\n\t * Create a reactive query that auto-updates when the underlying store changes.\n\t *\n\t * **Cold start**: If a cached result exists in Dexie, the watcher initializes\n\t * immediately from the store without an HTTP request (cache-first). Otherwise,\n\t * a single server fetch is performed (deduplicated by `query()`).\n\t *\n\t * After initialization, Dexie's `liveQuery` handles reactivity — any write\n\t * to a table accessed by the query factory triggers a re-emission. Real-time\n\t * freshness is maintained by SyncEngine (SSE) rather than periodic HTTP\n\t * revalidation.\n\t */\n\twatch<T>(\n\t\tdocument: DocumentNode,\n\t\tvariables: Record<string, unknown> | undefined,\n\t\toperationName: string,\n\t\tbuildResult: (db: DvinaDatabase) => Promise<T> | T,\n\t): DvinaQueryRef<T> {\n\t\tlet ref: DexieLiveQueryRef<T>;\n\n\t\tref = new DexieLiveQueryRef<T>(\n\t\t\tasync () => {\n\t\t\t\ttry {\n\t\t\t\t\treturn await buildResult(this._db);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (isMissingDexieTableError(error)) {\n\t\t\t\t\t\treturn ref.current as T;\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync (refetchVars) => {\n\t\t\t\tconst merged = { ...variables, ...refetchVars };\n\t\t\t\tconst data = await this.query<T>(document, merged, operationName);\n\t\t\t\treturn data;\n\t\t\t},\n\t\t\tasync (fetchMoreVars) => {\n\t\t\t\tconst merged = { ...variables, ...fetchMoreVars };\n\t\t\t\tconst data = await this._http.request<Record<string, unknown>>(document, merged);\n\t\t\t\tconst rootField = getRootField(data);\n\n\t\t\t\tif (rootField) {\n\t\t\t\t\tconst { entities, connection } = normalize(data, rootField);\n\t\t\t\t\tawait this.writeEntities(entities);\n\n\t\t\t\t\t// Append to existing query results\n\t\t\t\t\tif (connection) {\n\t\t\t\t\t\tconst queryKey = buildQueryKey(operationName, variables, document);\n\t\t\t\t\t\tawait this._cache.appendQueryResult(queryKey, connection);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\n\t\t// Cold start: serve from Dexie cache if available, otherwise fetch from server.\n\t\tthis._initializeWatch(ref, document, variables, operationName, buildResult);\n\n\t\treturn ref;\n\t}\n\n\t/**\n\t * Initialize a watch ref — serve from cache if available, otherwise fetch.\n\t *\n\t * Uses a cache-first strategy: if the query has been fetched before (a\n\t * `_queryResults` entry exists in Dexie), the watcher is initialized\n\t * instantly from the store with zero HTTP requests. Real-time freshness\n\t * is handled by SyncEngine (SSE events update entity tables, which\n\t * trigger liveQuery re-emissions).\n\t *\n\t * If no cached result exists, a blocking server fetch is performed.\n\t */\n\tprivate async _initializeWatch<T>(\n\t\tref: DexieLiveQueryRef<T>,\n\t\tdocument: DocumentNode,\n\t\tvariables: Record<string, unknown> | undefined,\n\t\toperationName: string,\n\t\tbuildResult: (db: DvinaDatabase) => Promise<T> | T,\n\t): Promise<void> {\n\t\ttry {\n\t\t\tconst queryKey = buildQueryKey(operationName, variables, document);\n\t\t\tconst cached = await this._db._queryResults.get(queryKey);\n\n\t\t\tif (cached) {\n\t\t\t\ttry {\n\t\t\t\t\t// Cache hit — initialize from store without an HTTP request\n\t\t\t\t\tconst result = await buildResult(this._db);\n\t\t\t\t\tref._markInitialized(result);\n\n\t\t\t\t\t// Stale-while-revalidate: if the cached result is older than\n\t\t\t\t\t// the sync event prune window, revalidate in the background.\n\t\t\t\t\t// This covers the gap where sync events have been pruned and\n\t\t\t\t\t// the client would otherwise never learn about entities\n\t\t\t\t\t// created/deleted during that window.\n\t\t\t\t\tif (Date.now() - cached.fetchedAt > CACHE_TTL_MS) {\n\t\t\t\t\t\tthis.query<T>(document, variables, operationName).catch(() => {});\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t} catch (cacheReadError) {\n\t\t\t\t\t// Some watch() queries are generated for non-entity payloads and\n\t\t\t\t\t// may reference a table that is not present in the Dexie schema.\n\t\t\t\t\t// In that case, fall through to network data fallback below.\n\t\t\t\t\tif (!isMissingDexieTableError(cacheReadError)) {\n\t\t\t\t\t\tthrow cacheReadError;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// No cache — fetch from server\n\t\t\tconst networkResult = await this.query<T>(document, variables, operationName);\n\n\t\t\ttry {\n\t\t\t\tconst result = await buildResult(this._db);\n\t\t\t\tref._markInitialized(result);\n\t\t\t} catch (storeReadError) {\n\t\t\t\tif (isMissingDexieTableError(storeReadError)) {\n\t\t\t\t\tref._markInitialized(networkResult);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow storeReadError;\n\t\t\t}\n\t\t} catch (fetchError) {\n\t\t\t// On fetch error, still try to serve from cache\n\t\t\ttry {\n\t\t\t\tconst result = await buildResult(this._db);\n\t\t\t\tref._markInitialized(result);\n\t\t\t} catch {\n\t\t\t\tref._markFailed(fetchError);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Write normalized entities to Dexie with merge semantics.\n\t * Existing records are merged (new fields overwrite, missing fields preserved).\n\t */\n\tasync writeEntities(entities: NormalizedEntities): Promise<void> {\n\t\tconst tables = this._getAffectedTables(entities);\n\t\tif (tables.length === 0) return;\n\n\t\tawait this._db.transaction('rw', tables, async () => {\n\t\t\tfor (const [tableName, records] of entities) {\n\t\t\t\tconst table = this._db.table(tableName);\n\t\t\t\tconst pkField = getPrimaryKeyField(tableName);\n\n\t\t\t\t// Extract primary keys for batch read\n\t\t\t\tconst pks = records.map((record) => {\n\t\t\t\t\tif (Array.isArray(pkField)) {\n\t\t\t\t\t\treturn pkField.map((f) => record[f]);\n\t\t\t\t\t}\n\t\t\t\t\treturn record[pkField];\n\t\t\t\t});\n\n\t\t\t\t// Batch read existing records\n\t\t\t\tconst existingRecords = await table.bulkGet(pks);\n\n\t\t\t\t// Merge incoming with existing, then batch write\n\t\t\t\tconst toPut = records.map((record, i) => {\n\t\t\t\t\tconst existing = existingRecords[i];\n\t\t\t\t\treturn existing ? mergeEntityRecord(existing as Record<string, unknown>, record) : record;\n\t\t\t\t});\n\n\t\t\t\tawait table.bulkPut(toPut);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Get the Dexie Table objects for all affected tables.\n\t */\n\tprivate _getAffectedTables(entities: NormalizedEntities) {\n\t\tconst tables = [];\n\t\tfor (const tableName of entities.keys()) {\n\t\t\ttry {\n\t\t\t\ttables.push(this._db.table(tableName));\n\t\t\t} catch {\n\t\t\t\t// Table doesn't exist in schema — skip\n\t\t\t}\n\t\t}\n\t\treturn tables;\n\t}\n}\n","/**\n * OptimisticManager — Optimistic update logic with rollback\n *\n * Handles immediate local store mutations before the server responds:\n * - Create: generate temp ID, write entity, prepend to query results\n * - Update: snapshot existing, apply merge\n * - Delete: snapshot existing, remove from tables and query results\n *\n * Each operation returns a rollback function that restores the original state\n * if the server call fails.\n *\n * Also handles temp ID replacement when the server returns the real ID.\n */\n\nimport type { DvinaDatabase, QueryResultEntry, EntityRecord } from './database.js';\nimport { getPrimaryKeyField, getPrimaryKeyValue, primaryKeyToString } from './database.js';\nimport { mergeEntityRecord } from './normalization.js';\nimport type { NormalizedEntities } from './normalization.js';\nimport type { CacheRule, CacheRuleCreate, CacheRuleUpdate, CacheRuleDelete } from './sync-engine.js';\nimport { TABLE_TO_TYPENAME } from '../_generated_store.js';\n\n// ─── Temp ID helpers ─────────────────────────────────────────────────────────\n\nconst TEMP_ID_PREFIX = '_temp_';\n\nfunction generateTempId(): string {\n\treturn `${TEMP_ID_PREFIX}${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;\n}\n\nexport function isTempId(id: string): boolean {\n\treturn id.startsWith(TEMP_ID_PREFIX);\n}\n\n// ─── OptimisticManager ───────────────────────────────────────────────────────\n\nexport class OptimisticManager {\n\tconstructor(private _db: DvinaDatabase) {}\n\n\t/**\n\t * Apply an optimistic update to Dexie and return a rollback function.\n\t */\n\tasync applyOptimistic(cacheRule: CacheRule, data: Record<string, unknown>): Promise<() => Promise<void>> {\n\t\tswitch (cacheRule.type) {\n\t\t\tcase 'create':\n\t\t\t\treturn this._optimisticCreate(cacheRule, data);\n\t\t\tcase 'update':\n\t\t\t\treturn this._optimisticUpdate(cacheRule, data);\n\t\t\tcase 'delete':\n\t\t\t\treturn this._optimisticDelete(cacheRule, data);\n\t\t}\n\t}\n\n\t/**\n\t * Replace a temp ID with the real server-assigned ID.\n\t * Updates both the entity table and all query results referencing the temp ID.\n\t */\n\tasync replaceTempId(entityType: string, tempId: string, serverEntities: NormalizedEntities): Promise<void> {\n\t\tconst table = this._db.table(entityType);\n\n\t\t// Find the real PK from the server response\n\t\tconst serverRecords = serverEntities.get(entityType);\n\t\tif (!serverRecords || serverRecords.length === 0) return;\n\n\t\tconst realPkStr = primaryKeyToString(entityType, serverRecords[0]);\n\t\tif (!realPkStr || realPkStr === tempId) return;\n\n\t\t// Temp record deletion and query results update must be atomic\n\t\t// to prevent stale temp IDs lingering in query results.\n\t\tawait this._db.transaction('rw', [table, this._db._queryResults], async () => {\n\t\t\tawait table.delete(tempId).catch(() => {});\n\n\t\t\tconst queryResults: QueryResultEntry[] = await this._db._queryResults\n\t\t\t\t.where('entityType')\n\t\t\t\t.equals(entityType)\n\t\t\t\t.toArray();\n\n\t\t\tfor (const qr of queryResults) {\n\t\t\t\tconst idx = qr.entityIds.indexOf(tempId);\n\t\t\t\tif (idx >= 0) {\n\t\t\t\t\tqr.entityIds[idx] = realPkStr;\n\t\t\t\t\tawait this._db._queryResults.put(qr);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t// ─── Private: Optimistic operations ───────────────────────────────────\n\n\t/**\n\t * Optimistic create: generate temp ID, write to entity table.\n\t *\n\t * Query result list placement is NOT done here — it is handled by\n\t * server-driven SSE subscription events (query-add) which evaluate\n\t * Prisma filters server-side and target the correct query results.\n\t */\n\tprivate async _optimisticCreate(\n\t\trule: CacheRuleCreate,\n\t\tdata: Record<string, unknown>,\n\t): Promise<() => Promise<void>> {\n\t\tconst pkField = getPrimaryKeyField(rule.entityType);\n\t\t// Optimistic create only makes sense for simple PK entities\n\t\tconst pkFieldName = Array.isArray(pkField) ? pkField[0] : pkField;\n\t\tconst tempId = (data[pkFieldName] as string) ?? generateTempId();\n\t\tconst record = { ...data, [pkFieldName]: tempId, __typename: this._tableToTypename(rule.entityType) };\n\n\t\tconst table = this._db.table(rule.entityType);\n\n\t\t// Write entity to store (no query result modification)\n\t\tawait table.put(record);\n\n\t\t// Rollback: remove the temp entity\n\t\treturn async () => {\n\t\t\tawait table.delete(tempId);\n\t\t};\n\t}\n\n\t/**\n\t * Optimistic update: snapshot existing record, apply changes.\n\t */\n\tprivate async _optimisticUpdate(\n\t\trule: CacheRuleUpdate,\n\t\tdata: Record<string, unknown>,\n\t): Promise<() => Promise<void>> {\n\t\tconst table = this._db.table(rule.entityType);\n\t\tconst pk = getPrimaryKeyValue(rule.entityType, data);\n\t\tconst existing = (await table.get(pk)) as EntityRecord | undefined;\n\t\t// Deep clone the snapshot so nested objects (JSON fields like piiMaskRules,\n\t\t// query, model, etc.) are independent copies — shallow spread would share\n\t\t// references, causing mutations to corrupt the rollback data.\n\t\tconst snapshot = existing ? structuredClone(existing) : undefined;\n\n\t\tif (existing) {\n\t\t\tconst merged = mergeEntityRecord(existing, data);\n\t\t\tawait table.put(merged);\n\t\t}\n\n\t\t// Rollback: restore the snapshot\n\t\treturn async () => {\n\t\t\tif (snapshot) {\n\t\t\t\tawait table.put(snapshot);\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Optimistic delete: snapshot the entity and remove it from tables and query results.\n\t */\n\tprivate async _optimisticDelete(\n\t\trule: CacheRuleDelete,\n\t\tdata: Record<string, unknown>,\n\t): Promise<() => Promise<void>> {\n\t\tconst table = this._db.table(rule.entityType);\n\t\tconst pk = getPrimaryKeyValue(rule.entityType, data);\n\t\tconst pkStr = primaryKeyToString(rule.entityType, data);\n\n\t\t// Snapshot and delete must be atomic to prevent partial state\n\t\t// (entity removed but query results still referencing it, or vice versa).\n\t\tconst { snapshot, affectedQueryResults } = await this._db.transaction(\n\t\t\t'rw',\n\t\t\t[table, this._db._queryResults],\n\t\t\tasync () => {\n\t\t\t\tconst snapshot = (await table.get(pk)) as EntityRecord | undefined;\n\n\t\t\t\t// Remove from entity table\n\t\t\t\tawait table.delete(pk);\n\n\t\t\t\t// Remove from query results\n\t\t\t\tconst affectedQueryResults: Array<{ key: string; snapshot: QueryResultEntry }> = [];\n\t\t\t\tconst queryResults: QueryResultEntry[] = await this._db._queryResults\n\t\t\t\t\t.where('entityType')\n\t\t\t\t\t.equals(rule.entityType)\n\t\t\t\t\t.toArray();\n\n\t\t\t\tfor (const qr of queryResults) {\n\t\t\t\t\tconst snapshotQr = { ...qr, entityIds: [...qr.entityIds] };\n\t\t\t\t\taffectedQueryResults.push({ key: qr.key, snapshot: snapshotQr });\n\n\t\t\t\t\tqr.entityIds = qr.entityIds.filter((eid: string) => eid !== pkStr);\n\t\t\t\t\tif (qr.totalCount !== undefined) {\n\t\t\t\t\t\tqr.totalCount = Math.max(0, qr.totalCount - 1);\n\t\t\t\t\t}\n\t\t\t\t\tawait this._db._queryResults.put(qr);\n\t\t\t\t}\n\n\t\t\t\treturn { snapshot, affectedQueryResults };\n\t\t\t},\n\t\t);\n\n\t\t// Rollback: restore entity and query results atomically\n\t\treturn async () => {\n\t\t\tawait this._db.transaction('rw', [table, this._db._queryResults], async () => {\n\t\t\t\tif (snapshot) {\n\t\t\t\t\tawait table.put(snapshot);\n\t\t\t\t}\n\t\t\t\tfor (const { snapshot: qrSnapshot } of affectedQueryResults) {\n\t\t\t\t\tawait this._db._queryResults.put(qrSnapshot);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t}\n\n\t/**\n\t * Reverse lookup: table name → GraphQL __typename.\n\t */\n\tprivate _tableToTypename(tableName: string): string {\n\t\treturn TABLE_TO_TYPENAME[tableName] ?? tableName;\n\t}\n}\n","/**\n * MutationExecutor — Mutation execution with cache rule application\n *\n * Responsibilities:\n * - Execute mutations via HTTP transport\n * - Coordinate optimistic updates (via OptimisticManager) and rollback on error\n * - Apply convention-based cache rules (create/update/delete) after server response\n * - Handle cascade deletes for related entity types\n */\n\nimport type { DocumentNode } from 'graphql';\nimport type { DvinaDatabase, QueryResultEntry } from './database.js';\nimport { getPrimaryKeyField, getPrimaryKeyValue, primaryKeyToString, resolveTableName } from './database.js';\nimport { normalize } from './normalization.js';\nimport { getRootField } from './utils.js';\nimport type { CacheCascadeDeleteRule, CacheRule } from './sync-engine.js';\nimport type { CacheManager } from './cache-manager.js';\nimport { OptimisticManager, isTempId } from './optimistic-manager.js';\nimport type { QueryExecutor } from './query-executor.js';\nimport type { HttpTransport } from '../transport/http.js';\n\nexport class MutationExecutor {\n\tprivate _optimistic: OptimisticManager;\n\n\tconstructor(\n\t\tprivate _db: DvinaDatabase,\n\t\tprivate _http: HttpTransport,\n\t\tprivate _cache: CacheManager,\n\t\tprivate _queryExecutor: QueryExecutor,\n\t) {\n\t\tthis._optimistic = new OptimisticManager(_db);\n\t}\n\n\t/**\n\t * Execute a mutation with optional optimistic update and automatic cache rule.\n\t *\n\t * Flow:\n\t * 1. **Optimistic write** (if cache rule is create/update/delete) — immediately\n\t * update Dexie so all watchers see the change\n\t * 2. **Server call** — send the mutation to the server\n\t * 3. **Commit** — normalize server response and write to Dexie (replacing optimistic data)\n\t * 4. **Rollback** (on error) — restore the original state in Dexie\n\t */\n\tasync mutate<T>(\n\t\tdocument: DocumentNode,\n\t\tvariables?: Record<string, unknown>,\n\t\tcacheRule?: CacheRule,\n\t\toptimisticData?: Record<string, unknown>,\n\t): Promise<T> {\n\t\tlet rollback: (() => Promise<void>) | undefined;\n\n\t\t// Step 1: Optimistic write\n\t\tif (cacheRule && optimisticData) {\n\t\t\trollback = await this._optimistic.applyOptimistic(cacheRule, optimisticData);\n\t\t}\n\n\t\ttry {\n\t\t\t// Step 2: Server call\n\t\t\tconst data = await this._http.request<T>(document, variables);\n\n\t\t\t// Step 3: Commit — normalize and write server response\n\t\t\tconst rootField = getRootField(data as Record<string, unknown>);\n\t\t\tif (rootField) {\n\t\t\t\tconst { entities } = normalize(data as Record<string, unknown>, rootField);\n\n\t\t\t\t// If we had an optimistic create with a temp ID, replace it\n\t\t\t\tif (cacheRule?.type === 'create' && optimisticData) {\n\t\t\t\t\tconst pkFieldName = Array.isArray(getPrimaryKeyField(cacheRule.entityType))\n\t\t\t\t\t\t? getPrimaryKeyField(cacheRule.entityType)[0]\n\t\t\t\t\t\t: (getPrimaryKeyField(cacheRule.entityType) as string);\n\t\t\t\t\tconst tempId = optimisticData[pkFieldName] as string | undefined;\n\t\t\t\t\tif (tempId && isTempId(tempId)) {\n\t\t\t\t\t\tawait this._optimistic.replaceTempId(cacheRule.entityType, tempId, entities);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tawait this._queryExecutor.writeEntities(entities);\n\t\t\t}\n\n\t\t\t// Apply cache rule side effects (e.g. delete cascade)\n\t\t\tif (cacheRule) {\n\t\t\t\tawait this._applyCacheRule(cacheRule, data as Record<string, unknown>, rootField);\n\t\t\t}\n\n\t\t\treturn data;\n\t\t} catch (error) {\n\t\t\t// Step 4: Rollback on error\n\t\t\tif (rollback) {\n\t\t\t\tawait rollback();\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\t// ─── Internal: Cache Rule Application ──────────────────────────────────\n\n\t/**\n\t * Apply cache rule side effects after a successful mutation.\n\t * This handles things like cascade deletes and query result prepends.\n\t */\n\tprivate async _applyCacheRule(\n\t\trule: CacheRule,\n\t\tresponseData: Record<string, unknown>,\n\t\trootField: string | undefined,\n\t): Promise<void> {\n\t\tconst rootValue = rootField ? responseData[rootField] : responseData;\n\t\tif (!rootValue || typeof rootValue !== 'object') return;\n\n\t\tconst entity = rootValue as Record<string, unknown>;\n\n\t\tif (rule.type === 'delete') {\n\t\t\tconst pk = getPrimaryKeyValue(rule.entityType, entity);\n\t\t\tconst pkStr = primaryKeyToString(rule.entityType, entity);\n\n\t\t\t// Remove from entity table\n\t\t\ttry {\n\t\t\t\tawait this._db.table(rule.entityType).delete(pk);\n\t\t\t} catch {\n\t\t\t\t// Table might not exist\n\t\t\t}\n\n\t\t\t// Remove from all query results for this entity type\n\t\t\tawait this._cache.removeEntityFromQueryResults(rule.entityType, pkStr);\n\n\t\t\t// Cascade deletes\n\t\t\tif (rule.cascadeDelete) {\n\t\t\t\tfor (const cascadeRule of rule.cascadeDelete) {\n\t\t\t\t\tawait this._cascadeDelete(rule.entityType, cascadeRule, pkStr);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// For create: entities are already written by writeEntities.\n\t\t// Query result list placement is handled by server-driven SSE\n\t\t// subscription events (query-add), which evaluate Prisma filters\n\t\t// on the server and target the correct query results.\n\t\t// For update: entities are already written by writeEntities.\n\t\t// liveQuery automatically re-emits. No additional work needed.\n\t}\n\n\t/**\n\t * Cascade-delete related entities by following common foreign-key patterns.\n\t *\n\t * Uses Dexie `.filter()` to push predicate evaluation into the cursor walk\n\t * instead of reading every record into JS with `.toArray()`.\n\t */\n\tprivate async _cascadeDelete(\n\t\tparentEntityType: string,\n\t\trule: CacheCascadeDeleteRule,\n\t\tparentId: string,\n\t): Promise<void> {\n\t\tconst tableName = resolveTableName(rule.entityType) ?? rule.entityType;\n\t\tconst relationFields = rule.relationFields?.length\n\t\t\t? rule.relationFields\n\t\t\t: inferCascadeRelationFields(parentEntityType, tableName);\n\n\t\ttry {\n\t\t\tconst table = this._db.table(tableName);\n\n\t\t\tconst matchingRecords = await table\n\t\t\t\t.filter((record: unknown) => {\n\t\t\t\t\tconst rec = record as Record<string, unknown>;\n\t\t\t\t\treturn relationFields.some((field) => rec[field] === parentId);\n\t\t\t\t})\n\t\t\t\t.toArray();\n\n\t\t\tif (matchingRecords.length === 0) return;\n\n\t\t\tconst toDeletePks: unknown[] = [];\n\t\t\tconst toDeleteStrs: string[] = [];\n\n\t\t\tfor (const record of matchingRecords) {\n\t\t\t\tconst rec = record as Record<string, unknown>;\n\n\t\t\t\tif (rule.cascadeDelete?.length) {\n\t\t\t\t\tconst recordPk = primaryKeyToString(tableName, rec);\n\t\t\t\t\tfor (const nestedRule of rule.cascadeDelete) {\n\t\t\t\t\t\tawait this._cascadeDelete(tableName, nestedRule, recordPk);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttoDeletePks.push(getPrimaryKeyValue(tableName, rec));\n\t\t\t\ttoDeleteStrs.push(primaryKeyToString(tableName, rec));\n\t\t\t}\n\n\t\t\tawait table.bulkDelete(toDeletePks);\n\n\t\t\t// Batch-update query results\n\t\t\tawait this._cache.removeEntitiesFromQueryResults(tableName, toDeleteStrs);\n\t\t} catch {\n\t\t\t// Table doesn't exist — skip\n\t\t}\n\t}\n}\n\nfunction inferCascadeRelationFields(parentEntityType: string, childEntityType: string): string[] {\n\tconst singularParent = parentEntityType.endsWith('s') ? parentEntityType.slice(0, -1) : parentEntityType;\n\tconst fields = new Set<string>(['parentId', `${singularParent}Id`]);\n\n\tif (parentEntityType === 'tables' && childEntityType === 'relations') {\n\t\tfields.add('fromTableId');\n\t\tfields.add('toTableId');\n\t}\n\n\treturn [...fields];\n}\n","import type { DocumentNode } from 'graphql';\nimport type { DvinaDatabase, QueryResultEntry, EntityRecord } from './database.js';\nimport { buildQueryKey, getPrimaryKeyField, getPrimaryKeyValue, primaryKeyToString } from './database.js';\nimport { TABLE_TO_TYPENAME, TYPENAME_TO_TABLE } from '../_generated_store.js';\nimport { mergeEntityRecord, normalize } from './normalization.js';\nimport { CacheManager } from './cache-manager.js';\nimport { QueryExecutor } from './query-executor.js';\nimport { MutationExecutor } from './mutation-executor.js';\nimport type { HttpTransport } from '../transport/http.js';\nimport type { SseTransport, SseSyncEvent, SseQueryEvent, SubscriptionDescriptor } from '../transport/sse.js';\nimport type { DvinaQueryRef } from '../types.js';\n\n// ─── Cache Rule Types ────────────────────────────────────────────────────────\n\n/**\n * Convention-based cache rules generated by codegen.\n * These tell the SyncEngine how to update the local store after a mutation.\n */\nexport interface CacheRuleCreate {\n\ttype: 'create';\n\t/** Dexie table name for the created entity (e.g. 'chats') */\n\tentityType: string;\n\t/** Query result keys to prepend the new entity to (e.g. ['chats']) */\n\tconnectionFields: string[];\n}\n\nexport interface CacheRuleUpdate {\n\ttype: 'update';\n\t/** Dexie table name for the updated entity */\n\tentityType: string;\n}\n\nexport interface CacheRuleDelete {\n\ttype: 'delete';\n\t/** Dexie table name for the deleted entity */\n\tentityType: string;\n\t/** Query result keys to remove the entity from */\n\tconnectionFields: string[];\n\t/** Related entity types to cascade-delete alongside the parent entity */\n\tcascadeDelete?: CacheCascadeDeleteRule[];\n}\n\nexport interface CacheCascadeDeleteRule {\n\t/** Dexie table name for the related entity to remove */\n\tentityType: string;\n\t/** Explicit foreign-key fields to match against the parent ID */\n\trelationFields?: string[];\n\t/** Nested cascade rules for children of this related entity */\n\tcascadeDelete?: CacheCascadeDeleteRule[];\n}\n\nexport type CacheRule = CacheRuleCreate | CacheRuleUpdate | CacheRuleDelete;\n\n// ─── SyncEngine ──────────────────────────────────────────────────────────────\n\nexport interface SyncEngineOptions {\n\t/** The Dexie database instance */\n\tdb: DvinaDatabase;\n\t/** HTTP transport for queries and mutations */\n\thttpTransport: HttpTransport;\n\t/** Optional SSE transport for delta sync (browser-only) */\n\tsseTransport?: SseTransport;\n}\n\ninterface ActiveSubscriptionQuery {\n\tqueryKey: string;\n\tentityType: string;\n\tdocument: DocumentNode;\n\tvariables: Record<string, unknown> | undefined;\n\toperationName: string;\n\trelationMetadata?: WatchedRelationMetadata[];\n}\n\ninterface WatchedRelationMetadata {\n\tfieldName: string;\n\tentityType: string;\n\trequiredFields: string[];\n\tisConnection: boolean;\n\tisList: boolean;\n\thasNestedIncludes: boolean;\n}\n\ninterface MaterializedRelationState {\n\tstatus: 'resolved' | 'missing' | 'unsupported';\n}\n\ninterface MaterializedRelationsResult {\n\tentities: Map<string, Record<string, unknown>[]>;\n\tnestedConnections: Map<string, QueryResultEntry>;\n\tstates: Map<string, MaterializedRelationState>;\n}\n\n/**\n * The SyncEngine is the central orchestrator for all data operations in the SDK.\n *\n * It sits between the generated SDK classes and the transport/store layers:\n *\n * ```\n * SDK classes → SyncEngine → HTTP Transport (server)\n * → Dexie (local store)\n * → liveQuery (reactivity)\n * ```\n *\n * Responsibilities:\n * 1. **query()** — Fetch from server → normalize → write to Dexie → return data\n * 2. **watch()** — Create a Dexie liveQuery, fetch from server on cold start,\n * auto-update on any store change\n * 3. **mutate()** — Optimistic write → server call → commit/rollback\n * 4. **Cache rules** — Convention-based auto cache updates for CRUD mutations\n */\nexport class SyncEngine {\n\tprivate _db: DvinaDatabase;\n\tprivate _sse?: SseTransport;\n\tprivate _cache: CacheManager;\n\tprivate _queryExecutor: QueryExecutor;\n\tprivate _mutationExecutor: MutationExecutor;\n\n\t/**\n\t * Maps subscriptionId → queryKey for routing server-driven query events\n\t * to the correct cache entry. Populated by watch() when a subscription\n\t * descriptor is provided, cleaned up on dispose().\n\t */\n\tprivate _subscriptionToQueryKey = new Map<string, string>();\n\n\t/** Active subscription metadata used for targeted revalidation fallback. */\n\tprivate _subscriptionToQuery = new Map<string, ActiveSubscriptionQuery>();\n\n\t/** Last per-query revalidation timestamp to avoid refetch storms. */\n\tprivate _lastRevalidatedAt = new Map<string, number>();\n\n\t/**\n\t * Last mutation/sync touch timestamp by entity type.\n\t * Used to detect stale cached query results on watch re-entry.\n\t */\n\tprivate _entityTypeTouchedAt = new Map<string, number>();\n\n\tconstructor(options: SyncEngineOptions) {\n\t\tthis._db = options.db;\n\t\tthis._sse = options.sseTransport;\n\n\t\tthis._cache = new CacheManager(options.db);\n\t\tthis._queryExecutor = new QueryExecutor(options.db, options.httpTransport, this._cache);\n\t\tthis._mutationExecutor = new MutationExecutor(\n\t\t\toptions.db,\n\t\t\toptions.httpTransport,\n\t\t\tthis._cache,\n\t\t\tthis._queryExecutor,\n\t\t);\n\t}\n\n\t// ─── Delta Sync (SSE) ─────────────────────────────────────────────────\n\n\t/**\n\t * Start the SSE delta sync connection.\n\t * Reads the last sync cursor from Dexie and connects to the SSE endpoint.\n\t * Incoming events are automatically written to Dexie, triggering liveQuery updates.\n\t */\n\tasync startSync(): Promise<void> {\n\t\tif (!this._sse) return;\n\n\t\tconst lastSyncId = await this._db.getLastSyncId();\n\t\tawait this._sse.connect(lastSyncId !== '0' ? lastSyncId : undefined);\n\t}\n\n\t/**\n\t * Stop the SSE delta sync connection.\n\t */\n\tstopSync(): void {\n\t\tthis._sse?.disconnect();\n\t}\n\n\t/**\n\t * Handle a full-resync signal from the server.\n\t *\n\t * Clears all cached entities and query results, resets the sync cursor,\n\t * then restarts the SSE connection so the client gets a fresh cursor.\n\t * When SSE is available, active subscription-backed watchers are revalidated\n\t * after the reconnect callback re-registers them with the server.\n\t * Without SSE, revalidation happens immediately.\n\t */\n\tasync handleFullResync(): Promise<void> {\n\t\tthis.stopSync();\n\t\tawait this.clearAll();\n\n\t\tif (this._sse) {\n\t\t\tvoid this.startSync();\n\t\t\treturn;\n\t\t}\n\n\t\tawait this._revalidateAllActiveSubscriptions();\n\t}\n\n\t/**\n\t * Revalidate active subscription-backed queries after the SSE transport\n\t * reconnects and re-registers them with the server.\n\t */\n\tasync handleTransportReconnect(): Promise<void> {\n\t\tawait this._revalidateAllActiveSubscriptions();\n\t}\n\n\t/**\n\t * Process an incoming SSE sync event.\n\t * Writes the entity to Dexie and updates the sync cursor atomically.\n\t */\n\tasync processSyncEvent(event: SseSyncEvent): Promise<void> {\n\t\tif (event.type === 'upsert' && event.payload) {\n\t\t\tawait this._processSyncUpsert(event);\n\t\t} else if (event.type === 'delete') {\n\t\t\tawait this._processSyncDelete(event);\n\t\t}\n\n\t\t// Update the sync cursor\n\t\tawait this._db.setLastSyncId(event.id);\n\t}\n\n\t// ─── Query ─────────────────────────────────────────────────────────────\n\n\t/**\n\t * Execute a query: fetch from server → normalize → write to Dexie → return raw data.\n\t *\n\t * For connection queries, also writes the ordered entity IDs to `_queryResults`\n\t * so that `watch()` can reconstruct the same ordered list from the store.\n\t */\n\tasync query<T>(document: DocumentNode, variables?: Record<string, unknown>, operationName?: string): Promise<T> {\n\t\treturn this._queryExecutor.query<T>(document, variables, operationName);\n\t}\n\n\t// ─── Watch ─────────────────────────────────────────────────────────────\n\n\t/**\n\t * Create a reactive query that auto-updates when the underlying store changes.\n\t *\n\t * **Cold start**: The first emission waits for the server fetch to complete.\n\t * After that, Dexie's `liveQuery` handles reactivity — any write to a table\n\t * accessed by the query factory triggers a re-emission.\n\t *\n\t * When a `subscriptionDescriptor` is provided, the watch registers a\n\t * server-driven subscription via the SSE transport. The server evaluates\n\t * Prisma filters on create/update/upsert events and sends targeted\n\t * `query-add` / `query-remove`\n\t * events back, which this engine routes to the correct cache entry.\n\t *\n\t * @param document - The GraphQL query document\n\t * @param variables - Query variables\n\t * @param operationName - The operation name (used as the query result cache key)\n\t * @param buildResult - A function that reads from Dexie and returns the raw response shape.\n\t * @param subscriptionDescriptor - Optional server-driven subscription metadata for filtered queries.\n\t */\n\twatch<T>(\n\t\tdocument: DocumentNode,\n\t\tvariables: Record<string, unknown> | undefined,\n\t\toperationName: string,\n\t\tbuildResult: (db: DvinaDatabase) => Promise<T> | T,\n\t\tsubscriptionDescriptor?: SubscriptionDescriptor,\n\t\trelationMetadata?: WatchedRelationMetadata[],\n\t): DvinaQueryRef<T> {\n\t\tconst ref = this._queryExecutor.watch<T>(document, variables, operationName, buildResult);\n\n\t\t// Track active query metadata for revalidation fallback.\n\t\tif (subscriptionDescriptor) {\n\t\t\tconst queryKey = buildQueryKey(operationName, variables, document);\n\t\t\tthis._subscriptionToQuery.set(subscriptionDescriptor.id, {\n\t\t\t\tqueryKey,\n\t\t\t\tentityType: subscriptionDescriptor.entityType,\n\t\t\t\tdocument,\n\t\t\t\tvariables,\n\t\t\t\toperationName,\n\t\t\t\trelationMetadata,\n\t\t\t});\n\n\t\t\tif (this._sse) {\n\t\t\t\tthis._subscriptionToQueryKey.set(subscriptionDescriptor.id, queryKey);\n\t\t\t\tthis._sse.subscribe(subscriptionDescriptor);\n\t\t\t}\n\n\t\t\tvoid this._revalidateSubscriptionIfStale(subscriptionDescriptor.id);\n\n\t\t\t// Wrap dispose to also unsubscribe\n\t\t\tconst originalDispose = ref.dispose.bind(ref);\n\t\t\tref.dispose = () => {\n\t\t\t\tthis._subscriptionToQueryKey.delete(subscriptionDescriptor.id);\n\t\t\t\tthis._subscriptionToQuery.delete(subscriptionDescriptor.id);\n\t\t\t\tif (this._sse) {\n\t\t\t\t\tthis._sse.unsubscribe(subscriptionDescriptor.id);\n\t\t\t\t}\n\t\t\t\toriginalDispose();\n\t\t\t};\n\t\t}\n\n\t\treturn ref;\n\t}\n\n\t// ─── Mutate ────────────────────────────────────────────────────────────\n\n\t/**\n\t * Execute a mutation with optional optimistic update and automatic cache rule.\n\t *\n\t * Flow:\n\t * 1. **Optimistic write** (if cache rule is create/update/delete) — immediately\n\t * update Dexie so all watchers see the change\n\t * 2. **Server call** — send the mutation to the server\n\t * 3. **Commit** — normalize server response and write to Dexie (replacing optimistic data)\n\t * 4. **Rollback** (on error) — restore the original state in Dexie\n\t */\n\tasync mutate<T>(\n\t\tdocument: DocumentNode,\n\t\tvariables?: Record<string, unknown>,\n\t\tcacheRule?: CacheRule,\n\t\toptimisticData?: Record<string, unknown>,\n\t): Promise<T> {\n\t\tconst result = await this._mutationExecutor.mutate<T>(document, variables, cacheRule, optimisticData);\n\n\t\tif (cacheRule) {\n\t\t\tthis._markEntityTypeTouched(cacheRule.entityType);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// ─── Public: Store Access ──────────────────────────────────────────────\n\n\t/** Direct access to the Dexie database (for advanced use cases) */\n\tget db(): DvinaDatabase {\n\t\treturn this._db;\n\t}\n\n\t/**\n\t * Read a single entity from the store by table name and primary key.\n\t *\n\t * @param tableName - Dexie table name (e.g. 'chats', 'reportMembers')\n\t * @param pk - Primary key value. String for simple keys, string[] for compound keys.\n\t */\n\tasync getEntity(tableName: string, pk: string | string[]): Promise<EntityRecord | undefined> {\n\t\ttry {\n\t\t\treturn (await this._db.table(tableName).get(pk)) as EntityRecord | undefined;\n\t\t} catch {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Read query result metadata from the store.\n\t */\n\tasync getQueryResult(\n\t\toperationName: string,\n\t\tvariables?: Record<string, unknown>,\n\t): Promise<QueryResultEntry | undefined> {\n\t\treturn this._cache.getQueryResult(operationName, variables);\n\t}\n\n\t/**\n\t * Invalidate (delete) a query result, forcing the next watch() to refetch.\n\t */\n\tasync invalidateQuery(operationName: string, variables?: Record<string, unknown>): Promise<void> {\n\t\treturn this._cache.invalidateQuery(operationName, variables);\n\t}\n\n\t/**\n\t * Clear all data from the store (but keep the database structure).\n\t * Useful for logout scenarios.\n\t */\n\tasync clearAll(): Promise<void> {\n\t\tconst tables = this._db.allTables;\n\t\tconst tableNames = tables.map((t) => t.name);\n\t\tawait this._db.transaction('rw', tables, async () => {\n\t\t\tfor (const name of tableNames) {\n\t\t\t\tawait this._db.table(name).clear();\n\t\t\t}\n\t\t});\n\t}\n\n\t// ─── Server-Driven Query Events ─────────────────────────────────────────\n\n\t/**\n\t * Process a server-driven query event (query-add / query-remove).\n\t *\n\t * The server evaluates Prisma filters on create/update/upsert events and sends targeted\n\t * events to subscriptions that match. This method routes the event to the\n\t * correct query result cache entry using the subscriptionId → queryKey map.\n\t */\n\tasync processQueryEvent(event: SseQueryEvent): Promise<void> {\n\t\tconst queryKey = this._subscriptionToQueryKey.get(event.subscriptionId);\n\t\tif (!queryKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.type === 'add') {\n\t\t\tawait this._cache.prependEntityToSpecificQueryResult(queryKey, event.entityId);\n\t\t} else if (event.type === 'remove') {\n\t\t\tawait this._cache.removeEntityFromSpecificQueryResult(queryKey, event.entityId);\n\t\t}\n\t}\n\n\t// ─── Internal: SSE Sync Event Handlers ─────────────────────────────────\n\n\t/**\n\t * Handle an upsert sync event: normalize the payload and write to Dexie.\n\t *\n\t * The updated entity type is marked as touched so cached query results can\n\t * be revalidated lazily when those queries become active again.\n\t */\n\tprivate async _processSyncUpsert(event: SseSyncEvent): Promise<void> {\n\t\tconst tableName = TYPENAME_TO_TABLE[event.modelName];\n\t\tif (!tableName || !event.payload) return;\n\n\t\t// The payload is the full entity record from the server.\n\t\t// We wrap it with __typename so the normalizer can route it.\n\t\tconst record: Record<string, unknown> = {\n\t\t\t...event.payload,\n\t\t\t__typename: event.modelName,\n\t\t};\n\t\tconst table = this._db.table(tableName);\n\t\tconst pkField = getPrimaryKeyField(tableName);\n\n\t\tlet pk: unknown;\n\t\tif (Array.isArray(pkField)) {\n\t\t\tpk = pkField.map((f) => record[f]);\n\t\t} else {\n\t\t\tpk = record[pkField];\n\t\t}\n\n\t\tconst existing = await table.get(pk).catch(() => undefined);\n\t\tconst { entities, nestedConnections } = normalize({ entity: record }, 'entity');\n\t\tconst activeSubscriptions = this._getActiveSubscriptionsForEntityType(tableName);\n\t\tconst materializedRelations = this._materializeWatchedRelations(tableName, record, activeSubscriptions);\n\n\t\tif (entities.size > 0) {\n\t\t\tawait this._queryExecutor.writeEntities(entities);\n\t\t} else if (existing) {\n\t\t\tconst merged = mergeEntityRecord(existing as Record<string, unknown>, record);\n\t\t\tawait table.put(merged);\n\t\t} else {\n\t\t\tawait table.put(record);\n\t\t}\n\n\t\tif (materializedRelations.entities.size > 0) {\n\t\t\tawait this._queryExecutor.writeEntities(materializedRelations.entities);\n\t\t}\n\n\t\tif (nestedConnections) {\n\t\t\tfor (const [connKey, connInfo] of nestedConnections) {\n\t\t\t\tawait this._cache.writeQueryResult(connKey, connInfo);\n\t\t\t}\n\t\t}\n\n\t\tfor (const [connKey, connInfo] of materializedRelations.nestedConnections) {\n\t\t\tawait this._cache.writeQueryResult(connKey, connInfo);\n\t\t}\n\n\t\tfor (const entityType of entities.keys()) {\n\t\t\tthis._markEntityTypeTouched(entityType);\n\t\t}\n\n\t\tfor (const entityType of materializedRelations.entities.keys()) {\n\t\t\tthis._markEntityTypeTouched(entityType);\n\t\t}\n\n\t\tif (entities.size === 0) {\n\t\t\tthis._markEntityTypeTouched(tableName);\n\t\t}\n\n\t\tconst hasNestedEntities = [...entities.keys(), ...materializedRelations.entities.keys()].some(\n\t\t\t(entityType) => entityType !== tableName,\n\t\t);\n\t\tif (!hasNestedEntities) {\n\t\t\tconst subscriptionsToRevalidate = activeSubscriptions.filter((sub) =>\n\t\t\t\tthis._subscriptionNeedsRevalidation(sub, materializedRelations.states),\n\t\t\t);\n\t\t\tawait this._revalidateSubscriptions(subscriptionsToRevalidate);\n\t\t}\n\t}\n\n\tprivate _markEntityTypeTouched(entityType: string): void {\n\t\tthis._entityTypeTouchedAt.set(entityType, Date.now());\n\t}\n\n\tprivate async _revalidateSubscriptionIfStale(subscriptionId: string): Promise<void> {\n\t\tconst sub = this._subscriptionToQuery.get(subscriptionId);\n\t\tif (!sub) return;\n\n\t\tconst touchedAt = this._entityTypeTouchedAt.get(sub.entityType);\n\t\tif (!touchedAt) return;\n\n\t\tconst cached = await this._db._queryResults.get(sub.queryKey);\n\t\tif (!cached) return;\n\n\t\tif (cached.fetchedAt >= touchedAt) return;\n\n\t\tawait this.query(sub.document, sub.variables, sub.operationName).catch(() => undefined);\n\t}\n\n\tprivate async _revalidateAllActiveSubscriptions(): Promise<void> {\n\t\tawait this._revalidateSubscriptions(Array.from(this._subscriptionToQuery.values()), { force: true });\n\t}\n\n\tprivate async _revalidateSubscriptions(\n\t\tsubscriptions: ActiveSubscriptionQuery[],\n\t\toptions?: { force?: boolean },\n\t): Promise<void> {\n\t\tconst now = Date.now();\n\t\tconst pendingByQueryKey = new Map<string, ActiveSubscriptionQuery>();\n\n\t\tfor (const sub of subscriptions) {\n\t\t\tconst lastAt = this._lastRevalidatedAt.get(sub.queryKey) ?? 0;\n\t\t\tif (!options?.force && now - lastAt < 200) continue;\n\t\t\tpendingByQueryKey.set(sub.queryKey, sub);\n\t\t}\n\n\t\tif (pendingByQueryKey.size === 0) return;\n\n\t\tfor (const sub of pendingByQueryKey.values()) {\n\t\t\tthis._lastRevalidatedAt.set(sub.queryKey, now);\n\t\t}\n\n\t\tawait Promise.all(\n\t\t\tArray.from(pendingByQueryKey.values()).map((sub) =>\n\t\t\t\tthis.query(sub.document, sub.variables, sub.operationName).catch(() => undefined),\n\t\t\t),\n\t\t);\n\t}\n\n\tprivate _getActiveSubscriptionsForEntityType(entityType: string): ActiveSubscriptionQuery[] {\n\t\treturn Array.from(this._subscriptionToQuery.values()).filter((sub) => sub.entityType === entityType);\n\t}\n\n\tprivate _materializeWatchedRelations(\n\t\tparentEntityType: string,\n\t\tparentRecord: Record<string, unknown>,\n\t\tsubscriptions: ActiveSubscriptionQuery[],\n\t): MaterializedRelationsResult {\n\t\tconst relationMetadata = new Map<string, WatchedRelationMetadata>();\n\t\tfor (const sub of subscriptions) {\n\t\t\tfor (const relation of sub.relationMetadata ?? []) {\n\t\t\t\trelationMetadata.set(relation.fieldName, relation);\n\t\t\t}\n\t\t}\n\n\t\tconst states = new Map<string, MaterializedRelationState>();\n\t\tconst entities = new Map<string, Record<string, unknown>[]>();\n\t\tconst nestedConnections = new Map<string, QueryResultEntry>();\n\t\tconst parentId = primaryKeyToString(parentEntityType, parentRecord);\n\n\t\tfor (const relation of relationMetadata.values()) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(parentRecord, relation.fieldName)) {\n\t\t\t\tstates.set(relation.fieldName, { status: 'missing' });\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst value = parentRecord[relation.fieldName];\n\t\t\tconst queryKey = `${parentEntityType}.${parentId}.${relation.fieldName}`;\n\n\t\t\tif (value === null) {\n\t\t\t\tnestedConnections.set(queryKey, {\n\t\t\t\t\tentityIds: [],\n\t\t\t\t\tentityType: relation.entityType,\n\t\t\t\t\tfetchedAt: Date.now(),\n\t\t\t\t\tkey: queryKey,\n\t\t\t\t});\n\t\t\t\tstates.set(relation.fieldName, { status: 'resolved' });\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (relation.isConnection) {\n\t\t\t\tstates.set(relation.fieldName, { status: 'unsupported' });\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (relation.isList) {\n\t\t\t\tif (!Array.isArray(value)) {\n\t\t\t\t\tstates.set(relation.fieldName, { status: 'unsupported' });\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (value.length === 0) {\n\t\t\t\t\tnestedConnections.set(queryKey, {\n\t\t\t\t\t\tentityIds: [],\n\t\t\t\t\t\tentityType: relation.entityType,\n\t\t\t\t\t\tfetchedAt: Date.now(),\n\t\t\t\t\t\tkey: queryKey,\n\t\t\t\t\t});\n\t\t\t\t\tstates.set(relation.fieldName, { status: 'resolved' });\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (relation.hasNestedIncludes) {\n\t\t\t\t\tstates.set(relation.fieldName, { status: 'unsupported' });\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst childRecords: Record<string, unknown>[] = [];\n\t\t\t\tconst entityIds: string[] = [];\n\t\t\t\tlet isMaterialized = true;\n\n\t\t\t\tfor (const item of value) {\n\t\t\t\t\tconst childRecord = this._buildMaterializedRelationRecord(\n\t\t\t\t\t\trelation.entityType,\n\t\t\t\t\t\titem,\n\t\t\t\t\t\tparentEntityType,\n\t\t\t\t\t\tparentRecord,\n\t\t\t\t\t\trelation,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (!this._canMaterializeRelationRecord(childRecord, relation)) {\n\t\t\t\t\t\tisMaterialized = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tchildRecords.push(childRecord);\n\t\t\t\t\tentityIds.push(primaryKeyToString(relation.entityType, childRecord));\n\t\t\t\t}\n\n\t\t\t\tif (!isMaterialized) {\n\t\t\t\t\tstates.set(relation.fieldName, { status: 'unsupported' });\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tentities.set(relation.entityType, [...(entities.get(relation.entityType) ?? []), ...childRecords]);\n\t\t\t\tnestedConnections.set(queryKey, {\n\t\t\t\t\tentityIds,\n\t\t\t\t\tentityType: relation.entityType,\n\t\t\t\t\tfetchedAt: Date.now(),\n\t\t\t\t\tkey: queryKey,\n\t\t\t\t});\n\t\t\t\tstates.set(relation.fieldName, { status: 'resolved' });\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst childRecord = this._buildMaterializedRelationRecord(\n\t\t\t\trelation.entityType,\n\t\t\t\tvalue,\n\t\t\t\tparentEntityType,\n\t\t\t\tparentRecord,\n\t\t\t\trelation,\n\t\t\t);\n\n\t\t\tif (relation.hasNestedIncludes || !this._canMaterializeRelationRecord(childRecord, relation)) {\n\t\t\t\tstates.set(relation.fieldName, { status: 'unsupported' });\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tentities.set(relation.entityType, [...(entities.get(relation.entityType) ?? []), childRecord]);\n\t\t\tnestedConnections.set(queryKey, {\n\t\t\t\tentityIds: [primaryKeyToString(relation.entityType, childRecord)],\n\t\t\t\tentityType: relation.entityType,\n\t\t\t\tfetchedAt: Date.now(),\n\t\t\t\tkey: queryKey,\n\t\t\t});\n\t\t\tstates.set(relation.fieldName, { status: 'resolved' });\n\t\t}\n\n\t\treturn { entities, nestedConnections, states };\n\t}\n\n\tprivate _subscriptionNeedsRevalidation(\n\t\tsubscription: ActiveSubscriptionQuery,\n\t\trelationStates: Map<string, MaterializedRelationState>,\n\t): boolean {\n\t\tif (!subscription.relationMetadata || subscription.relationMetadata.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn subscription.relationMetadata.some(\n\t\t\t(relation) => relationStates.get(relation.fieldName)?.status !== 'resolved',\n\t\t);\n\t}\n\n\tprivate _canMaterializeRelationRecord(value: unknown, relation: WatchedRelationMetadata): boolean {\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst record = value as Record<string, unknown>;\n\t\tconst pkField = getPrimaryKeyField(relation.entityType);\n\t\tconst requiredFields = new Set(relation.requiredFields);\n\t\tif (Array.isArray(pkField)) {\n\t\t\tfor (const field of pkField) {\n\t\t\t\trequiredFields.add(field);\n\t\t\t}\n\t\t} else {\n\t\t\trequiredFields.add(pkField);\n\t\t}\n\n\t\treturn Array.from(requiredFields).every((field) => record[field] !== undefined && record[field] !== null);\n\t}\n\n\tprivate _buildMaterializedRelationRecord(\n\t\tentityType: string,\n\t\tvalue: unknown,\n\t\tparentEntityType: string,\n\t\tparentRecord: Record<string, unknown>,\n\t\trelation: WatchedRelationMetadata,\n\t): Record<string, unknown> {\n\t\tconst typename = TABLE_TO_TYPENAME[entityType];\n\t\tconst record = { ...(value as Record<string, unknown>) };\n\t\tconst parentLinkField = this._inferParentLinkField(parentEntityType, relation);\n\n\t\tif (parentLinkField) {\n\t\t\tconst parentIdField = getPrimaryKeyField(parentEntityType);\n\t\t\tif (!Array.isArray(parentIdField)) {\n\t\t\t\trecord[parentLinkField] ??= parentRecord[parentIdField];\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\t...record,\n\t\t\t...(typename ? { __typename: typename } : {}),\n\t\t};\n\t}\n\n\tprivate _inferParentLinkField(parentEntityType: string, relation: WatchedRelationMetadata): string | undefined {\n\t\tconst singularParent = parentEntityType.endsWith('s') ? parentEntityType.slice(0, -1) : parentEntityType;\n\t\tconst candidate = `${singularParent}Id`;\n\t\treturn relation.requiredFields.includes(candidate) ? candidate : undefined;\n\t}\n\n\t/**\n\t * Handle a delete sync event: remove entity from Dexie and query results.\n\t */\n\tprivate async _processSyncDelete(event: SseSyncEvent): Promise<void> {\n\t\tconst tableName = TYPENAME_TO_TABLE[event.modelName];\n\t\tif (!tableName) return;\n\n\t\ttry {\n\t\t\t// Remove from entity table\n\t\t\tawait this._db.table(tableName).delete(event.entityId);\n\n\t\t\t// Remove from query results\n\t\t\tawait this._cache.removeEntityFromQueryResults(tableName, event.entityId);\n\n\t\t\tthis._markEntityTypeTouched(tableName);\n\t\t} catch {\n\t\t\t// Table might not exist — skip\n\t\t}\n\t}\n}\n","import { createSseTransport } from './transport/sse.js';\nimport type { SseTransport } from './transport/sse.js';\nimport { DeferredDvinaQueryRef } from './runtime/query-ref.js';\nimport { SyncEngine } from './store/sync-engine.js';\nimport type { DvinaDatabase } from './store/database.js';\nimport type { createHttpTransport } from './transport/http.js';\n\ninterface CachePolicyResponse {\n\tcacheEpoch?: unknown;\n}\n\nconst AUTH_FAILED = Symbol('AUTH_FAILED');\n\nfunction normalizeCacheEpoch(value: unknown): number {\n\tconst parsed = Number(value ?? 0);\n\tif (!Number.isFinite(parsed) || parsed < 0) {\n\t\treturn 0;\n\t}\n\n\treturn Math.trunc(parsed);\n}\n\nasync function requestCacheEpoch(\n\tsyncPolicyUrl: string,\n\ttoken: string,\n): Promise<number | typeof AUTH_FAILED | undefined> {\n\tconst response = await fetch(syncPolicyUrl, {\n\t\theaders: {\n\t\t\tAuthorization: `Bearer ${token}`,\n\t\t},\n\t\tmethod: 'GET',\n\t});\n\n\tif (response.status === 401 || response.status === 403) {\n\t\treturn AUTH_FAILED;\n\t}\n\n\tif (!response.ok) {\n\t\treturn undefined;\n\t}\n\n\tconst data = (await response.json()) as CachePolicyResponse;\n\treturn normalizeCacheEpoch(data.cacheEpoch);\n}\n\nasync function fetchRemoteCacheEpoch(\n\tsyncPolicyUrl: string,\n\tgetToken: (options?: { forceRefresh?: boolean }) => Promise<string>,\n): Promise<number | undefined> {\n\ttry {\n\t\tconst initialResult = await requestCacheEpoch(syncPolicyUrl, await getToken());\n\t\tif (initialResult !== AUTH_FAILED) {\n\t\t\treturn initialResult;\n\t\t}\n\n\t\tconst refreshedResult = await requestCacheEpoch(syncPolicyUrl, await getToken({ forceRefresh: true }));\n\t\treturn refreshedResult === AUTH_FAILED ? undefined : refreshedResult;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nasync function applyRemoteCacheEpoch(\n\tdb: DvinaDatabase,\n\tengine: SyncEngine,\n\tsyncPolicyUrl: string,\n\tgetToken: (options?: { forceRefresh?: boolean }) => Promise<string>,\n): Promise<void> {\n\tconst remoteCacheEpoch = await fetchRemoteCacheEpoch(syncPolicyUrl, getToken);\n\tif (remoteCacheEpoch === undefined) {\n\t\treturn;\n\t}\n\n\tconst localCacheEpoch = await db.getCacheEpoch();\n\tif (remoteCacheEpoch <= localCacheEpoch) {\n\t\treturn;\n\t}\n\n\tawait engine.clearAll();\n\tawait db.setLastSyncId('0');\n\tawait db.setCacheEpoch(remoteCacheEpoch);\n}\n\n/**\n * Create a SyncEngine with lazy database initialization.\n * The DB is created on first use when the token becomes available.\n * SSE transport is created for browser environments to enable delta sync.\n */\nexport function createLazySyncEngine(\n\thttpTransport: ReturnType<typeof createHttpTransport>,\n\tsseUrl: string,\n\tsyncPolicyUrl: string,\n\tgetToken: (options?: { forceRefresh?: boolean }) => Promise<string>,\n\tgetDb: () => Promise<DvinaDatabase>,\n): SyncEngine {\n\t// We need a SyncEngine instance immediately (sync constructor requirement).\n\t// Use a placeholder that initializes the real SyncEngine on first use.\n\tlet realEngine: SyncEngine | undefined;\n\tlet initPromise: Promise<SyncEngine> | undefined;\n\n\tasync function getEngine(): Promise<SyncEngine> {\n\t\tif (realEngine) return realEngine;\n\t\tif (initPromise) return initPromise;\n\n\t\tinitPromise = getDb().then(async (db) => {\n\t\t\t// Create SSE transport only in browser environments (where fetch streaming works)\n\t\t\tconst isBrowser = typeof window !== 'undefined';\n\t\t\tlet sseTransport: SseTransport | undefined;\n\n\t\t\tif (isBrowser) {\n\t\t\t\t// We'll set up the event handler after the engine is created\n\t\t\t\t// so that processSyncEvent can reference the engine.\n\t\t\t\tconst transport = createSseTransport({\n\t\t\t\t\turl: sseUrl,\n\t\t\t\t\tgetToken,\n\t\t\t\t\tonEvent: (event) => {\n\t\t\t\t\t\trealEngine?.processSyncEvent(event).catch(() => {\n\t\t\t\t\t\t\t// Swallow — sync event processing is best-effort\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tonQueryEvent: (event) => {\n\t\t\t\t\t\trealEngine?.processQueryEvent(event).catch(() => {\n\t\t\t\t\t\t\t// Swallow — query event processing is best-effort\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tonCursor: (syncId) => {\n\t\t\t\t\t\tdb.setLastSyncId(syncId).catch(() => {});\n\t\t\t\t\t},\n\t\t\t\t\tonFullResync: () => {\n\t\t\t\t\t\trealEngine?.handleFullResync().catch(() => {});\n\t\t\t\t\t},\n\t\t\t\t\tonReconnect: () => {\n\t\t\t\t\t\trealEngine?.handleTransportReconnect().catch(() => {});\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tsseTransport = transport;\n\t\t\t}\n\n\t\t\trealEngine = new SyncEngine({ db, httpTransport, sseTransport });\n\t\t\tawait applyRemoteCacheEpoch(db, realEngine, syncPolicyUrl, getToken);\n\n\t\t\t// Auto-start delta sync in browser environments\n\t\t\tif (sseTransport) {\n\t\t\t\trealEngine.startSync().catch(() => {\n\t\t\t\t\t// Best-effort — sync will retry on reconnect\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn realEngine;\n\t\t});\n\n\t\treturn initPromise;\n\t}\n\n\t// Return a SyncEngine-compatible object that lazily initializes the real engine.\n\t// We use Object.create(SyncEngine.prototype) so that `instanceof SyncEngine`\n\t// checks pass correctly. Without this, the object would be a plain literal\n\t// with no prototype link — safe today (no instanceof checks exist), but\n\t// fragile if one is ever added. Keep this invariant in mind before refactoring.\n\tconst lazy = Object.create(SyncEngine.prototype) as SyncEngine;\n\n\tObject.defineProperty(lazy, 'db', {\n\t\tget() {\n\t\t\tif (!realEngine) throw new Error('SyncEngine not initialized. Await the first query.');\n\t\t\treturn realEngine.db;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true,\n\t});\n\n\tlazy.query = async function (document, variables, operationName) {\n\t\tconst engine = await getEngine();\n\t\treturn engine.query(document, variables, operationName);\n\t};\n\n\tlazy.watch = function (document, variables, operationName, buildResult, subscriptionDescriptor, relationMetadata) {\n\t\t// If the engine is already initialized, delegate directly (fast path)\n\t\tif (realEngine) {\n\t\t\treturn realEngine.watch(\n\t\t\t\tdocument,\n\t\t\t\tvariables,\n\t\t\t\toperationName,\n\t\t\t\tbuildResult,\n\t\t\t\tsubscriptionDescriptor,\n\t\t\t\trelationMetadata,\n\t\t\t);\n\t\t}\n\n\t\t// Engine not yet initialized — return a DeferredDvinaQueryRef that\n\t\t// lazily creates the real watch ref once the engine is ready.\n\t\t// This allows watch() to be called before the first query without throwing.\n\t\tconst innerPromise = getEngine().then((engine) =>\n\t\t\tengine.watch(document, variables, operationName, buildResult, subscriptionDescriptor, relationMetadata),\n\t\t);\n\t\treturn new DeferredDvinaQueryRef(innerPromise);\n\t};\n\n\tlazy.mutate = async function (document, variables, cacheRule, optimisticData) {\n\t\tconst engine = await getEngine();\n\t\treturn engine.mutate(document, variables, cacheRule, optimisticData);\n\t};\n\n\tlazy.startSync = async function () {\n\t\tconst engine = await getEngine();\n\t\treturn engine.startSync();\n\t};\n\n\tlazy.stopSync = function () {\n\t\trealEngine?.stopSync();\n\t};\n\n\tlazy.processSyncEvent = async function (event) {\n\t\tconst engine = await getEngine();\n\t\treturn engine.processSyncEvent(event);\n\t};\n\n\tlazy.processQueryEvent = async function (event) {\n\t\tconst engine = await getEngine();\n\t\treturn engine.processQueryEvent(event);\n\t};\n\n\tlazy.getEntity = async function (tableName, id) {\n\t\tconst engine = await getEngine();\n\t\treturn engine.getEntity(tableName, id);\n\t};\n\n\tlazy.getQueryResult = async function (operationName, variables) {\n\t\tconst engine = await getEngine();\n\t\treturn engine.getQueryResult(operationName, variables);\n\t};\n\n\tlazy.invalidateQuery = async function (operationName, variables) {\n\t\tconst engine = await getEngine();\n\t\treturn engine.invalidateQuery(operationName, variables);\n\t};\n\n\tlazy.clearAll = async function () {\n\t\tconst engine = await getEngine();\n\t\treturn engine.clearAll();\n\t};\n\n\tlazy.handleFullResync = async function () {\n\t\tconst engine = await getEngine();\n\t\treturn engine.handleFullResync();\n\t};\n\n\tlazy.handleTransportReconnect = async function () {\n\t\tconst engine = await getEngine();\n\t\treturn engine.handleTransportReconnect();\n\t};\n\n\treturn lazy;\n}\n","import type { DvinaRequest } from './types.js';\nimport { DvinaNetworkError, DvinaAuthenticationError } from './error.js';\n\n// ─── File Upload ─────────────────────────────────────────────────────────────\n\nconst DEFAULT_UPLOAD_CONTENT_TYPE = 'application/octet-stream';\nconst AZURE_BLOCK_BLOB_TYPE = 'BlockBlob';\n\nexport interface UploadProgressEvent {\n\t/** Bytes loaded so far */\n\tloaded: number;\n\t/** Total file size in bytes (may be 0 if unknown) */\n\ttotal: number;\n\t/** Upload progress as a percentage (0–100), or undefined if total is unknown */\n\tpercent: number | undefined;\n}\n\nexport interface UploadOptions {\n\t/** Called periodically with upload progress. Only works in browser environments (uses XMLHttpRequest). */\n\tonProgress?: (event: UploadProgressEvent) => void;\n}\n\nexport interface UploadResult {\n\t/** The server-assigned file ID */\n\tid: string;\n}\n\n/**\n * Upload a file to the Dvina API.\n *\n * 1. Calls the `generateUploadUri` GraphQL mutation to get an upload URL\n * 2. PUTs the file to that URL with auth headers\n *\n * @param request - The DvinaRequest transport function\n * @param getToken - Token resolver for auth headers on the PUT request\n * @param file - The file to upload (Blob or File — File extends Blob)\n * @param name - File name (used for the upload URI generation)\n * @param options - Optional upload options (e.g. progress callback)\n * @returns The upload result with the server-assigned file ID\n */\nexport async function uploadFile(\n\trequest: DvinaRequest,\n\tgetToken: (options?: { forceRefresh?: boolean }) => Promise<string>,\n\tfile: Blob,\n\tname: string,\n\toptions?: UploadOptions,\n): Promise<UploadResult> {\n\t// Dynamic import to avoid pulling generated code into module scope.\n\t// This is resolved at runtime — the generated documents must exist.\n\tconst { GenerateUploadUriDocument } = await import('./_generated_documents.js');\n\n\t// Step 1: Get the upload URI via GraphQL mutation\n\tconst key = `upload_${Date.now()}`;\n\tconst response = await request<{ generateUploadUri: { id: string; key: string; uploadUri: string } }>(\n\t\tGenerateUploadUriDocument as unknown as import('graphql').DocumentNode,\n\t\t{ data: { name, key } },\n\t);\n\n\tconst { uploadUri, id } = response.generateUploadUri;\n\n\t// Step 2: PUT the file to the upload URI\n\tconst uploadRequest = await createUploadRequest(uploadUri, file, name, getToken);\n\n\tlet uploadedId = id;\n\n\tif (options?.onProgress && typeof XMLHttpRequest !== 'undefined') {\n\t\t// Browser environment — use XHR for progress tracking\n\t\tconst xhrResponseId = await uploadWithXhr(uploadUri, uploadRequest, options.onProgress);\n\t\tif (xhrResponseId) uploadedId = xhrResponseId;\n\t} else {\n\t\t// Node.js or no progress callback — use fetch\n\t\tconst response = await fetch(uploadUri, {\n\t\t\tmethod: 'PUT',\n\t\t\theaders: uploadRequest.headers,\n\t\t\tbody: uploadRequest.body,\n\t\t});\n\n\t\tif (response.status === 401 || response.status === 403) {\n\t\t\tthrow new DvinaAuthenticationError(`Upload authentication failed with status ${response.status}`);\n\t\t}\n\n\t\tif (!response.ok) {\n\t\t\tthrow new DvinaNetworkError(\n\t\t\t\t`Upload failed with status ${response.status}: ${response.statusText}`,\n\t\t\t\tresponse.status,\n\t\t\t);\n\t\t}\n\n\t\t// For local storage, the upload endpoint returns its own file ID\n\t\t// which may differ from the one generated by generateUploadUri\n\t\ttry {\n\t\t\tconst body = await response.json();\n\t\t\tif (body?.id) uploadedId = body.id;\n\t\t} catch {\n\t\t\t// Response is not JSON (e.g. GCS signed URL upload) — keep the original id\n\t\t}\n\t}\n\n\treturn { id: uploadedId };\n}\n\ninterface PreparedUploadRequest {\n\tbody: Blob | FormData;\n\theaders: Record<string, string>;\n}\n\nasync function createUploadRequest(\n\tuploadUri: string,\n\tfile: Blob,\n\tname: string,\n\tgetToken: (options?: { forceRefresh?: boolean }) => Promise<string>,\n): Promise<PreparedUploadRequest> {\n\tif (isLocalUploadUri(uploadUri)) {\n\t\tconst token = await getToken();\n\t\tconst formData = new FormData();\n\t\tformData.append('file', file, name);\n\n\t\treturn {\n\t\t\tbody: formData,\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t},\n\t\t};\n\t}\n\n\tconst headers: Record<string, string> = {\n\t\t'Content-Type': file.type || DEFAULT_UPLOAD_CONTENT_TYPE,\n\t};\n\n\tif (isAzureBlobUploadUri(uploadUri)) {\n\t\theaders['x-ms-blob-type'] = AZURE_BLOCK_BLOB_TYPE;\n\t}\n\n\treturn {\n\t\tbody: file,\n\t\theaders,\n\t};\n}\n\nfunction isLocalUploadUri(uploadUri: string): boolean {\n\treturn getUploadPathname(uploadUri).endsWith('/file/upload');\n}\n\nfunction isAzureBlobUploadUri(uploadUri: string): boolean {\n\tconst url = safeParseUrl(uploadUri);\n\n\tif (url?.hostname.includes('.blob.core.')) {\n\t\treturn true;\n\t}\n\n\treturn url?.searchParams.has('sv') === true && url.searchParams.has('sig') && url.searchParams.get('sr') === 'b';\n}\n\nfunction getUploadPathname(uploadUri: string): string {\n\treturn safeParseUrl(uploadUri)?.pathname ?? uploadUri;\n}\n\nfunction safeParseUrl(uploadUri: string): URL | undefined {\n\ttry {\n\t\treturn new URL(uploadUri);\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\n/**\n * Upload using XMLHttpRequest for progress tracking (browser only).\n * Returns the server-assigned file ID from the response body, if available.\n */\nfunction uploadWithXhr(\n\turl: string,\n\tuploadRequest: PreparedUploadRequest,\n\tonProgress: (event: UploadProgressEvent) => void,\n): Promise<string | undefined> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst xhr = new XMLHttpRequest();\n\t\txhr.open('PUT', url);\n\n\t\tfor (const [header, value] of Object.entries(uploadRequest.headers)) {\n\t\t\txhr.setRequestHeader(header, value);\n\t\t}\n\n\t\txhr.upload.addEventListener('progress', (event) => {\n\t\t\tonProgress({\n\t\t\t\tloaded: event.loaded,\n\t\t\t\ttotal: event.total,\n\t\t\t\tpercent: event.lengthComputable ? Math.round((event.loaded / event.total) * 100) : undefined,\n\t\t\t});\n\t\t});\n\n\t\txhr.addEventListener('load', () => {\n\t\t\tif (xhr.status >= 200 && xhr.status < 300) {\n\t\t\t\t// For local storage, the upload endpoint returns its own file ID\n\t\t\t\ttry {\n\t\t\t\t\tconst body = JSON.parse(xhr.responseText);\n\t\t\t\t\tresolve(body?.id);\n\t\t\t\t} catch {\n\t\t\t\t\tresolve(undefined);\n\t\t\t\t}\n\t\t\t} else if (xhr.status === 401 || xhr.status === 403) {\n\t\t\t\treject(new DvinaAuthenticationError(`Upload authentication failed with status ${xhr.status}`));\n\t\t\t} else {\n\t\t\t\treject(new DvinaNetworkError(`Upload failed with status ${xhr.status}: ${xhr.statusText}`, xhr.status));\n\t\t\t}\n\t\t});\n\n\t\txhr.addEventListener('error', () => {\n\t\t\treject(new DvinaNetworkError('Upload network error'));\n\t\t});\n\n\t\txhr.addEventListener('abort', () => {\n\t\t\treject(new DvinaNetworkError('Upload aborted'));\n\t\t});\n\n\t\txhr.send(uploadRequest.body);\n\t});\n}\n","const MAX_TIMEZONE_LENGTH = 100;\n\nexport function normalizeUserTimezone(value: string | null | undefined): string | undefined {\n\tif (typeof value !== 'string') {\n\t\treturn undefined;\n\t}\n\n\tconst normalized = value.trim();\n\n\tif (!normalized || normalized.length > MAX_TIMEZONE_LENGTH) {\n\t\treturn undefined;\n\t}\n\n\ttry {\n\t\tIntl.DateTimeFormat(undefined, { timeZone: normalized });\n\t\treturn normalized;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function resolveUserTimezone(): () => string | undefined {\n\treturn () => {\n\t\tif (!isBrowserRuntime() || typeof Intl === 'undefined' || typeof Intl.DateTimeFormat !== 'function') {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn normalizeUserTimezone(Intl.DateTimeFormat().resolvedOptions().timeZone);\n\t};\n}\n\nfunction isBrowserRuntime(): boolean {\n\treturn typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n","import type { DvinaRequest, DvinaSubscribe, FetchOptions } from './types.js';\nimport { createHttpTransport } from './transport/http.js';\nimport { createWsTransport } from './transport/ws.js';\nimport type { WsTransport } from './transport/ws.js';\nimport { SyncEngine } from './store/sync-engine.js';\nimport { getOrCreateDatabase } from './store/database.js';\nimport type { DvinaDatabase } from './store/database.js';\nimport { createInferenceClientInternal } from './inference/client.js';\nimport type { InferenceClient } from './inference/client.js';\nimport { BillingClient } from './billing/client.js';\nimport { createLazySyncEngine } from './lazy-sync-engine.js';\nimport { resolveUserTimezone } from './user-timezone.js';\n\n// Re-export upload types and function so existing consumers of './client.js' keep working\nexport { uploadFile } from './upload.js';\nexport type { UploadProgressEvent, UploadOptions, UploadResult } from './upload.js';\n\n// ─── SDK Options ─────────────────────────────────────────────────────────────\n\nconst DEFAULT_BASE_URL = 'api.dvina.ai';\n\nexport interface DvinaSdkBaseOptions {\n\t/** Base URL without protocol (e.g. 'api.dvina.ai' or 'localhost:4000'). Default: 'api.dvina.ai' */\n\tbaseUrl?: string;\n\t/**\n\t * Override the billing API base URL.\n\t * Accepts either a bare host (e.g. 'billing.dvina.ai') or a full URL with protocol\n\t * (e.g. 'http://dvina-billing:3010'). When a protocol is included, it is used as-is.\n\t * By default, derived from `baseUrl` by replacing the leading `api.` with `billing.`\n\t * (e.g. 'api.dvina.ai' → 'billing.dvina.ai').\n\t */\n\tbillingUrl?: string;\n\t/** Preferred language for API responses. Static string or reactive callback. */\n\tlanguage?: string | (() => string);\n\t/**\n\t * Global error callback invoked for every terminal SDK error (after all\n\t * retries and token refreshes have been exhausted).\n\t *\n\t * Receives typed error subclasses — use `instanceof` to branch:\n\t * - `DvinaPlanRestrictionError` — plan/billing limit exceeded (check `restrictionCode`)\n\t * - `DvinaTokenLimitError` — session token limit reached\n\t * - `DvinaNotFoundError` — resource not found\n\t * - `DvinaAuthenticationError` — authentication permanently failed\n\t * - `DvinaNetworkError` — network/HTTP failure\n\t * - `DvinaGraphQLError` — other GraphQL errors\n\t */\n\tonError?: (error: import('./error.js').DvinaError) => void;\n}\n\nexport interface DvinaSdkTokenOptions extends DvinaSdkBaseOptions {\n\t/** Static auth token. Use for scripts, CLI tools, and tests. */\n\ttoken: string;\n\tgetToken?: never;\n}\n\nexport interface DvinaSdkCallbackOptions extends DvinaSdkBaseOptions {\n\t/**\n\t * Async callback that returns an auth token.\n\t * When called with `{ forceRefresh: true }`, the callback must bypass any\n\t * cache and obtain a brand-new token (e.g. via Auth0's silent refresh).\n\t */\n\tgetToken: (options?: { forceRefresh?: boolean }) => Promise<string>;\n\ttoken?: never;\n}\n\nexport type DvinaSdkOptions = DvinaSdkTokenOptions | DvinaSdkCallbackOptions;\n\n// ─── Token / Language resolvers ──────────────────────────────────────────────\n\nfunction resolveGetToken(options: DvinaSdkOptions): (opts?: { forceRefresh?: boolean }) => Promise<string> {\n\tif ('getToken' in options && options.getToken) {\n\t\treturn options.getToken;\n\t}\n\t// Static tokens ignore forceRefresh — there is nothing to refresh\n\tconst staticToken = (options as DvinaSdkTokenOptions).token;\n\treturn async () => staticToken;\n}\n\nfunction resolveLanguage(language: DvinaSdkOptions['language']): () => string | undefined {\n\tif (!language) return () => undefined;\n\tif (typeof language === 'function') return language;\n\treturn () => language;\n}\n\n// ─── Transport Factories ─────────────────────────────────────────────────────\n\nexport interface DvinaClientResult {\n\tsyncEngine: SyncEngine;\n\t/** Request function that routes through SyncEngine (normalize + Dexie write). Used by model classes for compat. */\n\trequest: DvinaRequest;\n\t/** Subscribe function that routes through WebSocket transport for GraphQL subscriptions. */\n\tsubscribe: DvinaSubscribe;\n\tgetToken: (options?: { forceRefresh?: boolean }) => Promise<string>;\n\t/** Terminate the WebSocket connection (call on logout / SDK teardown). */\n\tterminateWs: () => void;\n\t/** Close and remove the cached IndexedDB database (call on logout / workspace switch / SDK teardown). */\n\tcloseDb: () => Promise<void>;\n\t/** Inference client for the /inference/v1 REST API (chat completions, responses, models). */\n\tinference: InferenceClient;\n\t/** Billing client for the Dvina Billing GraphQL API (plans, subscriptions, seats, sessions). */\n\tbilling: BillingClient;\n\t/** The resolved base URL (e.g. 'api.dvina.ai'). Used by models to resolve relative asset paths. */\n\tbaseUrl: string;\n}\n\n/**\n * Create a fully configured Dvina client with SyncEngine, HTTP transport, and WS transport.\n * Called by the DvinaSdk constructor (generated code).\n */\nexport function createDvinaClient(options: DvinaSdkOptions): DvinaClientResult {\n\tconst baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;\n\tconst isLocalhost = baseUrl.includes('localhost') || baseUrl.includes('127.0.0.1');\n\tconst httpProtocol = isLocalhost ? 'http' : 'https';\n\tconst wsProtocol = isLocalhost ? 'ws' : 'wss';\n\tconst httpUrl = `${httpProtocol}://${baseUrl}/graphql`;\n\tconst wsUrl = `${wsProtocol}://${baseUrl}/graphql`;\n\tconst sseUrl = `${httpProtocol}://${baseUrl}/api/sync/stream`;\n\tconst syncPolicyUrl = `${httpProtocol}://${baseUrl}/api/sync/cache-policy`;\n\n\tconst getToken = resolveGetToken(options);\n\tconst getLanguage = resolveLanguage(options.language);\n\tconst getUserTimezone = resolveUserTimezone();\n\n\t// Create HTTP transport (for queries and mutations)\n\tconst httpTransport = createHttpTransport({\n\t\turl: httpUrl,\n\t\tgetToken,\n\t\tgetLanguage,\n\t\tgetUserTimezone,\n\t\tonError: options.onError,\n\t});\n\n\t// Create WebSocket transport (for subscriptions)\n\tlet wsTransport: WsTransport | undefined;\n\n\tfunction getWsTransport(): WsTransport {\n\t\tif (!wsTransport) {\n\t\t\twsTransport = createWsTransport({\n\t\t\t\turl: wsUrl,\n\t\t\t\tgetToken,\n\t\t\t\tgetLanguage,\n\t\t\t\tgetUserTimezone,\n\t\t\t\tonError: options.onError,\n\t\t\t});\n\t\t}\n\t\treturn wsTransport;\n\t}\n\n\t// Subscribe function — lazily creates WS transport on first subscription\n\tconst subscribe: DvinaSubscribe = <T>(\n\t\tdocument: import('graphql').DocumentNode,\n\t\tvariables?: Record<string, unknown>,\n\t): AsyncIterable<T> => {\n\t\treturn getWsTransport().subscribe<T>(document, variables);\n\t};\n\n\t// Create Dexie database (lazy — deferred until first token is available)\n\t// For callback tokens, we defer DB creation to first use.\n\t// For static tokens, we also defer since getOrCreateDatabase is async\n\t// (it performs a schema-hash compatibility check on open).\n\tlet db: DvinaDatabase | undefined;\n\tlet dbInitPromise: Promise<DvinaDatabase> | undefined;\n\n\tfunction getDb(): Promise<DvinaDatabase> {\n\t\tif (db) return Promise.resolve(db);\n\t\tif (dbInitPromise) return dbInitPromise;\n\n\t\tdbInitPromise = getToken()\n\t\t\t.then((token) => getOrCreateDatabase(token))\n\t\t\t.then((database) => {\n\t\t\t\tdb = database;\n\t\t\t\treturn db;\n\t\t\t});\n\n\t\treturn dbInitPromise;\n\t}\n\n\t// For static tokens, kick off DB init eagerly (but still async)\n\tif ('token' in options && options.token) {\n\t\tgetDb().catch(() => {\n\t\t\t// JWT decode or DB open failed — will retry lazily on next getDb() call\n\t\t\tdbInitPromise = undefined;\n\t\t});\n\t}\n\n\t// Create SyncEngine with a lazy DB proxy\n\t// The SyncEngine needs a db synchronously, but we might not have a token yet.\n\t// We use a Proxy that resolves the db on first access.\n\tconst syncEngine = createLazySyncEngine(httpTransport, sseUrl, syncPolicyUrl, getToken, getDb);\n\n\t// Request function that routes through SyncEngine (normalize + Dexie write).\n\t// Used by model classes that still accept DvinaRequest for compatibility.\n\tconst request: DvinaRequest = async <T>(\n\t\tdocument: import('graphql').DocumentNode,\n\t\tvariables?: Record<string, unknown>,\n\t\t_options?: FetchOptions,\n\t): Promise<T> => {\n\t\treturn syncEngine.query<T>(document, variables);\n\t};\n\n\t// Create Inference client — reuses the same auth and base URL from the SDK\n\tconst inferenceUrl = `${httpProtocol}://${baseUrl}/inference/v1`;\n\tconst inference = createInferenceClientInternal(inferenceUrl, getToken);\n\n\t// Create Billing client — derives billing URL from baseUrl unless overridden\n\tconst billingOverride = options.billingUrl;\n\tconst hasProtocol = billingOverride ? /^https?:\\/\\//.test(billingOverride) : false;\n\tconst billingBase = hasProtocol\n\t\t? billingOverride!.replace(/\\/+$/, '')\n\t\t: `${httpProtocol}://${billingOverride ?? baseUrl.replace(/^api\\./, 'billing.')}`;\n\tconst billingHttpUrl = `${billingBase}/graphql`;\n\tconst billingSseUrl = `${billingBase}/subscriptions/stream`;\n\tconst billing = new BillingClient({ billingHttpUrl, billingSseUrl, getToken, onError: options.onError });\n\n\treturn {\n\t\tsyncEngine,\n\t\trequest,\n\t\tsubscribe,\n\t\tgetToken,\n\t\tterminateWs: () => wsTransport?.terminate(),\n\t\tcloseDb: async () => {\n\t\t\tconst database = db ?? (dbInitPromise ? await dbInitPromise.catch(() => undefined) : undefined);\n\t\t\tif (database) {\n\t\t\t\tdatabase.close();\n\t\t\t}\n\t\t\tdb = undefined;\n\t\t\tdbInitPromise = undefined;\n\t\t},\n\t\tinference,\n\t\tbilling,\n\t\tbaseUrl,\n\t};\n}\n","import { Request } from './request.js';\nimport type { DvinaRequest } from '../types.js';\nimport type { SyncEngine } from '../store/sync-engine.js';\n\n/**\n * Base class for all generated model classes (Report, Chat, User, etc.)\n *\n * Each model holds the transport functions so that lazy-loaded relations\n * can issue their own requests without external dependencies.\n * The optional `syncEngine` enables nested relation methods (e.g. `report.insights()`).\n */\nexport class DvinaModel extends Request {\n\tpublic constructor(request: DvinaRequest, syncEngine?: SyncEngine, baseUrl?: string) {\n\t\tsuper(request, syncEngine, undefined, baseUrl);\n\t}\n\n\t/**\n\t * Resolve a relative asset path to a full URL using the SDK's base URL.\n\t * Returns the path unchanged if it is already absolute, starts with '@'\n\t * (icon-class reference), or if no baseUrl is available.\n\t */\n\tprotected resolveAssetUrl(path: string | undefined): string | undefined {\n\t\tif (!path || path.startsWith('http://') || path.startsWith('https://') || path.startsWith('@')) {\n\t\t\treturn path;\n\t\t}\n\t\tif (!this._baseUrl) return path;\n\t\tconst isLocalhost = this._baseUrl.includes('localhost') || this._baseUrl.includes('127.0.0.1');\n\t\tconst protocol = isLocalhost ? 'http' : 'https';\n\t\treturn `${protocol}://${this._baseUrl}/${path}`;\n\t}\n\n\t/**\n\t * Custom JSON serialization that excludes internal SDK references\n\t * (_request, _syncEngine, _subscribe, _baseUrl) to prevent circular\n\t * structure errors when the model is passed to JSON.stringify.\n\t */\n\ttoJSON(): Record<string, unknown> {\n\t\tconst result: Record<string, unknown> = {};\n\t\tfor (const key of Object.keys(this)) {\n\t\t\tif (key.startsWith('_')) continue;\n\t\t\tresult[key] = (this as Record<string, unknown>)[key];\n\t\t}\n\t\treturn result;\n\t}\n}\n","import type { DvinaDatabase } from './database.js';\nimport type { IncludeDirective } from '../runtime/query-builder.js';\nimport { TABLE_TO_TYPENAME } from '../_generated_store.js';\nimport { parsePrimaryKeyString, primaryKeyToString } from './database.js';\n\nconst RELATION_FALLBACK_TABLE: Record<string, string> = {\n\tagent: 'agents',\n\tchat: 'chats',\n\tdatabase: 'databases',\n\tdocument: 'documents',\n\tfeedback: 'feedback',\n\tfile: 'files',\n\tfolder: 'folders',\n\tinsight: 'insights',\n\tintegration: 'integrations',\n\treport: 'reports',\n\ttable: 'tables',\n};\n\nasync function resolveSingleRelationFallback(\n\tdb: DvinaDatabase,\n\tparentEntity: Record<string, unknown>,\n\tfieldName: string,\n): Promise<{ tableName: string; entity: Record<string, unknown> } | undefined> {\n\tconst relationTable = RELATION_FALLBACK_TABLE[fieldName];\n\tif (!relationTable) return;\n\n\tconst fkFieldName = `${fieldName}Id`;\n\tconst fkValue = parentEntity[fkFieldName];\n\tif (typeof fkValue === 'string' && fkValue.length > 0) {\n\t\tconst relation = await db.table(relationTable).get(parsePrimaryKeyString(relationTable, fkValue));\n\t\tif (relation && typeof relation === 'object') {\n\t\t\treturn {\n\t\t\t\ttableName: relationTable,\n\t\t\t\tentity: relation as Record<string, unknown>,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn;\n}\n\n/**\n * Recursively reconstruct an entity from Dexie, including nested relations\n * based on the include directives tree.\n *\n * This is the watch()-side counterpart of `buildSmartQuery()`. While buildSmartQuery\n * builds the GraphQL document for the HTTP request, this function reconstructs\n * the same shape from the normalized Dexie store for liveQuery reactivity.\n *\n * For each include directive:\n * 1. Looks up `_queryResults` with key `{parentTable}.{parentId}.{fieldName}`\n * 2. Reads the child entities from their Dexie table\n * 3. If the include has children, recursively reconstructs each child entity\n * 4. Returns the data in the same shape as the GraphQL response\n *\n * @param db - The DvinaDatabase instance\n * @param tableName - The Dexie table name of the parent entity (e.g. 'reports')\n * @param entityId - The parent entity's primary key value\n * @param includes - The include directives tree describing which relations to load\n * @returns The entity record enriched with nested relation data\n */\nexport async function reconstructEntity(\n\tdb: DvinaDatabase,\n\ttableName: string,\n\tentityId: string,\n\tincludes: IncludeDirective[],\n): Promise<Record<string, unknown>> {\n\tconst dexieKey = parsePrimaryKeyString(tableName, entityId);\n\tconst entity = await db.table(tableName).get(dexieKey);\n\tif (!entity) return {};\n\n\tconst result = { ...(entity as Record<string, unknown>) };\n\n\tfor (const inc of includes) {\n\t\tconst connKey = `${tableName}.${entityId}.${inc.fieldName}`;\n\t\tconst qr = await db._queryResults.get(connKey);\n\n\t\tif (!qr) {\n\t\t\tconst fallback = inc.isConnection\n\t\t\t\t? undefined\n\t\t\t\t: await resolveSingleRelationFallback(db, result, inc.fieldName);\n\t\t\tif (fallback) {\n\t\t\t\tif (inc.children && inc.children.length > 0) {\n\t\t\t\t\tconst childId = primaryKeyToString(fallback.tableName, fallback.entity);\n\t\t\t\t\tresult[inc.fieldName] = await reconstructEntity(db, fallback.tableName, childId, inc.children);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tresult[inc.fieldName] = fallback.entity;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// No query result entry — set appropriate default for the include type\n\t\t\tresult[inc.fieldName] = inc.isConnection\n\t\t\t\t? {\n\t\t\t\t\t\t__typename: 'Unknown',\n\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\tpageInfo: { hasNextPage: false, hasPreviousPage: false },\n\t\t\t\t\t\ttotalCount: 0,\n\t\t\t\t\t}\n\t\t\t\t: inc.isList\n\t\t\t\t\t? []\n\t\t\t\t\t: null;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (inc.isConnection) {\n\t\t\tconst childEntities = await db.table(qr.entityType).bulkGet(qr.entityIds);\n\t\t\tlet nodes = childEntities.filter(Boolean) as Record<string, unknown>[];\n\n\t\t\t// Recursively reconstruct children if nested includes exist\n\t\t\tif (inc.children && inc.children.length > 0) {\n\t\t\t\tnodes = await Promise.all(\n\t\t\t\t\tnodes.map(async (node) => {\n\t\t\t\t\t\tconst nodeId = primaryKeyToString(qr.entityType, node);\n\t\t\t\t\t\treturn reconstructEntity(db, qr.entityType, nodeId, inc.children!);\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tresult[inc.fieldName] = {\n\t\t\t\t__typename: (TABLE_TO_TYPENAME[qr.entityType] ?? qr.entityType) + 'Connection',\n\t\t\t\tnodes,\n\t\t\t\tpageInfo: qr.pageInfo ?? {\n\t\t\t\t\thasNextPage: false,\n\t\t\t\t\thasPreviousPage: false,\n\t\t\t\t},\n\t\t\t\ttotalCount: qr.totalCount ?? 0,\n\t\t\t};\n\t\t} else if (inc.isList) {\n\t\t\tconst childEntities = await db.table(qr.entityType).bulkGet(qr.entityIds);\n\t\t\tlet children = childEntities.filter(Boolean) as Record<string, unknown>[];\n\n\t\t\tif (inc.children && inc.children.length > 0) {\n\t\t\t\tchildren = await Promise.all(\n\t\t\t\t\tchildren.map(async (child) => {\n\t\t\t\t\t\tconst childId = primaryKeyToString(qr.entityType, child);\n\t\t\t\t\t\treturn reconstructEntity(db, qr.entityType, childId, inc.children!);\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tresult[inc.fieldName] = children;\n\t\t} else {\n\t\t\t// Single entity relation (non-connection)\n\t\t\tconst childEntities = await db.table(qr.entityType).bulkGet(qr.entityIds);\n\t\t\tlet child = childEntities.filter(Boolean)[0] as Record<string, unknown> | undefined;\n\n\t\t\tif (child && inc.children && inc.children.length > 0) {\n\t\t\t\tconst childId = primaryKeyToString(qr.entityType, child);\n\t\t\t\tchild = await reconstructEntity(db, qr.entityType, childId, inc.children);\n\t\t\t}\n\n\t\t\tresult[inc.fieldName] = child ?? null;\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Reconstruct all entities in a connection query result, applying nested includes\n * to each node.\n *\n * This is the connection-query equivalent of `reconstructEntity()`.\n * Used by watch() callbacks for queries like `sdk.reports().insights().watch()`.\n *\n * @param db - The DvinaDatabase instance\n * @param entityTable - The Dexie table name for the connection's nodes (e.g. 'reports')\n * @param nodes - The raw entity records from Dexie\n * @param includes - The include directives tree\n * @returns The enriched entity records with nested relation data\n */\nexport async function reconstructConnectionNodes(\n\tdb: DvinaDatabase,\n\tentityTable: string,\n\tnodes: Record<string, unknown>[],\n\tincludes: IncludeDirective[],\n): Promise<Record<string, unknown>[]> {\n\tif (includes.length === 0) return nodes;\n\n\treturn Promise.all(\n\t\tnodes.map(async (node) => {\n\t\t\tconst nodeId = primaryKeyToString(entityTable, node);\n\t\t\treturn reconstructEntity(db, entityTable, nodeId, includes);\n\t\t}),\n\t);\n}\n","import { Kind } from 'graphql';\nimport type {\n\tDocumentNode,\n\tDefinitionNode,\n\tOperationDefinitionNode,\n\tFieldNode,\n\tSelectionSetNode,\n\tVariableDefinitionNode,\n\tArgumentNode,\n\tFragmentDefinitionNode,\n} from 'graphql';\n\n// ─── Types ───────────────────────────────────────────────────────────────────\n\n/**\n * Describes a nested field to include in a Smart Fetch query.\n * Each include adds a field + its fragment selections to the parent entity's selection set.\n * Supports recursive nesting via the `children` property for deep relation chains.\n *\n * @example\n * ```typescript\n * // Flat include (depth 1)\n * { fieldName: 'insights', fragmentDoc: ..., isConnection: true }\n *\n * // Nested include (depth 2+) via lambda chain\n * // sdk.chat({ id }).agent(q => q.documents(q => q.dataSource()))\n * {\n * fieldName: 'agent', fragmentDoc: ..., isConnection: false,\n * children: [{\n * fieldName: 'documents', fragmentDoc: ..., isConnection: false,\n * children: [{ fieldName: 'dataSource', fragmentDoc: ..., isConnection: false }]\n * }]\n * }\n * ```\n */\nexport interface IncludeDirective {\n\t/** The field name on the parent entity (e.g. 'insights', 'resource', 'chats') */\n\tfieldName: string;\n\t/** Sync metadata used to materialize include payloads from SSE/Prisma records. */\n\tsyncMetadata?: IncludeSyncMetadata;\n\t/** The fragment DocumentNode for this field's return type (e.g. InsightConnectionFragmentDoc) */\n\tfragmentDoc: DocumentNode;\n\t/** Variables for this included field (e.g. { first: 10 }) */\n\tvariables?: Record<string, unknown>;\n\t/** Whether this field returns a Connection type */\n\tisConnection: boolean;\n\t/** Whether this field returns a list but not a Connection type */\n\tisList?: boolean;\n\t/**\n\t * Variable definitions from the pre-generated nested operation document.\n\t * These define the GraphQL types for the include's args (e.g. $first: Int, $filter: InsightWhereInput).\n\t * Only the args specific to this nested field are included (parent ID arg is excluded).\n\t */\n\tvariableDefinitions?: VariableDefinitionNode[];\n\t/**\n\t * The argument nodes from the pre-generated nested operation's field.\n\t * These map field arguments to variables (e.g. `insights(first: $first, after: $after)`).\n\t */\n\tfieldArguments?: ArgumentNode[];\n\t/**\n\t * Nested include directives for sub-relations.\n\t * Populated by lambda chain builders (e.g. `q => q.contents().attachments()`).\n\t * Each child follows the same structure, enabling arbitrary depth.\n\t */\n\tchildren?: IncludeDirective[];\n\t/**\n\t * Factory function to instantiate the entity model class for this included field.\n\t * For entity relations (e.g. agent): creates the model instance (Agent, Chat, etc.)\n\t * For connection relations: creates each node's model instance (ChatMessage, Insight, etc.)\n\t * Generated by codegen — enables runtime hydration without a global model registry.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tmodelFactory?: (request: any, data: any, syncEngine?: any, baseUrl?: string) => any;\n\t/**\n\t * Factory function to instantiate the connection class for connection-type includes.\n\t * Only present when `isConnection` is true.\n\t * Generated by codegen — e.g. `(req, fetch, data, se, bu) => new ChatMessageConnection(req, fetch, data, se, bu)`\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconnectionFactory?: (request: any, fetch: any, data: any, syncEngine?: any, baseUrl?: string) => any;\n}\n\nexport interface IncludeSyncMetadata {\n\tentityType: string;\n\trequiredFields: string[];\n}\n\nexport interface SmartQueryResult {\n\t/** The merged DocumentNode ready to be sent */\n\tdocument: DocumentNode;\n\t/** The merged variables map */\n\tvariables: Record<string, unknown>;\n}\n\n// ─── Deep clone helpers ──────────────────────────────────────────────────────\n\n/**\n * Deep clone a DocumentNode by JSON round-trip.\n * This is safe because DocumentNodes from graphql-codegen are plain JSON objects\n * (no class instances, no circular references).\n */\nfunction cloneDocument(doc: DocumentNode): DocumentNode {\n\treturn JSON.parse(JSON.stringify(doc)) as DocumentNode;\n}\n\n// ─── Core builder ────────────────────────────────────────────────────────────\n\n/**\n * Build a dynamic Smart Fetch query by merging include directives into a base document.\n *\n * Takes a pre-generated base DocumentNode (e.g. ReportDocument) and for each include:\n * 1. Adds the included field's selection (with args) to the root entity's selection set\n * 2. Adds the include's fragment definitions to the document\n * 3. Adds prefixed variable definitions to the operation\n * 4. Merges all variables into one map with prefixed keys\n *\n * Variable prefixing: each include's variables are prefixed with `{fieldName}_`\n * to avoid collisions (e.g. `first` → `insights_first`).\n * For nested includes, prefixes chain: `agent_documents_dataSource_first`.\n *\n * For connection queries (`isConnection: true`), includes are injected inside a\n * `nodes { ... }` wrapper so GraphQL field merging combines them with the\n * connection fragment's existing `nodes` selection.\n *\n * Supports recursive nesting via `IncludeDirective.children` — each child's\n * selections are injected into the parent include's field node, enabling\n * arbitrary-depth relation loading in a single HTTP request.\n *\n * @param baseDocument - The pre-generated query document (e.g. L.ReportDocument)\n * @param rootFieldName - The root query field name (e.g. 'report')\n * @param includes - Array of include directives describing nested fields to add\n * @param baseVariables - The base query's variables (e.g. { id: 'rpt_1' })\n * @param isConnection - Whether the root field returns a Connection type\n * @returns The merged document and variables\n */\nexport function buildSmartQuery(\n\tbaseDocument: DocumentNode,\n\trootFieldName: string,\n\tincludes: IncludeDirective[],\n\tbaseVariables: Record<string, unknown>,\n\tisConnection?: boolean,\n): SmartQueryResult {\n\tif (includes.length === 0) {\n\t\treturn { document: baseDocument, variables: baseVariables };\n\t}\n\n\tconst doc = cloneDocument(baseDocument);\n\tconst mergedVariables = { ...baseVariables };\n\n\t// Find the operation definition\n\tconst opDef = doc.definitions.find((d): d is OperationDefinitionNode => d.kind === Kind.OPERATION_DEFINITION);\n\tif (!opDef) {\n\t\treturn { document: baseDocument, variables: baseVariables };\n\t}\n\n\t// Find the root field in the operation's selection set\n\tconst rootField = findFieldInSelectionSet(opDef.selectionSet, rootFieldName);\n\tif (!rootField?.selectionSet) {\n\t\treturn { document: baseDocument, variables: baseVariables };\n\t}\n\n\t// Collect existing fragment names to avoid duplicates\n\tconst existingFragments = new Set<string>();\n\tfor (const def of doc.definitions) {\n\t\tif (def.kind === Kind.FRAGMENT_DEFINITION) {\n\t\t\texistingFragments.add(def.name.value);\n\t\t}\n\t}\n\n\tconst newDefinitions: DefinitionNode[] = [];\n\n\t// For connection queries, we'll collect include fields and wrap them\n\t// in a single `nodes { ...includeFields }` field node. GraphQL field\n\t// merging will combine this with the fragment's existing `nodes`.\n\tconst connectionIncludeFields: FieldNode[] = [];\n\n\t// Process each include recursively\n\tfor (const include of includes) {\n\t\tconst includeField = processIncludeDirective(\n\t\t\tinclude,\n\t\t\t`${include.fieldName}_`,\n\t\t\topDef,\n\t\t\tmergedVariables,\n\t\t\texistingFragments,\n\t\t\tnewDefinitions,\n\t\t);\n\n\t\tif (!includeField) continue;\n\n\t\tif (isConnection) {\n\t\t\tconnectionIncludeFields.push(includeField);\n\t\t} else {\n\t\t\t(rootField.selectionSet.selections as FieldNode[]).push(includeField);\n\t\t}\n\t}\n\n\t// For connection queries, wrap all include fields inside a `nodes { ... }` field.\n\tif (isConnection && connectionIncludeFields.length > 0) {\n\t\tconst nodesWrapper: FieldNode = {\n\t\t\tkind: Kind.FIELD,\n\t\t\tname: { kind: Kind.NAME, value: 'nodes' },\n\t\t\tselectionSet: {\n\t\t\t\tkind: Kind.SELECTION_SET,\n\t\t\t\tselections: connectionIncludeFields,\n\t\t\t},\n\t\t};\n\t\t(rootField.selectionSet.selections as FieldNode[]).push(nodesWrapper);\n\t}\n\n\t// Append new fragment definitions to the document\n\tif (newDefinitions.length > 0) {\n\t\t(doc as unknown as { definitions: DefinitionNode[] }).definitions = [...doc.definitions, ...newDefinitions];\n\t}\n\n\treturn { document: doc, variables: mergedVariables };\n}\n\n/**\n * Recursively process a single IncludeDirective into a FieldNode.\n *\n * This handles:\n * 1. Building the field with prefixed arguments\n * 2. Adding fragment spreads for the field's type\n * 3. Recursively processing children (nested includes)\n * 4. Injecting children's field nodes into this field's selection set\n * (or into a `nodes { ... }` wrapper for connection fields)\n *\n * @param include - The include directive to process\n * @param prefix - Variable prefix for this level (e.g. 'insights_' or 'agent_documents_')\n * @param opDef - The operation definition (to add variable definitions to)\n * @param mergedVariables - The merged variables map (mutated in place)\n * @param existingFragments - Set of already-added fragment names (to avoid duplicates)\n * @param newDefinitions - Array to push new fragment definitions into\n * @returns The FieldNode for this include, or undefined if processing failed\n */\nfunction processIncludeDirective(\n\tinclude: IncludeDirective,\n\tprefix: string,\n\topDef: OperationDefinitionNode,\n\tmergedVariables: Record<string, unknown>,\n\texistingFragments: Set<string>,\n\tnewDefinitions: DefinitionNode[],\n): FieldNode | undefined {\n\t// 1. Build the field arguments with prefixed variable references\n\tconst fieldArgs = buildPrefixedArguments(include.fieldArguments ?? [], prefix);\n\n\t// 2. Build the field's selection set from the fragment\n\tconst fragmentDefs = include.fragmentDoc.definitions.filter(\n\t\t(d): d is FragmentDefinitionNode => d.kind === Kind.FRAGMENT_DEFINITION,\n\t);\n\n\tconst mainFragment = fragmentDefs[0];\n\tif (!mainFragment) return undefined;\n\n\t// Start with the fragment spread as the base selection\n\tconst selections: (\n\t\t| FieldNode\n\t\t| { kind: typeof Kind.FRAGMENT_SPREAD; name: { kind: typeof Kind.NAME; value: string } }\n\t)[] = [\n\t\t{\n\t\t\tkind: Kind.FRAGMENT_SPREAD,\n\t\t\tname: { kind: Kind.NAME, value: mainFragment.name.value },\n\t\t},\n\t];\n\n\t// 3. Recursively process children\n\tif (include.children && include.children.length > 0) {\n\t\t// Collect child field nodes, potentially wrapped in `nodes { ... }` for connections\n\t\tconst childFields: FieldNode[] = [];\n\n\t\tfor (const child of include.children) {\n\t\t\tconst childPrefix = `${prefix}${child.fieldName}_`;\n\t\t\tconst childField = processIncludeDirective(\n\t\t\t\tchild,\n\t\t\t\tchildPrefix,\n\t\t\t\topDef,\n\t\t\t\tmergedVariables,\n\t\t\t\texistingFragments,\n\t\t\t\tnewDefinitions,\n\t\t\t);\n\t\t\tif (childField) {\n\t\t\t\tchildFields.push(childField);\n\t\t\t}\n\t\t}\n\n\t\tif (childFields.length > 0) {\n\t\t\tif (include.isConnection) {\n\t\t\t\t// For connection includes, wrap children in a `nodes { ... }` wrapper\n\t\t\t\t// so GraphQL field merging combines them with the fragment's existing nodes\n\t\t\t\tconst nodesWrapper: FieldNode = {\n\t\t\t\t\tkind: Kind.FIELD,\n\t\t\t\t\tname: { kind: Kind.NAME, value: 'nodes' },\n\t\t\t\t\tselectionSet: {\n\t\t\t\t\t\tkind: Kind.SELECTION_SET,\n\t\t\t\t\t\tselections: childFields,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tselections.push(nodesWrapper);\n\t\t\t} else {\n\t\t\t\t// For entity includes, add children directly to the selection set\n\t\t\t\tselections.push(...childFields);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Build the include field node\n\tconst includeField: FieldNode = {\n\t\tkind: Kind.FIELD,\n\t\tname: { kind: Kind.NAME, value: include.fieldName },\n\t\targuments: fieldArgs.length > 0 ? fieldArgs : undefined,\n\t\tselectionSet: {\n\t\t\tkind: Kind.SELECTION_SET,\n\t\t\tselections,\n\t\t},\n\t};\n\n\t// 4. Add fragment definitions (avoiding duplicates)\n\tfor (const fragDef of fragmentDefs) {\n\t\tif (!existingFragments.has(fragDef.name.value)) {\n\t\t\texistingFragments.add(fragDef.name.value);\n\t\t\tnewDefinitions.push(fragDef);\n\t\t}\n\t}\n\n\t// 5. Add prefixed variable definitions to the operation\n\tconst prefixedVarDefs = buildPrefixedVariableDefinitions(include.variableDefinitions ?? [], prefix);\n\tif (prefixedVarDefs.length > 0) {\n\t\tconst existingVarDefs = (opDef.variableDefinitions ?? []) as VariableDefinitionNode[];\n\t\t(opDef as unknown as { variableDefinitions: VariableDefinitionNode[] }).variableDefinitions = [\n\t\t\t...existingVarDefs,\n\t\t\t...prefixedVarDefs,\n\t\t];\n\t}\n\n\t// 6. Merge variables with prefix\n\tif (include.variables) {\n\t\tfor (const [key, value] of Object.entries(include.variables)) {\n\t\t\tmergedVariables[`${prefix}${key}`] = value;\n\t\t}\n\t}\n\n\treturn includeField;\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Find a field by name in a selection set.\n * Looks one level deep (does not recurse into nested selections).\n */\nfunction findFieldInSelectionSet(selectionSet: SelectionSetNode, fieldName: string): FieldNode | undefined {\n\tfor (const selection of selectionSet.selections) {\n\t\tif (selection.kind === Kind.FIELD && selection.name.value === fieldName) {\n\t\t\treturn selection;\n\t\t}\n\t}\n\treturn undefined;\n}\n\n/**\n * Clone argument nodes and prefix their variable references.\n *\n * E.g. `insights(first: $first)` → `insights(first: $insights_first)`\n */\nfunction buildPrefixedArguments(args: readonly ArgumentNode[], prefix: string): ArgumentNode[] {\n\treturn args.map((arg) => {\n\t\tconst cloned = JSON.parse(JSON.stringify(arg)) as Record<string, unknown>;\n\t\tprefixVariableReferences(cloned, prefix);\n\t\treturn cloned as unknown as ArgumentNode;\n\t});\n}\n\n/**\n * Recursively prefix all variable references in an AST node.\n */\nfunction prefixVariableReferences(node: Record<string, unknown>, prefix: string): void {\n\tif (\n\t\tnode['kind'] === Kind.VARIABLE &&\n\t\ttypeof (node as Record<string, Record<string, string>>)['name']?.['value'] === 'string'\n\t) {\n\t\t(node as Record<string, Record<string, string>>)['name']['value'] =\n\t\t\t`${prefix}${(node as Record<string, Record<string, string>>)['name']['value']}`;\n\t\treturn;\n\t}\n\n\tfor (const value of Object.values(node)) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (const item of value) {\n\t\t\t\tif (typeof item === 'object' && item !== null) {\n\t\t\t\t\tprefixVariableReferences(item as Record<string, unknown>, prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (typeof value === 'object' && value !== null) {\n\t\t\tprefixVariableReferences(value as Record<string, unknown>, prefix);\n\t\t}\n\t}\n}\n\n/**\n * Clone variable definitions and prefix their names.\n *\n * E.g. `$first: Int` → `$insights_first: Int`\n */\nfunction buildPrefixedVariableDefinitions(\n\tvarDefs: readonly VariableDefinitionNode[],\n\tprefix: string,\n): VariableDefinitionNode[] {\n\treturn varDefs.map((def) => {\n\t\tconst cloned = JSON.parse(JSON.stringify(def)) as VariableDefinitionNode;\n\t\t// Prefix the variable name\n\t\t(cloned.variable.name as { value: string }).value = `${prefix}${cloned.variable.name.value}`;\n\t\treturn cloned;\n\t});\n}\n\n// ─── Document extraction ─────────────────────────────────────────────────────\n\n/**\n * Extract the variable definitions and field arguments for a nested field\n * from a pre-generated nested operation document.\n *\n * For example, given `Report_InsightsDocument`:\n * ```graphql\n * query report_insights($id: ID!, $first: Int, $after: String, ...) {\n * report(id: $id) {\n * insights(first: $first, after: $after, ...) { ...InsightConnection }\n * }\n * }\n * ```\n *\n * This extracts:\n * - variableDefinitions: [$first: Int, $after: String, ...] (excludes $id)\n * - fieldArguments: [first: $first, after: $after, ...] (from the nested field)\n *\n * @param nestedDocument - The pre-generated nested operation document\n * @param nestedFieldName - The nested field name (e.g. 'insights')\n * @param parentVarNames - Variable names belonging to the parent (e.g. ['id']) to exclude\n */\nexport function extractIncludeInfo(\n\tnestedDocument: DocumentNode,\n\tnestedFieldName: string,\n\tparentVarNames: string[],\n): { variableDefinitions: VariableDefinitionNode[]; fieldArguments: ArgumentNode[] } {\n\tconst opDef = nestedDocument.definitions.find(\n\t\t(d): d is OperationDefinitionNode => d.kind === Kind.OPERATION_DEFINITION,\n\t);\n\tif (!opDef) {\n\t\treturn { variableDefinitions: [], fieldArguments: [] };\n\t}\n\n\t// Extract variable definitions, excluding parent vars\n\tconst parentVarSet = new Set(parentVarNames);\n\tconst variableDefinitions = (opDef.variableDefinitions ?? []).filter(\n\t\t(vd) => !parentVarSet.has(vd.variable.name.value),\n\t) as VariableDefinitionNode[];\n\n\t// Walk the selection set to find the nested field's arguments\n\tlet fieldArguments: ArgumentNode[] = [];\n\n\tfunction findNestedField(selectionSet: SelectionSetNode): void {\n\t\tfor (const sel of selectionSet.selections) {\n\t\t\tif (sel.kind === Kind.FIELD) {\n\t\t\t\tif (sel.name.value === nestedFieldName && sel.arguments) {\n\t\t\t\t\tfieldArguments = sel.arguments as unknown as ArgumentNode[];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (sel.selectionSet) {\n\t\t\t\t\tfindNestedField(sel.selectionSet);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfindNestedField(opDef.selectionSet);\n\n\treturn { variableDefinitions, fieldArguments };\n}\n","import type { IncludeDirective } from './query-builder.js';\n\n/**\n * Hydrate included relation data onto a model instance.\n *\n * When a query uses Smart Fetch includes (e.g. `sdk.chats().agent().fetch()`),\n * the GraphQL response contains nested relation data that needs to be\n * instantiated as proper model classes and attached to each node.\n *\n * This function:\n * 1. Iterates over the include directives\n * 2. Reads the raw relation data from the GraphQL response\n * 3. Instantiates the correct model class via the `modelFactory` / `connectionFactory`\n * 4. Assigns the hydrated value as an instance property (shadowing the prototype lazy-fetch method)\n * 5. Recursively processes nested children includes\n *\n * The instance property assignment via `Object.defineProperty` is key:\n * it shadows the prototype method (e.g. `chat.agent()`) so that\n * `chat.agent` returns the hydrated `Agent` instance directly.\n * When no include is present, the prototype method remains accessible\n * for lazy-fetch usage (`chat.agent().fetch()`).\n *\n * @param instance - The model instance to hydrate (e.g. a Chat instance)\n * @param rawData - The raw GraphQL response data for this entity\n * @param includes - The include directives that describe which relations were fetched\n * @param request - The transport function for creating nested model instances\n * @param syncEngine - Optional sync engine for nested model instances\n */\nexport function hydrateIncludes(\n\tinstance: unknown,\n\trawData: Record<string, unknown>,\n\tincludes: IncludeDirective[],\n\trequest: unknown,\n\tsyncEngine?: unknown,\n\tbaseUrl?: string,\n): void {\n\tfor (const include of includes) {\n\t\tconst fieldData = rawData[include.fieldName];\n\t\tif (fieldData === undefined || fieldData === null) continue;\n\n\t\tlet hydratedValue: unknown;\n\n\t\tif (include.isConnection && include.connectionFactory) {\n\t\t\t// Connection relation: instantiate the connection class with a noop fetch\n\t\t\t// (pagination on included connections is not supported — re-query for that)\n\t\t\tconst noopFetch = () => Promise.resolve(undefined);\n\t\t\tconst connection = include.connectionFactory(request, noopFetch, fieldData, syncEngine, baseUrl);\n\n\t\t\t// Recursively hydrate children onto each connection node\n\t\t\tif (include.children?.length && connection && typeof connection === 'object' && 'nodes' in connection) {\n\t\t\t\tconst connData = fieldData as Record<string, unknown>;\n\t\t\t\tconst rawNodes = (connData.nodes as unknown[]) ?? [];\n\t\t\t\tconst nodes = (connection as { nodes: unknown[] }).nodes;\n\t\t\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\t\t\tconst rawNode = rawNodes[i];\n\t\t\t\t\tif (rawNode && typeof rawNode === 'object') {\n\t\t\t\t\t\thydrateIncludes(\n\t\t\t\t\t\t\tnodes[i],\n\t\t\t\t\t\t\trawNode as Record<string, unknown>,\n\t\t\t\t\t\t\tinclude.children,\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\tsyncEngine,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thydratedValue = connection;\n\t\t} else if (include.isList && include.modelFactory) {\n\t\t\tconst items = Array.isArray(fieldData) ? fieldData : [];\n\t\t\thydratedValue = items.map((item) => include.modelFactory!(request, item, syncEngine, baseUrl));\n\n\t\t\tif (include.children?.length) {\n\t\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\t\tconst rawItem = items[i];\n\t\t\t\t\tconst hydratedItem = (hydratedValue as unknown[])[i];\n\t\t\t\t\tif (rawItem && typeof rawItem === 'object') {\n\t\t\t\t\t\thydrateIncludes(\n\t\t\t\t\t\t\thydratedItem,\n\t\t\t\t\t\t\trawItem as Record<string, unknown>,\n\t\t\t\t\t\t\tinclude.children,\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\tsyncEngine,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (include.modelFactory) {\n\t\t\t// Entity relation: instantiate the model class\n\t\t\thydratedValue = include.modelFactory(request, fieldData, syncEngine, baseUrl);\n\n\t\t\t// Recursively hydrate children onto the entity\n\t\t\tif (include.children?.length) {\n\t\t\t\thydrateIncludes(\n\t\t\t\t\thydratedValue,\n\t\t\t\t\tfieldData as Record<string, unknown>,\n\t\t\t\t\tinclude.children,\n\t\t\t\t\trequest,\n\t\t\t\t\tsyncEngine,\n\t\t\t\t\tbaseUrl,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\t// No factory available — keep raw data as-is\n\t\t\thydratedValue = fieldData;\n\t\t}\n\n\t\t// Assign as instance property, shadowing the prototype lazy-fetch method\n\t\tObject.defineProperty(instance, include.fieldName, {\n\t\t\tvalue: hydratedValue,\n\t\t\twritable: true,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t});\n\t}\n}\n","/* eslint-disable */\n/* tslint:disable */\n// Auto-generated by @dvina/codegen-sdk\n// Do not edit manually\n\nimport type { DocumentNode } from 'graphql';\nimport type { DvinaRequest, DvinaSubscribe, DvinaQueryRef, ConnectionVariables, ConnectionWithNodes, WithIncludes } from './types.js';\nimport type { FetchOptions } from './types.js';\nimport { Request } from './runtime/request.js';\nimport { DvinaModel } from './runtime/model.js';\nimport { MappedDvinaQueryRef } from './runtime/query-ref.js';\nimport { buildSmartQuery, extractIncludeInfo } from './runtime/query-builder.js';\nimport type { IncludeDirective } from './runtime/query-builder.js';\nimport { hydrateIncludes } from './runtime/hydrate.js';\nimport { Connection, PageInfo as DvinaPageInfo, defaultConnection } from './pagination/connection.js';\nimport { createDvinaClient } from './client.js';\nimport type { DvinaSdkOptions } from './client.js';\nimport { uploadFile } from './upload.js';\nimport type { UploadOptions, UploadResult } from './upload.js';\nimport type { InferenceClient } from './inference/client.js';\nimport type { BillingClient } from './billing/client.js';\nimport type { SyncEngine } from './store/sync-engine.js';\nimport type { CacheRule } from './store/sync-engine.js';\nimport type { DvinaDatabase } from './store/database.js';\nimport { buildQueryKey, getPrimaryKeyField } from './store/database.js';\nimport { reconstructEntity, reconstructConnectionNodes } from './store/reconstruct.js';\nimport { MUTATION_CACHE_RULES } from './_generated_store.js';\nimport * as L from './_generated_documents.js';\n\n// Re-export all enums for consumers\nexport { ActionType, ActiveWindowType, AgentOrderByRelevanceFieldEnum, AiResourceType, ArtifactKind, ArtifactOrderByRelevanceFieldEnum, CapabilityType, ChatMessageFromEnum, ChatMessageOrderByRelevanceFieldEnum, ChatOrderByRelevanceFieldEnum, ChatSourceImportFidelityEnum, ChatSourceImportModeEnum, ChatSourceProviderEnum, ContentBlockType, DatabaseCatalogOrderByRelevanceFieldEnum, DatabaseOrderByRelevanceFieldEnum, DocumentCatalogOrderByRelevanceFieldEnum, DocumentOrderByRelevanceFieldEnum, EntitlementTier, FeedbackOrderByRelevanceFieldEnum, FeedbackType, FileOrderByRelevanceFieldEnum, FolderOrderByRelevanceFieldEnum, IndexType, InsightOrderByRelevanceFieldEnum, IntegrationCatalogOrderByRelevanceFieldEnum, IntegrationOrderByRelevanceFieldEnum, IntegrationStatus, InterpretationOrderByRelevanceFieldEnum, InterpretationType, LimitType, McpAuthPhase, NotificationCategory, NotificationOrderByRelevanceFieldEnum, NotificationPriority, NotificationStatus, NullsOrder, Presentation, PulseEventKind, PulseEventOrderByRelevanceFieldEnum, PulseEventPriority, PulseEventStatus, QueryMode, RelationType, ReportMemberSize, ReportOrderByRelevanceFieldEnum, SendMessageModel, SortOrder, TableOrderByRelevanceFieldEnum, TableStatus, TokenUsageLimit, UsageHistoryGranularity } from './_generated_documents.js';\n\n// ─── Model Classes ───────────────────────────────────────────────────────────\n\nexport class Action extends DvinaModel {\n public readonly chatMessageId: string | undefined;\n public readonly count: number;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly type: L.ActionType;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.ActionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.chatMessageId = data.chatMessageId ?? undefined;\n this.count = data.count;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.type = data.type;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Lazy-fetch the chatMessage relation. Call .fetch() or .watch() to execute. */\n public chatMessage(): ChatMessageQuery {\n return new ChatMessageQuery(this._request, this._syncEngine, { id: this.chatMessageId } as L.ChatMessageQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class Agent extends DvinaModel {\n public readonly createdAt: Date;\n public readonly emoji: string | undefined;\n public readonly id: string;\n public readonly instruction: string | undefined;\n public readonly name: string | undefined;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.AgentFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.emoji = data.emoji ?? undefined;\n this.id = data.id;\n this.instruction = data.instruction ?? undefined;\n this.name = data.name ?? undefined;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Query the chats relation for this Agent. Call .fetch() or .watch() to execute. */\n public chats(variables?: Omit<L.Agent_ChatsQueryVariables, 'id'>): Agent_ChatsQuery {\n return new Agent_ChatsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Agent_ChatsQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class Artifact extends DvinaModel {\n public readonly chatId: string | undefined;\n public readonly createdAt: Date;\n public readonly fileId: string;\n public readonly id: string;\n public readonly kind: L.ArtifactKind;\n public readonly messageId: string | undefined;\n public readonly toolCallId: string | undefined;\n public readonly updatedAt: Date;\n public readonly userId: string | undefined;\n public readonly workspaceId: string | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.ArtifactFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.chatId = data.chatId ?? undefined;\n this.createdAt = new Date(data.createdAt);\n this.fileId = data.fileId;\n this.id = data.id;\n this.kind = data.kind;\n this.messageId = data.messageId ?? undefined;\n this.toolCallId = data.toolCallId ?? undefined;\n this.updatedAt = new Date(data.updatedAt);\n this.userId = data.userId ?? undefined;\n this.workspaceId = data.workspaceId ?? undefined;\n }\n\n /** Query the chat relation for this Artifact. Call .fetch() or .watch() to execute. */\n public chat(variables?: Omit<L.Artifact_ChatQueryVariables, 'id'>): Artifact_ChatQuery {\n return new Artifact_ChatQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Artifact_ChatQueryVariables, this._baseUrl);\n }\n\n /** Query the file relation for this Artifact. Call .fetch() or .watch() to execute. */\n public file(variables?: Omit<L.Artifact_FileQueryVariables, 'id'>): Artifact_FileQuery {\n return new Artifact_FileQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Artifact_FileQueryVariables, this._baseUrl);\n }\n\n /** Query the message relation for this Artifact. Call .fetch() or .watch() to execute. */\n public message(variables?: Omit<L.Artifact_MessageQueryVariables, 'id'>): Artifact_MessageQuery {\n return new Artifact_MessageQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Artifact_MessageQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class AudioEventOutput extends DvinaModel {\n public readonly data: string;\n public readonly duration: number;\n public readonly type: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.AudioEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.data = data.data;\n this.duration = data.duration;\n this.type = data.type;\n }\n\n}\n\nexport class Chat extends DvinaModel {\n public readonly closedAt: Date | undefined;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly insightId: string | undefined;\n public readonly name: string;\n public readonly originMeta: any | undefined;\n public readonly piiMaskRules: any | undefined;\n public readonly piiSanitizationEnabled: boolean;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.ChatFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.closedAt = data.closedAt ? new Date(data.closedAt) : undefined;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.insightId = data.insightId ?? undefined;\n this.name = data.name;\n this.originMeta = data.originMeta ?? undefined;\n this.piiMaskRules = data.piiMaskRules ?? undefined;\n this.piiSanitizationEnabled = data.piiSanitizationEnabled;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Query the agents relation for this Chat. Call .fetch() or .watch() to execute. */\n public agents(variables?: Omit<L.Chat_AgentsQueryVariables, 'id'>): Chat_AgentsQuery {\n return new Chat_AgentsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Chat_AgentsQueryVariables, this._baseUrl);\n }\n\n /** Query the artifacts relation for this Chat. Call .fetch() or .watch() to execute. */\n public artifacts(variables?: Omit<L.Chat_ArtifactsQueryVariables, 'id'>): Chat_ArtifactsQuery {\n return new Chat_ArtifactsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Chat_ArtifactsQueryVariables, this._baseUrl);\n }\n\n /** Query the insight relation for this Chat. Call .fetch() or .watch() to execute. */\n public insight(variables?: Omit<L.Chat_InsightQueryVariables, 'id'>): Chat_InsightQuery {\n return new Chat_InsightQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Chat_InsightQueryVariables, this._baseUrl);\n }\n\n /** Query the messages relation for this Chat. Call .fetch() or .watch() to execute. */\n public messages(variables?: Omit<L.Chat_MessagesQueryVariables, 'id'>): Chat_MessagesQuery {\n return new Chat_MessagesQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Chat_MessagesQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class ChatImportExecuteOutput extends DvinaModel {\n public readonly archiveHash: string;\n public readonly createdChatCount: number;\n public readonly createdMessageCount: number;\n public readonly duplicateConversationCount: number;\n public readonly provider: L.ChatSourceProviderEnum;\n public readonly warnings: string[];\n public readonly chats: ImportedChatSummaryOutput[];\n\n public constructor(\n request: DvinaRequest,\n data: L.ChatImportExecuteOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.archiveHash = data.archiveHash;\n this.createdChatCount = data.createdChatCount;\n this.createdMessageCount = data.createdMessageCount;\n this.duplicateConversationCount = data.duplicateConversationCount;\n this.provider = data.provider;\n this.warnings = data.warnings ?? [];\n this.chats = Array.isArray(data.chats) ? data.chats.filter(Boolean).map((item) => new ImportedChatSummaryOutput(request, item as L.ImportedChatSummaryOutputFragment, syncEngine, baseUrl)) : [];\n }\n\n}\n\nexport class ChatImportPreviewOutput extends DvinaModel {\n public readonly archiveHash: string;\n public readonly chatCount: number;\n public readonly duplicateConversationCount: number;\n public readonly fidelity: L.ChatSourceImportFidelityEnum;\n public readonly hasAttachments: boolean;\n public readonly messageCount: number;\n public readonly mode: L.ChatSourceImportModeEnum;\n public readonly provider: L.ChatSourceProviderEnum;\n public readonly warnings: string[];\n\n public constructor(\n request: DvinaRequest,\n data: L.ChatImportPreviewOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.archiveHash = data.archiveHash;\n this.chatCount = data.chatCount;\n this.duplicateConversationCount = data.duplicateConversationCount;\n this.fidelity = data.fidelity;\n this.hasAttachments = data.hasAttachments;\n this.messageCount = data.messageCount;\n this.mode = data.mode;\n this.provider = data.provider;\n this.warnings = data.warnings ?? [];\n }\n\n}\n\nexport class ChatMessage extends DvinaModel {\n public readonly actions: any;\n public readonly chatId: string;\n public readonly from: L.ChatMessageFromEnum;\n public readonly id: string;\n public readonly originMeta: any | undefined;\n public readonly sentAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.ChatMessageFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.actions = data.actions;\n this.chatId = data.chatId;\n this.from = data.from;\n this.id = data.id;\n this.originMeta = data.originMeta ?? undefined;\n this.sentAt = new Date(data.sentAt);\n }\n\n /** Query the artifacts relation for this ChatMessage. Call .fetch() or .watch() to execute. */\n public artifacts(variables?: Omit<L.ChatMessage_ArtifactsQueryVariables, 'id'>): ChatMessage_ArtifactsQuery {\n return new ChatMessage_ArtifactsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.ChatMessage_ArtifactsQueryVariables, this._baseUrl);\n }\n\n /** Query the chat relation for this ChatMessage. Call .fetch() or .watch() to execute. */\n public chat(variables?: Omit<L.ChatMessage_ChatQueryVariables, 'id'>): ChatMessage_ChatQuery {\n return new ChatMessage_ChatQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.ChatMessage_ChatQueryVariables, this._baseUrl);\n }\n\n /** Query the contents relation for this ChatMessage. Call .fetch() or .watch() to execute. */\n public contents(variables?: Omit<L.ChatMessage_ContentsQueryVariables, 'id'>): ChatMessage_ContentsQuery {\n return new ChatMessage_ContentsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.ChatMessage_ContentsQueryVariables, this._baseUrl);\n }\n\n /** Query the feedback relation for this ChatMessage. Call .fetch() or .watch() to execute. */\n public feedback(variables?: Omit<L.ChatMessage_FeedbackQueryVariables, 'id'>): ChatMessage_FeedbackQuery {\n return new ChatMessage_FeedbackQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.ChatMessage_FeedbackQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class ChatTitleEventOutput extends DvinaModel {\n public readonly title: string;\n public readonly type: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.ChatTitleEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.title = data.title;\n this.type = data.type;\n }\n\n}\n\nexport class ContentBlock extends DvinaModel {\n public readonly chatMessageId: string;\n public readonly content: string;\n public readonly id: string;\n public readonly index: number;\n public readonly type: L.ContentBlockType;\n\n public constructor(\n request: DvinaRequest,\n data: L.ContentBlockFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.chatMessageId = data.chatMessageId;\n this.content = data.content;\n this.id = data.id;\n this.index = data.index;\n this.type = data.type;\n }\n\n /** Lazy-fetch the chatMessage relation. Call .fetch() or .watch() to execute. */\n public chatMessage(): ChatMessageQuery {\n return new ChatMessageQuery(this._request, this._syncEngine, { id: this.chatMessageId } as L.ChatMessageQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class ContentMask extends DvinaModel {\n public readonly content: string;\n public readonly contentBlockId: string;\n public readonly contentMasked: string | undefined;\n public readonly id: string;\n public readonly piiMetadata: any | undefined;\n public readonly contentBlock: ContentBlock;\n\n public constructor(\n request: DvinaRequest,\n data: L.ContentMaskFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.content = data.content;\n this.contentBlockId = data.contentBlockId;\n this.contentMasked = data.contentMasked ?? undefined;\n this.id = data.id;\n this.piiMetadata = data.piiMetadata ?? undefined;\n this.contentBlock = new ContentBlock(request, data.contentBlock as L.ContentBlockFragment, syncEngine, baseUrl);\n }\n\n}\n\nexport class CreateIntegrationOutput extends DvinaModel {\n public readonly error: string | undefined;\n public readonly success: boolean;\n\n public constructor(\n request: DvinaRequest,\n data: L.CreateIntegrationOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.error = data.error ?? undefined;\n this.success = data.success;\n }\n\n}\n\nexport class CubeModel extends DvinaModel {\n public readonly id: string;\n public readonly model: any;\n private _table?: { id: string };\n\n public constructor(\n request: DvinaRequest,\n data: L.CubeModelFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.id = data.id;\n this.model = data.model;\n this._table = data.table ?? undefined;\n }\n\n /** ID reference for lazy-fetching the table relation. */\n public get tableId(): string | undefined {\n return this._table?.id;\n }\n\n /** Lazy-fetch the table relation. Call .fetch() or .watch() to execute. */\n public table(): TableQuery {\n return new TableQuery(this._request, this._syncEngine, { id: this._table?.id } as L.TableQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class Database extends DvinaModel {\n public readonly createdAt: Date;\n public readonly engineKey: string;\n public readonly id: string;\n public readonly isReady: boolean;\n public readonly name: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.DatabaseFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.engineKey = data.engineKey;\n this.id = data.id;\n this.isReady = data.isReady;\n this.name = data.name;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Query the engine relation for this Database. Call .fetch() or .watch() to execute. */\n public engine(variables?: Omit<L.Database_EngineQueryVariables, 'id'>): Database_EngineQuery {\n return new Database_EngineQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Database_EngineQueryVariables, this._baseUrl);\n }\n\n /** Query the tables relation for this Database. Call .fetch() or .watch() to execute. */\n public tables(variables?: Omit<L.Database_TablesQueryVariables, 'id'>): Database_TablesQuery {\n return new Database_TablesQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Database_TablesQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class DatabaseCatalog extends DvinaModel {\n public readonly authorName: string | undefined;\n public readonly authorUrl: string | undefined;\n public readonly category: string;\n public readonly description: string | undefined;\n public readonly documentationUrl: string | undefined;\n public readonly engineKey: string;\n public readonly icon: string | undefined;\n public readonly iconClass: string | undefined;\n public readonly iconType: string | undefined;\n public readonly label: string;\n public readonly longDescription: string | undefined;\n public readonly order: number;\n public readonly privacyUrl: string | undefined;\n public readonly supportUrl: string | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.DatabaseCatalogFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.authorName = data.authorName ?? undefined;\n this.authorUrl = data.authorUrl ?? undefined;\n this.category = data.category;\n this.description = data.description ?? undefined;\n this.documentationUrl = data.documentationUrl ?? undefined;\n this.engineKey = data.engineKey;\n this.icon = this.resolveAssetUrl(data.icon ?? undefined);\n this.iconClass = data.iconClass ?? undefined;\n this.iconType = data.iconType ?? undefined;\n this.label = data.label;\n this.longDescription = data.longDescription ?? undefined;\n this.order = data.order;\n this.privacyUrl = data.privacyUrl ?? undefined;\n this.supportUrl = data.supportUrl ?? undefined;\n }\n\n /** Query the engine relation for this DatabaseCatalog. Call .fetch() or .watch() to execute. */\n public engine(variables: L.DatabaseCatalog_EngineQueryVariables): DatabaseCatalog_EngineQuery {\n return new DatabaseCatalog_EngineQuery(this._request, this._syncEngine, variables as L.DatabaseCatalog_EngineQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class DatabaseEngine extends DvinaModel {\n public readonly key: string;\n private _catalog?: { engineKey: string };\n\n public constructor(\n request: DvinaRequest,\n data: L.DatabaseEngineFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.key = data.key;\n this._catalog = data.catalog ?? undefined;\n }\n\n /** ID reference for lazy-fetching the catalog relation. */\n public get catalogId(): string | undefined {\n return this._catalog?.engineKey;\n }\n\n /** Lazy-fetch the catalog relation. Call .fetch() or .watch() to execute. */\n public catalog(): DatabaseCatalogQuery {\n return new DatabaseCatalogQuery(this._request, this._syncEngine, { engineKey: this._catalog?.engineKey } as L.DatabaseCatalogQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class DeepAnalysisUsage extends DvinaModel {\n public readonly characterCount: number | undefined;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly numberOfImages: number | undefined;\n public readonly tokenCost: number | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.DeepAnalysisUsageFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.characterCount = data.characterCount ?? undefined;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.numberOfImages = data.numberOfImages ?? undefined;\n this.tokenCost = data.tokenCost ?? undefined;\n }\n\n}\n\nexport class DevAccessTokenOutput extends DvinaModel {\n public readonly access_token: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.DevAccessTokenOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.access_token = data.access_token;\n }\n\n}\n\nexport class Document extends DvinaModel {\n public readonly createdAt: Date;\n public readonly fileId: string;\n public readonly formatKey: string;\n public readonly id: string;\n public readonly isDeepAnalyzed: boolean;\n public readonly isReady: boolean;\n public readonly isStructured: boolean;\n public readonly name: string;\n public readonly path: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.DocumentFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.fileId = data.fileId;\n this.formatKey = data.formatKey;\n this.id = data.id;\n this.isDeepAnalyzed = data.isDeepAnalyzed;\n this.isReady = data.isReady;\n this.isStructured = data.isStructured;\n this.name = data.name;\n this.path = data.path;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Query the contents relation for this Document. Call .fetch() or .watch() to execute. */\n public contents(variables?: Omit<L.Document_ContentsQueryVariables, 'id'>): Document_ContentsQuery {\n return new Document_ContentsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Document_ContentsQueryVariables, this._baseUrl);\n }\n\n /** Query the file relation for this Document. Call .fetch() or .watch() to execute. */\n public file(variables?: Omit<L.Document_FileQueryVariables, 'id'>): Document_FileQuery {\n return new Document_FileQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Document_FileQueryVariables, this._baseUrl);\n }\n\n /** Query the format relation for this Document. Call .fetch() or .watch() to execute. */\n public format(variables?: Omit<L.Document_FormatQueryVariables, 'id'>): Document_FormatQuery {\n return new Document_FormatQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Document_FormatQueryVariables, this._baseUrl);\n }\n\n /** Query the tables relation for this Document. Call .fetch() or .watch() to execute. */\n public tables(variables?: Omit<L.Document_TablesQueryVariables, 'id'>): Document_TablesQuery {\n return new Document_TablesQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Document_TablesQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class DocumentCatalog extends DvinaModel {\n public readonly formatKey: string;\n public readonly icon: string | undefined;\n public readonly iconClass: string | undefined;\n public readonly iconType: string | undefined;\n public readonly label: string;\n public readonly order: number;\n\n public constructor(\n request: DvinaRequest,\n data: L.DocumentCatalogFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.formatKey = data.formatKey;\n this.icon = this.resolveAssetUrl(data.icon ?? undefined);\n this.iconClass = data.iconClass ?? undefined;\n this.iconType = data.iconType ?? undefined;\n this.label = data.label;\n this.order = data.order;\n }\n\n /** Query the format relation for this DocumentCatalog. Call .fetch() or .watch() to execute. */\n public format(variables: L.DocumentCatalog_FormatQueryVariables): DocumentCatalog_FormatQuery {\n return new DocumentCatalog_FormatQuery(this._request, this._syncEngine, variables as L.DocumentCatalog_FormatQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class DocumentContent extends DvinaModel {\n public readonly content: string;\n public readonly createdAt: Date;\n public readonly documentId: string;\n public readonly id: string;\n public readonly index: number | undefined;\n public readonly pageNumber: number;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.DocumentContentFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.content = data.content;\n this.createdAt = new Date(data.createdAt);\n this.documentId = data.documentId;\n this.id = data.id;\n this.index = data.index ?? undefined;\n this.pageNumber = data.pageNumber;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Lazy-fetch the document relation. Call .fetch() or .watch() to execute. */\n public document(): DocumentQuery {\n return new DocumentQuery(this._request, this._syncEngine, { id: this.documentId } as L.DocumentQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class DocumentFormat extends DvinaModel {\n public readonly createsTables: boolean;\n public readonly key: string;\n public readonly supportsDeepAnalysis: boolean;\n private _catalog?: { formatKey: string };\n\n public constructor(\n request: DvinaRequest,\n data: L.DocumentFormatFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createsTables = data.createsTables;\n this.key = data.key;\n this.supportsDeepAnalysis = data.supportsDeepAnalysis;\n this._catalog = data.catalog ?? undefined;\n }\n\n /** ID reference for lazy-fetching the catalog relation. */\n public get catalogId(): string | undefined {\n return this._catalog?.formatKey;\n }\n\n /** Lazy-fetch the catalog relation. Call .fetch() or .watch() to execute. */\n public catalog(): DocumentCatalogQuery {\n return new DocumentCatalogQuery(this._request, this._syncEngine, { formatKey: this._catalog?.formatKey } as L.DocumentCatalogQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class Feedback extends DvinaModel {\n public readonly chatMessageId: string;\n public readonly comment: string | undefined;\n public readonly createdAt: Date;\n public readonly feedback: L.FeedbackType;\n public readonly id: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.FeedbackFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.chatMessageId = data.chatMessageId;\n this.comment = data.comment ?? undefined;\n this.createdAt = new Date(data.createdAt);\n this.feedback = data.feedback;\n this.id = data.id;\n }\n\n /** Lazy-fetch the chatMessage relation. Call .fetch() or .watch() to execute. */\n public chatMessage(): ChatMessageQuery {\n return new ChatMessageQuery(this._request, this._syncEngine, { id: this.chatMessageId } as L.ChatMessageQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class File extends DvinaModel {\n public readonly createdAt: Date;\n public readonly extension: string | undefined;\n public readonly id: string;\n public readonly mimeType: string | undefined;\n public readonly name: string | undefined;\n public readonly path: string;\n public readonly size: number | undefined;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.FileFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.extension = data.extension ?? undefined;\n this.id = data.id;\n this.mimeType = data.mimeType ?? undefined;\n this.name = data.name ?? undefined;\n this.path = data.path;\n this.size = data.size ?? undefined;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n}\n\nexport class FileModel extends DvinaModel {\n public readonly id: string;\n public readonly key: string;\n public readonly uploadUri: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.FileModelFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.id = data.id;\n this.key = data.key;\n this.uploadUri = data.uploadUri;\n }\n\n}\n\nexport class FinalContentEventOutput extends DvinaModel {\n public readonly type: string;\n public readonly message: StreamMessageOutput;\n public readonly usage: UsageMetaOutput;\n\n public constructor(\n request: DvinaRequest,\n data: L.FinalContentEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.type = data.type;\n this.message = new StreamMessageOutput(request, data.message as L.StreamMessageOutputFragment, syncEngine, baseUrl);\n this.usage = new UsageMetaOutput(request, data.usage as L.UsageMetaOutputFragment, syncEngine, baseUrl);\n }\n\n}\n\nexport class Folder extends DvinaModel {\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly itemCount: number;\n public readonly name: string;\n public readonly path: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.FolderFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.itemCount = data.itemCount;\n this.name = data.name;\n this.path = data.path;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n}\n\nexport class ImportedChatSummaryOutput extends DvinaModel {\n public readonly chatId: string;\n public readonly externalConversationId: string;\n public readonly messageCount: number;\n public readonly name: string;\n public readonly provider: L.ChatSourceProviderEnum;\n\n public constructor(\n request: DvinaRequest,\n data: L.ImportedChatSummaryOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.chatId = data.chatId;\n this.externalConversationId = data.externalConversationId;\n this.messageCount = data.messageCount;\n this.name = data.name;\n this.provider = data.provider;\n }\n\n}\n\nexport class IndexContentObject extends DvinaModel {\n public readonly content: string;\n public readonly metadata: any;\n\n public constructor(\n request: DvinaRequest,\n data: L.IndexContentObjectFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.content = data.content;\n this.metadata = data.metadata;\n }\n\n}\n\nexport class InferenceRequestAudit extends DvinaModel {\n public readonly assistantResponse: string | undefined;\n public readonly createdAt: Date;\n public readonly deploymentId: string | undefined;\n public readonly errorMessage: string | undefined;\n public readonly gatewayRequestId: string | undefined;\n public readonly gatewayRequestIdHeader: string | undefined;\n public readonly httpStatus: number | undefined;\n public readonly id: string;\n public readonly model: string | undefined;\n public readonly operation: string | undefined;\n public readonly provider: string | undefined;\n public readonly providerRequestId: string | undefined;\n public readonly providerRequestIdHeader: string | undefined;\n public readonly requestCompletedAt: Date | undefined;\n public readonly requestStartedAt: Date | undefined;\n public readonly status: string;\n public readonly stream: boolean | undefined;\n public readonly updatedAt: Date;\n public readonly userId: string | undefined;\n public readonly userMessage: string | undefined;\n public readonly workspaceId: string | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.InferenceRequestAuditFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.assistantResponse = data.assistantResponse ?? undefined;\n this.createdAt = new Date(data.createdAt);\n this.deploymentId = data.deploymentId ?? undefined;\n this.errorMessage = data.errorMessage ?? undefined;\n this.gatewayRequestId = data.gatewayRequestId ?? undefined;\n this.gatewayRequestIdHeader = data.gatewayRequestIdHeader ?? undefined;\n this.httpStatus = data.httpStatus ?? undefined;\n this.id = data.id;\n this.model = data.model ?? undefined;\n this.operation = data.operation ?? undefined;\n this.provider = data.provider ?? undefined;\n this.providerRequestId = data.providerRequestId ?? undefined;\n this.providerRequestIdHeader = data.providerRequestIdHeader ?? undefined;\n this.requestCompletedAt = data.requestCompletedAt ? new Date(data.requestCompletedAt) : undefined;\n this.requestStartedAt = data.requestStartedAt ? new Date(data.requestStartedAt) : undefined;\n this.status = data.status;\n this.stream = data.stream ?? undefined;\n this.updatedAt = new Date(data.updatedAt);\n this.userId = data.userId ?? undefined;\n this.userMessage = data.userMessage ?? undefined;\n this.workspaceId = data.workspaceId ?? undefined;\n }\n\n}\n\nexport class Insight extends DvinaModel {\n public readonly createdAt: Date;\n public readonly description: string | undefined;\n public readonly id: string;\n public readonly name: string;\n public readonly output: any | undefined;\n public readonly pivotConfig: any | undefined;\n public readonly presentation: L.Presentation;\n public readonly query: any;\n public readonly updatedAt: Date;\n private _chat?: { id: string };\n\n public constructor(\n request: DvinaRequest,\n data: L.InsightFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.description = data.description ?? undefined;\n this.id = data.id;\n this.name = data.name;\n this.output = data.output ?? undefined;\n this.pivotConfig = data.pivotConfig ?? undefined;\n this.presentation = data.presentation;\n this.query = data.query;\n this.updatedAt = new Date(data.updatedAt);\n this._chat = data.chat ?? undefined;\n }\n\n /** ID reference for lazy-fetching the chat relation. */\n public get chatId(): string | undefined {\n return this._chat?.id;\n }\n\n /** Query the chat relation for this Insight. Call .fetch() or .watch() to execute. */\n public chat(variables?: Omit<L.Insight_ChatQueryVariables, 'id'>): Insight_ChatQuery {\n return new Insight_ChatQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Insight_ChatQueryVariables, this._baseUrl);\n }\n\n /** Query the reportMembers relation for this Insight. Call .fetch() or .watch() to execute. */\n public reportMembers(variables?: Omit<L.Insight_ReportMembersQueryVariables, 'id'>): Insight_ReportMembersQuery {\n return new Insight_ReportMembersQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Insight_ReportMembersQueryVariables, this._baseUrl);\n }\n\n /** Query the reports relation for this Insight. Call .fetch() or .watch() to execute. */\n public reports(variables?: Omit<L.Insight_ReportsQueryVariables, 'id'>): Insight_ReportsQuery {\n return new Insight_ReportsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Insight_ReportsQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class Integration extends DvinaModel {\n public readonly connectedAt: Date | undefined;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly providerKey: string;\n public readonly status: L.IntegrationStatus;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.IntegrationFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.connectedAt = data.connectedAt ? new Date(data.connectedAt) : undefined;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.providerKey = data.providerKey;\n this.status = data.status;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Query the provider relation for this Integration. Call .fetch() or .watch() to execute. */\n public provider(variables?: Omit<L.Integration_ProviderQueryVariables, 'id'>): Integration_ProviderQuery {\n return new Integration_ProviderQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Integration_ProviderQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class IntegrationCatalog extends DvinaModel {\n public readonly authorName: string | undefined;\n public readonly authorUrl: string | undefined;\n public readonly category: string;\n public readonly description: string | undefined;\n public readonly documentationUrl: string | undefined;\n public readonly icon: string | undefined;\n public readonly iconClass: string | undefined;\n public readonly iconType: string | undefined;\n public readonly label: string;\n public readonly longDescription: string | undefined;\n public readonly order: number;\n public readonly privacyUrl: string | undefined;\n public readonly providerKey: string;\n public readonly status: L.IntegrationStatus;\n public readonly supportUrl: string | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.IntegrationCatalogFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.authorName = data.authorName ?? undefined;\n this.authorUrl = data.authorUrl ?? undefined;\n this.category = data.category;\n this.description = data.description ?? undefined;\n this.documentationUrl = data.documentationUrl ?? undefined;\n this.icon = this.resolveAssetUrl(data.icon ?? undefined);\n this.iconClass = data.iconClass ?? undefined;\n this.iconType = data.iconType ?? undefined;\n this.label = data.label;\n this.longDescription = data.longDescription ?? undefined;\n this.order = data.order;\n this.privacyUrl = data.privacyUrl ?? undefined;\n this.providerKey = data.providerKey;\n this.status = data.status;\n this.supportUrl = data.supportUrl ?? undefined;\n }\n\n /** Query the provider relation for this IntegrationCatalog. Call .fetch() or .watch() to execute. */\n public provider(variables: L.IntegrationCatalog_ProviderQueryVariables): IntegrationCatalog_ProviderQuery {\n return new IntegrationCatalog_ProviderQuery(this._request, this._syncEngine, variables as L.IntegrationCatalog_ProviderQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class IntegrationProvider extends DvinaModel {\n public readonly composioToolkitSlug: string | undefined;\n public readonly key: string;\n private _catalog?: { providerKey: string };\n\n public constructor(\n request: DvinaRequest,\n data: L.IntegrationProviderFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.composioToolkitSlug = data.composioToolkitSlug ?? undefined;\n this.key = data.key;\n this._catalog = data.catalog ?? undefined;\n }\n\n /** ID reference for lazy-fetching the catalog relation. */\n public get catalogId(): string | undefined {\n return this._catalog?.providerKey;\n }\n\n /** Lazy-fetch the catalog relation. Call .fetch() or .watch() to execute. */\n public catalog(): IntegrationCatalogQuery {\n return new IntegrationCatalogQuery(this._request, this._syncEngine, { providerKey: this._catalog?.providerKey } as L.IntegrationCatalogQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class Interpretation extends DvinaModel {\n public readonly content: string;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly resourceId: string;\n public readonly resourceType: L.AiResourceType;\n public readonly type: L.InterpretationType;\n\n public constructor(\n request: DvinaRequest,\n data: L.InterpretationFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.content = data.content;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.resourceId = data.resourceId;\n this.resourceType = data.resourceType;\n this.type = data.type;\n }\n\n}\n\nexport class Invocation extends DvinaModel {\n public readonly cachedTokensInput: number | undefined;\n public readonly chatMessageId: string | undefined;\n public readonly cost: number | undefined;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly label: string | undefined;\n public readonly model: string | undefined;\n public readonly timeTaken: number | undefined;\n public readonly tokensInput: number | undefined;\n public readonly tokensOutput: number | undefined;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.InvocationFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.cachedTokensInput = data.cachedTokensInput ?? undefined;\n this.chatMessageId = data.chatMessageId ?? undefined;\n this.cost = data.cost ?? undefined;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.label = data.label ?? undefined;\n this.model = data.model ?? undefined;\n this.timeTaken = data.timeTaken ?? undefined;\n this.tokensInput = data.tokensInput ?? undefined;\n this.tokensOutput = data.tokensOutput ?? undefined;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Lazy-fetch the chatMessage relation. Call .fetch() or .watch() to execute. */\n public chatMessage(): ChatMessageQuery {\n return new ChatMessageQuery(this._request, this._syncEngine, { id: this.chatMessageId } as L.ChatMessageQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class McpAuthUpdateModel extends DvinaModel {\n public readonly authorizationUrl: string | undefined;\n public readonly error: string | undefined;\n public readonly phase: L.McpAuthPhase;\n public readonly provider: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.McpAuthUpdateModelFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.authorizationUrl = data.authorizationUrl ?? undefined;\n this.error = data.error ?? undefined;\n this.phase = data.phase;\n this.provider = data.provider;\n }\n\n}\n\nexport class McpClientInformation extends DvinaModel {\n public readonly content: any;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly provider: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.McpClientInformationFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.content = data.content;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.provider = data.provider;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n}\n\nexport class McpCodeVerifier extends DvinaModel {\n public readonly content: string;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly provider: string;\n public readonly updatedAt: Date;\n public readonly userId: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.McpCodeVerifierFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.content = data.content;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.provider = data.provider;\n this.updatedAt = new Date(data.updatedAt);\n this.userId = data.userId;\n }\n\n}\n\nexport class McpServer extends DvinaModel {\n public readonly authType: string | undefined;\n public readonly id: string;\n public readonly provider: string;\n public readonly serverUrl: string;\n public readonly transport: string | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.McpServerFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.authType = data.authType ?? undefined;\n this.id = data.id;\n this.provider = data.provider;\n this.serverUrl = data.serverUrl;\n this.transport = data.transport ?? undefined;\n }\n\n}\n\nexport class McpTokens extends DvinaModel {\n public readonly content: any;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly provider: string;\n public readonly updatedAt: Date;\n public readonly userId: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.McpTokensFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.content = data.content;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.provider = data.provider;\n this.updatedAt = new Date(data.updatedAt);\n this.userId = data.userId;\n }\n\n}\n\nexport class McpTool extends DvinaModel {\n public readonly createdAt: Date;\n public readonly description: string | undefined;\n public readonly id: string;\n public readonly name: string;\n public readonly provider: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.McpToolFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.description = data.description ?? undefined;\n this.id = data.id;\n this.name = data.name;\n this.provider = data.provider;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n}\n\nexport class MessageEndEventOutput extends DvinaModel {\n public readonly type: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.MessageEndEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.type = data.type;\n }\n\n}\n\nexport class MessageStartEventOutput extends DvinaModel {\n public readonly type: string;\n public readonly message: StreamMessageOutput;\n\n public constructor(\n request: DvinaRequest,\n data: L.MessageStartEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.type = data.type;\n this.message = new StreamMessageOutput(request, data.message as L.StreamMessageOutputFragment, syncEngine, baseUrl);\n }\n\n}\n\nexport class ModelTokenUsage extends DvinaModel {\n public readonly cacheCreation1hTokens: number;\n public readonly cacheCreationTokens: number;\n public readonly cachedInputTokens: number;\n public readonly cost: number;\n public readonly inputTokens: number;\n public readonly model: string;\n public readonly outputTokens: number;\n public readonly reasoningTokens: number;\n\n public constructor(\n request: DvinaRequest,\n data: L.ModelTokenUsageFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.cacheCreation1hTokens = data.cacheCreation1hTokens;\n this.cacheCreationTokens = data.cacheCreationTokens;\n this.cachedInputTokens = data.cachedInputTokens;\n this.cost = data.cost;\n this.inputTokens = data.inputTokens;\n this.model = data.model;\n this.outputTokens = data.outputTokens;\n this.reasoningTokens = data.reasoningTokens;\n }\n\n}\n\nexport class Notification extends DvinaModel {\n public readonly category: L.NotificationCategory | undefined;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly message: string | undefined;\n public readonly metadata: any | undefined;\n public readonly priority: L.NotificationPriority;\n public readonly referenceId: string | undefined;\n public readonly status: L.NotificationStatus | undefined;\n public readonly title: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.NotificationFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.category = data.category ?? undefined;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.message = data.message ?? undefined;\n this.metadata = data.metadata ?? undefined;\n this.priority = data.priority;\n this.referenceId = data.referenceId ?? undefined;\n this.status = data.status ?? undefined;\n this.title = data.title;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n}\n\nexport class PrivacyStats extends DvinaModel {\n public readonly automaticallyMaskedData: number | undefined;\n public readonly dataKeptAwayFromThirdParties: number | undefined;\n public readonly messagesProtectedFromTraining: number | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.PrivacyStatsFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.automaticallyMaskedData = data.automaticallyMaskedData ?? undefined;\n this.dataKeptAwayFromThirdParties = data.dataKeptAwayFromThirdParties ?? undefined;\n this.messagesProtectedFromTraining = data.messagesProtectedFromTraining ?? undefined;\n }\n\n}\n\nexport class PulseAppSummaryModel extends DvinaModel {\n public readonly activeTriggerCount: number;\n public readonly integrationId: string;\n public readonly providerKey: string | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.PulseAppSummaryModelFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.activeTriggerCount = data.activeTriggerCount;\n this.integrationId = data.integrationId;\n this.providerKey = data.providerKey ?? undefined;\n }\n\n}\n\nexport class PulseEvent extends DvinaModel {\n public readonly acknowledgedAt: Date | undefined;\n public readonly actions: any | undefined;\n public readonly createdAt: Date;\n public readonly dedupeKey: string | undefined;\n public readonly dismissedAt: Date | undefined;\n public readonly id: string;\n public readonly integrationId: string;\n public readonly kind: L.PulseEventKind;\n public readonly message: string | undefined;\n public readonly payload: any | undefined;\n public readonly priority: L.PulseEventPriority;\n public readonly providerKey: string;\n public readonly remoteEventId: string;\n public readonly remoteLogId: string | undefined;\n public readonly remoteTriggerId: string | undefined;\n public readonly resolvedAt: Date | undefined;\n public readonly seenAt: Date | undefined;\n public readonly status: L.PulseEventStatus;\n public readonly summary: string | undefined;\n public readonly title: string;\n public readonly triggerSlug: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.PulseEventFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.acknowledgedAt = data.acknowledgedAt ? new Date(data.acknowledgedAt) : undefined;\n this.actions = data.actions ?? undefined;\n this.createdAt = new Date(data.createdAt);\n this.dedupeKey = data.dedupeKey ?? undefined;\n this.dismissedAt = data.dismissedAt ? new Date(data.dismissedAt) : undefined;\n this.id = data.id;\n this.integrationId = data.integrationId;\n this.kind = data.kind;\n this.message = data.message ?? undefined;\n this.payload = data.payload ?? undefined;\n this.priority = data.priority;\n this.providerKey = data.providerKey;\n this.remoteEventId = data.remoteEventId;\n this.remoteLogId = data.remoteLogId ?? undefined;\n this.remoteTriggerId = data.remoteTriggerId ?? undefined;\n this.resolvedAt = data.resolvedAt ? new Date(data.resolvedAt) : undefined;\n this.seenAt = data.seenAt ? new Date(data.seenAt) : undefined;\n this.status = data.status;\n this.summary = data.summary ?? undefined;\n this.title = data.title;\n this.triggerSlug = data.triggerSlug;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Query the integration relation for this PulseEvent. Call .fetch() or .watch() to execute. */\n public integration(variables?: Omit<L.PulseEvent_IntegrationQueryVariables, 'id'>): PulseEvent_IntegrationQuery {\n return new PulseEvent_IntegrationQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.PulseEvent_IntegrationQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class PulseEventStatsModel extends DvinaModel {\n public readonly highPriorityCount: number;\n public readonly needsActionCount: number;\n public readonly unreadCount: number;\n\n public constructor(\n request: DvinaRequest,\n data: L.PulseEventStatsModelFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.highPriorityCount = data.highPriorityCount;\n this.needsActionCount = data.needsActionCount;\n this.unreadCount = data.unreadCount;\n }\n\n}\n\nexport class PulseTriggerSettingModel extends DvinaModel {\n public readonly integrationId: string;\n public readonly isEnabled: boolean;\n public readonly message: string | undefined;\n public readonly name: string;\n public readonly providerKey: string;\n public readonly slug: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.PulseTriggerSettingModelFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.integrationId = data.integrationId;\n this.isEnabled = data.isEnabled;\n this.message = data.message ?? undefined;\n this.name = data.name;\n this.providerKey = data.providerKey;\n this.slug = data.slug;\n }\n\n}\n\nexport class ReasoningEventOutput extends DvinaModel {\n public readonly delta: string;\n public readonly type: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.ReasoningEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.delta = data.delta;\n this.type = data.type;\n }\n\n}\n\nexport class Relation extends DvinaModel {\n public readonly createdAt: Date;\n public readonly fromTableColumn: string;\n public readonly fromTableId: string;\n public readonly id: string;\n public readonly toTableColumn: string;\n public readonly toTableId: string;\n public readonly type: L.RelationType;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.RelationFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.fromTableColumn = data.fromTableColumn;\n this.fromTableId = data.fromTableId;\n this.id = data.id;\n this.toTableColumn = data.toTableColumn;\n this.toTableId = data.toTableId;\n this.type = data.type;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Lazy-fetch the fromTable relation. Call .fetch() or .watch() to execute. */\n public fromTable(): TableQuery {\n return new TableQuery(this._request, this._syncEngine, { id: this.fromTableId } as L.TableQueryVariables, this._baseUrl);\n }\n\n /** Lazy-fetch the toTable relation. Call .fetch() or .watch() to execute. */\n public toTable(): TableQuery {\n return new TableQuery(this._request, this._syncEngine, { id: this.toTableId } as L.TableQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class Report extends DvinaModel {\n public readonly createdAt: Date;\n public readonly description: string | undefined;\n public readonly id: string;\n public readonly name: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.ReportFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.description = data.description ?? undefined;\n this.id = data.id;\n this.name = data.name;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Query the insights relation for this Report. Call .fetch() or .watch() to execute. */\n public insights(variables?: Omit<L.Report_InsightsQueryVariables, 'id'>): Report_InsightsQuery {\n return new Report_InsightsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Report_InsightsQueryVariables, this._baseUrl);\n }\n\n /** Query the layout relation for this Report. Call .fetch() or .watch() to execute. */\n public layout(variables?: Omit<L.Report_LayoutQueryVariables, 'id'>): Report_LayoutQuery {\n return new Report_LayoutQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Report_LayoutQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class ReportMember extends DvinaModel {\n public readonly insightId: string;\n public readonly order: number;\n public readonly presentation: L.Presentation;\n public readonly reportId: string;\n public readonly size: L.ReportMemberSize;\n\n public constructor(\n request: DvinaRequest,\n data: L.ReportMemberFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.insightId = data.insightId;\n this.order = data.order;\n this.presentation = data.presentation;\n this.reportId = data.reportId;\n this.size = data.size;\n }\n\n /** Lazy-fetch the insight relation. Call .fetch() or .watch() to execute. */\n public insight(): InsightQuery {\n return new InsightQuery(this._request, this._syncEngine, { id: this.insightId } as L.InsightQueryVariables, this._baseUrl);\n }\n\n /** Lazy-fetch the report relation. Call .fetch() or .watch() to execute. */\n public report(): ReportQuery {\n return new ReportQuery(this._request, this._syncEngine, { id: this.reportId } as L.ReportQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class ResolvedFileUrl extends DvinaModel {\n public readonly id: string;\n public readonly url: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.ResolvedFileUrlFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.id = data.id;\n this.url = data.url;\n }\n\n}\n\nexport class StreamMessageContentOutput extends DvinaModel {\n public readonly chatMessageId: string;\n public readonly content: string;\n public readonly id: string;\n public readonly index: number;\n public readonly type: L.ContentBlockType;\n\n public constructor(\n request: DvinaRequest,\n data: L.StreamMessageContentOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.chatMessageId = data.chatMessageId;\n this.content = data.content;\n this.id = data.id;\n this.index = data.index;\n this.type = data.type;\n }\n\n}\n\nexport class StreamMessageOutput extends DvinaModel {\n public readonly actions: any | undefined;\n public readonly chatId: string;\n public readonly from: L.ChatMessageFromEnum;\n public readonly id: string;\n public readonly originMeta: any | undefined;\n public readonly sentAt: Date;\n public readonly contents: StreamMessageContentOutput[];\n\n public constructor(\n request: DvinaRequest,\n data: L.StreamMessageOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.actions = data.actions ?? undefined;\n this.chatId = data.chatId;\n this.from = data.from;\n this.id = data.id;\n this.originMeta = data.originMeta ?? undefined;\n this.sentAt = new Date(data.sentAt);\n this.contents = Array.isArray(data.contents) ? data.contents.filter(Boolean).map((item) => new StreamMessageContentOutput(request, item as L.StreamMessageContentOutputFragment, syncEngine, baseUrl)) : [];\n }\n\n}\n\nexport class SyncEvent extends DvinaModel {\n public readonly createdAt: Date;\n public readonly entityId: string;\n public readonly id: string;\n public readonly modelName: string;\n public readonly payload: any | undefined;\n public readonly type: string;\n public readonly userId: string | undefined;\n public readonly visibility: any | undefined;\n public readonly workspaceId: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.SyncEventFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.entityId = data.entityId;\n this.id = data.id;\n this.modelName = data.modelName;\n this.payload = data.payload ?? undefined;\n this.type = data.type;\n this.userId = data.userId ?? undefined;\n this.visibility = data.visibility ?? undefined;\n this.workspaceId = data.workspaceId;\n }\n\n}\n\nexport class Table extends DvinaModel {\n public readonly clearName: string | undefined;\n public readonly createdAt: Date;\n public readonly databaseId: string | undefined;\n public readonly documentId: string | undefined;\n public readonly id: string;\n public readonly model: any;\n public readonly name: string;\n public readonly status: L.TableStatus;\n public readonly title: string | undefined;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.TableFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.clearName = data.clearName ?? undefined;\n this.createdAt = new Date(data.createdAt);\n this.databaseId = data.databaseId ?? undefined;\n this.documentId = data.documentId ?? undefined;\n this.id = data.id;\n this.model = data.model;\n this.name = data.name;\n this.status = data.status;\n this.title = data.title ?? undefined;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Query the database relation for this Table. Call .fetch() or .watch() to execute. */\n public database(variables?: Omit<L.Table_DatabaseQueryVariables, 'id'>): Table_DatabaseQuery {\n return new Table_DatabaseQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Table_DatabaseQueryVariables, this._baseUrl);\n }\n\n /** Query the document relation for this Table. Call .fetch() or .watch() to execute. */\n public document(variables?: Omit<L.Table_DocumentQueryVariables, 'id'>): Table_DocumentQuery {\n return new Table_DocumentQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Table_DocumentQueryVariables, this._baseUrl);\n }\n\n /** Query the fromRelations relation for this Table. Call .fetch() or .watch() to execute. */\n public fromRelations(variables?: Omit<L.Table_FromRelationsQueryVariables, 'id'>): Table_FromRelationsQuery {\n return new Table_FromRelationsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Table_FromRelationsQueryVariables, this._baseUrl);\n }\n\n /** Query the toRelations relation for this Table. Call .fetch() or .watch() to execute. */\n public toRelations(variables?: Omit<L.Table_ToRelationsQueryVariables, 'id'>): Table_ToRelationsQuery {\n return new Table_ToRelationsQuery(this._request, this._syncEngine, { ...variables, id: this.id } as L.Table_ToRelationsQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class TextBlockEventOutput extends DvinaModel {\n public readonly text: string;\n public readonly type: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.TextBlockEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.text = data.text;\n this.type = data.type;\n }\n\n}\n\nexport class TextDeltaEventOutput extends DvinaModel {\n public readonly delta: string;\n public readonly type: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.TextDeltaEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.delta = data.delta;\n this.type = data.type;\n }\n\n}\n\nexport class TokenUsage extends DvinaModel {\n public readonly cacheCreation1hTokens: number | undefined;\n public readonly cacheCreationTokens: number | undefined;\n public readonly cachedInputTokens: number | undefined;\n public readonly cost: number;\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly inputTokens: number;\n public readonly label: string | undefined;\n public readonly model: string;\n public readonly outputTokens: number;\n public readonly reasoningTokens: number | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.TokenUsageFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.cacheCreation1hTokens = data.cacheCreation1hTokens ?? undefined;\n this.cacheCreationTokens = data.cacheCreationTokens ?? undefined;\n this.cachedInputTokens = data.cachedInputTokens ?? undefined;\n this.cost = data.cost;\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.inputTokens = data.inputTokens;\n this.label = data.label ?? undefined;\n this.model = data.model;\n this.outputTokens = data.outputTokens;\n this.reasoningTokens = data.reasoningTokens ?? undefined;\n }\n\n}\n\nexport class ToolInputDeltaEventOutput extends DvinaModel {\n public readonly args: string;\n public readonly index: number;\n public readonly name: string;\n public readonly toolCallId: string;\n public readonly type: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.ToolInputDeltaEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.args = data.args;\n this.index = data.index;\n this.name = data.name;\n this.toolCallId = data.toolCallId;\n this.type = data.type;\n }\n\n}\n\nexport class ToolResultArtifactOutput extends DvinaModel {\n public readonly id: string;\n public readonly kind: string;\n public readonly name: string;\n public readonly size: number;\n\n public constructor(\n request: DvinaRequest,\n data: L.ToolResultArtifactOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.id = data.id;\n this.kind = data.kind;\n this.name = data.name;\n this.size = data.size;\n }\n\n}\n\nexport class ToolResultEventOutput extends DvinaModel {\n public readonly index: number;\n public readonly input: string;\n public readonly name: string;\n public readonly output: string;\n public readonly toolCallId: string;\n public readonly toolKit: string;\n public readonly type: string;\n public readonly artifacts: ToolResultArtifactOutput[];\n\n public constructor(\n request: DvinaRequest,\n data: L.ToolResultEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.index = data.index;\n this.input = data.input;\n this.name = data.name;\n this.output = data.output;\n this.toolCallId = data.toolCallId;\n this.toolKit = data.toolKit;\n this.type = data.type;\n this.artifacts = Array.isArray(data.artifacts) ? data.artifacts.filter(Boolean).map((item) => new ToolResultArtifactOutput(request, item as L.ToolResultArtifactOutputFragment, syncEngine, baseUrl)) : [];\n }\n\n}\n\nexport class ToolStartEventOutput extends DvinaModel {\n public readonly index: number;\n public readonly name: string;\n public readonly toolCallId: string;\n public readonly toolKit: string;\n public readonly type: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.ToolStartEventOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.index = data.index;\n this.name = data.name;\n this.toolCallId = data.toolCallId;\n this.toolKit = data.toolKit;\n this.type = data.type;\n }\n\n}\n\nexport class UsageMetaOutput extends DvinaModel {\n public readonly cachedPromptTokens: number | undefined;\n public readonly completionTokens: number;\n public readonly promptTokens: number;\n public readonly totalTokens: number;\n\n public constructor(\n request: DvinaRequest,\n data: L.UsageMetaOutputFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.cachedPromptTokens = data.cachedPromptTokens ?? undefined;\n this.completionTokens = data.completionTokens;\n this.promptTokens = data.promptTokens;\n this.totalTokens = data.totalTokens;\n }\n\n}\n\nexport class UsageStatus extends DvinaModel {\n public readonly hardTokenUsageLimit: number | undefined;\n public readonly limit: L.TokenUsageLimit | undefined;\n public readonly tokenUsageCost: number | undefined;\n public readonly unlocksAt: Date | undefined;\n public readonly windowEnd: Date | undefined;\n public readonly windowStart: Date | undefined;\n public readonly windows: UsageWindowsStatusType | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.UsageStatusFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.hardTokenUsageLimit = data.hardTokenUsageLimit ?? undefined;\n this.limit = data.limit ?? undefined;\n this.tokenUsageCost = data.tokenUsageCost ?? undefined;\n this.unlocksAt = data.unlocksAt ? new Date(data.unlocksAt) : undefined;\n this.windowEnd = data.windowEnd ? new Date(data.windowEnd) : undefined;\n this.windowStart = data.windowStart ? new Date(data.windowStart) : undefined;\n this.windows = data.windows ? new UsageWindowsStatusType(request, data.windows as L.UsageWindowsStatusTypeFragment, syncEngine, baseUrl) : undefined;\n }\n\n}\n\nexport class UsageWindowsStatusType extends DvinaModel {\n public readonly activeWindow: L.ActiveWindowType | undefined;\n public readonly unlocksAt: Date | undefined;\n public readonly day: WindowDetailType;\n public readonly fiveHour: WindowDetailType;\n public readonly week: WindowDetailType;\n\n public constructor(\n request: DvinaRequest,\n data: L.UsageWindowsStatusTypeFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.activeWindow = data.activeWindow ?? undefined;\n this.unlocksAt = data.unlocksAt ? new Date(data.unlocksAt) : undefined;\n this.day = new WindowDetailType(request, data.day as L.WindowDetailTypeFragment, syncEngine, baseUrl);\n this.fiveHour = new WindowDetailType(request, data.fiveHour as L.WindowDetailTypeFragment, syncEngine, baseUrl);\n this.week = new WindowDetailType(request, data.week as L.WindowDetailTypeFragment, syncEngine, baseUrl);\n }\n\n}\n\nexport class UserSkillFile extends DvinaModel {\n public readonly createdAt: Date;\n public readonly fileId: string;\n public readonly formatKey: string;\n public readonly id: string;\n public readonly name: string;\n public readonly path: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.UserSkillFileFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.fileId = data.fileId;\n this.formatKey = data.formatKey;\n this.id = data.id;\n this.name = data.name;\n this.path = data.path;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n /** Lazy-fetch the file relation. Call .fetch() or .watch() to execute. */\n public file(): FileMetaQuery {\n return new FileMetaQuery(this._request, this._syncEngine, { id: this.fileId } as L.FileMetaQueryVariables, this._baseUrl);\n }\n\n}\n\nexport class UserSkillFileModel extends DvinaModel {\n public readonly createdAt: Date;\n public readonly fileId: string;\n public readonly formatKey: string;\n public readonly id: string;\n public readonly mimeType: string | undefined;\n public readonly name: string;\n public readonly path: string;\n public readonly size: number | undefined;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.UserSkillFileModelFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.fileId = data.fileId;\n this.formatKey = data.formatKey;\n this.id = data.id;\n this.mimeType = data.mimeType ?? undefined;\n this.name = data.name;\n this.path = data.path;\n this.size = data.size ?? undefined;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n}\n\nexport class UserSkillFolder extends DvinaModel {\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly path: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.UserSkillFolderFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.path = data.path;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n}\n\nexport class UserSkillFolderModel extends DvinaModel {\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly itemCount: number;\n public readonly path: string;\n public readonly updatedAt: Date;\n\n public constructor(\n request: DvinaRequest,\n data: L.UserSkillFolderModelFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.itemCount = data.itemCount;\n this.path = data.path;\n this.updatedAt = new Date(data.updatedAt);\n }\n\n}\n\nexport class WindowDetailType extends DvinaModel {\n public readonly cost: number;\n public readonly isExceeded: boolean;\n public readonly limit: number | undefined;\n public readonly windowEnd: Date | undefined;\n public readonly windowStart: Date | undefined;\n\n public constructor(\n request: DvinaRequest,\n data: L.WindowDetailTypeFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.cost = data.cost;\n this.isExceeded = data.isExceeded;\n this.limit = data.limit ?? undefined;\n this.windowEnd = data.windowEnd ? new Date(data.windowEnd) : undefined;\n this.windowStart = data.windowStart ? new Date(data.windowStart) : undefined;\n }\n\n}\n\nexport class WorkspaceDeleteSchedule extends DvinaModel {\n public readonly createdAt: Date;\n public readonly id: string;\n public readonly scheduledAt: Date;\n public readonly updatedAt: Date;\n public readonly workspaceId: string;\n\n public constructor(\n request: DvinaRequest,\n data: L.WorkspaceDeleteScheduleFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(request, syncEngine, baseUrl);\n this.createdAt = new Date(data.createdAt);\n this.id = data.id;\n this.scheduledAt = new Date(data.scheduledAt);\n this.updatedAt = new Date(data.updatedAt);\n this.workspaceId = data.workspaceId;\n }\n\n}\n\n// ─── Connection Classes ──────────────────────────────────────────────────────\n\nexport class AgentConnection extends Connection<Agent> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<AgentConnection | undefined>,\n data: L.AgentConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Agent(request, node as L.AgentFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class ArtifactConnection extends Connection<Artifact> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<ArtifactConnection | undefined>,\n data: L.ArtifactConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Artifact(request, node as L.ArtifactFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class ChatConnection extends Connection<Chat> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<ChatConnection | undefined>,\n data: L.ChatConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Chat(request, node as L.ChatFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class ChatMessageConnection extends Connection<ChatMessage> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<ChatMessageConnection | undefined>,\n data: L.ChatMessageConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new ChatMessage(request, node as L.ChatMessageFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class DatabaseCatalogConnection extends Connection<DatabaseCatalog> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<DatabaseCatalogConnection | undefined>,\n data: L.DatabaseCatalogConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new DatabaseCatalog(request, node as L.DatabaseCatalogFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class DatabaseConnection extends Connection<Database> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<DatabaseConnection | undefined>,\n data: L.DatabaseConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Database(request, node as L.DatabaseFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class DocumentCatalogConnection extends Connection<DocumentCatalog> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<DocumentCatalogConnection | undefined>,\n data: L.DocumentCatalogConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new DocumentCatalog(request, node as L.DocumentCatalogFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class DocumentConnection extends Connection<Document> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<DocumentConnection | undefined>,\n data: L.DocumentConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Document(request, node as L.DocumentFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class FolderConnection extends Connection<Folder> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<FolderConnection | undefined>,\n data: L.FolderConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Folder(request, node as L.FolderFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class InsightConnection extends Connection<Insight> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<InsightConnection | undefined>,\n data: L.InsightConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Insight(request, node as L.InsightFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class IntegrationCatalogConnection extends Connection<IntegrationCatalog> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<IntegrationCatalogConnection | undefined>,\n data: L.IntegrationCatalogConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new IntegrationCatalog(request, node as L.IntegrationCatalogFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class IntegrationConnection extends Connection<Integration> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<IntegrationConnection | undefined>,\n data: L.IntegrationConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Integration(request, node as L.IntegrationFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class InterpretationConnection extends Connection<Interpretation> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<InterpretationConnection | undefined>,\n data: L.InterpretationConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Interpretation(request, node as L.InterpretationFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class NotificationConnection extends Connection<Notification> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<NotificationConnection | undefined>,\n data: L.NotificationConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Notification(request, node as L.NotificationFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class PulseEventConnection extends Connection<PulseEvent> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<PulseEventConnection | undefined>,\n data: L.PulseEventConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new PulseEvent(request, node as L.PulseEventFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class ReportConnection extends Connection<Report> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<ReportConnection | undefined>,\n data: L.ReportConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Report(request, node as L.ReportFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\nexport class TableConnection extends Connection<Table> {\n public constructor(\n request: DvinaRequest,\n fetch: (variables?: ConnectionVariables, options?: FetchOptions) => Promise<TableConnection | undefined>,\n data: L.TableConnectionFragment,\n syncEngine?: SyncEngine,\n baseUrl?: string,\n ) {\n super(\n request,\n fetch as any,\n data.nodes?.map(node => new Table(request, node as L.TableFragment, syncEngine, baseUrl)) ?? [],\n new DvinaPageInfo(data.pageInfo),\n data.totalCount ?? undefined,\n );\n }\n}\n\n// ─── SubBuilder Classes ──────────────────────────────────────────────────────\n\nexport class AgentSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include chats in the parent query. */\n public chats(variables?: Omit<L.Agent_ChatsQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): AgentSubBuilder<TIncluded & { chats: ChatConnection }> {\n const info = extractIncludeInfo(L.Agent_ChatsDocument as unknown as import('graphql').DocumentNode, 'chats', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chats',\n fragmentDoc: L.ChatConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ChatConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class ArtifactSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include chat in the parent query. */\n public chat(variables?: Omit<L.Artifact_ChatQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): ArtifactSubBuilder<TIncluded & { chat: Chat }> {\n const info = extractIncludeInfo(L.Artifact_ChatDocument as unknown as import('graphql').DocumentNode, 'chat', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chat',\n fragmentDoc: L.ChatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include file in the parent query. */\n public file(variables?: Omit<L.Artifact_FileQueryVariables, 'id'>): ArtifactSubBuilder<TIncluded & { file: File }> {\n const info = extractIncludeInfo(L.Artifact_FileDocument as unknown as import('graphql').DocumentNode, 'file', ['id']);\n this._includes.push({\n fieldName: 'file',\n fragmentDoc: L.FileFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'files',\n requiredFields: ['createdAt', 'id', 'path', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new File(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include message in the parent query. */\n public message(variables?: Omit<L.Artifact_MessageQueryVariables, 'id'>, builder?: (q: ChatMessageSubBuilder) => ChatMessageSubBuilder<any>): ArtifactSubBuilder<TIncluded & { message: ChatMessage }> {\n const info = extractIncludeInfo(L.Artifact_MessageDocument as unknown as import('graphql').DocumentNode, 'message', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatMessageSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'message',\n fragmentDoc: L.ChatMessageFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chatMessages',\n requiredFields: ['actions', 'chatId', 'from', 'id', 'sentAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ChatMessage(req, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class ChatSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include agents in the parent query. */\n public agents(variables?: Omit<L.Chat_AgentsQueryVariables, 'id'>, builder?: (q: AgentSubBuilder) => AgentSubBuilder<any>): ChatSubBuilder<TIncluded & { agents: AgentConnection }> {\n const info = extractIncludeInfo(L.Chat_AgentsDocument as unknown as import('graphql').DocumentNode, 'agents', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new AgentSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'agents',\n fragmentDoc: L.AgentConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'agents',\n requiredFields: ['createdAt', 'id', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Agent(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new AgentConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include artifacts in the parent query. */\n public artifacts(variables?: Omit<L.Chat_ArtifactsQueryVariables, 'id'>, builder?: (q: ArtifactSubBuilder) => ArtifactSubBuilder<any>): ChatSubBuilder<TIncluded & { artifacts: ArtifactConnection }> {\n const info = extractIncludeInfo(L.Chat_ArtifactsDocument as unknown as import('graphql').DocumentNode, 'artifacts', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ArtifactSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'artifacts',\n fragmentDoc: L.ArtifactConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'artifacts',\n requiredFields: ['createdAt', 'fileId', 'id', 'kind', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Artifact(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ArtifactConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include insight in the parent query. */\n public insight(variables?: Omit<L.Chat_InsightQueryVariables, 'id'>, builder?: (q: InsightSubBuilder) => InsightSubBuilder<any>): ChatSubBuilder<TIncluded & { insight: Insight }> {\n const info = extractIncludeInfo(L.Chat_InsightDocument as unknown as import('graphql').DocumentNode, 'insight', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new InsightSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'insight',\n fragmentDoc: L.InsightFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'insights',\n requiredFields: ['createdAt', 'id', 'name', 'presentation', 'query', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Insight(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include messages in the parent query. */\n public messages(variables?: Omit<L.Chat_MessagesQueryVariables, 'id'>, builder?: (q: ChatMessageSubBuilder) => ChatMessageSubBuilder<any>): ChatSubBuilder<TIncluded & { messages: ChatMessageConnection }> {\n const info = extractIncludeInfo(L.Chat_MessagesDocument as unknown as import('graphql').DocumentNode, 'messages', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatMessageSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'messages',\n fragmentDoc: L.ChatMessageConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chatMessages',\n requiredFields: ['actions', 'chatId', 'from', 'id', 'sentAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ChatMessage(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ChatMessageConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class ChatMessageSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include artifacts in the parent query. */\n public artifacts(variables?: Omit<L.ChatMessage_ArtifactsQueryVariables, 'id'>, builder?: (q: ArtifactSubBuilder) => ArtifactSubBuilder<any>): ChatMessageSubBuilder<TIncluded & { artifacts: ArtifactConnection }> {\n const info = extractIncludeInfo(L.ChatMessage_ArtifactsDocument as unknown as import('graphql').DocumentNode, 'artifacts', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ArtifactSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'artifacts',\n fragmentDoc: L.ArtifactConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'artifacts',\n requiredFields: ['createdAt', 'fileId', 'id', 'kind', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Artifact(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ArtifactConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include chat in the parent query. */\n public chat(variables?: Omit<L.ChatMessage_ChatQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): ChatMessageSubBuilder<TIncluded & { chat: Chat }> {\n const info = extractIncludeInfo(L.ChatMessage_ChatDocument as unknown as import('graphql').DocumentNode, 'chat', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chat',\n fragmentDoc: L.ChatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include contents in the parent query. */\n public contents(variables?: Omit<L.ChatMessage_ContentsQueryVariables, 'id'>): ChatMessageSubBuilder<TIncluded & { contents: ContentBlock[] }> {\n const info = extractIncludeInfo(L.ChatMessage_ContentsDocument as unknown as import('graphql').DocumentNode, 'contents', ['id']);\n this._includes.push({\n fieldName: 'contents',\n fragmentDoc: L.ContentBlockFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'contentBlocks',\n requiredFields: ['chatMessageId', 'content', 'id', 'index', 'type'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ContentBlock(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include feedback in the parent query. */\n public feedback(variables?: Omit<L.ChatMessage_FeedbackQueryVariables, 'id'>): ChatMessageSubBuilder<TIncluded & { feedback: Feedback }> {\n const info = extractIncludeInfo(L.ChatMessage_FeedbackDocument as unknown as import('graphql').DocumentNode, 'feedback', ['id']);\n this._includes.push({\n fieldName: 'feedback',\n fragmentDoc: L.FeedbackFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'feedback',\n requiredFields: ['chatMessageId', 'createdAt', 'feedback', 'id'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Feedback(req, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class DatabaseSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include engine in the parent query. */\n public engine(variables?: Omit<L.Database_EngineQueryVariables, 'id'>): DatabaseSubBuilder<TIncluded & { engine: DatabaseEngine }> {\n const info = extractIncludeInfo(L.Database_EngineDocument as unknown as import('graphql').DocumentNode, 'engine', ['id']);\n this._includes.push({\n fieldName: 'engine',\n fragmentDoc: L.DatabaseEngineFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'databaseEngines',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DatabaseEngine(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include tables in the parent query. */\n public tables(variables?: Omit<L.Database_TablesQueryVariables, 'id'>, builder?: (q: TableSubBuilder) => TableSubBuilder<any>): DatabaseSubBuilder<TIncluded & { tables: TableConnection }> {\n const info = extractIncludeInfo(L.Database_TablesDocument as unknown as import('graphql').DocumentNode, 'tables', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new TableSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'tables',\n fragmentDoc: L.TableConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'tables',\n requiredFields: ['createdAt', 'id', 'model', 'name', 'status', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Table(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new TableConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class DatabaseCatalogSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include engine in the parent query. */\n public engine(variables: L.DatabaseCatalog_EngineQueryVariables): DatabaseCatalogSubBuilder<TIncluded & { engine: DatabaseEngine }> {\n const info = extractIncludeInfo(L.DatabaseCatalog_EngineDocument as unknown as import('graphql').DocumentNode, 'engine', []);\n this._includes.push({\n fieldName: 'engine',\n fragmentDoc: L.DatabaseEngineFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'databaseEngines',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DatabaseEngine(req, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class DocumentSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include contents in the parent query. */\n public contents(variables?: Omit<L.Document_ContentsQueryVariables, 'id'>): DocumentSubBuilder<TIncluded & { contents: DocumentContent[] }> {\n const info = extractIncludeInfo(L.Document_ContentsDocument as unknown as import('graphql').DocumentNode, 'contents', ['id']);\n this._includes.push({\n fieldName: 'contents',\n fragmentDoc: L.DocumentContentFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documentContents',\n requiredFields: ['content', 'createdAt', 'documentId', 'id', 'pageNumber', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DocumentContent(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include file in the parent query. */\n public file(variables?: Omit<L.Document_FileQueryVariables, 'id'>): DocumentSubBuilder<TIncluded & { file: File }> {\n const info = extractIncludeInfo(L.Document_FileDocument as unknown as import('graphql').DocumentNode, 'file', ['id']);\n this._includes.push({\n fieldName: 'file',\n fragmentDoc: L.FileFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'files',\n requiredFields: ['createdAt', 'id', 'path', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new File(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include format in the parent query. */\n public format(variables?: Omit<L.Document_FormatQueryVariables, 'id'>): DocumentSubBuilder<TIncluded & { format: DocumentFormat }> {\n const info = extractIncludeInfo(L.Document_FormatDocument as unknown as import('graphql').DocumentNode, 'format', ['id']);\n this._includes.push({\n fieldName: 'format',\n fragmentDoc: L.DocumentFormatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documentFormats',\n requiredFields: ['createsTables', 'key', 'supportsDeepAnalysis'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DocumentFormat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include tables in the parent query. */\n public tables(variables?: Omit<L.Document_TablesQueryVariables, 'id'>, builder?: (q: TableSubBuilder) => TableSubBuilder<any>): DocumentSubBuilder<TIncluded & { tables: TableConnection }> {\n const info = extractIncludeInfo(L.Document_TablesDocument as unknown as import('graphql').DocumentNode, 'tables', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new TableSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'tables',\n fragmentDoc: L.TableConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'tables',\n requiredFields: ['createdAt', 'id', 'model', 'name', 'status', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Table(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new TableConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class DocumentCatalogSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include format in the parent query. */\n public format(variables: L.DocumentCatalog_FormatQueryVariables): DocumentCatalogSubBuilder<TIncluded & { format: DocumentFormat }> {\n const info = extractIncludeInfo(L.DocumentCatalog_FormatDocument as unknown as import('graphql').DocumentNode, 'format', []);\n this._includes.push({\n fieldName: 'format',\n fragmentDoc: L.DocumentFormatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documentFormats',\n requiredFields: ['createsTables', 'key', 'supportsDeepAnalysis'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DocumentFormat(req, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class InsightSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include chat in the parent query. */\n public chat(variables?: Omit<L.Insight_ChatQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): InsightSubBuilder<TIncluded & { chat: Chat }> {\n const info = extractIncludeInfo(L.Insight_ChatDocument as unknown as import('graphql').DocumentNode, 'chat', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chat',\n fragmentDoc: L.ChatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include reportMembers in the parent query. */\n public reportMembers(variables?: Omit<L.Insight_ReportMembersQueryVariables, 'id'>): InsightSubBuilder<TIncluded & { reportMembers: ReportMember[] }> {\n const info = extractIncludeInfo(L.Insight_ReportMembersDocument as unknown as import('graphql').DocumentNode, 'reportMembers', ['id']);\n this._includes.push({\n fieldName: 'reportMembers',\n fragmentDoc: L.ReportMemberFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'reportMembers',\n requiredFields: ['insightId', 'order', 'presentation', 'reportId', 'size'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ReportMember(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include reports in the parent query. */\n public reports(variables?: Omit<L.Insight_ReportsQueryVariables, 'id'>, builder?: (q: ReportSubBuilder) => ReportSubBuilder<any>): InsightSubBuilder<TIncluded & { reports: ReportConnection }> {\n const info = extractIncludeInfo(L.Insight_ReportsDocument as unknown as import('graphql').DocumentNode, 'reports', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ReportSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'reports',\n fragmentDoc: L.ReportConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'reports',\n requiredFields: ['createdAt', 'id', 'name', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Report(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ReportConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class IntegrationSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include provider in the parent query. */\n public provider(variables?: Omit<L.Integration_ProviderQueryVariables, 'id'>): IntegrationSubBuilder<TIncluded & { provider: IntegrationProvider }> {\n const info = extractIncludeInfo(L.Integration_ProviderDocument as unknown as import('graphql').DocumentNode, 'provider', ['id']);\n this._includes.push({\n fieldName: 'provider',\n fragmentDoc: L.IntegrationProviderFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'integrationProviders',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new IntegrationProvider(req, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class IntegrationCatalogSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include provider in the parent query. */\n public provider(variables: L.IntegrationCatalog_ProviderQueryVariables): IntegrationCatalogSubBuilder<TIncluded & { provider: IntegrationProvider }> {\n const info = extractIncludeInfo(L.IntegrationCatalog_ProviderDocument as unknown as import('graphql').DocumentNode, 'provider', []);\n this._includes.push({\n fieldName: 'provider',\n fragmentDoc: L.IntegrationProviderFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'integrationProviders',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new IntegrationProvider(req, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class PulseEventSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include integration in the parent query. */\n public integration(variables?: Omit<L.PulseEvent_IntegrationQueryVariables, 'id'>, builder?: (q: IntegrationSubBuilder) => IntegrationSubBuilder<any>): PulseEventSubBuilder<TIncluded & { integration: Integration }> {\n const info = extractIncludeInfo(L.PulseEvent_IntegrationDocument as unknown as import('graphql').DocumentNode, 'integration', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new IntegrationSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'integration',\n fragmentDoc: L.IntegrationFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'integrations',\n requiredFields: ['createdAt', 'id', 'providerKey', 'status', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Integration(req, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class ReportSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include insights in the parent query. */\n public insights(variables?: Omit<L.Report_InsightsQueryVariables, 'id'>, builder?: (q: InsightSubBuilder) => InsightSubBuilder<any>): ReportSubBuilder<TIncluded & { insights: InsightConnection }> {\n const info = extractIncludeInfo(L.Report_InsightsDocument as unknown as import('graphql').DocumentNode, 'insights', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new InsightSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'insights',\n fragmentDoc: L.InsightConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'insights',\n requiredFields: ['createdAt', 'id', 'name', 'presentation', 'query', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Insight(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new InsightConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include layout in the parent query. */\n public layout(variables?: Omit<L.Report_LayoutQueryVariables, 'id'>): ReportSubBuilder<TIncluded & { layout: ReportMember[] }> {\n const info = extractIncludeInfo(L.Report_LayoutDocument as unknown as import('graphql').DocumentNode, 'layout', ['id']);\n this._includes.push({\n fieldName: 'layout',\n fragmentDoc: L.ReportMemberFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'reportMembers',\n requiredFields: ['insightId', 'order', 'presentation', 'reportId', 'size'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ReportMember(req, data, se, bu),\n });\n return this as any;\n }\n\n}\n\nexport class TableSubBuilder<TIncluded = {}> {\n /** @internal */\n public _includes: IncludeDirective[] = [];\n\n /** Include database in the parent query. */\n public database(variables?: Omit<L.Table_DatabaseQueryVariables, 'id'>, builder?: (q: DatabaseSubBuilder) => DatabaseSubBuilder<any>): TableSubBuilder<TIncluded & { database: Database }> {\n const info = extractIncludeInfo(L.Table_DatabaseDocument as unknown as import('graphql').DocumentNode, 'database', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new DatabaseSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'database',\n fragmentDoc: L.DatabaseFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'databases',\n requiredFields: ['createdAt', 'engineKey', 'id', 'isReady', 'name', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Database(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include document in the parent query. */\n public document(variables?: Omit<L.Table_DocumentQueryVariables, 'id'>, builder?: (q: DocumentSubBuilder) => DocumentSubBuilder<any>): TableSubBuilder<TIncluded & { document: Document }> {\n const info = extractIncludeInfo(L.Table_DocumentDocument as unknown as import('graphql').DocumentNode, 'document', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new DocumentSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'document',\n fragmentDoc: L.DocumentFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documents',\n requiredFields: ['createdAt', 'fileId', 'formatKey', 'id', 'isDeepAnalyzed', 'isReady', 'isStructured', 'name', 'path', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Document(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include fromRelations in the parent query. */\n public fromRelations(variables?: Omit<L.Table_FromRelationsQueryVariables, 'id'>): TableSubBuilder<TIncluded & { fromRelations: Relation[] }> {\n const info = extractIncludeInfo(L.Table_FromRelationsDocument as unknown as import('graphql').DocumentNode, 'fromRelations', ['id']);\n this._includes.push({\n fieldName: 'fromRelations',\n fragmentDoc: L.RelationFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'relations',\n requiredFields: ['createdAt', 'fromTableColumn', 'fromTableId', 'id', 'toTableColumn', 'toTableId', 'type', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Relation(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include toRelations in the parent query. */\n public toRelations(variables?: Omit<L.Table_ToRelationsQueryVariables, 'id'>): TableSubBuilder<TIncluded & { toRelations: Relation[] }> {\n const info = extractIncludeInfo(L.Table_ToRelationsDocument as unknown as import('graphql').DocumentNode, 'toRelations', ['id']);\n this._includes.push({\n fieldName: 'toRelations',\n fragmentDoc: L.RelationFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'relations',\n requiredFields: ['createdAt', 'fromTableColumn', 'fromTableId', 'id', 'toTableColumn', 'toTableId', 'type', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Relation(req, data, se, bu),\n });\n return this as any;\n }\n\n}\n\n// ─── Operation Classes ───────────────────────────────────────────────────────\n\nexport class AcknowledgePulseEventMutation extends Request {\n public async fetch(variables: L.AcknowledgePulseEventMutationVariables, options?: FetchOptions): Promise<PulseEvent> {\n const response = await this._syncEngine!.mutate<L.AcknowledgePulseEventMutation>(L.AcknowledgePulseEventDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['acknowledgePulseEvent']);\n const data = response.acknowledgePulseEvent;\n return new PulseEvent(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class AddInsightToReportMutation extends Request {\n public async fetch(variables: L.AddInsightToReportMutationVariables, options?: FetchOptions): Promise<Report> {\n const response = await this._syncEngine!.mutate<L.AddInsightToReportMutation>(L.AddInsightToReportDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['addInsightToReport']);\n const data = response.addInsightToReport;\n return new Report(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CancelOauthFlowMutation extends Request {\n public async fetch(variables: L.CancelOauthFlowMutationVariables): Promise<void> {\n const response = await this._syncEngine!.mutate<L.CancelOauthFlowMutation>(L.CancelOauthFlowDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['cancelOauthFlow']);\n return response.cancelOauthFlow;\n }\n}\n\nexport class CancelWorkspaceDeletionMutation extends Request {\n public async fetch(variables?: L.CancelWorkspaceDeletionMutationVariables): Promise<boolean> {\n const response = await this._syncEngine!.mutate<L.CancelWorkspaceDeletionMutation>(L.CancelWorkspaceDeletionDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['cancelWorkspaceDeletion']);\n return response.cancelWorkspaceDeletion;\n }\n}\n\nexport class ConnectIntegrationMutation extends Request {\n public async fetch(variables: L.ConnectIntegrationMutationVariables, options?: FetchOptions): Promise<CreateIntegrationOutput> {\n const response = await this._syncEngine!.mutate<L.ConnectIntegrationMutation>(L.ConnectIntegrationDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['connectIntegration']);\n const data = response.connectIntegration;\n return new CreateIntegrationOutput(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class ContinueImportedChatMutation extends Request {\n public async fetch(variables: L.ContinueImportedChatMutationVariables): Promise<string> {\n const response = await this._syncEngine!.mutate<L.ContinueImportedChatMutation>(L.ContinueImportedChatDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['continueImportedChat']);\n return response.continueImportedChat;\n }\n}\n\nexport class ContinueInterpretationMutation extends Request {\n public async fetch(variables: L.ContinueInterpretationMutationVariables): Promise<boolean> {\n const response = await this._syncEngine!.mutate<L.ContinueInterpretationMutation>(L.ContinueInterpretationDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['continueInterpretation']);\n return response.continueInterpretation;\n }\n}\n\nexport class CreateAgentMutation extends Request {\n public async fetch(variables: L.CreateAgentMutationVariables, options?: FetchOptions): Promise<Agent> {\n const response = await this._syncEngine!.mutate<L.CreateAgentMutation>(L.CreateAgentDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createAgent']);\n const data = response.createAgent;\n return new Agent(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateChatMutation extends Request {\n public async fetch(variables: L.CreateChatMutationVariables, options?: FetchOptions): Promise<Chat> {\n const response = await this._syncEngine!.mutate<L.CreateChatMutation>(L.CreateChatDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createChat']);\n const data = response.createChat;\n return new Chat(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateDatabaseMutation extends Request {\n public async fetch(variables: L.CreateDatabaseMutationVariables, options?: FetchOptions): Promise<Database> {\n const response = await this._syncEngine!.mutate<L.CreateDatabaseMutation>(L.CreateDatabaseDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createDatabase']);\n const data = response.createDatabase;\n return new Database(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateDocumentMutation extends Request {\n public async fetch(variables: L.CreateDocumentMutationVariables, options?: FetchOptions): Promise<Document> {\n const response = await this._syncEngine!.mutate<L.CreateDocumentMutation>(L.CreateDocumentDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createDocument']);\n const data = response.createDocument;\n return new Document(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateFeedbackMutation extends Request {\n public async fetch(variables: L.CreateFeedbackMutationVariables, options?: FetchOptions): Promise<Feedback> {\n const response = await this._syncEngine!.mutate<L.CreateFeedbackMutation>(L.CreateFeedbackDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createFeedback']);\n const data = response.createFeedback;\n return new Feedback(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateFolderMutation extends Request {\n public async fetch(variables: L.CreateFolderMutationVariables, options?: FetchOptions): Promise<Folder> {\n const response = await this._syncEngine!.mutate<L.CreateFolderMutation>(L.CreateFolderDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createFolder']);\n const data = response.createFolder;\n return new Folder(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateInsightMutation extends Request {\n public async fetch(variables: L.CreateInsightMutationVariables, options?: FetchOptions): Promise<Insight> {\n const response = await this._syncEngine!.mutate<L.CreateInsightMutation>(L.CreateInsightDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createInsight']);\n const data = response.createInsight;\n return new Insight(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateIntegrationMutation extends Request {\n public async fetch(variables: L.CreateIntegrationMutationVariables, options?: FetchOptions): Promise<CreateIntegrationOutput> {\n const response = await this._syncEngine!.mutate<L.CreateIntegrationMutation>(L.CreateIntegrationDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createIntegration']);\n const data = response.createIntegration;\n return new CreateIntegrationOutput(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateReportMutation extends Request {\n public async fetch(variables: L.CreateReportMutationVariables, options?: FetchOptions): Promise<Report> {\n const response = await this._syncEngine!.mutate<L.CreateReportMutation>(L.CreateReportDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createReport']);\n const data = response.createReport;\n return new Report(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateTableMutation extends Request {\n public async fetch(variables: L.CreateTableMutationVariables, options?: FetchOptions): Promise<Table> {\n const response = await this._syncEngine!.mutate<L.CreateTableMutation>(L.CreateTableDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createTable']);\n const data = response.createTable;\n return new Table(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateUserSkillFileMutation extends Request {\n public async fetch(variables: L.CreateUserSkillFileMutationVariables, options?: FetchOptions): Promise<UserSkillFileModel> {\n const response = await this._syncEngine!.mutate<L.CreateUserSkillFileMutation>(L.CreateUserSkillFileDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createUserSkillFile']);\n const data = response.createUserSkillFile;\n return new UserSkillFileModel(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class CreateUserSkillFolderMutation extends Request {\n public async fetch(variables: L.CreateUserSkillFolderMutationVariables, options?: FetchOptions): Promise<UserSkillFolderModel> {\n const response = await this._syncEngine!.mutate<L.CreateUserSkillFolderMutation>(L.CreateUserSkillFolderDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['createUserSkillFolder']);\n const data = response.createUserSkillFolder;\n return new UserSkillFolderModel(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteAgentMutation extends Request {\n public async fetch(variables: L.DeleteAgentMutationVariables, options?: FetchOptions): Promise<Agent> {\n const response = await this._syncEngine!.mutate<L.DeleteAgentMutation>(L.DeleteAgentDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteAgent']);\n const data = response.deleteAgent;\n return new Agent(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteArtifactMutation extends Request {\n public async fetch(variables: L.DeleteArtifactMutationVariables, options?: FetchOptions): Promise<Artifact> {\n const response = await this._syncEngine!.mutate<L.DeleteArtifactMutation>(L.DeleteArtifactDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteArtifact']);\n const data = response.deleteArtifact;\n return new Artifact(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteChatMutation extends Request {\n public async fetch(variables: L.DeleteChatMutationVariables, options?: FetchOptions): Promise<Chat> {\n const response = await this._syncEngine!.mutate<L.DeleteChatMutation>(L.DeleteChatDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteChat']);\n const data = response.deleteChat;\n return new Chat(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteDatabaseMutation extends Request {\n public async fetch(variables: L.DeleteDatabaseMutationVariables, options?: FetchOptions): Promise<Database> {\n const response = await this._syncEngine!.mutate<L.DeleteDatabaseMutation>(L.DeleteDatabaseDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteDatabase']);\n const data = response.deleteDatabase;\n return new Database(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteDocumentMutation extends Request {\n public async fetch(variables: L.DeleteDocumentMutationVariables, options?: FetchOptions): Promise<Document> {\n const response = await this._syncEngine!.mutate<L.DeleteDocumentMutation>(L.DeleteDocumentDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteDocument']);\n const data = response.deleteDocument;\n return new Document(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteFolderMutation extends Request {\n public async fetch(variables: L.DeleteFolderMutationVariables, options?: FetchOptions): Promise<Folder> {\n const response = await this._syncEngine!.mutate<L.DeleteFolderMutation>(L.DeleteFolderDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteFolder']);\n const data = response.deleteFolder;\n return new Folder(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteInsightMutation extends Request {\n public async fetch(variables: L.DeleteInsightMutationVariables, options?: FetchOptions): Promise<Insight> {\n const response = await this._syncEngine!.mutate<L.DeleteInsightMutation>(L.DeleteInsightDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteInsight']);\n const data = response.deleteInsight;\n return new Insight(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteInsightsMutation extends Request {\n public async fetch(variables?: L.DeleteInsightsMutationVariables, options?: FetchOptions): Promise<Insight> {\n const response = await this._syncEngine!.mutate<L.DeleteInsightsMutation>(L.DeleteInsightsDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteInsights']);\n const data = response.deleteInsights;\n return new Insight(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteIntegrationMutation extends Request {\n public async fetch(variables: L.DeleteIntegrationMutationVariables): Promise<void> {\n const response = await this._syncEngine!.mutate<L.DeleteIntegrationMutation>(L.DeleteIntegrationDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteIntegration']);\n return response.deleteIntegration;\n }\n}\n\nexport class DeleteReportMutation extends Request {\n public async fetch(variables: L.DeleteReportMutationVariables, options?: FetchOptions): Promise<Report> {\n const response = await this._syncEngine!.mutate<L.DeleteReportMutation>(L.DeleteReportDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteReport']);\n const data = response.deleteReport;\n return new Report(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteTableMutation extends Request {\n public async fetch(variables: L.DeleteTableMutationVariables, options?: FetchOptions): Promise<Table> {\n const response = await this._syncEngine!.mutate<L.DeleteTableMutation>(L.DeleteTableDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteTable']);\n const data = response.deleteTable;\n return new Table(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteUserSkillFileMutation extends Request {\n public async fetch(variables: L.DeleteUserSkillFileMutationVariables, options?: FetchOptions): Promise<UserSkillFileModel> {\n const response = await this._syncEngine!.mutate<L.DeleteUserSkillFileMutation>(L.DeleteUserSkillFileDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteUserSkillFile']);\n const data = response.deleteUserSkillFile;\n return new UserSkillFileModel(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DeleteUserSkillFolderMutation extends Request {\n public async fetch(variables: L.DeleteUserSkillFolderMutationVariables, options?: FetchOptions): Promise<UserSkillFolderModel> {\n const response = await this._syncEngine!.mutate<L.DeleteUserSkillFolderMutation>(L.DeleteUserSkillFolderDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['deleteUserSkillFolder']);\n const data = response.deleteUserSkillFolder;\n return new UserSkillFolderModel(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class DisconnectIntegrationMutation extends Request {\n public async fetch(variables: L.DisconnectIntegrationMutationVariables): Promise<void> {\n const response = await this._syncEngine!.mutate<L.DisconnectIntegrationMutation>(L.DisconnectIntegrationDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['disconnectIntegration']);\n return response.disconnectIntegration;\n }\n}\n\nexport class DismissPulseEventMutation extends Request {\n public async fetch(variables: L.DismissPulseEventMutationVariables, options?: FetchOptions): Promise<PulseEvent> {\n const response = await this._syncEngine!.mutate<L.DismissPulseEventMutation>(L.DismissPulseEventDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['dismissPulseEvent']);\n const data = response.dismissPulseEvent;\n return new PulseEvent(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class ExecuteChatImportMutation extends Request {\n public async fetch(variables: L.ExecuteChatImportMutationVariables, options?: FetchOptions): Promise<ChatImportExecuteOutput> {\n const response = await this._syncEngine!.mutate<L.ExecuteChatImportMutation>(L.ExecuteChatImportDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['executeChatImport']);\n const data = response.executeChatImport;\n return new ChatImportExecuteOutput(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class GenerateUploadUriMutation extends Request {\n public async fetch(variables: L.GenerateUploadUriMutationVariables, options?: FetchOptions): Promise<FileModel> {\n const response = await this._syncEngine!.mutate<L.GenerateUploadUriMutation>(L.GenerateUploadUriDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['generateUploadUri']);\n const data = response.generateUploadUri;\n return new FileModel(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class MarkPulseEventSeenMutation extends Request {\n public async fetch(variables: L.MarkPulseEventSeenMutationVariables, options?: FetchOptions): Promise<PulseEvent> {\n const response = await this._syncEngine!.mutate<L.MarkPulseEventSeenMutation>(L.MarkPulseEventSeenDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['markPulseEventSeen']);\n const data = response.markPulseEventSeen;\n return new PulseEvent(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class PreviewChatImportMutation extends Request {\n public async fetch(variables: L.PreviewChatImportMutationVariables, options?: FetchOptions): Promise<ChatImportPreviewOutput> {\n const response = await this._syncEngine!.mutate<L.PreviewChatImportMutation>(L.PreviewChatImportDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['previewChatImport']);\n const data = response.previewChatImport;\n return new ChatImportPreviewOutput(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class ReanalyzeDocumentMutation extends Request {\n public async fetch(variables: L.ReanalyzeDocumentMutationVariables, options?: FetchOptions): Promise<Document> {\n const response = await this._syncEngine!.mutate<L.ReanalyzeDocumentMutation>(L.ReanalyzeDocumentDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['reanalyzeDocument']);\n const data = response.reanalyzeDocument;\n return new Document(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class RefineMindInstructionMutation extends Request {\n public async fetch(variables: L.RefineMindInstructionMutationVariables): Promise<string> {\n const response = await this._syncEngine!.mutate<L.RefineMindInstructionMutation>(L.RefineMindInstructionDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['refineMindInstruction']);\n return response.refineMindInstruction;\n }\n}\n\nexport class RefreshDatabaseSchemaMutation extends Request {\n public async fetch(variables: L.RefreshDatabaseSchemaMutationVariables): Promise<boolean> {\n const response = await this._syncEngine!.mutate<L.RefreshDatabaseSchemaMutation>(L.RefreshDatabaseSchemaDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['refreshDatabaseSchema']);\n return response.refreshDatabaseSchema;\n }\n}\n\nexport class ReinterpretSourceMutation extends Request {\n public async fetch(variables: L.ReinterpretSourceMutationVariables): Promise<boolean> {\n const response = await this._syncEngine!.mutate<L.ReinterpretSourceMutation>(L.ReinterpretSourceDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['reinterpretSource']);\n return response.reinterpretSource;\n }\n}\n\nexport class ReinterpretSourcesOfuserMutation extends Request {\n public async fetch(variables: L.ReinterpretSourcesOfuserMutationVariables): Promise<boolean> {\n const response = await this._syncEngine!.mutate<L.ReinterpretSourcesOfuserMutation>(L.ReinterpretSourcesOfuserDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['reinterpretSourcesOfuser']);\n return response.reinterpretSourcesOfuser;\n }\n}\n\nexport class RelocateInsightMutation extends Request {\n public async fetch(variables: L.RelocateInsightMutationVariables, options?: FetchOptions): Promise<Report> {\n const response = await this._syncEngine!.mutate<L.RelocateInsightMutation>(L.RelocateInsightDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['relocateInsight']);\n const data = response.relocateInsight;\n return new Report(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class RemoveInsightFromReportMutation extends Request {\n public async fetch(variables: L.RemoveInsightFromReportMutationVariables, options?: FetchOptions): Promise<Report> {\n const response = await this._syncEngine!.mutate<L.RemoveInsightFromReportMutation>(L.RemoveInsightFromReportDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['removeInsightFromReport']);\n const data = response.removeInsightFromReport;\n return new Report(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class ResetWorkspaceMutation extends Request {\n public async fetch(variables?: L.ResetWorkspaceMutationVariables): Promise<boolean> {\n const response = await this._syncEngine!.mutate<L.ResetWorkspaceMutation>(L.ResetWorkspaceDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['resetWorkspace']);\n return response.resetWorkspace;\n }\n}\n\nexport class ResolvePulseEventMutation extends Request {\n public async fetch(variables: L.ResolvePulseEventMutationVariables, options?: FetchOptions): Promise<PulseEvent> {\n const response = await this._syncEngine!.mutate<L.ResolvePulseEventMutation>(L.ResolvePulseEventDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['resolvePulseEvent']);\n const data = response.resolvePulseEvent;\n return new PulseEvent(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class ScheduleWorkspaceDeletionMutation extends Request {\n public async fetch(variables?: L.ScheduleWorkspaceDeletionMutationVariables, options?: FetchOptions): Promise<WorkspaceDeleteSchedule> {\n const response = await this._syncEngine!.mutate<L.ScheduleWorkspaceDeletionMutation>(L.ScheduleWorkspaceDeletionDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['scheduleWorkspaceDeletion']);\n const data = response.scheduleWorkspaceDeletion;\n return new WorkspaceDeleteSchedule(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class SetDatabasePrimaryKeyMutation extends Request {\n public async fetch(variables: L.SetDatabasePrimaryKeyMutationVariables): Promise<any> {\n const response = await this._syncEngine!.mutate<L.SetDatabasePrimaryKeyMutation>(L.SetDatabasePrimaryKeyDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['setDatabasePrimaryKey']);\n return response.setDatabasePrimaryKey;\n }\n}\n\nexport class UpdateAgentMutation extends Request {\n public async fetch(variables: L.UpdateAgentMutationVariables, options?: FetchOptions): Promise<Agent> {\n const response = await this._syncEngine!.mutate<L.UpdateAgentMutation>(L.UpdateAgentDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateAgent']);\n const data = response.updateAgent;\n return new Agent(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateChatMutation extends Request {\n public async fetch(variables: L.UpdateChatMutationVariables, options?: FetchOptions): Promise<Chat> {\n const response = await this._syncEngine!.mutate<L.UpdateChatMutation>(L.UpdateChatDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateChat']);\n const data = response.updateChat;\n return new Chat(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateDatabaseMutation extends Request {\n public async fetch(variables: L.UpdateDatabaseMutationVariables, options?: FetchOptions): Promise<Database> {\n const response = await this._syncEngine!.mutate<L.UpdateDatabaseMutation>(L.UpdateDatabaseDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateDatabase']);\n const data = response.updateDatabase;\n return new Database(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateDocumentMutation extends Request {\n public async fetch(variables: L.UpdateDocumentMutationVariables, options?: FetchOptions): Promise<Document> {\n const response = await this._syncEngine!.mutate<L.UpdateDocumentMutation>(L.UpdateDocumentDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateDocument']);\n const data = response.updateDocument;\n return new Document(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateFolderMutation extends Request {\n public async fetch(variables: L.UpdateFolderMutationVariables, options?: FetchOptions): Promise<Folder> {\n const response = await this._syncEngine!.mutate<L.UpdateFolderMutation>(L.UpdateFolderDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateFolder']);\n const data = response.updateFolder;\n return new Folder(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateInsightMutation extends Request {\n public async fetch(variables: L.UpdateInsightMutationVariables, options?: FetchOptions): Promise<Insight> {\n const response = await this._syncEngine!.mutate<L.UpdateInsightMutation>(L.UpdateInsightDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateInsight']);\n const data = response.updateInsight;\n return new Insight(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateInsightInReportMutation extends Request {\n public async fetch(variables: L.UpdateInsightInReportMutationVariables, options?: FetchOptions): Promise<Report> {\n const response = await this._syncEngine!.mutate<L.UpdateInsightInReportMutation>(L.UpdateInsightInReportDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateInsightInReport']);\n const data = response.updateInsightInReport;\n return new Report(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateInterpMutation extends Request {\n public async fetch(variables: L.UpdateInterpMutationVariables, options?: FetchOptions): Promise<Interpretation> {\n const response = await this._syncEngine!.mutate<L.UpdateInterpMutation>(L.UpdateInterpDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateInterp']);\n const data = response.updateInterp;\n return new Interpretation(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdatePulseTriggerMutation extends Request {\n public async fetch(variables: L.UpdatePulseTriggerMutationVariables, options?: FetchOptions): Promise<PulseTriggerSettingModel> {\n const response = await this._syncEngine!.mutate<L.UpdatePulseTriggerMutation>(L.UpdatePulseTriggerDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updatePulseTrigger']);\n const data = response.updatePulseTrigger;\n return new PulseTriggerSettingModel(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateReportMutation extends Request {\n public async fetch(variables: L.UpdateReportMutationVariables, options?: FetchOptions): Promise<Report> {\n const response = await this._syncEngine!.mutate<L.UpdateReportMutation>(L.UpdateReportDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateReport']);\n const data = response.updateReport;\n return new Report(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateTableMutation extends Request {\n public async fetch(variables: L.UpdateTableMutationVariables, options?: FetchOptions): Promise<Table> {\n const response = await this._syncEngine!.mutate<L.UpdateTableMutation>(L.UpdateTableDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateTable']);\n const data = response.updateTable;\n return new Table(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateUserSkillFileMutation extends Request {\n public async fetch(variables: L.UpdateUserSkillFileMutationVariables, options?: FetchOptions): Promise<UserSkillFileModel> {\n const response = await this._syncEngine!.mutate<L.UpdateUserSkillFileMutation>(L.UpdateUserSkillFileDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateUserSkillFile']);\n const data = response.updateUserSkillFile;\n return new UserSkillFileModel(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class UpdateUserSkillFolderMutation extends Request {\n public async fetch(variables: L.UpdateUserSkillFolderMutationVariables, options?: FetchOptions): Promise<UserSkillFolderModel> {\n const response = await this._syncEngine!.mutate<L.UpdateUserSkillFolderMutation>(L.UpdateUserSkillFolderDocument as unknown as DocumentNode, variables as Record<string, unknown>, MUTATION_CACHE_RULES['updateUserSkillFolder']);\n const data = response.updateUserSkillFolder;\n return new UserSkillFolderModel(this._request, data, this._syncEngine, this._baseUrl);\n }\n}\n\nexport class AgentQuery<TIncluded = {}> extends Request {\n private _variables: L.AgentQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.AgentQueryVariables = {} as L.AgentQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Agent, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.AgentDocument as unknown as DocumentNode, 'agent', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.AgentQuery>(queryDoc, mergedVars, 'agent');\n const data = response.agent;\n const instance = new Agent(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Agent, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Agent, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.AgentDocument as unknown as DocumentNode, 'agent', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.AgentQuery>(\n queryDoc,\n mergedVars,\n 'agent',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('agents');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('agents').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'agents', parentId, includes);\n return { agent: result } as L.AgentQuery;\n }\n return { agent: entity ?? null } as L.AgentQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.agent;\n const instance = new Agent(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Agent, TIncluded>;\n });\n }\n\n /** Include chats in this query (Smart Fetch — single HTTP request). */\n public chats(variables?: Omit<L.Agent_ChatsQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): AgentQuery<TIncluded & { chats: ChatConnection }> {\n const info = extractIncludeInfo(L.Agent_ChatsDocument as unknown as import('graphql').DocumentNode, 'chats', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chats',\n fragmentDoc: L.ChatConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ChatConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class Agent_ChatsQuery extends Request {\n private _variables: L.Agent_ChatsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Agent_ChatsQueryVariables = {} as L.Agent_ChatsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ChatConnection> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Agent_ChatsQuery>(L.Agent_ChatsDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'agent');\n const data = response.agent?.chats;\n return new ChatConnection(this._request, (conn, opts) => new Agent_ChatsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Agent_ChatsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ChatConnection> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Agent_ChatsQuery>(\n L.Agent_ChatsDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'agent',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('agent', variables as Record<string, unknown>, L.Agent_ChatsDocument as unknown as DocumentNode));\n const nodes = qr ? await db.table('chats').bulkGet(qr.entityIds) : [];\n return { agent: { chats: { __typename: 'ChatConnection' as const, nodes: nodes.filter(Boolean), pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } } as L.Agent_ChatsQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.agent?.chats;\n return new ChatConnection(this._request, (conn, opts) => new Agent_ChatsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Agent_ChatsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n });\n }\n}\n\nexport class AgentsQuery<TIncluded = {}> extends Request {\n private _variables: L.AgentsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.AgentsQueryVariables = {} as L.AgentsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<AgentConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.AgentsDocument as unknown as DocumentNode, 'agents', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.AgentsQuery>(queryDoc, mergedVars, 'agents');\n const data = response.agents;\n const connection = new AgentConnection(this._request, (conn, opts) => new AgentsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.AgentsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<AgentConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<AgentConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.AgentsDocument as unknown as DocumentNode, 'agents', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.AgentsQuery>(\n queryDoc,\n mergedVars,\n 'agents',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('agents', mergedVars, queryDoc));\n const nodes = qr ? await db.table('agents').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'agents', filteredNodes, includes) : filteredNodes;\n return { agents: { __typename: 'AgentConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.AgentsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'agents',\n operationName: 'agents',\n modelName: 'Agent',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.agents;\n const connection = new AgentConnection(this._request, (conn, opts) => new AgentsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.AgentsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<AgentConnection, TIncluded>;\n });\n }\n\n /** Include chats in this query (Smart Fetch — single HTTP request). */\n public chats(variables?: Omit<L.Agent_ChatsQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): AgentsQuery<TIncluded & { chats: ChatConnection }> {\n const info = extractIncludeInfo(L.Agent_ChatsDocument as unknown as import('graphql').DocumentNode, 'chats', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chats',\n fragmentDoc: L.ChatConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ChatConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class ArtifactQuery<TIncluded = {}> extends Request {\n private _variables: L.ArtifactQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ArtifactQueryVariables = {} as L.ArtifactQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Artifact, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ArtifactDocument as unknown as DocumentNode, 'artifact', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.ArtifactQuery>(queryDoc, mergedVars, 'artifact');\n const data = response.artifact;\n const instance = new Artifact(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Artifact, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Artifact, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ArtifactDocument as unknown as DocumentNode, 'artifact', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.ArtifactQuery>(\n queryDoc,\n mergedVars,\n 'artifact',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('artifacts');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('artifacts').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'artifacts', parentId, includes);\n return { artifact: result } as L.ArtifactQuery;\n }\n return { artifact: entity ?? null } as L.ArtifactQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.artifact;\n const instance = new Artifact(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Artifact, TIncluded>;\n });\n }\n\n /** Include chat in this query (Smart Fetch — single HTTP request). */\n public chat(variables?: Omit<L.Artifact_ChatQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): ArtifactQuery<TIncluded & { chat: Chat }> {\n const info = extractIncludeInfo(L.Artifact_ChatDocument as unknown as import('graphql').DocumentNode, 'chat', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chat',\n fragmentDoc: L.ChatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include file in this query (Smart Fetch — single HTTP request). */\n public file(variables?: Omit<L.Artifact_FileQueryVariables, 'id'>): ArtifactQuery<TIncluded & { file: File }> {\n const info = extractIncludeInfo(L.Artifact_FileDocument as unknown as import('graphql').DocumentNode, 'file', ['id']);\n this._includes.push({\n fieldName: 'file',\n fragmentDoc: L.FileFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'files',\n requiredFields: ['createdAt', 'id', 'path', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new File(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include message in this query (Smart Fetch — single HTTP request). */\n public message(variables?: Omit<L.Artifact_MessageQueryVariables, 'id'>, builder?: (q: ChatMessageSubBuilder) => ChatMessageSubBuilder<any>): ArtifactQuery<TIncluded & { message: ChatMessage }> {\n const info = extractIncludeInfo(L.Artifact_MessageDocument as unknown as import('graphql').DocumentNode, 'message', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatMessageSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'message',\n fragmentDoc: L.ChatMessageFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chatMessages',\n requiredFields: ['actions', 'chatId', 'from', 'id', 'sentAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ChatMessage(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class Artifact_ChatQuery extends Request {\n private _variables: L.Artifact_ChatQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Artifact_ChatQueryVariables = {} as L.Artifact_ChatQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Chat | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Artifact_ChatQuery>(L.Artifact_ChatDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'artifact');\n const data = response.artifact?.chat;\n return data ? new Chat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Chat | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Artifact_ChatQuery>(\n L.Artifact_ChatDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'artifact',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('chats').get(vars.id) : undefined;\n return { artifact: { chat: entity ?? null } } as L.Artifact_ChatQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.artifact?.chat;\n return data ? new Chat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Artifact_Chat_InsightQuery extends Request {\n private _variables: L.Artifact_Chat_InsightQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Artifact_Chat_InsightQueryVariables = {} as L.Artifact_Chat_InsightQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Insight | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Artifact_Chat_InsightQuery>(L.Artifact_Chat_InsightDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'artifact');\n const data = response.artifact?.chat?.insight;\n return data ? new Insight(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Insight | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Artifact_Chat_InsightQuery>(\n L.Artifact_Chat_InsightDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'artifact',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('insights').get(vars.id) : undefined;\n return { artifact: { chat: { insight: entity ?? null } } } as L.Artifact_Chat_InsightQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.artifact?.chat?.insight;\n return data ? new Insight(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Artifact_FileQuery extends Request {\n private _variables: L.Artifact_FileQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Artifact_FileQueryVariables = {} as L.Artifact_FileQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<File | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Artifact_FileQuery>(L.Artifact_FileDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'artifact');\n const data = response.artifact?.file;\n return data ? new File(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<File | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Artifact_FileQuery>(\n L.Artifact_FileDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'artifact',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('files').get(vars.id) : undefined;\n return { artifact: { file: entity ?? null } } as L.Artifact_FileQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.artifact?.file;\n return data ? new File(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Artifact_MessageQuery extends Request {\n private _variables: L.Artifact_MessageQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Artifact_MessageQueryVariables = {} as L.Artifact_MessageQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ChatMessage | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Artifact_MessageQuery>(L.Artifact_MessageDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'artifact');\n const data = response.artifact?.message;\n return data ? new ChatMessage(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ChatMessage | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Artifact_MessageQuery>(\n L.Artifact_MessageDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'artifact',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('chatMessages').get(vars.id) : undefined;\n return { artifact: { message: entity ?? null } } as L.Artifact_MessageQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.artifact?.message;\n return data ? new ChatMessage(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Artifact_Message_ChatQuery extends Request {\n private _variables: L.Artifact_Message_ChatQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Artifact_Message_ChatQueryVariables = {} as L.Artifact_Message_ChatQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Chat | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Artifact_Message_ChatQuery>(L.Artifact_Message_ChatDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'artifact');\n const data = response.artifact?.message?.chat;\n return data ? new Chat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Chat | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Artifact_Message_ChatQuery>(\n L.Artifact_Message_ChatDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'artifact',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('chats').get(vars.id) : undefined;\n return { artifact: { message: { chat: entity ?? null } } } as L.Artifact_Message_ChatQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.artifact?.message?.chat;\n return data ? new Chat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Artifact_Message_ContentsQuery extends Request {\n private _variables: L.Artifact_Message_ContentsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Artifact_Message_ContentsQueryVariables = {} as L.Artifact_Message_ContentsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ContentBlock[]> {\n const response = await this._syncEngine!.query<L.Artifact_Message_ContentsQuery>(L.Artifact_Message_ContentsDocument as unknown as DocumentNode, this._variables as Record<string, unknown>, 'artifact');\n const data = response.artifact?.message?.contents;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new ContentBlock(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class Artifact_Message_FeedbackQuery extends Request {\n private _variables: L.Artifact_Message_FeedbackQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Artifact_Message_FeedbackQueryVariables = {} as L.Artifact_Message_FeedbackQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Feedback | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Artifact_Message_FeedbackQuery>(L.Artifact_Message_FeedbackDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'artifact');\n const data = response.artifact?.message?.feedback;\n return data ? new Feedback(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Feedback | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Artifact_Message_FeedbackQuery>(\n L.Artifact_Message_FeedbackDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'artifact',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('feedback').get(vars.id) : undefined;\n return { artifact: { message: { feedback: entity ?? null } } } as L.Artifact_Message_FeedbackQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.artifact?.message?.feedback;\n return data ? new Feedback(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class ArtifactsQuery<TIncluded = {}> extends Request {\n private _variables: L.ArtifactsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ArtifactsQueryVariables = {} as L.ArtifactsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<ArtifactConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ArtifactsDocument as unknown as DocumentNode, 'artifacts', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.ArtifactsQuery>(queryDoc, mergedVars, 'artifacts');\n const data = response.artifacts;\n const connection = new ArtifactConnection(this._request, (conn, opts) => new ArtifactsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ArtifactsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<ArtifactConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<ArtifactConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ArtifactsDocument as unknown as DocumentNode, 'artifacts', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.ArtifactsQuery>(\n queryDoc,\n mergedVars,\n 'artifacts',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('artifacts', mergedVars, queryDoc));\n const nodes = qr ? await db.table('artifacts').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'artifacts', filteredNodes, includes) : filteredNodes;\n return { artifacts: { __typename: 'ArtifactConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.ArtifactsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'artifacts',\n operationName: 'artifacts',\n modelName: 'Artifact',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.artifacts;\n const connection = new ArtifactConnection(this._request, (conn, opts) => new ArtifactsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ArtifactsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<ArtifactConnection, TIncluded>;\n });\n }\n\n /** Include chat in this query (Smart Fetch — single HTTP request). */\n public chat(variables?: Omit<L.Artifact_ChatQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): ArtifactsQuery<TIncluded & { chat: Chat }> {\n const info = extractIncludeInfo(L.Artifact_ChatDocument as unknown as import('graphql').DocumentNode, 'chat', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chat',\n fragmentDoc: L.ChatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include file in this query (Smart Fetch — single HTTP request). */\n public file(variables?: Omit<L.Artifact_FileQueryVariables, 'id'>): ArtifactsQuery<TIncluded & { file: File }> {\n const info = extractIncludeInfo(L.Artifact_FileDocument as unknown as import('graphql').DocumentNode, 'file', ['id']);\n this._includes.push({\n fieldName: 'file',\n fragmentDoc: L.FileFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'files',\n requiredFields: ['createdAt', 'id', 'path', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new File(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include message in this query (Smart Fetch — single HTTP request). */\n public message(variables?: Omit<L.Artifact_MessageQueryVariables, 'id'>, builder?: (q: ChatMessageSubBuilder) => ChatMessageSubBuilder<any>): ArtifactsQuery<TIncluded & { message: ChatMessage }> {\n const info = extractIncludeInfo(L.Artifact_MessageDocument as unknown as import('graphql').DocumentNode, 'message', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatMessageSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'message',\n fragmentDoc: L.ChatMessageFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chatMessages',\n requiredFields: ['actions', 'chatId', 'from', 'id', 'sentAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ChatMessage(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class ChatQuery<TIncluded = {}> extends Request {\n private _variables: L.ChatQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ChatQueryVariables = {} as L.ChatQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Chat, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ChatDocument as unknown as DocumentNode, 'chat', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.ChatQuery>(queryDoc, mergedVars, 'chat');\n const data = response.chat;\n const instance = new Chat(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Chat, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Chat, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ChatDocument as unknown as DocumentNode, 'chat', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.ChatQuery>(\n queryDoc,\n mergedVars,\n 'chat',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('chats');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('chats').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'chats', parentId, includes);\n return { chat: result } as L.ChatQuery;\n }\n return { chat: entity ?? null } as L.ChatQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chat;\n const instance = new Chat(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Chat, TIncluded>;\n });\n }\n\n /** Include agents in this query (Smart Fetch — single HTTP request). */\n public agents(variables?: Omit<L.Chat_AgentsQueryVariables, 'id'>, builder?: (q: AgentSubBuilder) => AgentSubBuilder<any>): ChatQuery<TIncluded & { agents: AgentConnection }> {\n const info = extractIncludeInfo(L.Chat_AgentsDocument as unknown as import('graphql').DocumentNode, 'agents', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new AgentSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'agents',\n fragmentDoc: L.AgentConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'agents',\n requiredFields: ['createdAt', 'id', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Agent(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new AgentConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include artifacts in this query (Smart Fetch — single HTTP request). */\n public artifacts(variables?: Omit<L.Chat_ArtifactsQueryVariables, 'id'>, builder?: (q: ArtifactSubBuilder) => ArtifactSubBuilder<any>): ChatQuery<TIncluded & { artifacts: ArtifactConnection }> {\n const info = extractIncludeInfo(L.Chat_ArtifactsDocument as unknown as import('graphql').DocumentNode, 'artifacts', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ArtifactSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'artifacts',\n fragmentDoc: L.ArtifactConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'artifacts',\n requiredFields: ['createdAt', 'fileId', 'id', 'kind', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Artifact(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ArtifactConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include insight in this query (Smart Fetch — single HTTP request). */\n public insight(variables?: Omit<L.Chat_InsightQueryVariables, 'id'>, builder?: (q: InsightSubBuilder) => InsightSubBuilder<any>): ChatQuery<TIncluded & { insight: Insight }> {\n const info = extractIncludeInfo(L.Chat_InsightDocument as unknown as import('graphql').DocumentNode, 'insight', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new InsightSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'insight',\n fragmentDoc: L.InsightFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'insights',\n requiredFields: ['createdAt', 'id', 'name', 'presentation', 'query', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Insight(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include messages in this query (Smart Fetch — single HTTP request). */\n public messages(variables?: Omit<L.Chat_MessagesQueryVariables, 'id'>, builder?: (q: ChatMessageSubBuilder) => ChatMessageSubBuilder<any>): ChatQuery<TIncluded & { messages: ChatMessageConnection }> {\n const info = extractIncludeInfo(L.Chat_MessagesDocument as unknown as import('graphql').DocumentNode, 'messages', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatMessageSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'messages',\n fragmentDoc: L.ChatMessageConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chatMessages',\n requiredFields: ['actions', 'chatId', 'from', 'id', 'sentAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ChatMessage(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ChatMessageConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class Chat_AgentsQuery extends Request {\n private _variables: L.Chat_AgentsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Chat_AgentsQueryVariables = {} as L.Chat_AgentsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<AgentConnection> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Chat_AgentsQuery>(L.Chat_AgentsDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'chat');\n const data = response.chat?.agents;\n return new AgentConnection(this._request, (conn, opts) => new Chat_AgentsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Chat_AgentsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<AgentConnection> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Chat_AgentsQuery>(\n L.Chat_AgentsDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'chat',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('chat', variables as Record<string, unknown>, L.Chat_AgentsDocument as unknown as DocumentNode));\n const nodes = qr ? await db.table('agents').bulkGet(qr.entityIds) : [];\n return { chat: { agents: { __typename: 'AgentConnection' as const, nodes: nodes.filter(Boolean), pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } } as L.Chat_AgentsQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chat?.agents;\n return new AgentConnection(this._request, (conn, opts) => new Chat_AgentsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Chat_AgentsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n });\n }\n}\n\nexport class Chat_ArtifactsQuery extends Request {\n private _variables: L.Chat_ArtifactsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Chat_ArtifactsQueryVariables = {} as L.Chat_ArtifactsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ArtifactConnection> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Chat_ArtifactsQuery>(L.Chat_ArtifactsDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'chat');\n const data = response.chat?.artifacts;\n return new ArtifactConnection(this._request, (conn, opts) => new Chat_ArtifactsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Chat_ArtifactsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ArtifactConnection> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Chat_ArtifactsQuery>(\n L.Chat_ArtifactsDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'chat',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('chat', variables as Record<string, unknown>, L.Chat_ArtifactsDocument as unknown as DocumentNode));\n const nodes = qr ? await db.table('artifacts').bulkGet(qr.entityIds) : [];\n return { chat: { artifacts: { __typename: 'ArtifactConnection' as const, nodes: nodes.filter(Boolean), pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } } as L.Chat_ArtifactsQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chat?.artifacts;\n return new ArtifactConnection(this._request, (conn, opts) => new Chat_ArtifactsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Chat_ArtifactsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n });\n }\n}\n\nexport class Chat_InsightQuery extends Request {\n private _variables: L.Chat_InsightQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Chat_InsightQueryVariables = {} as L.Chat_InsightQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Insight | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Chat_InsightQuery>(L.Chat_InsightDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'chat');\n const data = response.chat?.insight;\n return data ? new Insight(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Insight | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Chat_InsightQuery>(\n L.Chat_InsightDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'chat',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('insights').get(vars.id) : undefined;\n return { chat: { insight: entity ?? null } } as L.Chat_InsightQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chat?.insight;\n return data ? new Insight(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Chat_Insight_ReportMembersQuery extends Request {\n private _variables: L.Chat_Insight_ReportMembersQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Chat_Insight_ReportMembersQueryVariables = {} as L.Chat_Insight_ReportMembersQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ReportMember[]> {\n const response = await this._syncEngine!.query<L.Chat_Insight_ReportMembersQuery>(L.Chat_Insight_ReportMembersDocument as unknown as DocumentNode, this._variables as Record<string, unknown>, 'chat');\n const data = response.chat?.insight?.reportMembers;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new ReportMember(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class Chat_MessagesQuery extends Request {\n private _variables: L.Chat_MessagesQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Chat_MessagesQueryVariables = {} as L.Chat_MessagesQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ChatMessageConnection> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Chat_MessagesQuery>(L.Chat_MessagesDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'chat');\n const data = response.chat?.messages;\n return new ChatMessageConnection(this._request, (conn, opts) => new Chat_MessagesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Chat_MessagesQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ChatMessageConnection> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Chat_MessagesQuery>(\n L.Chat_MessagesDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'chat',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('chat', variables as Record<string, unknown>, L.Chat_MessagesDocument as unknown as DocumentNode));\n const nodes = qr ? await db.table('chatMessages').bulkGet(qr.entityIds) : [];\n return { chat: { messages: { __typename: 'ChatMessageConnection' as const, nodes: nodes.filter(Boolean), pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } } as L.Chat_MessagesQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chat?.messages;\n return new ChatMessageConnection(this._request, (conn, opts) => new Chat_MessagesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Chat_MessagesQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n });\n }\n}\n\nexport class ChatMessageQuery<TIncluded = {}> extends Request {\n private _variables: L.ChatMessageQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ChatMessageQueryVariables = {} as L.ChatMessageQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<ChatMessage, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ChatMessageDocument as unknown as DocumentNode, 'chatMessage', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.ChatMessageQuery>(queryDoc, mergedVars, 'chatMessage');\n const data = response.chatMessage;\n const instance = new ChatMessage(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<ChatMessage, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<ChatMessage, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ChatMessageDocument as unknown as DocumentNode, 'chatMessage', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.ChatMessageQuery>(\n queryDoc,\n mergedVars,\n 'chatMessage',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('chatMessages');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('chatMessages').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'chatMessages', parentId, includes);\n return { chatMessage: result } as L.ChatMessageQuery;\n }\n return { chatMessage: entity ?? null } as L.ChatMessageQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chatMessage;\n const instance = new ChatMessage(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<ChatMessage, TIncluded>;\n });\n }\n\n /** Include artifacts in this query (Smart Fetch — single HTTP request). */\n public artifacts(variables?: Omit<L.ChatMessage_ArtifactsQueryVariables, 'id'>, builder?: (q: ArtifactSubBuilder) => ArtifactSubBuilder<any>): ChatMessageQuery<TIncluded & { artifacts: ArtifactConnection }> {\n const info = extractIncludeInfo(L.ChatMessage_ArtifactsDocument as unknown as import('graphql').DocumentNode, 'artifacts', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ArtifactSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'artifacts',\n fragmentDoc: L.ArtifactConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'artifacts',\n requiredFields: ['createdAt', 'fileId', 'id', 'kind', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Artifact(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ArtifactConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include chat in this query (Smart Fetch — single HTTP request). */\n public chat(variables?: Omit<L.ChatMessage_ChatQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): ChatMessageQuery<TIncluded & { chat: Chat }> {\n const info = extractIncludeInfo(L.ChatMessage_ChatDocument as unknown as import('graphql').DocumentNode, 'chat', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chat',\n fragmentDoc: L.ChatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include contents in this query (Smart Fetch — single HTTP request). */\n public contents(variables?: Omit<L.ChatMessage_ContentsQueryVariables, 'id'>): ChatMessageQuery<TIncluded & { contents: ContentBlock[] }> {\n const info = extractIncludeInfo(L.ChatMessage_ContentsDocument as unknown as import('graphql').DocumentNode, 'contents', ['id']);\n this._includes.push({\n fieldName: 'contents',\n fragmentDoc: L.ContentBlockFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'contentBlocks',\n requiredFields: ['chatMessageId', 'content', 'id', 'index', 'type'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ContentBlock(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include feedback in this query (Smart Fetch — single HTTP request). */\n public feedback(variables?: Omit<L.ChatMessage_FeedbackQueryVariables, 'id'>): ChatMessageQuery<TIncluded & { feedback: Feedback }> {\n const info = extractIncludeInfo(L.ChatMessage_FeedbackDocument as unknown as import('graphql').DocumentNode, 'feedback', ['id']);\n this._includes.push({\n fieldName: 'feedback',\n fragmentDoc: L.FeedbackFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'feedback',\n requiredFields: ['chatMessageId', 'createdAt', 'feedback', 'id'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Feedback(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class ChatMessage_ArtifactsQuery extends Request {\n private _variables: L.ChatMessage_ArtifactsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ChatMessage_ArtifactsQueryVariables = {} as L.ChatMessage_ArtifactsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ArtifactConnection> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.ChatMessage_ArtifactsQuery>(L.ChatMessage_ArtifactsDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'chatMessage');\n const data = response.chatMessage?.artifacts;\n return new ArtifactConnection(this._request, (conn, opts) => new ChatMessage_ArtifactsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ChatMessage_ArtifactsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ArtifactConnection> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.ChatMessage_ArtifactsQuery>(\n L.ChatMessage_ArtifactsDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'chatMessage',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('chatMessage', variables as Record<string, unknown>, L.ChatMessage_ArtifactsDocument as unknown as DocumentNode));\n const nodes = qr ? await db.table('artifacts').bulkGet(qr.entityIds) : [];\n return { chatMessage: { artifacts: { __typename: 'ArtifactConnection' as const, nodes: nodes.filter(Boolean), pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } } as L.ChatMessage_ArtifactsQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chatMessage?.artifacts;\n return new ArtifactConnection(this._request, (conn, opts) => new ChatMessage_ArtifactsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ChatMessage_ArtifactsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n });\n }\n}\n\nexport class ChatMessage_ChatQuery extends Request {\n private _variables: L.ChatMessage_ChatQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ChatMessage_ChatQueryVariables = {} as L.ChatMessage_ChatQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Chat | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.ChatMessage_ChatQuery>(L.ChatMessage_ChatDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'chatMessage');\n const data = response.chatMessage?.chat;\n return data ? new Chat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Chat | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.ChatMessage_ChatQuery>(\n L.ChatMessage_ChatDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'chatMessage',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('chats').get(vars.id) : undefined;\n return { chatMessage: { chat: entity ?? null } } as L.ChatMessage_ChatQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chatMessage?.chat;\n return data ? new Chat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class ChatMessage_Chat_InsightQuery extends Request {\n private _variables: L.ChatMessage_Chat_InsightQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ChatMessage_Chat_InsightQueryVariables = {} as L.ChatMessage_Chat_InsightQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Insight | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.ChatMessage_Chat_InsightQuery>(L.ChatMessage_Chat_InsightDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'chatMessage');\n const data = response.chatMessage?.chat?.insight;\n return data ? new Insight(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Insight | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.ChatMessage_Chat_InsightQuery>(\n L.ChatMessage_Chat_InsightDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'chatMessage',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('insights').get(vars.id) : undefined;\n return { chatMessage: { chat: { insight: entity ?? null } } } as L.ChatMessage_Chat_InsightQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chatMessage?.chat?.insight;\n return data ? new Insight(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class ChatMessage_ContentsQuery extends Request {\n private _variables: L.ChatMessage_ContentsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ChatMessage_ContentsQueryVariables = {} as L.ChatMessage_ContentsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ContentBlock[]> {\n const response = await this._syncEngine!.query<L.ChatMessage_ContentsQuery>(L.ChatMessage_ContentsDocument as unknown as DocumentNode, this._variables as Record<string, unknown>, 'chatMessage');\n const data = response.chatMessage?.contents;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new ContentBlock(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class ChatMessage_FeedbackQuery extends Request {\n private _variables: L.ChatMessage_FeedbackQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ChatMessage_FeedbackQueryVariables = {} as L.ChatMessage_FeedbackQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Feedback | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.ChatMessage_FeedbackQuery>(L.ChatMessage_FeedbackDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'chatMessage');\n const data = response.chatMessage?.feedback;\n return data ? new Feedback(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Feedback | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.ChatMessage_FeedbackQuery>(\n L.ChatMessage_FeedbackDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'chatMessage',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('feedback').get(vars.id) : undefined;\n return { chatMessage: { feedback: entity ?? null } } as L.ChatMessage_FeedbackQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chatMessage?.feedback;\n return data ? new Feedback(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class ChatMessagesQuery<TIncluded = {}> extends Request {\n private _variables: L.ChatMessagesQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ChatMessagesQueryVariables = {} as L.ChatMessagesQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<ChatMessageConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ChatMessagesDocument as unknown as DocumentNode, 'chatMessages', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.ChatMessagesQuery>(queryDoc, mergedVars, 'chatMessages');\n const data = response.chatMessages;\n const connection = new ChatMessageConnection(this._request, (conn, opts) => new ChatMessagesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ChatMessagesQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<ChatMessageConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<ChatMessageConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ChatMessagesDocument as unknown as DocumentNode, 'chatMessages', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.ChatMessagesQuery>(\n queryDoc,\n mergedVars,\n 'chatMessages',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('chatMessages', mergedVars, queryDoc));\n const nodes = qr ? await db.table('chatMessages').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'chatMessages', filteredNodes, includes) : filteredNodes;\n return { chatMessages: { __typename: 'ChatMessageConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.ChatMessagesQuery;\n },\n {\n id: subscriptionId,\n entityType: 'chatMessages',\n operationName: 'chatMessages',\n modelName: 'ChatMessage',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chatMessages;\n const connection = new ChatMessageConnection(this._request, (conn, opts) => new ChatMessagesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ChatMessagesQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<ChatMessageConnection, TIncluded>;\n });\n }\n\n /** Include artifacts in this query (Smart Fetch — single HTTP request). */\n public artifacts(variables?: Omit<L.ChatMessage_ArtifactsQueryVariables, 'id'>, builder?: (q: ArtifactSubBuilder) => ArtifactSubBuilder<any>): ChatMessagesQuery<TIncluded & { artifacts: ArtifactConnection }> {\n const info = extractIncludeInfo(L.ChatMessage_ArtifactsDocument as unknown as import('graphql').DocumentNode, 'artifacts', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ArtifactSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'artifacts',\n fragmentDoc: L.ArtifactConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'artifacts',\n requiredFields: ['createdAt', 'fileId', 'id', 'kind', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Artifact(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ArtifactConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include chat in this query (Smart Fetch — single HTTP request). */\n public chat(variables?: Omit<L.ChatMessage_ChatQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): ChatMessagesQuery<TIncluded & { chat: Chat }> {\n const info = extractIncludeInfo(L.ChatMessage_ChatDocument as unknown as import('graphql').DocumentNode, 'chat', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chat',\n fragmentDoc: L.ChatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include contents in this query (Smart Fetch — single HTTP request). */\n public contents(variables?: Omit<L.ChatMessage_ContentsQueryVariables, 'id'>): ChatMessagesQuery<TIncluded & { contents: ContentBlock[] }> {\n const info = extractIncludeInfo(L.ChatMessage_ContentsDocument as unknown as import('graphql').DocumentNode, 'contents', ['id']);\n this._includes.push({\n fieldName: 'contents',\n fragmentDoc: L.ContentBlockFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'contentBlocks',\n requiredFields: ['chatMessageId', 'content', 'id', 'index', 'type'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ContentBlock(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include feedback in this query (Smart Fetch — single HTTP request). */\n public feedback(variables?: Omit<L.ChatMessage_FeedbackQueryVariables, 'id'>): ChatMessagesQuery<TIncluded & { feedback: Feedback }> {\n const info = extractIncludeInfo(L.ChatMessage_FeedbackDocument as unknown as import('graphql').DocumentNode, 'feedback', ['id']);\n this._includes.push({\n fieldName: 'feedback',\n fragmentDoc: L.FeedbackFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'feedback',\n requiredFields: ['chatMessageId', 'createdAt', 'feedback', 'id'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Feedback(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class ChatsQuery<TIncluded = {}> extends Request {\n private _variables: L.ChatsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ChatsQueryVariables = {} as L.ChatsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<ChatConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ChatsDocument as unknown as DocumentNode, 'chats', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.ChatsQuery>(queryDoc, mergedVars, 'chats');\n const data = response.chats;\n const connection = new ChatConnection(this._request, (conn, opts) => new ChatsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ChatsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<ChatConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<ChatConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ChatsDocument as unknown as DocumentNode, 'chats', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.ChatsQuery>(\n queryDoc,\n mergedVars,\n 'chats',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('chats', mergedVars, queryDoc));\n const nodes = qr ? await db.table('chats').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'chats', filteredNodes, includes) : filteredNodes;\n return { chats: { __typename: 'ChatConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.ChatsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'chats',\n operationName: 'chats',\n modelName: 'Chat',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.chats;\n const connection = new ChatConnection(this._request, (conn, opts) => new ChatsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ChatsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<ChatConnection, TIncluded>;\n });\n }\n\n /** Include agents in this query (Smart Fetch — single HTTP request). */\n public agents(variables?: Omit<L.Chat_AgentsQueryVariables, 'id'>, builder?: (q: AgentSubBuilder) => AgentSubBuilder<any>): ChatsQuery<TIncluded & { agents: AgentConnection }> {\n const info = extractIncludeInfo(L.Chat_AgentsDocument as unknown as import('graphql').DocumentNode, 'agents', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new AgentSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'agents',\n fragmentDoc: L.AgentConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'agents',\n requiredFields: ['createdAt', 'id', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Agent(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new AgentConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include artifacts in this query (Smart Fetch — single HTTP request). */\n public artifacts(variables?: Omit<L.Chat_ArtifactsQueryVariables, 'id'>, builder?: (q: ArtifactSubBuilder) => ArtifactSubBuilder<any>): ChatsQuery<TIncluded & { artifacts: ArtifactConnection }> {\n const info = extractIncludeInfo(L.Chat_ArtifactsDocument as unknown as import('graphql').DocumentNode, 'artifacts', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ArtifactSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'artifacts',\n fragmentDoc: L.ArtifactConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'artifacts',\n requiredFields: ['createdAt', 'fileId', 'id', 'kind', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Artifact(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ArtifactConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include insight in this query (Smart Fetch — single HTTP request). */\n public insight(variables?: Omit<L.Chat_InsightQueryVariables, 'id'>, builder?: (q: InsightSubBuilder) => InsightSubBuilder<any>): ChatsQuery<TIncluded & { insight: Insight }> {\n const info = extractIncludeInfo(L.Chat_InsightDocument as unknown as import('graphql').DocumentNode, 'insight', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new InsightSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'insight',\n fragmentDoc: L.InsightFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'insights',\n requiredFields: ['createdAt', 'id', 'name', 'presentation', 'query', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Insight(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include messages in this query (Smart Fetch — single HTTP request). */\n public messages(variables?: Omit<L.Chat_MessagesQueryVariables, 'id'>, builder?: (q: ChatMessageSubBuilder) => ChatMessageSubBuilder<any>): ChatsQuery<TIncluded & { messages: ChatMessageConnection }> {\n const info = extractIncludeInfo(L.Chat_MessagesDocument as unknown as import('graphql').DocumentNode, 'messages', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatMessageSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'messages',\n fragmentDoc: L.ChatMessageConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chatMessages',\n requiredFields: ['actions', 'chatId', 'from', 'id', 'sentAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ChatMessage(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ChatMessageConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class DatabaseQuery<TIncluded = {}> extends Request {\n private _variables: L.DatabaseQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DatabaseQueryVariables = {} as L.DatabaseQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Database, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DatabaseDocument as unknown as DocumentNode, 'database', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.DatabaseQuery>(queryDoc, mergedVars, 'database');\n const data = response.database;\n const instance = new Database(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Database, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Database, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DatabaseDocument as unknown as DocumentNode, 'database', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.DatabaseQuery>(\n queryDoc,\n mergedVars,\n 'database',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('databases');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('databases').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'databases', parentId, includes);\n return { database: result } as L.DatabaseQuery;\n }\n return { database: entity ?? null } as L.DatabaseQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.database;\n const instance = new Database(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Database, TIncluded>;\n });\n }\n\n /** Include engine in this query (Smart Fetch — single HTTP request). */\n public engine(variables?: Omit<L.Database_EngineQueryVariables, 'id'>): DatabaseQuery<TIncluded & { engine: DatabaseEngine }> {\n const info = extractIncludeInfo(L.Database_EngineDocument as unknown as import('graphql').DocumentNode, 'engine', ['id']);\n this._includes.push({\n fieldName: 'engine',\n fragmentDoc: L.DatabaseEngineFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'databaseEngines',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DatabaseEngine(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include tables in this query (Smart Fetch — single HTTP request). */\n public tables(variables?: Omit<L.Database_TablesQueryVariables, 'id'>, builder?: (q: TableSubBuilder) => TableSubBuilder<any>): DatabaseQuery<TIncluded & { tables: TableConnection }> {\n const info = extractIncludeInfo(L.Database_TablesDocument as unknown as import('graphql').DocumentNode, 'tables', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new TableSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'tables',\n fragmentDoc: L.TableConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'tables',\n requiredFields: ['createdAt', 'id', 'model', 'name', 'status', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Table(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new TableConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class Database_EngineQuery extends Request {\n private _variables: L.Database_EngineQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Database_EngineQueryVariables = {} as L.Database_EngineQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DatabaseEngine | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Database_EngineQuery>(L.Database_EngineDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'database');\n const data = response.database?.engine;\n return data ? new DatabaseEngine(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<DatabaseEngine | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Database_EngineQuery>(\n L.Database_EngineDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'database',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('databaseEngines').get(vars.id) : undefined;\n return { database: { engine: entity ?? null } } as L.Database_EngineQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.database?.engine;\n return data ? new DatabaseEngine(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Database_Engine_CatalogQuery extends Request {\n private _variables: L.Database_Engine_CatalogQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Database_Engine_CatalogQueryVariables = {} as L.Database_Engine_CatalogQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DatabaseCatalog | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Database_Engine_CatalogQuery>(L.Database_Engine_CatalogDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'database');\n const data = response.database?.engine?.catalog;\n return data ? new DatabaseCatalog(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<DatabaseCatalog | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Database_Engine_CatalogQuery>(\n L.Database_Engine_CatalogDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'database',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('databaseCatalogs').get(vars.id) : undefined;\n return { database: { engine: { catalog: entity ?? null } } } as L.Database_Engine_CatalogQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.database?.engine?.catalog;\n return data ? new DatabaseCatalog(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Database_TablesQuery extends Request {\n private _variables: L.Database_TablesQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Database_TablesQueryVariables = {} as L.Database_TablesQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<TableConnection> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Database_TablesQuery>(L.Database_TablesDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'database');\n const data = response.database?.tables;\n return new TableConnection(this._request, (conn, opts) => new Database_TablesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Database_TablesQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<TableConnection> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Database_TablesQuery>(\n L.Database_TablesDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'database',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('database', variables as Record<string, unknown>, L.Database_TablesDocument as unknown as DocumentNode));\n const nodes = qr ? await db.table('tables').bulkGet(qr.entityIds) : [];\n return { database: { tables: { __typename: 'TableConnection' as const, nodes: nodes.filter(Boolean), pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } } as L.Database_TablesQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.database?.tables;\n return new TableConnection(this._request, (conn, opts) => new Database_TablesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Database_TablesQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n });\n }\n}\n\nexport class DatabaseCatalogQuery<TIncluded = {}> extends Request {\n private _variables: L.DatabaseCatalogQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DatabaseCatalogQueryVariables = {} as L.DatabaseCatalogQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<DatabaseCatalog, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DatabaseCatalogDocument as unknown as DocumentNode, 'databaseCatalog', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.DatabaseCatalogQuery>(queryDoc, mergedVars, 'databaseCatalog');\n const data = response.databaseCatalog;\n const instance = new DatabaseCatalog(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<DatabaseCatalog, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<DatabaseCatalog, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DatabaseCatalogDocument as unknown as DocumentNode, 'databaseCatalog', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.DatabaseCatalogQuery>(\n queryDoc,\n mergedVars,\n 'databaseCatalog',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('databaseCatalogs');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('databaseCatalogs').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'databaseCatalogs', parentId, includes);\n return { databaseCatalog: result } as L.DatabaseCatalogQuery;\n }\n return { databaseCatalog: entity ?? null } as L.DatabaseCatalogQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.databaseCatalog;\n const instance = new DatabaseCatalog(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<DatabaseCatalog, TIncluded>;\n });\n }\n\n /** Include engine in this query (Smart Fetch — single HTTP request). */\n public engine(variables: L.DatabaseCatalog_EngineQueryVariables): DatabaseCatalogQuery<TIncluded & { engine: DatabaseEngine }> {\n const info = extractIncludeInfo(L.DatabaseCatalog_EngineDocument as unknown as import('graphql').DocumentNode, 'engine', []);\n this._includes.push({\n fieldName: 'engine',\n fragmentDoc: L.DatabaseEngineFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'databaseEngines',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DatabaseEngine(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class DatabaseCatalog_EngineQuery extends Request {\n private _variables: L.DatabaseCatalog_EngineQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DatabaseCatalog_EngineQueryVariables = {} as L.DatabaseCatalog_EngineQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DatabaseEngine | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.DatabaseCatalog_EngineQuery>(L.DatabaseCatalog_EngineDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'databaseCatalog');\n const data = response.databaseCatalog?.engine;\n return data ? new DatabaseEngine(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<DatabaseEngine | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.DatabaseCatalog_EngineQuery>(\n L.DatabaseCatalog_EngineDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'databaseCatalog',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('databaseEngines').get(vars.id) : undefined;\n return { databaseCatalog: { engine: entity ?? null } } as L.DatabaseCatalog_EngineQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.databaseCatalog?.engine;\n return data ? new DatabaseEngine(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class DatabaseCatalogsQuery<TIncluded = {}> extends Request {\n private _variables: L.DatabaseCatalogsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DatabaseCatalogsQueryVariables = {} as L.DatabaseCatalogsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<DatabaseCatalogConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DatabaseCatalogsDocument as unknown as DocumentNode, 'databaseCatalogs', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.DatabaseCatalogsQuery>(queryDoc, mergedVars, 'databaseCatalogs');\n const data = response.databaseCatalogs;\n const connection = new DatabaseCatalogConnection(this._request, (conn, opts) => new DatabaseCatalogsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.DatabaseCatalogsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<DatabaseCatalogConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<DatabaseCatalogConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DatabaseCatalogsDocument as unknown as DocumentNode, 'databaseCatalogs', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.DatabaseCatalogsQuery>(\n queryDoc,\n mergedVars,\n 'databaseCatalogs',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('databaseCatalogs', mergedVars, queryDoc));\n const nodes = qr ? await db.table('databaseCatalogs').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'databaseCatalogs', filteredNodes, includes) : filteredNodes;\n return { databaseCatalogs: { __typename: 'DatabaseCatalogConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.DatabaseCatalogsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'databaseCatalogs',\n operationName: 'databaseCatalogs',\n modelName: 'DatabaseCatalog',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.databaseCatalogs;\n const connection = new DatabaseCatalogConnection(this._request, (conn, opts) => new DatabaseCatalogsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.DatabaseCatalogsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<DatabaseCatalogConnection, TIncluded>;\n });\n }\n\n /** Include engine in this query (Smart Fetch — single HTTP request). */\n public engine(variables: L.DatabaseCatalog_EngineQueryVariables): DatabaseCatalogsQuery<TIncluded & { engine: DatabaseEngine }> {\n const info = extractIncludeInfo(L.DatabaseCatalog_EngineDocument as unknown as import('graphql').DocumentNode, 'engine', []);\n this._includes.push({\n fieldName: 'engine',\n fragmentDoc: L.DatabaseEngineFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'databaseEngines',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DatabaseEngine(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class DatabaseSchemaQuery extends Request {\n public async fetch(variables: L.DatabaseSchemaQueryVariables): Promise<any> {\n const response = await this._request<L.DatabaseSchemaQuery>(L.DatabaseSchemaDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.databaseSchema;\n }\n}\n\nexport class DatabasesQuery<TIncluded = {}> extends Request {\n private _variables: L.DatabasesQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DatabasesQueryVariables = {} as L.DatabasesQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<DatabaseConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DatabasesDocument as unknown as DocumentNode, 'databases', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.DatabasesQuery>(queryDoc, mergedVars, 'databases');\n const data = response.databases;\n const connection = new DatabaseConnection(this._request, (conn, opts) => new DatabasesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.DatabasesQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<DatabaseConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<DatabaseConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DatabasesDocument as unknown as DocumentNode, 'databases', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.DatabasesQuery>(\n queryDoc,\n mergedVars,\n 'databases',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('databases', mergedVars, queryDoc));\n const nodes = qr ? await db.table('databases').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'databases', filteredNodes, includes) : filteredNodes;\n return { databases: { __typename: 'DatabaseConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.DatabasesQuery;\n },\n {\n id: subscriptionId,\n entityType: 'databases',\n operationName: 'databases',\n modelName: 'Database',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.databases;\n const connection = new DatabaseConnection(this._request, (conn, opts) => new DatabasesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.DatabasesQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<DatabaseConnection, TIncluded>;\n });\n }\n\n /** Include engine in this query (Smart Fetch — single HTTP request). */\n public engine(variables?: Omit<L.Database_EngineQueryVariables, 'id'>): DatabasesQuery<TIncluded & { engine: DatabaseEngine }> {\n const info = extractIncludeInfo(L.Database_EngineDocument as unknown as import('graphql').DocumentNode, 'engine', ['id']);\n this._includes.push({\n fieldName: 'engine',\n fragmentDoc: L.DatabaseEngineFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'databaseEngines',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DatabaseEngine(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include tables in this query (Smart Fetch — single HTTP request). */\n public tables(variables?: Omit<L.Database_TablesQueryVariables, 'id'>, builder?: (q: TableSubBuilder) => TableSubBuilder<any>): DatabasesQuery<TIncluded & { tables: TableConnection }> {\n const info = extractIncludeInfo(L.Database_TablesDocument as unknown as import('graphql').DocumentNode, 'tables', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new TableSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'tables',\n fragmentDoc: L.TableConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'tables',\n requiredFields: ['createdAt', 'id', 'model', 'name', 'status', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Table(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new TableConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class DocumentQuery<TIncluded = {}> extends Request {\n private _variables: L.DocumentQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DocumentQueryVariables = {} as L.DocumentQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Document, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DocumentDocument as unknown as DocumentNode, 'document', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.DocumentQuery>(queryDoc, mergedVars, 'document');\n const data = response.document;\n const instance = new Document(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Document, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Document, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DocumentDocument as unknown as DocumentNode, 'document', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.DocumentQuery>(\n queryDoc,\n mergedVars,\n 'document',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('documents');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('documents').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'documents', parentId, includes);\n return { document: result } as L.DocumentQuery;\n }\n return { document: entity ?? null } as L.DocumentQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.document;\n const instance = new Document(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Document, TIncluded>;\n });\n }\n\n /** Include contents in this query (Smart Fetch — single HTTP request). */\n public contents(variables?: Omit<L.Document_ContentsQueryVariables, 'id'>): DocumentQuery<TIncluded & { contents: DocumentContent[] }> {\n const info = extractIncludeInfo(L.Document_ContentsDocument as unknown as import('graphql').DocumentNode, 'contents', ['id']);\n this._includes.push({\n fieldName: 'contents',\n fragmentDoc: L.DocumentContentFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documentContents',\n requiredFields: ['content', 'createdAt', 'documentId', 'id', 'pageNumber', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DocumentContent(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include file in this query (Smart Fetch — single HTTP request). */\n public file(variables?: Omit<L.Document_FileQueryVariables, 'id'>): DocumentQuery<TIncluded & { file: File }> {\n const info = extractIncludeInfo(L.Document_FileDocument as unknown as import('graphql').DocumentNode, 'file', ['id']);\n this._includes.push({\n fieldName: 'file',\n fragmentDoc: L.FileFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'files',\n requiredFields: ['createdAt', 'id', 'path', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new File(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include format in this query (Smart Fetch — single HTTP request). */\n public format(variables?: Omit<L.Document_FormatQueryVariables, 'id'>): DocumentQuery<TIncluded & { format: DocumentFormat }> {\n const info = extractIncludeInfo(L.Document_FormatDocument as unknown as import('graphql').DocumentNode, 'format', ['id']);\n this._includes.push({\n fieldName: 'format',\n fragmentDoc: L.DocumentFormatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documentFormats',\n requiredFields: ['createsTables', 'key', 'supportsDeepAnalysis'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DocumentFormat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include tables in this query (Smart Fetch — single HTTP request). */\n public tables(variables?: Omit<L.Document_TablesQueryVariables, 'id'>, builder?: (q: TableSubBuilder) => TableSubBuilder<any>): DocumentQuery<TIncluded & { tables: TableConnection }> {\n const info = extractIncludeInfo(L.Document_TablesDocument as unknown as import('graphql').DocumentNode, 'tables', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new TableSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'tables',\n fragmentDoc: L.TableConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'tables',\n requiredFields: ['createdAt', 'id', 'model', 'name', 'status', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Table(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new TableConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class Document_ContentsQuery extends Request {\n private _variables: L.Document_ContentsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Document_ContentsQueryVariables = {} as L.Document_ContentsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DocumentContent[]> {\n const response = await this._syncEngine!.query<L.Document_ContentsQuery>(L.Document_ContentsDocument as unknown as DocumentNode, this._variables as Record<string, unknown>, 'document');\n const data = response.document?.contents;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new DocumentContent(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class Document_FileQuery extends Request {\n private _variables: L.Document_FileQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Document_FileQueryVariables = {} as L.Document_FileQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<File | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Document_FileQuery>(L.Document_FileDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'document');\n const data = response.document?.file;\n return data ? new File(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<File | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Document_FileQuery>(\n L.Document_FileDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'document',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('files').get(vars.id) : undefined;\n return { document: { file: entity ?? null } } as L.Document_FileQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.document?.file;\n return data ? new File(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Document_FormatQuery extends Request {\n private _variables: L.Document_FormatQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Document_FormatQueryVariables = {} as L.Document_FormatQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DocumentFormat | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Document_FormatQuery>(L.Document_FormatDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'document');\n const data = response.document?.format;\n return data ? new DocumentFormat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<DocumentFormat | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Document_FormatQuery>(\n L.Document_FormatDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'document',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('documentFormats').get(vars.id) : undefined;\n return { document: { format: entity ?? null } } as L.Document_FormatQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.document?.format;\n return data ? new DocumentFormat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Document_Format_CatalogQuery extends Request {\n private _variables: L.Document_Format_CatalogQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Document_Format_CatalogQueryVariables = {} as L.Document_Format_CatalogQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DocumentCatalog | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Document_Format_CatalogQuery>(L.Document_Format_CatalogDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'document');\n const data = response.document?.format?.catalog;\n return data ? new DocumentCatalog(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<DocumentCatalog | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Document_Format_CatalogQuery>(\n L.Document_Format_CatalogDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'document',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('documentCatalogs').get(vars.id) : undefined;\n return { document: { format: { catalog: entity ?? null } } } as L.Document_Format_CatalogQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.document?.format?.catalog;\n return data ? new DocumentCatalog(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Document_TablesQuery extends Request {\n private _variables: L.Document_TablesQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Document_TablesQueryVariables = {} as L.Document_TablesQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<TableConnection> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Document_TablesQuery>(L.Document_TablesDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'document');\n const data = response.document?.tables;\n return new TableConnection(this._request, (conn, opts) => new Document_TablesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Document_TablesQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<TableConnection> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Document_TablesQuery>(\n L.Document_TablesDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'document',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('document', variables as Record<string, unknown>, L.Document_TablesDocument as unknown as DocumentNode));\n const nodes = qr ? await db.table('tables').bulkGet(qr.entityIds) : [];\n return { document: { tables: { __typename: 'TableConnection' as const, nodes: nodes.filter(Boolean), pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } } as L.Document_TablesQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.document?.tables;\n return new TableConnection(this._request, (conn, opts) => new Document_TablesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Document_TablesQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n });\n }\n}\n\nexport class DocumentCatalogQuery<TIncluded = {}> extends Request {\n private _variables: L.DocumentCatalogQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DocumentCatalogQueryVariables = {} as L.DocumentCatalogQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<DocumentCatalog, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DocumentCatalogDocument as unknown as DocumentNode, 'documentCatalog', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.DocumentCatalogQuery>(queryDoc, mergedVars, 'documentCatalog');\n const data = response.documentCatalog;\n const instance = new DocumentCatalog(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<DocumentCatalog, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<DocumentCatalog, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DocumentCatalogDocument as unknown as DocumentNode, 'documentCatalog', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.DocumentCatalogQuery>(\n queryDoc,\n mergedVars,\n 'documentCatalog',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('documentCatalogs');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('documentCatalogs').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'documentCatalogs', parentId, includes);\n return { documentCatalog: result } as L.DocumentCatalogQuery;\n }\n return { documentCatalog: entity ?? null } as L.DocumentCatalogQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.documentCatalog;\n const instance = new DocumentCatalog(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<DocumentCatalog, TIncluded>;\n });\n }\n\n /** Include format in this query (Smart Fetch — single HTTP request). */\n public format(variables: L.DocumentCatalog_FormatQueryVariables): DocumentCatalogQuery<TIncluded & { format: DocumentFormat }> {\n const info = extractIncludeInfo(L.DocumentCatalog_FormatDocument as unknown as import('graphql').DocumentNode, 'format', []);\n this._includes.push({\n fieldName: 'format',\n fragmentDoc: L.DocumentFormatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documentFormats',\n requiredFields: ['createsTables', 'key', 'supportsDeepAnalysis'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DocumentFormat(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class DocumentCatalog_FormatQuery extends Request {\n private _variables: L.DocumentCatalog_FormatQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DocumentCatalog_FormatQueryVariables = {} as L.DocumentCatalog_FormatQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DocumentFormat | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.DocumentCatalog_FormatQuery>(L.DocumentCatalog_FormatDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'documentCatalog');\n const data = response.documentCatalog?.format;\n return data ? new DocumentFormat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<DocumentFormat | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.DocumentCatalog_FormatQuery>(\n L.DocumentCatalog_FormatDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'documentCatalog',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('documentFormats').get(vars.id) : undefined;\n return { documentCatalog: { format: entity ?? null } } as L.DocumentCatalog_FormatQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.documentCatalog?.format;\n return data ? new DocumentFormat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class DocumentCatalogsQuery<TIncluded = {}> extends Request {\n private _variables: L.DocumentCatalogsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DocumentCatalogsQueryVariables = {} as L.DocumentCatalogsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<DocumentCatalogConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DocumentCatalogsDocument as unknown as DocumentNode, 'documentCatalogs', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.DocumentCatalogsQuery>(queryDoc, mergedVars, 'documentCatalogs');\n const data = response.documentCatalogs;\n const connection = new DocumentCatalogConnection(this._request, (conn, opts) => new DocumentCatalogsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.DocumentCatalogsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<DocumentCatalogConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<DocumentCatalogConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DocumentCatalogsDocument as unknown as DocumentNode, 'documentCatalogs', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.DocumentCatalogsQuery>(\n queryDoc,\n mergedVars,\n 'documentCatalogs',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('documentCatalogs', mergedVars, queryDoc));\n const nodes = qr ? await db.table('documentCatalogs').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'documentCatalogs', filteredNodes, includes) : filteredNodes;\n return { documentCatalogs: { __typename: 'DocumentCatalogConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.DocumentCatalogsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'documentCatalogs',\n operationName: 'documentCatalogs',\n modelName: 'DocumentCatalog',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.documentCatalogs;\n const connection = new DocumentCatalogConnection(this._request, (conn, opts) => new DocumentCatalogsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.DocumentCatalogsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<DocumentCatalogConnection, TIncluded>;\n });\n }\n\n /** Include format in this query (Smart Fetch — single HTTP request). */\n public format(variables: L.DocumentCatalog_FormatQueryVariables): DocumentCatalogsQuery<TIncluded & { format: DocumentFormat }> {\n const info = extractIncludeInfo(L.DocumentCatalog_FormatDocument as unknown as import('graphql').DocumentNode, 'format', []);\n this._includes.push({\n fieldName: 'format',\n fragmentDoc: L.DocumentFormatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documentFormats',\n requiredFields: ['createsTables', 'key', 'supportsDeepAnalysis'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DocumentFormat(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class DocumentsQuery<TIncluded = {}> extends Request {\n private _variables: L.DocumentsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.DocumentsQueryVariables = {} as L.DocumentsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<DocumentConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DocumentsDocument as unknown as DocumentNode, 'documents', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.DocumentsQuery>(queryDoc, mergedVars, 'documents');\n const data = response.documents;\n const connection = new DocumentConnection(this._request, (conn, opts) => new DocumentsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.DocumentsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<DocumentConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<DocumentConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.DocumentsDocument as unknown as DocumentNode, 'documents', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.DocumentsQuery>(\n queryDoc,\n mergedVars,\n 'documents',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('documents', mergedVars, queryDoc));\n const nodes = qr ? await db.table('documents').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'documents', filteredNodes, includes) : filteredNodes;\n return { documents: { __typename: 'DocumentConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.DocumentsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'documents',\n operationName: 'documents',\n modelName: 'Document',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.documents;\n const connection = new DocumentConnection(this._request, (conn, opts) => new DocumentsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.DocumentsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<DocumentConnection, TIncluded>;\n });\n }\n\n /** Include contents in this query (Smart Fetch — single HTTP request). */\n public contents(variables?: Omit<L.Document_ContentsQueryVariables, 'id'>): DocumentsQuery<TIncluded & { contents: DocumentContent[] }> {\n const info = extractIncludeInfo(L.Document_ContentsDocument as unknown as import('graphql').DocumentNode, 'contents', ['id']);\n this._includes.push({\n fieldName: 'contents',\n fragmentDoc: L.DocumentContentFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documentContents',\n requiredFields: ['content', 'createdAt', 'documentId', 'id', 'pageNumber', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DocumentContent(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include file in this query (Smart Fetch — single HTTP request). */\n public file(variables?: Omit<L.Document_FileQueryVariables, 'id'>): DocumentsQuery<TIncluded & { file: File }> {\n const info = extractIncludeInfo(L.Document_FileDocument as unknown as import('graphql').DocumentNode, 'file', ['id']);\n this._includes.push({\n fieldName: 'file',\n fragmentDoc: L.FileFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'files',\n requiredFields: ['createdAt', 'id', 'path', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new File(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include format in this query (Smart Fetch — single HTTP request). */\n public format(variables?: Omit<L.Document_FormatQueryVariables, 'id'>): DocumentsQuery<TIncluded & { format: DocumentFormat }> {\n const info = extractIncludeInfo(L.Document_FormatDocument as unknown as import('graphql').DocumentNode, 'format', ['id']);\n this._includes.push({\n fieldName: 'format',\n fragmentDoc: L.DocumentFormatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documentFormats',\n requiredFields: ['createsTables', 'key', 'supportsDeepAnalysis'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new DocumentFormat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include tables in this query (Smart Fetch — single HTTP request). */\n public tables(variables?: Omit<L.Document_TablesQueryVariables, 'id'>, builder?: (q: TableSubBuilder) => TableSubBuilder<any>): DocumentsQuery<TIncluded & { tables: TableConnection }> {\n const info = extractIncludeInfo(L.Document_TablesDocument as unknown as import('graphql').DocumentNode, 'tables', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new TableSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'tables',\n fragmentDoc: L.TableConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'tables',\n requiredFields: ['createdAt', 'id', 'model', 'name', 'status', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Table(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new TableConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class ExportQuery extends Request {\n public async fetch(variables: L.ExportQueryVariables): Promise<string> {\n const response = await this._request<L.ExportQuery>(L.ExportDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.export;\n }\n}\n\nexport class ExportWithInsightIdQuery extends Request {\n public async fetch(variables: L.ExportWithInsightIdQueryVariables): Promise<string> {\n const response = await this._request<L.ExportWithInsightIdQuery>(L.ExportWithInsightIdDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.exportWithInsightId;\n }\n}\n\nexport class FileQuery extends Request {\n public async fetch(variables: L.FileQueryVariables): Promise<string> {\n const response = await this._request<L.FileQuery>(L.FileDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.file;\n }\n}\n\nexport class FileMetaQuery<TIncluded = {}> extends Request {\n private _variables: L.FileMetaQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.FileMetaQueryVariables = {} as L.FileMetaQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<File, TIncluded> | undefined> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.FileMetaDocument as unknown as DocumentNode, 'fileMeta', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.FileMetaQuery>(queryDoc, mergedVars, 'fileMeta');\n const data = response.fileMeta;\n if (!data) return undefined;\n const instance = new File(this._request, data as any, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<File, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<File, TIncluded> | undefined> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.FileMetaDocument as unknown as DocumentNode, 'fileMeta', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.FileMetaQuery>(\n queryDoc,\n mergedVars,\n 'fileMeta',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('files');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('files').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'files', parentId, includes);\n return { fileMeta: result } as L.FileMetaQuery;\n }\n return { fileMeta: entity ?? null } as L.FileMetaQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.fileMeta;\n if (!data) return undefined;\n const instance = new File(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<File, TIncluded>;\n });\n }\n}\n\nexport class FileUrlsQuery<TIncluded = {}> extends Request {\n private _variables: L.FileUrlsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.FileUrlsQueryVariables = {} as L.FileUrlsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ResolvedFileUrl[]> {\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.FileUrlsDocument as unknown as DocumentNode, 'fileUrls', this._includes, this._variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.FileUrlsQuery>(queryDoc, mergedVars, 'fileUrls');\n const data = response.fileUrls;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new ResolvedFileUrl(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class FindFitTierQuery extends Request {\n public async fetch(variables: L.FindFitTierQueryVariables): Promise<L.EntitlementTier | undefined> {\n const response = await this._request<L.FindFitTierQuery>(L.FindFitTierDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.findFitTier ?? undefined;\n }\n}\n\nexport class FolderQuery<TIncluded = {}> extends Request {\n private _variables: L.FolderQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.FolderQueryVariables = {} as L.FolderQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Folder, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.FolderDocument as unknown as DocumentNode, 'folder', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.FolderQuery>(queryDoc, mergedVars, 'folder');\n const data = response.folder;\n const instance = new Folder(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Folder, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Folder, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.FolderDocument as unknown as DocumentNode, 'folder', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.FolderQuery>(\n queryDoc,\n mergedVars,\n 'folder',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('folders');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('folders').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'folders', parentId, includes);\n return { folder: result } as L.FolderQuery;\n }\n return { folder: entity ?? null } as L.FolderQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.folder;\n const instance = new Folder(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Folder, TIncluded>;\n });\n }\n}\n\nexport class FoldersQuery<TIncluded = {}> extends Request {\n private _variables: L.FoldersQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.FoldersQueryVariables = {} as L.FoldersQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<FolderConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.FoldersDocument as unknown as DocumentNode, 'folders', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.FoldersQuery>(queryDoc, mergedVars, 'folders');\n const data = response.folders;\n const connection = new FolderConnection(this._request, (conn, opts) => new FoldersQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.FoldersQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<FolderConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<FolderConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.FoldersDocument as unknown as DocumentNode, 'folders', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.FoldersQuery>(\n queryDoc,\n mergedVars,\n 'folders',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('folders', mergedVars, queryDoc));\n const nodes = qr ? await db.table('folders').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'folders', filteredNodes, includes) : filteredNodes;\n return { folders: { __typename: 'FolderConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.FoldersQuery;\n },\n {\n id: subscriptionId,\n entityType: 'folders',\n operationName: 'folders',\n modelName: 'Folder',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.folders;\n const connection = new FolderConnection(this._request, (conn, opts) => new FoldersQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.FoldersQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<FolderConnection, TIncluded>;\n });\n }\n}\n\nexport class GetCapabilityQuery extends Request {\n public async fetch(variables: L.GetCapabilityQueryVariables): Promise<boolean> {\n const response = await this._request<L.GetCapabilityQuery>(L.GetCapabilityDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.getCapability;\n }\n}\n\nexport class GetDevAccessTokenQuery<TIncluded = {}> extends Request {\n private _variables: L.GetDevAccessTokenQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.GetDevAccessTokenQueryVariables = {} as L.GetDevAccessTokenQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<DevAccessTokenOutput, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.GetDevAccessTokenDocument as unknown as DocumentNode, 'getDevAccessToken', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.GetDevAccessTokenQuery>(queryDoc, mergedVars, 'getDevAccessToken');\n const data = response.getDevAccessToken;\n const instance = new DevAccessTokenOutput(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<DevAccessTokenOutput, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<DevAccessTokenOutput, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.GetDevAccessTokenDocument as unknown as DocumentNode, 'getDevAccessToken', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.GetDevAccessTokenQuery>(\n queryDoc,\n mergedVars,\n 'getDevAccessToken',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('devAccessTokenOutputs');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('devAccessTokenOutputs').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'devAccessTokenOutputs', parentId, includes);\n return { getDevAccessToken: result } as L.GetDevAccessTokenQuery;\n }\n return { getDevAccessToken: entity ?? null } as L.GetDevAccessTokenQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.getDevAccessToken;\n const instance = new DevAccessTokenOutput(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<DevAccessTokenOutput, TIncluded>;\n });\n }\n}\n\nexport class GetLimitQuery extends Request {\n public async fetch(variables: L.GetLimitQueryVariables): Promise<number | undefined> {\n const response = await this._request<L.GetLimitQuery>(L.GetLimitDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.getLimit ?? undefined;\n }\n}\n\nexport class GetRemainingQuery extends Request {\n public async fetch(variables: L.GetRemainingQueryVariables): Promise<number | undefined> {\n const response = await this._request<L.GetRemainingQuery>(L.GetRemainingDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.getRemaining ?? undefined;\n }\n}\n\nexport class GetTokenUsageByModelQuery<TIncluded = {}> extends Request {\n private _variables: L.GetTokenUsageByModelQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.GetTokenUsageByModelQueryVariables = {} as L.GetTokenUsageByModelQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ModelTokenUsage[]> {\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.GetTokenUsageByModelDocument as unknown as DocumentNode, 'getTokenUsageByModel', this._includes, this._variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.GetTokenUsageByModelQuery>(queryDoc, mergedVars, 'getTokenUsageByModel');\n const data = response.getTokenUsageByModel;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new ModelTokenUsage(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class GetTokenUsageHistoryQuery<TIncluded = {}> extends Request {\n private _variables: L.GetTokenUsageHistoryQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.GetTokenUsageHistoryQueryVariables = {} as L.GetTokenUsageHistoryQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ModelTokenUsage[]> {\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.GetTokenUsageHistoryDocument as unknown as DocumentNode, 'getTokenUsageHistory', this._includes, this._variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.GetTokenUsageHistoryQuery>(queryDoc, mergedVars, 'getTokenUsageHistory');\n const data = response.getTokenUsageHistory;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new ModelTokenUsage(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class GetTokenUsageStatusQuery<TIncluded = {}> extends Request {\n private _variables: L.GetTokenUsageStatusQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.GetTokenUsageStatusQueryVariables = {} as L.GetTokenUsageStatusQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<UsageStatus, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.GetTokenUsageStatusDocument as unknown as DocumentNode, 'getTokenUsageStatus', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.GetTokenUsageStatusQuery>(queryDoc, mergedVars, 'getTokenUsageStatus');\n const data = response.getTokenUsageStatus;\n const instance = new UsageStatus(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<UsageStatus, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<UsageStatus, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.GetTokenUsageStatusDocument as unknown as DocumentNode, 'getTokenUsageStatus', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.GetTokenUsageStatusQuery>(\n queryDoc,\n mergedVars,\n 'getTokenUsageStatus',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('usageStatus');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('usageStatus').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'usageStatus', parentId, includes);\n return { getTokenUsageStatus: result } as L.GetTokenUsageStatusQuery;\n }\n return { getTokenUsageStatus: entity ?? null } as L.GetTokenUsageStatusQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.getTokenUsageStatus;\n const instance = new UsageStatus(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<UsageStatus, TIncluded>;\n });\n }\n\n /** Include windows in this query (Smart Fetch — single HTTP request). */\n public windows(variables?: L.GetTokenUsageStatus_WindowsQueryVariables): GetTokenUsageStatusQuery<TIncluded & { windows: UsageWindowsStatusType }> {\n const info = extractIncludeInfo(L.GetTokenUsageStatus_WindowsDocument as unknown as import('graphql').DocumentNode, 'windows', []);\n this._includes.push({\n fieldName: 'windows',\n fragmentDoc: L.UsageWindowsStatusTypeFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'usageWindowsStatusTypes',\n requiredFields: [],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new UsageWindowsStatusType(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class GetTokenUsageStatus_WindowsQuery extends Request {\n private _variables: L.GetTokenUsageStatus_WindowsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.GetTokenUsageStatus_WindowsQueryVariables = {} as L.GetTokenUsageStatus_WindowsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<UsageWindowsStatusType | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.GetTokenUsageStatus_WindowsQuery>(L.GetTokenUsageStatus_WindowsDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'getTokenUsageStatus');\n const data = response.getTokenUsageStatus?.windows;\n return data ? new UsageWindowsStatusType(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<UsageWindowsStatusType | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.GetTokenUsageStatus_WindowsQuery>(\n L.GetTokenUsageStatus_WindowsDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'getTokenUsageStatus',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('usageWindowsStatusTypes').get(vars.id) : undefined;\n return { getTokenUsageStatus: { windows: entity ?? null } } as L.GetTokenUsageStatus_WindowsQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.getTokenUsageStatus?.windows;\n return data ? new UsageWindowsStatusType(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class GetTokenUsageStatus_Windows_DayQuery extends Request {\n private _variables: L.GetTokenUsageStatus_Windows_DayQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.GetTokenUsageStatus_Windows_DayQueryVariables = {} as L.GetTokenUsageStatus_Windows_DayQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WindowDetailType | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.GetTokenUsageStatus_Windows_DayQuery>(L.GetTokenUsageStatus_Windows_DayDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'getTokenUsageStatus');\n const data = response.getTokenUsageStatus?.windows?.day;\n return data ? new WindowDetailType(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WindowDetailType | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.GetTokenUsageStatus_Windows_DayQuery>(\n L.GetTokenUsageStatus_Windows_DayDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'getTokenUsageStatus',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('windowDetailTypes').get(vars.id) : undefined;\n return { getTokenUsageStatus: { windows: { day: entity ?? null } } } as L.GetTokenUsageStatus_Windows_DayQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.getTokenUsageStatus?.windows?.day;\n return data ? new WindowDetailType(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class GetTokenUsageStatus_Windows_FiveHourQuery extends Request {\n private _variables: L.GetTokenUsageStatus_Windows_FiveHourQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.GetTokenUsageStatus_Windows_FiveHourQueryVariables = {} as L.GetTokenUsageStatus_Windows_FiveHourQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WindowDetailType | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.GetTokenUsageStatus_Windows_FiveHourQuery>(L.GetTokenUsageStatus_Windows_FiveHourDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'getTokenUsageStatus');\n const data = response.getTokenUsageStatus?.windows?.fiveHour;\n return data ? new WindowDetailType(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WindowDetailType | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.GetTokenUsageStatus_Windows_FiveHourQuery>(\n L.GetTokenUsageStatus_Windows_FiveHourDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'getTokenUsageStatus',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('windowDetailTypes').get(vars.id) : undefined;\n return { getTokenUsageStatus: { windows: { fiveHour: entity ?? null } } } as L.GetTokenUsageStatus_Windows_FiveHourQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.getTokenUsageStatus?.windows?.fiveHour;\n return data ? new WindowDetailType(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class GetTokenUsageStatus_Windows_WeekQuery extends Request {\n private _variables: L.GetTokenUsageStatus_Windows_WeekQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.GetTokenUsageStatus_Windows_WeekQueryVariables = {} as L.GetTokenUsageStatus_Windows_WeekQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WindowDetailType | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.GetTokenUsageStatus_Windows_WeekQuery>(L.GetTokenUsageStatus_Windows_WeekDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'getTokenUsageStatus');\n const data = response.getTokenUsageStatus?.windows?.week;\n return data ? new WindowDetailType(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WindowDetailType | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.GetTokenUsageStatus_Windows_WeekQuery>(\n L.GetTokenUsageStatus_Windows_WeekDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'getTokenUsageStatus',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('windowDetailTypes').get(vars.id) : undefined;\n return { getTokenUsageStatus: { windows: { week: entity ?? null } } } as L.GetTokenUsageStatus_Windows_WeekQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.getTokenUsageStatus?.windows?.week;\n return data ? new WindowDetailType(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class GetUsageQuery extends Request {\n public async fetch(variables: L.GetUsageQueryVariables): Promise<number | undefined> {\n const response = await this._request<L.GetUsageQuery>(L.GetUsageDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.getUsage ?? undefined;\n }\n}\n\nexport class InsightQuery<TIncluded = {}> extends Request {\n private _variables: L.InsightQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.InsightQueryVariables = {} as L.InsightQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Insight, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.InsightDocument as unknown as DocumentNode, 'insight', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.InsightQuery>(queryDoc, mergedVars, 'insight');\n const data = response.insight;\n const instance = new Insight(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Insight, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Insight, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.InsightDocument as unknown as DocumentNode, 'insight', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.InsightQuery>(\n queryDoc,\n mergedVars,\n 'insight',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('insights');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('insights').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'insights', parentId, includes);\n return { insight: result } as L.InsightQuery;\n }\n return { insight: entity ?? null } as L.InsightQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.insight;\n const instance = new Insight(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Insight, TIncluded>;\n });\n }\n\n /** Include chat in this query (Smart Fetch — single HTTP request). */\n public chat(variables?: Omit<L.Insight_ChatQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): InsightQuery<TIncluded & { chat: Chat }> {\n const info = extractIncludeInfo(L.Insight_ChatDocument as unknown as import('graphql').DocumentNode, 'chat', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chat',\n fragmentDoc: L.ChatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include reportMembers in this query (Smart Fetch — single HTTP request). */\n public reportMembers(variables?: Omit<L.Insight_ReportMembersQueryVariables, 'id'>): InsightQuery<TIncluded & { reportMembers: ReportMember[] }> {\n const info = extractIncludeInfo(L.Insight_ReportMembersDocument as unknown as import('graphql').DocumentNode, 'reportMembers', ['id']);\n this._includes.push({\n fieldName: 'reportMembers',\n fragmentDoc: L.ReportMemberFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'reportMembers',\n requiredFields: ['insightId', 'order', 'presentation', 'reportId', 'size'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ReportMember(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include reports in this query (Smart Fetch — single HTTP request). */\n public reports(variables?: Omit<L.Insight_ReportsQueryVariables, 'id'>, builder?: (q: ReportSubBuilder) => ReportSubBuilder<any>): InsightQuery<TIncluded & { reports: ReportConnection }> {\n const info = extractIncludeInfo(L.Insight_ReportsDocument as unknown as import('graphql').DocumentNode, 'reports', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ReportSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'reports',\n fragmentDoc: L.ReportConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'reports',\n requiredFields: ['createdAt', 'id', 'name', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Report(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ReportConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class Insight_ChatQuery extends Request {\n private _variables: L.Insight_ChatQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Insight_ChatQueryVariables = {} as L.Insight_ChatQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Chat | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Insight_ChatQuery>(L.Insight_ChatDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'insight');\n const data = response.insight?.chat;\n return data ? new Chat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Chat | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Insight_ChatQuery>(\n L.Insight_ChatDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'insight',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('chats').get(vars.id) : undefined;\n return { insight: { chat: entity ?? null } } as L.Insight_ChatQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.insight?.chat;\n return data ? new Chat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Insight_ReportMembersQuery extends Request {\n private _variables: L.Insight_ReportMembersQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Insight_ReportMembersQueryVariables = {} as L.Insight_ReportMembersQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ReportMember[]> {\n const response = await this._syncEngine!.query<L.Insight_ReportMembersQuery>(L.Insight_ReportMembersDocument as unknown as DocumentNode, this._variables as Record<string, unknown>, 'insight');\n const data = response.insight?.reportMembers;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new ReportMember(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class Insight_ReportsQuery extends Request {\n private _variables: L.Insight_ReportsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Insight_ReportsQueryVariables = {} as L.Insight_ReportsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ReportConnection> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Insight_ReportsQuery>(L.Insight_ReportsDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'insight');\n const data = response.insight?.reports;\n return new ReportConnection(this._request, (conn, opts) => new Insight_ReportsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Insight_ReportsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ReportConnection> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Insight_ReportsQuery>(\n L.Insight_ReportsDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'insight',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('insight', variables as Record<string, unknown>, L.Insight_ReportsDocument as unknown as DocumentNode));\n const nodes = qr ? await db.table('reports').bulkGet(qr.entityIds) : [];\n return { insight: { reports: { __typename: 'ReportConnection' as const, nodes: nodes.filter(Boolean), pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } } as L.Insight_ReportsQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.insight?.reports;\n return new ReportConnection(this._request, (conn, opts) => new Insight_ReportsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Insight_ReportsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n });\n }\n}\n\nexport class InsightsQuery<TIncluded = {}> extends Request {\n private _variables: L.InsightsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.InsightsQueryVariables = {} as L.InsightsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<InsightConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.InsightsDocument as unknown as DocumentNode, 'insights', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.InsightsQuery>(queryDoc, mergedVars, 'insights');\n const data = response.insights;\n const connection = new InsightConnection(this._request, (conn, opts) => new InsightsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.InsightsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<InsightConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<InsightConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.InsightsDocument as unknown as DocumentNode, 'insights', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.InsightsQuery>(\n queryDoc,\n mergedVars,\n 'insights',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('insights', mergedVars, queryDoc));\n const nodes = qr ? await db.table('insights').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'insights', filteredNodes, includes) : filteredNodes;\n return { insights: { __typename: 'InsightConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.InsightsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'insights',\n operationName: 'insights',\n modelName: 'Insight',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.insights;\n const connection = new InsightConnection(this._request, (conn, opts) => new InsightsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.InsightsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<InsightConnection, TIncluded>;\n });\n }\n\n /** Include chat in this query (Smart Fetch — single HTTP request). */\n public chat(variables?: Omit<L.Insight_ChatQueryVariables, 'id'>, builder?: (q: ChatSubBuilder) => ChatSubBuilder<any>): InsightsQuery<TIncluded & { chat: Chat }> {\n const info = extractIncludeInfo(L.Insight_ChatDocument as unknown as import('graphql').DocumentNode, 'chat', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ChatSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'chat',\n fragmentDoc: L.ChatFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'chats',\n requiredFields: ['createdAt', 'id', 'name', 'piiSanitizationEnabled', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Chat(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include reportMembers in this query (Smart Fetch — single HTTP request). */\n public reportMembers(variables?: Omit<L.Insight_ReportMembersQueryVariables, 'id'>): InsightsQuery<TIncluded & { reportMembers: ReportMember[] }> {\n const info = extractIncludeInfo(L.Insight_ReportMembersDocument as unknown as import('graphql').DocumentNode, 'reportMembers', ['id']);\n this._includes.push({\n fieldName: 'reportMembers',\n fragmentDoc: L.ReportMemberFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'reportMembers',\n requiredFields: ['insightId', 'order', 'presentation', 'reportId', 'size'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ReportMember(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include reports in this query (Smart Fetch — single HTTP request). */\n public reports(variables?: Omit<L.Insight_ReportsQueryVariables, 'id'>, builder?: (q: ReportSubBuilder) => ReportSubBuilder<any>): InsightsQuery<TIncluded & { reports: ReportConnection }> {\n const info = extractIncludeInfo(L.Insight_ReportsDocument as unknown as import('graphql').DocumentNode, 'reports', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new ReportSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'reports',\n fragmentDoc: L.ReportConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'reports',\n requiredFields: ['createdAt', 'id', 'name', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Report(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new ReportConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class IntegrationQuery<TIncluded = {}> extends Request {\n private _variables: L.IntegrationQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.IntegrationQueryVariables = {} as L.IntegrationQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Integration, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.IntegrationDocument as unknown as DocumentNode, 'integration', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.IntegrationQuery>(queryDoc, mergedVars, 'integration');\n const data = response.integration;\n const instance = new Integration(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Integration, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Integration, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.IntegrationDocument as unknown as DocumentNode, 'integration', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.IntegrationQuery>(\n queryDoc,\n mergedVars,\n 'integration',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('integrations');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('integrations').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'integrations', parentId, includes);\n return { integration: result } as L.IntegrationQuery;\n }\n return { integration: entity ?? null } as L.IntegrationQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.integration;\n const instance = new Integration(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Integration, TIncluded>;\n });\n }\n\n /** Include provider in this query (Smart Fetch — single HTTP request). */\n public provider(variables?: Omit<L.Integration_ProviderQueryVariables, 'id'>): IntegrationQuery<TIncluded & { provider: IntegrationProvider }> {\n const info = extractIncludeInfo(L.Integration_ProviderDocument as unknown as import('graphql').DocumentNode, 'provider', ['id']);\n this._includes.push({\n fieldName: 'provider',\n fragmentDoc: L.IntegrationProviderFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'integrationProviders',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new IntegrationProvider(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class Integration_ProviderQuery extends Request {\n private _variables: L.Integration_ProviderQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Integration_ProviderQueryVariables = {} as L.Integration_ProviderQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<IntegrationProvider | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Integration_ProviderQuery>(L.Integration_ProviderDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'integration');\n const data = response.integration?.provider;\n return data ? new IntegrationProvider(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<IntegrationProvider | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Integration_ProviderQuery>(\n L.Integration_ProviderDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'integration',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('integrationProviders').get(vars.id) : undefined;\n return { integration: { provider: entity ?? null } } as L.Integration_ProviderQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.integration?.provider;\n return data ? new IntegrationProvider(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Integration_Provider_CatalogQuery extends Request {\n private _variables: L.Integration_Provider_CatalogQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Integration_Provider_CatalogQueryVariables = {} as L.Integration_Provider_CatalogQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<IntegrationCatalog | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Integration_Provider_CatalogQuery>(L.Integration_Provider_CatalogDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'integration');\n const data = response.integration?.provider?.catalog;\n return data ? new IntegrationCatalog(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<IntegrationCatalog | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Integration_Provider_CatalogQuery>(\n L.Integration_Provider_CatalogDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'integration',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('integrationCatalogs').get(vars.id) : undefined;\n return { integration: { provider: { catalog: entity ?? null } } } as L.Integration_Provider_CatalogQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.integration?.provider?.catalog;\n return data ? new IntegrationCatalog(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class IntegrationCatalogQuery<TIncluded = {}> extends Request {\n private _variables: L.IntegrationCatalogQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.IntegrationCatalogQueryVariables = {} as L.IntegrationCatalogQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<IntegrationCatalog, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.IntegrationCatalogDocument as unknown as DocumentNode, 'integrationCatalog', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.IntegrationCatalogQuery>(queryDoc, mergedVars, 'integrationCatalog');\n const data = response.integrationCatalog;\n const instance = new IntegrationCatalog(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<IntegrationCatalog, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<IntegrationCatalog, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.IntegrationCatalogDocument as unknown as DocumentNode, 'integrationCatalog', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.IntegrationCatalogQuery>(\n queryDoc,\n mergedVars,\n 'integrationCatalog',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('integrationCatalogs');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('integrationCatalogs').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'integrationCatalogs', parentId, includes);\n return { integrationCatalog: result } as L.IntegrationCatalogQuery;\n }\n return { integrationCatalog: entity ?? null } as L.IntegrationCatalogQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.integrationCatalog;\n const instance = new IntegrationCatalog(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<IntegrationCatalog, TIncluded>;\n });\n }\n\n /** Include provider in this query (Smart Fetch — single HTTP request). */\n public provider(variables: L.IntegrationCatalog_ProviderQueryVariables): IntegrationCatalogQuery<TIncluded & { provider: IntegrationProvider }> {\n const info = extractIncludeInfo(L.IntegrationCatalog_ProviderDocument as unknown as import('graphql').DocumentNode, 'provider', []);\n this._includes.push({\n fieldName: 'provider',\n fragmentDoc: L.IntegrationProviderFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'integrationProviders',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new IntegrationProvider(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class IntegrationCatalog_ProviderQuery extends Request {\n private _variables: L.IntegrationCatalog_ProviderQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.IntegrationCatalog_ProviderQueryVariables = {} as L.IntegrationCatalog_ProviderQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<IntegrationProvider | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.IntegrationCatalog_ProviderQuery>(L.IntegrationCatalog_ProviderDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'integrationCatalog');\n const data = response.integrationCatalog?.provider;\n return data ? new IntegrationProvider(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<IntegrationProvider | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.IntegrationCatalog_ProviderQuery>(\n L.IntegrationCatalog_ProviderDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'integrationCatalog',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('integrationProviders').get(vars.id) : undefined;\n return { integrationCatalog: { provider: entity ?? null } } as L.IntegrationCatalog_ProviderQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.integrationCatalog?.provider;\n return data ? new IntegrationProvider(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class IntegrationCatalogToolsQuery extends Request {\n public async fetch(variables: L.IntegrationCatalogToolsQueryVariables): Promise<string[]> {\n const response = await this._request<L.IntegrationCatalogToolsQuery>(L.IntegrationCatalogToolsDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.integrationCatalogTools;\n }\n}\n\nexport class IntegrationCatalogsQuery<TIncluded = {}> extends Request {\n private _variables: L.IntegrationCatalogsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.IntegrationCatalogsQueryVariables = {} as L.IntegrationCatalogsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<IntegrationCatalogConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.IntegrationCatalogsDocument as unknown as DocumentNode, 'integrationCatalogs', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.IntegrationCatalogsQuery>(queryDoc, mergedVars, 'integrationCatalogs');\n const data = response.integrationCatalogs;\n const connection = new IntegrationCatalogConnection(this._request, (conn, opts) => new IntegrationCatalogsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.IntegrationCatalogsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<IntegrationCatalogConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<IntegrationCatalogConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.IntegrationCatalogsDocument as unknown as DocumentNode, 'integrationCatalogs', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.IntegrationCatalogsQuery>(\n queryDoc,\n mergedVars,\n 'integrationCatalogs',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('integrationCatalogs', mergedVars, queryDoc));\n const nodes = qr ? await db.table('integrationCatalogs').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'integrationCatalogs', filteredNodes, includes) : filteredNodes;\n return { integrationCatalogs: { __typename: 'IntegrationCatalogConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.IntegrationCatalogsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'integrationCatalogs',\n operationName: 'integrationCatalogs',\n modelName: 'IntegrationCatalog',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.integrationCatalogs;\n const connection = new IntegrationCatalogConnection(this._request, (conn, opts) => new IntegrationCatalogsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.IntegrationCatalogsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<IntegrationCatalogConnection, TIncluded>;\n });\n }\n\n /** Include provider in this query (Smart Fetch — single HTTP request). */\n public provider(variables: L.IntegrationCatalog_ProviderQueryVariables): IntegrationCatalogsQuery<TIncluded & { provider: IntegrationProvider }> {\n const info = extractIncludeInfo(L.IntegrationCatalog_ProviderDocument as unknown as import('graphql').DocumentNode, 'provider', []);\n this._includes.push({\n fieldName: 'provider',\n fragmentDoc: L.IntegrationProviderFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'integrationProviders',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new IntegrationProvider(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class IntegrationsQuery<TIncluded = {}> extends Request {\n private _variables: L.IntegrationsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.IntegrationsQueryVariables = {} as L.IntegrationsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<IntegrationConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.IntegrationsDocument as unknown as DocumentNode, 'integrations', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.IntegrationsQuery>(queryDoc, mergedVars, 'integrations');\n const data = response.integrations;\n const connection = new IntegrationConnection(this._request, (conn, opts) => new IntegrationsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.IntegrationsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<IntegrationConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<IntegrationConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.IntegrationsDocument as unknown as DocumentNode, 'integrations', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.IntegrationsQuery>(\n queryDoc,\n mergedVars,\n 'integrations',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('integrations', mergedVars, queryDoc));\n const nodes = qr ? await db.table('integrations').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'integrations', filteredNodes, includes) : filteredNodes;\n return { integrations: { __typename: 'IntegrationConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.IntegrationsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'integrations',\n operationName: 'integrations',\n modelName: 'Integration',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.integrations;\n const connection = new IntegrationConnection(this._request, (conn, opts) => new IntegrationsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.IntegrationsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<IntegrationConnection, TIncluded>;\n });\n }\n\n /** Include provider in this query (Smart Fetch — single HTTP request). */\n public provider(variables?: Omit<L.Integration_ProviderQueryVariables, 'id'>): IntegrationsQuery<TIncluded & { provider: IntegrationProvider }> {\n const info = extractIncludeInfo(L.Integration_ProviderDocument as unknown as import('graphql').DocumentNode, 'provider', ['id']);\n this._includes.push({\n fieldName: 'provider',\n fragmentDoc: L.IntegrationProviderFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'integrationProviders',\n requiredFields: ['key'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new IntegrationProvider(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class InterpretationsQuery<TIncluded = {}> extends Request {\n private _variables: L.InterpretationsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.InterpretationsQueryVariables = {} as L.InterpretationsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<InterpretationConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.InterpretationsDocument as unknown as DocumentNode, 'interpretations', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.InterpretationsQuery>(queryDoc, mergedVars, 'interpretations');\n const data = response.interpretations;\n const connection = new InterpretationConnection(this._request, (conn, opts) => new InterpretationsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.InterpretationsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<InterpretationConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<InterpretationConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.InterpretationsDocument as unknown as DocumentNode, 'interpretations', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.InterpretationsQuery>(\n queryDoc,\n mergedVars,\n 'interpretations',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('interpretations', mergedVars, queryDoc));\n const nodes = qr ? await db.table('interpretations').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'interpretations', filteredNodes, includes) : filteredNodes;\n return { interpretations: { __typename: 'InterpretationConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.InterpretationsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'interpretations',\n operationName: 'interpretations',\n modelName: 'Interpretation',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.interpretations;\n const connection = new InterpretationConnection(this._request, (conn, opts) => new InterpretationsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.InterpretationsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<InterpretationConnection, TIncluded>;\n });\n }\n}\n\nexport class NotificationQuery<TIncluded = {}> extends Request {\n private _variables: L.NotificationQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.NotificationQueryVariables = {} as L.NotificationQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Notification, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.NotificationDocument as unknown as DocumentNode, 'notification', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.NotificationQuery>(queryDoc, mergedVars, 'notification');\n const data = response.notification;\n const instance = new Notification(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Notification, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Notification, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.NotificationDocument as unknown as DocumentNode, 'notification', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.NotificationQuery>(\n queryDoc,\n mergedVars,\n 'notification',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('notifications');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('notifications').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'notifications', parentId, includes);\n return { notification: result } as L.NotificationQuery;\n }\n return { notification: entity ?? null } as L.NotificationQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.notification;\n const instance = new Notification(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Notification, TIncluded>;\n });\n }\n}\n\nexport class NotificationsQuery<TIncluded = {}> extends Request {\n private _variables: L.NotificationsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.NotificationsQueryVariables = {} as L.NotificationsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<NotificationConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.NotificationsDocument as unknown as DocumentNode, 'notifications', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.NotificationsQuery>(queryDoc, mergedVars, 'notifications');\n const data = response.notifications;\n const connection = new NotificationConnection(this._request, (conn, opts) => new NotificationsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.NotificationsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<NotificationConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<NotificationConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.NotificationsDocument as unknown as DocumentNode, 'notifications', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.NotificationsQuery>(\n queryDoc,\n mergedVars,\n 'notifications',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('notifications', mergedVars, queryDoc));\n const nodes = qr ? await db.table('notifications').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'notifications', filteredNodes, includes) : filteredNodes;\n return { notifications: { __typename: 'NotificationConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.NotificationsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'notifications',\n operationName: 'notifications',\n modelName: 'Notification',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.notifications;\n const connection = new NotificationConnection(this._request, (conn, opts) => new NotificationsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.NotificationsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<NotificationConnection, TIncluded>;\n });\n }\n}\n\nexport class NotificationsByReferenceQuery<TIncluded = {}> extends Request {\n private _variables: L.NotificationsByReferenceQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.NotificationsByReferenceQueryVariables = {} as L.NotificationsByReferenceQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Notification[]> {\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.NotificationsByReferenceDocument as unknown as DocumentNode, 'notificationsByReference', this._includes, this._variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.NotificationsByReferenceQuery>(queryDoc, mergedVars, 'notificationsByReference');\n const data = response.notificationsByReference;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new Notification(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class PrivacyStatsQuery<TIncluded = {}> extends Request {\n private _variables: L.PrivacyStatsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.PrivacyStatsQueryVariables = {} as L.PrivacyStatsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<PrivacyStats, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PrivacyStatsDocument as unknown as DocumentNode, 'privacyStats', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.PrivacyStatsQuery>(queryDoc, mergedVars, 'privacyStats');\n const data = response.privacyStats;\n const instance = new PrivacyStats(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<PrivacyStats, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<PrivacyStats, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PrivacyStatsDocument as unknown as DocumentNode, 'privacyStats', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.PrivacyStatsQuery>(\n queryDoc,\n mergedVars,\n 'privacyStats',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('privacyStats');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('privacyStats').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'privacyStats', parentId, includes);\n return { privacyStats: result } as L.PrivacyStatsQuery;\n }\n return { privacyStats: entity ?? null } as L.PrivacyStatsQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.privacyStats;\n const instance = new PrivacyStats(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<PrivacyStats, TIncluded>;\n });\n }\n}\n\nexport class PulseAppSummaryQuery<TIncluded = {}> extends Request {\n private _variables: L.PulseAppSummaryQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.PulseAppSummaryQueryVariables = {} as L.PulseAppSummaryQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<PulseAppSummaryModel, TIncluded> | undefined> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PulseAppSummaryDocument as unknown as DocumentNode, 'pulseAppSummary', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.PulseAppSummaryQuery>(queryDoc, mergedVars, 'pulseAppSummary');\n const data = response.pulseAppSummary;\n if (!data) return undefined;\n const instance = new PulseAppSummaryModel(this._request, data as any, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<PulseAppSummaryModel, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<PulseAppSummaryModel, TIncluded> | undefined> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PulseAppSummaryDocument as unknown as DocumentNode, 'pulseAppSummary', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.PulseAppSummaryQuery>(\n queryDoc,\n mergedVars,\n 'pulseAppSummary',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('pulseAppSummaryModels');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('pulseAppSummaryModels').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'pulseAppSummaryModels', parentId, includes);\n return { pulseAppSummary: result } as L.PulseAppSummaryQuery;\n }\n return { pulseAppSummary: entity ?? null } as L.PulseAppSummaryQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.pulseAppSummary;\n if (!data) return undefined;\n const instance = new PulseAppSummaryModel(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<PulseAppSummaryModel, TIncluded>;\n });\n }\n}\n\nexport class PulseEventQuery<TIncluded = {}> extends Request {\n private _variables: L.PulseEventQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.PulseEventQueryVariables = {} as L.PulseEventQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<PulseEvent, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PulseEventDocument as unknown as DocumentNode, 'pulseEvent', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.PulseEventQuery>(queryDoc, mergedVars, 'pulseEvent');\n const data = response.pulseEvent;\n const instance = new PulseEvent(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<PulseEvent, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<PulseEvent, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PulseEventDocument as unknown as DocumentNode, 'pulseEvent', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.PulseEventQuery>(\n queryDoc,\n mergedVars,\n 'pulseEvent',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('pulseEvents');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('pulseEvents').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'pulseEvents', parentId, includes);\n return { pulseEvent: result } as L.PulseEventQuery;\n }\n return { pulseEvent: entity ?? null } as L.PulseEventQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.pulseEvent;\n const instance = new PulseEvent(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<PulseEvent, TIncluded>;\n });\n }\n\n /** Include integration in this query (Smart Fetch — single HTTP request). */\n public integration(variables?: Omit<L.PulseEvent_IntegrationQueryVariables, 'id'>, builder?: (q: IntegrationSubBuilder) => IntegrationSubBuilder<any>): PulseEventQuery<TIncluded & { integration: Integration }> {\n const info = extractIncludeInfo(L.PulseEvent_IntegrationDocument as unknown as import('graphql').DocumentNode, 'integration', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new IntegrationSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'integration',\n fragmentDoc: L.IntegrationFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'integrations',\n requiredFields: ['createdAt', 'id', 'providerKey', 'status', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Integration(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class PulseEvent_IntegrationQuery extends Request {\n private _variables: L.PulseEvent_IntegrationQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.PulseEvent_IntegrationQueryVariables = {} as L.PulseEvent_IntegrationQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Integration | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.PulseEvent_IntegrationQuery>(L.PulseEvent_IntegrationDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'pulseEvent');\n const data = response.pulseEvent?.integration;\n return data ? new Integration(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Integration | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.PulseEvent_IntegrationQuery>(\n L.PulseEvent_IntegrationDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'pulseEvent',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('integrations').get(vars.id) : undefined;\n return { pulseEvent: { integration: entity ?? null } } as L.PulseEvent_IntegrationQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.pulseEvent?.integration;\n return data ? new Integration(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class PulseEvent_Integration_ProviderQuery extends Request {\n private _variables: L.PulseEvent_Integration_ProviderQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.PulseEvent_Integration_ProviderQueryVariables = {} as L.PulseEvent_Integration_ProviderQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<IntegrationProvider | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.PulseEvent_Integration_ProviderQuery>(L.PulseEvent_Integration_ProviderDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'pulseEvent');\n const data = response.pulseEvent?.integration?.provider;\n return data ? new IntegrationProvider(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<IntegrationProvider | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.PulseEvent_Integration_ProviderQuery>(\n L.PulseEvent_Integration_ProviderDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'pulseEvent',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('integrationProviders').get(vars.id) : undefined;\n return { pulseEvent: { integration: { provider: entity ?? null } } } as L.PulseEvent_Integration_ProviderQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.pulseEvent?.integration?.provider;\n return data ? new IntegrationProvider(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class PulseEventStatsQuery<TIncluded = {}> extends Request {\n private _variables: L.PulseEventStatsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.PulseEventStatsQueryVariables = {} as L.PulseEventStatsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<PulseEventStatsModel, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PulseEventStatsDocument as unknown as DocumentNode, 'pulseEventStats', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.PulseEventStatsQuery>(queryDoc, mergedVars, 'pulseEventStats');\n const data = response.pulseEventStats;\n const instance = new PulseEventStatsModel(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<PulseEventStatsModel, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<PulseEventStatsModel, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PulseEventStatsDocument as unknown as DocumentNode, 'pulseEventStats', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.PulseEventStatsQuery>(\n queryDoc,\n mergedVars,\n 'pulseEventStats',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('pulseEventStatsModels');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('pulseEventStatsModels').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'pulseEventStatsModels', parentId, includes);\n return { pulseEventStats: result } as L.PulseEventStatsQuery;\n }\n return { pulseEventStats: entity ?? null } as L.PulseEventStatsQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.pulseEventStats;\n const instance = new PulseEventStatsModel(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<PulseEventStatsModel, TIncluded>;\n });\n }\n}\n\nexport class PulseEventsQuery<TIncluded = {}> extends Request {\n private _variables: L.PulseEventsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.PulseEventsQueryVariables = {} as L.PulseEventsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<PulseEventConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PulseEventsDocument as unknown as DocumentNode, 'pulseEvents', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.PulseEventsQuery>(queryDoc, mergedVars, 'pulseEvents');\n const data = response.pulseEvents;\n const connection = new PulseEventConnection(this._request, (conn, opts) => new PulseEventsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.PulseEventsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<PulseEventConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<PulseEventConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PulseEventsDocument as unknown as DocumentNode, 'pulseEvents', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.PulseEventsQuery>(\n queryDoc,\n mergedVars,\n 'pulseEvents',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('pulseEvents', mergedVars, queryDoc));\n const nodes = qr ? await db.table('pulseEvents').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'pulseEvents', filteredNodes, includes) : filteredNodes;\n return { pulseEvents: { __typename: 'PulseEventConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.PulseEventsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'pulseEvents',\n operationName: 'pulseEvents',\n modelName: 'PulseEvent',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.pulseEvents;\n const connection = new PulseEventConnection(this._request, (conn, opts) => new PulseEventsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.PulseEventsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<PulseEventConnection, TIncluded>;\n });\n }\n\n /** Include integration in this query (Smart Fetch — single HTTP request). */\n public integration(variables?: Omit<L.PulseEvent_IntegrationQueryVariables, 'id'>, builder?: (q: IntegrationSubBuilder) => IntegrationSubBuilder<any>): PulseEventsQuery<TIncluded & { integration: Integration }> {\n const info = extractIncludeInfo(L.PulseEvent_IntegrationDocument as unknown as import('graphql').DocumentNode, 'integration', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new IntegrationSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'integration',\n fragmentDoc: L.IntegrationFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'integrations',\n requiredFields: ['createdAt', 'id', 'providerKey', 'status', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Integration(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class PulseTriggerSettingsQuery<TIncluded = {}> extends Request {\n private _variables: L.PulseTriggerSettingsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.PulseTriggerSettingsQueryVariables = {} as L.PulseTriggerSettingsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<PulseTriggerSettingModel[]> {\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.PulseTriggerSettingsDocument as unknown as DocumentNode, 'pulseTriggerSettings', this._includes, this._variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.PulseTriggerSettingsQuery>(queryDoc, mergedVars, 'pulseTriggerSettings');\n const data = response.pulseTriggerSettings;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new PulseTriggerSettingModel(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class QueryQuery extends Request {\n public async fetch(variables: L.QueryQueryVariables): Promise<any> {\n const response = await this._request<L.QueryQuery>(L.QueryDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.query;\n }\n}\n\nexport class QueryWithInsightIdQuery extends Request {\n public async fetch(variables: L.QueryWithInsightIdQueryVariables): Promise<any> {\n const response = await this._request<L.QueryWithInsightIdQuery>(L.QueryWithInsightIdDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.queryWithInsightId;\n }\n}\n\nexport class QueryWithMessageIdQuery extends Request {\n public async fetch(variables: L.QueryWithMessageIdQueryVariables): Promise<any> {\n const response = await this._request<L.QueryWithMessageIdQuery>(L.QueryWithMessageIdDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n return response.queryWithMessageId;\n }\n}\n\nexport class ReportQuery<TIncluded = {}> extends Request {\n private _variables: L.ReportQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ReportQueryVariables = {} as L.ReportQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Report, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ReportDocument as unknown as DocumentNode, 'report', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.ReportQuery>(queryDoc, mergedVars, 'report');\n const data = response.report;\n const instance = new Report(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Report, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Report, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ReportDocument as unknown as DocumentNode, 'report', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.ReportQuery>(\n queryDoc,\n mergedVars,\n 'report',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('reports');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('reports').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'reports', parentId, includes);\n return { report: result } as L.ReportQuery;\n }\n return { report: entity ?? null } as L.ReportQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.report;\n const instance = new Report(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Report, TIncluded>;\n });\n }\n\n /** Include insights in this query (Smart Fetch — single HTTP request). */\n public insights(variables?: Omit<L.Report_InsightsQueryVariables, 'id'>, builder?: (q: InsightSubBuilder) => InsightSubBuilder<any>): ReportQuery<TIncluded & { insights: InsightConnection }> {\n const info = extractIncludeInfo(L.Report_InsightsDocument as unknown as import('graphql').DocumentNode, 'insights', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new InsightSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'insights',\n fragmentDoc: L.InsightConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'insights',\n requiredFields: ['createdAt', 'id', 'name', 'presentation', 'query', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Insight(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new InsightConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include layout in this query (Smart Fetch — single HTTP request). */\n public layout(variables?: Omit<L.Report_LayoutQueryVariables, 'id'>): ReportQuery<TIncluded & { layout: ReportMember[] }> {\n const info = extractIncludeInfo(L.Report_LayoutDocument as unknown as import('graphql').DocumentNode, 'layout', ['id']);\n this._includes.push({\n fieldName: 'layout',\n fragmentDoc: L.ReportMemberFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'reportMembers',\n requiredFields: ['insightId', 'order', 'presentation', 'reportId', 'size'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ReportMember(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class Report_InsightsQuery extends Request {\n private _variables: L.Report_InsightsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Report_InsightsQueryVariables = {} as L.Report_InsightsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<InsightConnection> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Report_InsightsQuery>(L.Report_InsightsDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'report');\n const data = response.report?.insights;\n return new InsightConnection(this._request, (conn, opts) => new Report_InsightsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Report_InsightsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<InsightConnection> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Report_InsightsQuery>(\n L.Report_InsightsDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'report',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('report', variables as Record<string, unknown>, L.Report_InsightsDocument as unknown as DocumentNode));\n const nodes = qr ? await db.table('insights').bulkGet(qr.entityIds) : [];\n return { report: { insights: { __typename: 'InsightConnection' as const, nodes: nodes.filter(Boolean), pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } } as L.Report_InsightsQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.report?.insights;\n return new InsightConnection(this._request, (conn, opts) => new Report_InsightsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.Report_InsightsQueryVariables), this._baseUrl).fetch(opts), data, this._syncEngine, this._baseUrl);\n });\n }\n}\n\nexport class Report_LayoutQuery extends Request {\n private _variables: L.Report_LayoutQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Report_LayoutQueryVariables = {} as L.Report_LayoutQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ReportMember[]> {\n const response = await this._syncEngine!.query<L.Report_LayoutQuery>(L.Report_LayoutDocument as unknown as DocumentNode, this._variables as Record<string, unknown>, 'report');\n const data = response.report?.layout;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new ReportMember(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class ReportsQuery<TIncluded = {}> extends Request {\n private _variables: L.ReportsQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.ReportsQueryVariables = {} as L.ReportsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<ReportConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ReportsDocument as unknown as DocumentNode, 'reports', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.ReportsQuery>(queryDoc, mergedVars, 'reports');\n const data = response.reports;\n const connection = new ReportConnection(this._request, (conn, opts) => new ReportsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ReportsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<ReportConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<ReportConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.ReportsDocument as unknown as DocumentNode, 'reports', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.ReportsQuery>(\n queryDoc,\n mergedVars,\n 'reports',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('reports', mergedVars, queryDoc));\n const nodes = qr ? await db.table('reports').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'reports', filteredNodes, includes) : filteredNodes;\n return { reports: { __typename: 'ReportConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.ReportsQuery;\n },\n {\n id: subscriptionId,\n entityType: 'reports',\n operationName: 'reports',\n modelName: 'Report',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.reports;\n const connection = new ReportConnection(this._request, (conn, opts) => new ReportsQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.ReportsQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<ReportConnection, TIncluded>;\n });\n }\n\n /** Include insights in this query (Smart Fetch — single HTTP request). */\n public insights(variables?: Omit<L.Report_InsightsQueryVariables, 'id'>, builder?: (q: InsightSubBuilder) => InsightSubBuilder<any>): ReportsQuery<TIncluded & { insights: InsightConnection }> {\n const info = extractIncludeInfo(L.Report_InsightsDocument as unknown as import('graphql').DocumentNode, 'insights', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new InsightSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'insights',\n fragmentDoc: L.InsightConnectionFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: true,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'insights',\n requiredFields: ['createdAt', 'id', 'name', 'presentation', 'query', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Insight(req, data, se, bu),\n connectionFactory: (req: DvinaRequest, fetch: any, data: any, se?: SyncEngine, bu?: string) => new InsightConnection(req, fetch, data, se, bu),\n });\n return this as any;\n }\n\n /** Include layout in this query (Smart Fetch — single HTTP request). */\n public layout(variables?: Omit<L.Report_LayoutQueryVariables, 'id'>): ReportsQuery<TIncluded & { layout: ReportMember[] }> {\n const info = extractIncludeInfo(L.Report_LayoutDocument as unknown as import('graphql').DocumentNode, 'layout', ['id']);\n this._includes.push({\n fieldName: 'layout',\n fragmentDoc: L.ReportMemberFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'reportMembers',\n requiredFields: ['insightId', 'order', 'presentation', 'reportId', 'size'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new ReportMember(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class SearchQuery<TIncluded = {}> extends Request {\n private _variables: L.SearchQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.SearchQueryVariables = {} as L.SearchQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<IndexContentObject[]> {\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.SearchDocument as unknown as DocumentNode, 'search', this._includes, this._variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.SearchQuery>(queryDoc, mergedVars, 'search');\n const data = response.search;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new IndexContentObject(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class TableQuery<TIncluded = {}> extends Request {\n private _variables: L.TableQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.TableQueryVariables = {} as L.TableQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<Table, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.TableDocument as unknown as DocumentNode, 'table', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.TableQuery>(queryDoc, mergedVars, 'table');\n const data = response.table;\n const instance = new Table(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Table, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<Table, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.TableDocument as unknown as DocumentNode, 'table', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.TableQuery>(\n queryDoc,\n mergedVars,\n 'table',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('tables');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('tables').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'tables', parentId, includes);\n return { table: result } as L.TableQuery;\n }\n return { table: entity ?? null } as L.TableQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.table;\n const instance = new Table(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<Table, TIncluded>;\n });\n }\n\n /** Include database in this query (Smart Fetch — single HTTP request). */\n public database(variables?: Omit<L.Table_DatabaseQueryVariables, 'id'>, builder?: (q: DatabaseSubBuilder) => DatabaseSubBuilder<any>): TableQuery<TIncluded & { database: Database }> {\n const info = extractIncludeInfo(L.Table_DatabaseDocument as unknown as import('graphql').DocumentNode, 'database', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new DatabaseSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'database',\n fragmentDoc: L.DatabaseFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'databases',\n requiredFields: ['createdAt', 'engineKey', 'id', 'isReady', 'name', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Database(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include document in this query (Smart Fetch — single HTTP request). */\n public document(variables?: Omit<L.Table_DocumentQueryVariables, 'id'>, builder?: (q: DocumentSubBuilder) => DocumentSubBuilder<any>): TableQuery<TIncluded & { document: Document }> {\n const info = extractIncludeInfo(L.Table_DocumentDocument as unknown as import('graphql').DocumentNode, 'document', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new DocumentSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'document',\n fragmentDoc: L.DocumentFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documents',\n requiredFields: ['createdAt', 'fileId', 'formatKey', 'id', 'isDeepAnalyzed', 'isReady', 'isStructured', 'name', 'path', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Document(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include fromRelations in this query (Smart Fetch — single HTTP request). */\n public fromRelations(variables?: Omit<L.Table_FromRelationsQueryVariables, 'id'>): TableQuery<TIncluded & { fromRelations: Relation[] }> {\n const info = extractIncludeInfo(L.Table_FromRelationsDocument as unknown as import('graphql').DocumentNode, 'fromRelations', ['id']);\n this._includes.push({\n fieldName: 'fromRelations',\n fragmentDoc: L.RelationFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'relations',\n requiredFields: ['createdAt', 'fromTableColumn', 'fromTableId', 'id', 'toTableColumn', 'toTableId', 'type', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Relation(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include toRelations in this query (Smart Fetch — single HTTP request). */\n public toRelations(variables?: Omit<L.Table_ToRelationsQueryVariables, 'id'>): TableQuery<TIncluded & { toRelations: Relation[] }> {\n const info = extractIncludeInfo(L.Table_ToRelationsDocument as unknown as import('graphql').DocumentNode, 'toRelations', ['id']);\n this._includes.push({\n fieldName: 'toRelations',\n fragmentDoc: L.RelationFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'relations',\n requiredFields: ['createdAt', 'fromTableColumn', 'fromTableId', 'id', 'toTableColumn', 'toTableId', 'type', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Relation(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class Table_DatabaseQuery extends Request {\n private _variables: L.Table_DatabaseQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Table_DatabaseQueryVariables = {} as L.Table_DatabaseQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Database | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Table_DatabaseQuery>(L.Table_DatabaseDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'table');\n const data = response.table?.database;\n return data ? new Database(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Database | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Table_DatabaseQuery>(\n L.Table_DatabaseDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'table',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('databases').get(vars.id) : undefined;\n return { table: { database: entity ?? null } } as L.Table_DatabaseQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.table?.database;\n return data ? new Database(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Table_Database_EngineQuery extends Request {\n private _variables: L.Table_Database_EngineQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Table_Database_EngineQueryVariables = {} as L.Table_Database_EngineQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DatabaseEngine | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Table_Database_EngineQuery>(L.Table_Database_EngineDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'table');\n const data = response.table?.database?.engine;\n return data ? new DatabaseEngine(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<DatabaseEngine | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Table_Database_EngineQuery>(\n L.Table_Database_EngineDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'table',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('databaseEngines').get(vars.id) : undefined;\n return { table: { database: { engine: entity ?? null } } } as L.Table_Database_EngineQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.table?.database?.engine;\n return data ? new DatabaseEngine(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Table_DocumentQuery extends Request {\n private _variables: L.Table_DocumentQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Table_DocumentQueryVariables = {} as L.Table_DocumentQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Document | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Table_DocumentQuery>(L.Table_DocumentDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'table');\n const data = response.table?.document;\n return data ? new Document(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<Document | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Table_DocumentQuery>(\n L.Table_DocumentDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'table',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('documents').get(vars.id) : undefined;\n return { table: { document: entity ?? null } } as L.Table_DocumentQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.table?.document;\n return data ? new Document(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Table_Document_ContentsQuery extends Request {\n private _variables: L.Table_Document_ContentsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Table_Document_ContentsQueryVariables = {} as L.Table_Document_ContentsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DocumentContent[]> {\n const response = await this._syncEngine!.query<L.Table_Document_ContentsQuery>(L.Table_Document_ContentsDocument as unknown as DocumentNode, this._variables as Record<string, unknown>, 'table');\n const data = response.table?.document?.contents;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new DocumentContent(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class Table_Document_FileQuery extends Request {\n private _variables: L.Table_Document_FileQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Table_Document_FileQueryVariables = {} as L.Table_Document_FileQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<File | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Table_Document_FileQuery>(L.Table_Document_FileDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'table');\n const data = response.table?.document?.file;\n return data ? new File(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<File | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Table_Document_FileQuery>(\n L.Table_Document_FileDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'table',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('files').get(vars.id) : undefined;\n return { table: { document: { file: entity ?? null } } } as L.Table_Document_FileQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.table?.document?.file;\n return data ? new File(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Table_Document_FormatQuery extends Request {\n private _variables: L.Table_Document_FormatQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Table_Document_FormatQueryVariables = {} as L.Table_Document_FormatQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<DocumentFormat | undefined> {\n const variables = this._variables;\n const response = await this._syncEngine!.query<L.Table_Document_FormatQuery>(L.Table_Document_FormatDocument as unknown as DocumentNode, variables as Record<string, unknown>, 'table');\n const data = response.table?.document?.format;\n return data ? new DocumentFormat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<DocumentFormat | undefined> {\n const variables = this._variables;\n const raw = this._syncEngine!.watch<L.Table_Document_FormatQuery>(\n L.Table_Document_FormatDocument as unknown as DocumentNode,\n variables as Record<string, unknown>,\n 'table',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const entity = vars?.id ? await db.table('documentFormats').get(vars.id) : undefined;\n return { table: { document: { format: entity ?? null } } } as L.Table_Document_FormatQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.table?.document?.format;\n return data ? new DocumentFormat(this._request, data as any, this._syncEngine, this._baseUrl) : undefined;\n });\n }\n}\n\nexport class Table_FromRelationsQuery extends Request {\n private _variables: L.Table_FromRelationsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Table_FromRelationsQueryVariables = {} as L.Table_FromRelationsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Relation[]> {\n const response = await this._syncEngine!.query<L.Table_FromRelationsQuery>(L.Table_FromRelationsDocument as unknown as DocumentNode, this._variables as Record<string, unknown>, 'table');\n const data = response.table?.fromRelations;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new Relation(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class Table_ToRelationsQuery extends Request {\n private _variables: L.Table_ToRelationsQueryVariables;\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.Table_ToRelationsQueryVariables = {} as L.Table_ToRelationsQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<Relation[]> {\n const response = await this._syncEngine!.query<L.Table_ToRelationsQuery>(L.Table_ToRelationsDocument as unknown as DocumentNode, this._variables as Record<string, unknown>, 'table');\n const data = response.table?.toRelations;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new Relation(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class TablesQuery<TIncluded = {}> extends Request {\n private _variables: L.TablesQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.TablesQueryVariables = {} as L.TablesQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<ConnectionWithNodes<TableConnection, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.TablesDocument as unknown as DocumentNode, 'tables', this._includes, variables as Record<string, unknown>, true);\n const response = await this._syncEngine!.query<L.TablesQuery>(queryDoc, mergedVars, 'tables');\n const data = response.tables;\n const connection = new TableConnection(this._request, (conn, opts) => new TablesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.TablesQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<TableConnection, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<ConnectionWithNodes<TableConnection, TIncluded>> {\n const variables = this._variables;\n const subscriptionId = crypto.randomUUID();\n const includes = this._includes;\n const watchedRelations = includes.flatMap((include) => include.syncMetadata ? [{ fieldName: include.fieldName, entityType: include.syncMetadata.entityType, requiredFields: include.syncMetadata.requiredFields, isConnection: include.isConnection, isList: Boolean(include.isList), hasNestedIncludes: Boolean(include.children?.length) }] : []);\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.TablesDocument as unknown as DocumentNode, 'tables', includes, variables as Record<string, unknown>, true);\n const raw = this._syncEngine!.watch<L.TablesQuery>(\n queryDoc,\n mergedVars,\n 'tables',\n async (db) => {\n const qr = await db._queryResults.get(buildQueryKey('tables', mergedVars, queryDoc));\n const nodes = qr ? await db.table('tables').bulkGet(qr.entityIds) : [];\n const filteredNodes = nodes.filter(Boolean) as Record<string, unknown>[];\n const enrichedNodes = includes.length > 0 ? await reconstructConnectionNodes(db, 'tables', filteredNodes, includes) : filteredNodes;\n return { tables: { __typename: 'TableConnection' as const, nodes: enrichedNodes, pageInfo: qr?.pageInfo ?? { hasNextPage: false, hasPreviousPage: false }, totalCount: qr?.totalCount ?? 0 } } as L.TablesQuery;\n },\n {\n id: subscriptionId,\n entityType: 'tables',\n operationName: 'tables',\n modelName: 'Table',\n filter: (variables as Record<string, unknown>)?.filter as Record<string, unknown> | undefined,\n },\n watchedRelations,\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.tables;\n const connection = new TableConnection(this._request, (conn, opts) => new TablesQuery(this._request, this._syncEngine, defaultConnection({ ...variables, ...conn } as L.TablesQueryVariables), this._baseUrl).fetch(opts) as any, data, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n const rawNodes = (data as any).nodes ?? [];\n for (let i = 0; i < connection.nodes.length; i++) {\n hydrateIncludes(connection.nodes[i], rawNodes[i] ?? {}, includes, this._request, this._syncEngine, this._baseUrl);\n }\n }\n return connection as unknown as ConnectionWithNodes<TableConnection, TIncluded>;\n });\n }\n\n /** Include database in this query (Smart Fetch — single HTTP request). */\n public database(variables?: Omit<L.Table_DatabaseQueryVariables, 'id'>, builder?: (q: DatabaseSubBuilder) => DatabaseSubBuilder<any>): TablesQuery<TIncluded & { database: Database }> {\n const info = extractIncludeInfo(L.Table_DatabaseDocument as unknown as import('graphql').DocumentNode, 'database', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new DatabaseSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'database',\n fragmentDoc: L.DatabaseFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'databases',\n requiredFields: ['createdAt', 'engineKey', 'id', 'isReady', 'name', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Database(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include document in this query (Smart Fetch — single HTTP request). */\n public document(variables?: Omit<L.Table_DocumentQueryVariables, 'id'>, builder?: (q: DocumentSubBuilder) => DocumentSubBuilder<any>): TablesQuery<TIncluded & { document: Document }> {\n const info = extractIncludeInfo(L.Table_DocumentDocument as unknown as import('graphql').DocumentNode, 'document', ['id']);\n let children: IncludeDirective[] | undefined;\n if (builder) {\n const sub = new DocumentSubBuilder();\n builder(sub);\n children = sub._includes;\n }\n this._includes.push({\n fieldName: 'document',\n fragmentDoc: L.DocumentFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: false,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'documents',\n requiredFields: ['createdAt', 'fileId', 'formatKey', 'id', 'isDeepAnalyzed', 'isReady', 'isStructured', 'name', 'path', 'updatedAt'],\n },\n children,\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Document(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include fromRelations in this query (Smart Fetch — single HTTP request). */\n public fromRelations(variables?: Omit<L.Table_FromRelationsQueryVariables, 'id'>): TablesQuery<TIncluded & { fromRelations: Relation[] }> {\n const info = extractIncludeInfo(L.Table_FromRelationsDocument as unknown as import('graphql').DocumentNode, 'fromRelations', ['id']);\n this._includes.push({\n fieldName: 'fromRelations',\n fragmentDoc: L.RelationFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'relations',\n requiredFields: ['createdAt', 'fromTableColumn', 'fromTableId', 'id', 'toTableColumn', 'toTableId', 'type', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Relation(req, data, se, bu),\n });\n return this as any;\n }\n\n /** Include toRelations in this query (Smart Fetch — single HTTP request). */\n public toRelations(variables?: Omit<L.Table_ToRelationsQueryVariables, 'id'>): TablesQuery<TIncluded & { toRelations: Relation[] }> {\n const info = extractIncludeInfo(L.Table_ToRelationsDocument as unknown as import('graphql').DocumentNode, 'toRelations', ['id']);\n this._includes.push({\n fieldName: 'toRelations',\n fragmentDoc: L.RelationFragmentDoc as unknown as import('graphql').DocumentNode,\n variables: variables as Record<string, unknown>,\n isConnection: false,\n isList: true,\n variableDefinitions: info.variableDefinitions,\n fieldArguments: info.fieldArguments,\n syncMetadata: {\n entityType: 'relations',\n requiredFields: ['createdAt', 'fromTableColumn', 'fromTableId', 'id', 'toTableColumn', 'toTableId', 'type', 'updatedAt'],\n },\n modelFactory: (req: DvinaRequest, data: any, se?: SyncEngine, bu?: string) => new Relation(req, data, se, bu),\n });\n return this as any;\n }\n}\n\nexport class UserSkillFileQuery<TIncluded = {}> extends Request {\n private _variables: L.UserSkillFileQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.UserSkillFileQueryVariables = {} as L.UserSkillFileQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<UserSkillFileModel, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.UserSkillFileDocument as unknown as DocumentNode, 'userSkillFile', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.UserSkillFileQuery>(queryDoc, mergedVars, 'userSkillFile');\n const data = response.userSkillFile;\n const instance = new UserSkillFileModel(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<UserSkillFileModel, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<UserSkillFileModel, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.UserSkillFileDocument as unknown as DocumentNode, 'userSkillFile', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.UserSkillFileQuery>(\n queryDoc,\n mergedVars,\n 'userSkillFile',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('userSkillFileModels');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('userSkillFileModels').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'userSkillFileModels', parentId, includes);\n return { userSkillFile: result } as L.UserSkillFileQuery;\n }\n return { userSkillFile: entity ?? null } as L.UserSkillFileQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.userSkillFile;\n const instance = new UserSkillFileModel(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<UserSkillFileModel, TIncluded>;\n });\n }\n}\n\nexport class UserSkillFilesQuery<TIncluded = {}> extends Request {\n private _variables: L.UserSkillFilesQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.UserSkillFilesQueryVariables = {} as L.UserSkillFilesQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<UserSkillFileModel[]> {\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.UserSkillFilesDocument as unknown as DocumentNode, 'userSkillFiles', this._includes, this._variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.UserSkillFilesQuery>(queryDoc, mergedVars, 'userSkillFiles');\n const data = response.userSkillFiles;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new UserSkillFileModel(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class UserSkillFolderQuery<TIncluded = {}> extends Request {\n private _variables: L.UserSkillFolderQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.UserSkillFolderQueryVariables = {} as L.UserSkillFolderQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<UserSkillFolderModel, TIncluded>> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.UserSkillFolderDocument as unknown as DocumentNode, 'userSkillFolder', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.UserSkillFolderQuery>(queryDoc, mergedVars, 'userSkillFolder');\n const data = response.userSkillFolder;\n const instance = new UserSkillFolderModel(this._request, data, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<UserSkillFolderModel, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<UserSkillFolderModel, TIncluded>> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.UserSkillFolderDocument as unknown as DocumentNode, 'userSkillFolder', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.UserSkillFolderQuery>(\n queryDoc,\n mergedVars,\n 'userSkillFolder',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('userSkillFolderModels');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('userSkillFolderModels').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'userSkillFolderModels', parentId, includes);\n return { userSkillFolder: result } as L.UserSkillFolderQuery;\n }\n return { userSkillFolder: entity ?? null } as L.UserSkillFolderQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.userSkillFolder;\n const instance = new UserSkillFolderModel(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<UserSkillFolderModel, TIncluded>;\n });\n }\n}\n\nexport class UserSkillFoldersQuery<TIncluded = {}> extends Request {\n private _variables: L.UserSkillFoldersQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.UserSkillFoldersQueryVariables = {} as L.UserSkillFoldersQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<UserSkillFolderModel[]> {\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.UserSkillFoldersDocument as unknown as DocumentNode, 'userSkillFolders', this._includes, this._variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.UserSkillFoldersQuery>(queryDoc, mergedVars, 'userSkillFolders');\n const data = response.userSkillFolders;\n if (!Array.isArray(data)) return [];\n return data.map((item: any) => new UserSkillFolderModel(this._request, item, this._syncEngine, this._baseUrl));\n }\n}\n\nexport class WorkspaceDeletionScheduleQuery<TIncluded = {}> extends Request {\n private _variables: L.WorkspaceDeletionScheduleQueryVariables;\n private _includes: IncludeDirective[] = [];\n\n public constructor(request: DvinaRequest, syncEngine?: SyncEngine, variables: L.WorkspaceDeletionScheduleQueryVariables = {} as L.WorkspaceDeletionScheduleQueryVariables, baseUrl?: string) {\n super(request, syncEngine, undefined, baseUrl);\n this._variables = variables;\n }\n\n public async fetch(options?: FetchOptions): Promise<WithIncludes<WorkspaceDeleteSchedule, TIncluded> | undefined> {\n const variables = this._variables;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.WorkspaceDeletionScheduleDocument as unknown as DocumentNode, 'workspaceDeletionSchedule', this._includes, variables as Record<string, unknown>);\n const response = await this._syncEngine!.query<L.WorkspaceDeletionScheduleQuery>(queryDoc, mergedVars, 'workspaceDeletionSchedule');\n const data = response.workspaceDeletionSchedule;\n if (!data) return undefined;\n const instance = new WorkspaceDeleteSchedule(this._request, data as any, this._syncEngine, this._baseUrl);\n if (this._includes.length > 0) {\n hydrateIncludes(instance, data as any, this._includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<WorkspaceDeleteSchedule, TIncluded>;\n }\n\n public watch(options?: FetchOptions): DvinaQueryRef<WithIncludes<WorkspaceDeleteSchedule, TIncluded> | undefined> {\n const variables = this._variables;\n const includes = this._includes;\n const { document: queryDoc, variables: mergedVars } = buildSmartQuery(L.WorkspaceDeletionScheduleDocument as unknown as DocumentNode, 'workspaceDeletionSchedule', includes, variables as Record<string, unknown>);\n const raw = this._syncEngine!.watch<L.WorkspaceDeletionScheduleQuery>(\n queryDoc,\n mergedVars,\n 'workspaceDeletionSchedule',\n async (db) => {\n const vars = variables as Record<string, unknown>;\n const pkField = getPrimaryKeyField('workspaceDeleteSchedules');\n const entityKey = Array.isArray(pkField) ? pkField.map((field) => vars?.[field]) : vars?.[pkField];\n const hasEntityKey = Array.isArray(entityKey) ? entityKey.every((part) => part !== undefined && part !== null) : entityKey !== undefined && entityKey !== null;\n const entity = hasEntityKey ? await db.table('workspaceDeleteSchedules').get(entityKey) : undefined;\n if (includes.length > 0 && entity) {\n const parentId = Array.isArray(entityKey) ? entityKey.map((part) => String(part)).join(':') : String(entityKey);\n const result = await reconstructEntity(db, 'workspaceDeleteSchedules', parentId, includes);\n return { workspaceDeletionSchedule: result } as L.WorkspaceDeletionScheduleQuery;\n }\n return { workspaceDeletionSchedule: entity ?? null } as L.WorkspaceDeletionScheduleQuery;\n },\n );\n return new MappedDvinaQueryRef(raw, (response) => {\n const data = response.workspaceDeletionSchedule;\n if (!data) return undefined;\n const instance = new WorkspaceDeleteSchedule(this._request, data as any, this._syncEngine, this._baseUrl);\n if (includes.length > 0) {\n hydrateIncludes(instance, data as any, includes, this._request, this._syncEngine, this._baseUrl);\n }\n return instance as unknown as WithIncludes<WorkspaceDeleteSchedule, TIncluded>;\n });\n }\n}\n\nexport class McpAuthUpdatesSubscription extends Request {\n public async *subscribe(variables?: L.McpAuthUpdatesSubscriptionVariables): AsyncIterable<McpAuthUpdateModel> {\n for await (const response of this._subscribe!<L.McpAuthUpdatesSubscription>(L.McpAuthUpdatesDocument as unknown as DocumentNode, variables as Record<string, unknown>)) {\n const data = response.mcpAuthUpdates;\n yield new McpAuthUpdateModel(this._request, data, this._syncEngine, this._baseUrl);\n }\n }\n}\n\nexport class SendMessageStreamSubscription extends Request {\n public subscribe(variables: L.SendMessageStreamSubscriptionVariables): AsyncIterable<L.SendMessageStreamSubscription> {\n return this._subscribe!<L.SendMessageStreamSubscription>(L.SendMessageStreamDocument as unknown as DocumentNode, variables as Record<string, unknown>);\n }\n}\n\nexport class TokenUsageUpdatesSubscription extends Request {\n public async *subscribe(variables?: L.TokenUsageUpdatesSubscriptionVariables): AsyncIterable<UsageStatus> {\n for await (const response of this._subscribe!<L.TokenUsageUpdatesSubscription>(L.TokenUsageUpdatesDocument as unknown as DocumentNode, variables as Record<string, unknown>)) {\n const data = response.tokenUsageUpdates;\n yield new UsageStatus(this._request, data, this._syncEngine, this._baseUrl);\n }\n }\n}\n\n// ─── SDK Root Class ──────────────────────────────────────────────────────────\n\n/**\n * The Dvina SDK root class. All queries, mutations, and subscriptions are methods on this class.\n *\n * Usage:\n * ```typescript\n * const sdk = new DvinaSdk({ token: \"xxx\" });\n * const report = await sdk.report({ id: \"rpt_1\" }).fetch();\n * ```\n */\nexport class DvinaSdk extends Request {\n /** The SyncEngine instance managing the local Dexie store and server sync. */\n public readonly syncEngine: SyncEngine;\n\n private readonly _getToken: () => Promise<string>;\n private readonly _terminateWs: () => void;\n private readonly _closeDb: () => Promise<void>;\n\n /** Inference client for the /inference/v1 REST API (chat completions, responses, models). */\n public readonly inference: InferenceClient;\n\n /** Billing client for the Dvina Billing API (plans, subscriptions, seats, sessions). */\n public readonly billing: BillingClient;\n\n public constructor(options: DvinaSdkOptions) {\n const { syncEngine, request, subscribe, getToken, terminateWs, closeDb, inference, billing, baseUrl } = createDvinaClient(options);\n super(request, syncEngine, subscribe, baseUrl);\n this.syncEngine = syncEngine;\n this._getToken = getToken;\n this._terminateWs = terminateWs;\n this._closeDb = closeDb;\n this.inference = inference;\n this.billing = billing;\n }\n\n /** Mutation: acknowledgePulseEvent */\n public acknowledgePulseEvent(variables: L.AcknowledgePulseEventMutationVariables): Promise<PulseEvent> {\n return new AcknowledgePulseEventMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: addInsightToReport */\n public addInsightToReport(variables: L.AddInsightToReportMutationVariables): Promise<Report> {\n return new AddInsightToReportMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: cancelOauthFlow (scalar) */\n public cancelOauthFlow(variables: L.CancelOauthFlowMutationVariables): Promise<void> {\n return new CancelOauthFlowMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: cancelWorkspaceDeletion (scalar) */\n public cancelWorkspaceDeletion(): Promise<boolean> {\n return new CancelWorkspaceDeletionMutation(this._request, this._syncEngine).fetch(undefined);\n }\n\n /** Mutation: connectIntegration */\n public connectIntegration(variables: L.ConnectIntegrationMutationVariables): Promise<CreateIntegrationOutput> {\n return new ConnectIntegrationMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: continueImportedChat (scalar) */\n public continueImportedChat(variables: L.ContinueImportedChatMutationVariables): Promise<string> {\n return new ContinueImportedChatMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: continueInterpretation (scalar) */\n public continueInterpretation(variables: L.ContinueInterpretationMutationVariables): Promise<boolean> {\n return new ContinueInterpretationMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: createAgent */\n public createAgent(variables: L.CreateAgentMutationVariables): Promise<Agent> {\n return new CreateAgentMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createChat */\n public createChat(variables: L.CreateChatMutationVariables): Promise<Chat> {\n return new CreateChatMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createDatabase */\n public createDatabase(variables: L.CreateDatabaseMutationVariables): Promise<Database> {\n return new CreateDatabaseMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createDocument */\n public createDocument(variables: L.CreateDocumentMutationVariables): Promise<Document> {\n return new CreateDocumentMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createFeedback */\n public createFeedback(variables: L.CreateFeedbackMutationVariables): Promise<Feedback> {\n return new CreateFeedbackMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createFolder */\n public createFolder(variables: L.CreateFolderMutationVariables): Promise<Folder> {\n return new CreateFolderMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createInsight */\n public createInsight(variables: L.CreateInsightMutationVariables): Promise<Insight> {\n return new CreateInsightMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createIntegration */\n public createIntegration(variables: L.CreateIntegrationMutationVariables): Promise<CreateIntegrationOutput> {\n return new CreateIntegrationMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createReport */\n public createReport(variables: L.CreateReportMutationVariables): Promise<Report> {\n return new CreateReportMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createTable */\n public createTable(variables: L.CreateTableMutationVariables): Promise<Table> {\n return new CreateTableMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createUserSkillFile */\n public createUserSkillFile(variables: L.CreateUserSkillFileMutationVariables): Promise<UserSkillFileModel> {\n return new CreateUserSkillFileMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: createUserSkillFolder */\n public createUserSkillFolder(variables: L.CreateUserSkillFolderMutationVariables): Promise<UserSkillFolderModel> {\n return new CreateUserSkillFolderMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteAgent */\n public deleteAgent(variables: L.DeleteAgentMutationVariables): Promise<Agent> {\n return new DeleteAgentMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteArtifact */\n public deleteArtifact(variables: L.DeleteArtifactMutationVariables): Promise<Artifact> {\n return new DeleteArtifactMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteChat */\n public deleteChat(variables: L.DeleteChatMutationVariables): Promise<Chat> {\n return new DeleteChatMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteDatabase */\n public deleteDatabase(variables: L.DeleteDatabaseMutationVariables): Promise<Database> {\n return new DeleteDatabaseMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteDocument */\n public deleteDocument(variables: L.DeleteDocumentMutationVariables): Promise<Document> {\n return new DeleteDocumentMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteFolder */\n public deleteFolder(variables: L.DeleteFolderMutationVariables): Promise<Folder> {\n return new DeleteFolderMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteInsight */\n public deleteInsight(variables: L.DeleteInsightMutationVariables): Promise<Insight> {\n return new DeleteInsightMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteInsights */\n public deleteInsights(variables?: L.DeleteInsightsMutationVariables): Promise<Insight> {\n return new DeleteInsightsMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteIntegration (scalar) */\n public deleteIntegration(variables: L.DeleteIntegrationMutationVariables): Promise<void> {\n return new DeleteIntegrationMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: deleteReport */\n public deleteReport(variables: L.DeleteReportMutationVariables): Promise<Report> {\n return new DeleteReportMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteTable */\n public deleteTable(variables: L.DeleteTableMutationVariables): Promise<Table> {\n return new DeleteTableMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteUserSkillFile */\n public deleteUserSkillFile(variables: L.DeleteUserSkillFileMutationVariables): Promise<UserSkillFileModel> {\n return new DeleteUserSkillFileMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: deleteUserSkillFolder */\n public deleteUserSkillFolder(variables: L.DeleteUserSkillFolderMutationVariables): Promise<UserSkillFolderModel> {\n return new DeleteUserSkillFolderMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: disconnectIntegration (scalar) */\n public disconnectIntegration(variables: L.DisconnectIntegrationMutationVariables): Promise<void> {\n return new DisconnectIntegrationMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: dismissPulseEvent */\n public dismissPulseEvent(variables: L.DismissPulseEventMutationVariables): Promise<PulseEvent> {\n return new DismissPulseEventMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: executeChatImport */\n public executeChatImport(variables: L.ExecuteChatImportMutationVariables): Promise<ChatImportExecuteOutput> {\n return new ExecuteChatImportMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: generateUploadUri */\n public generateUploadUri(variables: L.GenerateUploadUriMutationVariables): Promise<FileModel> {\n return new GenerateUploadUriMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: markPulseEventSeen */\n public markPulseEventSeen(variables: L.MarkPulseEventSeenMutationVariables): Promise<PulseEvent> {\n return new MarkPulseEventSeenMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: previewChatImport */\n public previewChatImport(variables: L.PreviewChatImportMutationVariables): Promise<ChatImportPreviewOutput> {\n return new PreviewChatImportMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: reanalyzeDocument */\n public reanalyzeDocument(variables: L.ReanalyzeDocumentMutationVariables): Promise<Document> {\n return new ReanalyzeDocumentMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: refineMindInstruction (scalar) */\n public refineMindInstruction(variables: L.RefineMindInstructionMutationVariables): Promise<string> {\n return new RefineMindInstructionMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: refreshDatabaseSchema (scalar) */\n public refreshDatabaseSchema(variables: L.RefreshDatabaseSchemaMutationVariables): Promise<boolean> {\n return new RefreshDatabaseSchemaMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: reinterpretSource (scalar) */\n public reinterpretSource(variables: L.ReinterpretSourceMutationVariables): Promise<boolean> {\n return new ReinterpretSourceMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: reinterpretSourcesOfuser (scalar) */\n public reinterpretSourcesOfuser(variables: L.ReinterpretSourcesOfuserMutationVariables): Promise<boolean> {\n return new ReinterpretSourcesOfuserMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: relocateInsight */\n public relocateInsight(variables: L.RelocateInsightMutationVariables): Promise<Report> {\n return new RelocateInsightMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: removeInsightFromReport */\n public removeInsightFromReport(variables: L.RemoveInsightFromReportMutationVariables): Promise<Report> {\n return new RemoveInsightFromReportMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: resetWorkspace (scalar) */\n public resetWorkspace(): Promise<boolean> {\n return new ResetWorkspaceMutation(this._request, this._syncEngine).fetch(undefined);\n }\n\n /** Mutation: resolvePulseEvent */\n public resolvePulseEvent(variables: L.ResolvePulseEventMutationVariables): Promise<PulseEvent> {\n return new ResolvePulseEventMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: scheduleWorkspaceDeletion */\n public scheduleWorkspaceDeletion(): Promise<WorkspaceDeleteSchedule> {\n return new ScheduleWorkspaceDeletionMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(undefined);\n }\n\n /** Mutation: setDatabasePrimaryKey (scalar) */\n public setDatabasePrimaryKey(variables: L.SetDatabasePrimaryKeyMutationVariables): Promise<any> {\n return new SetDatabasePrimaryKeyMutation(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Mutation: updateAgent */\n public updateAgent(variables: L.UpdateAgentMutationVariables): Promise<Agent> {\n return new UpdateAgentMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateChat */\n public updateChat(variables: L.UpdateChatMutationVariables): Promise<Chat> {\n return new UpdateChatMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateDatabase */\n public updateDatabase(variables: L.UpdateDatabaseMutationVariables): Promise<Database> {\n return new UpdateDatabaseMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateDocument */\n public updateDocument(variables: L.UpdateDocumentMutationVariables): Promise<Document> {\n return new UpdateDocumentMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateFolder */\n public updateFolder(variables: L.UpdateFolderMutationVariables): Promise<Folder> {\n return new UpdateFolderMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateInsight */\n public updateInsight(variables: L.UpdateInsightMutationVariables): Promise<Insight> {\n return new UpdateInsightMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateInsightInReport */\n public updateInsightInReport(variables: L.UpdateInsightInReportMutationVariables): Promise<Report> {\n return new UpdateInsightInReportMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateInterp */\n public updateInterp(variables: L.UpdateInterpMutationVariables): Promise<Interpretation> {\n return new UpdateInterpMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updatePulseTrigger */\n public updatePulseTrigger(variables: L.UpdatePulseTriggerMutationVariables): Promise<PulseTriggerSettingModel> {\n return new UpdatePulseTriggerMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateReport */\n public updateReport(variables: L.UpdateReportMutationVariables): Promise<Report> {\n return new UpdateReportMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateTable */\n public updateTable(variables: L.UpdateTableMutationVariables): Promise<Table> {\n return new UpdateTableMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateUserSkillFile */\n public updateUserSkillFile(variables: L.UpdateUserSkillFileMutationVariables): Promise<UserSkillFileModel> {\n return new UpdateUserSkillFileMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Mutation: updateUserSkillFolder */\n public updateUserSkillFolder(variables: L.UpdateUserSkillFolderMutationVariables): Promise<UserSkillFolderModel> {\n return new UpdateUserSkillFolderMutation(this._request, this._syncEngine, undefined, this._baseUrl).fetch(variables);\n }\n\n /** Query: agent — call .fetch() or .watch() to execute. */\n public agent(variables: L.AgentQueryVariables): AgentQuery {\n return new AgentQuery(this._request, this._syncEngine, variables as L.AgentQueryVariables, this._baseUrl);\n }\n\n /** Query: agents — call .fetch() or .watch() to execute. */\n public agents(variables?: L.AgentsQueryVariables): AgentsQuery {\n return new AgentsQuery(this._request, this._syncEngine, variables as L.AgentsQueryVariables, this._baseUrl);\n }\n\n /** Query: artifact — call .fetch() or .watch() to execute. */\n public artifact(variables: L.ArtifactQueryVariables): ArtifactQuery {\n return new ArtifactQuery(this._request, this._syncEngine, variables as L.ArtifactQueryVariables, this._baseUrl);\n }\n\n /** Query: artifacts — call .fetch() or .watch() to execute. */\n public artifacts(variables?: L.ArtifactsQueryVariables): ArtifactsQuery {\n return new ArtifactsQuery(this._request, this._syncEngine, variables as L.ArtifactsQueryVariables, this._baseUrl);\n }\n\n /** Query: chat — call .fetch() or .watch() to execute. */\n public chat(variables: L.ChatQueryVariables): ChatQuery {\n return new ChatQuery(this._request, this._syncEngine, variables as L.ChatQueryVariables, this._baseUrl);\n }\n\n /** Query: chatMessage — call .fetch() or .watch() to execute. */\n public chatMessage(variables: L.ChatMessageQueryVariables): ChatMessageQuery {\n return new ChatMessageQuery(this._request, this._syncEngine, variables as L.ChatMessageQueryVariables, this._baseUrl);\n }\n\n /** Query: chatMessages — call .fetch() or .watch() to execute. */\n public chatMessages(variables: L.ChatMessagesQueryVariables): ChatMessagesQuery {\n return new ChatMessagesQuery(this._request, this._syncEngine, variables as L.ChatMessagesQueryVariables, this._baseUrl);\n }\n\n /** Query: chats — call .fetch() or .watch() to execute. */\n public chats(variables?: L.ChatsQueryVariables): ChatsQuery {\n return new ChatsQuery(this._request, this._syncEngine, variables as L.ChatsQueryVariables, this._baseUrl);\n }\n\n /** Query: database — call .fetch() or .watch() to execute. */\n public database(variables: L.DatabaseQueryVariables): DatabaseQuery {\n return new DatabaseQuery(this._request, this._syncEngine, variables as L.DatabaseQueryVariables, this._baseUrl);\n }\n\n /** Query: databaseCatalog — call .fetch() or .watch() to execute. */\n public databaseCatalog(variables: L.DatabaseCatalogQueryVariables): DatabaseCatalogQuery {\n return new DatabaseCatalogQuery(this._request, this._syncEngine, variables as L.DatabaseCatalogQueryVariables, this._baseUrl);\n }\n\n /** Query: databaseCatalogs — call .fetch() or .watch() to execute. */\n public databaseCatalogs(variables?: L.DatabaseCatalogsQueryVariables): DatabaseCatalogsQuery {\n return new DatabaseCatalogsQuery(this._request, this._syncEngine, variables as L.DatabaseCatalogsQueryVariables, this._baseUrl);\n }\n\n /** Query: databaseSchema (scalar) */\n public databaseSchema(variables: L.DatabaseSchemaQueryVariables): Promise<any> {\n return new DatabaseSchemaQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: databases — call .fetch() or .watch() to execute. */\n public databases(variables?: L.DatabasesQueryVariables): DatabasesQuery {\n return new DatabasesQuery(this._request, this._syncEngine, variables as L.DatabasesQueryVariables, this._baseUrl);\n }\n\n /** Query: document — call .fetch() or .watch() to execute. */\n public document(variables: L.DocumentQueryVariables): DocumentQuery {\n return new DocumentQuery(this._request, this._syncEngine, variables as L.DocumentQueryVariables, this._baseUrl);\n }\n\n /** Query: documentCatalog — call .fetch() or .watch() to execute. */\n public documentCatalog(variables: L.DocumentCatalogQueryVariables): DocumentCatalogQuery {\n return new DocumentCatalogQuery(this._request, this._syncEngine, variables as L.DocumentCatalogQueryVariables, this._baseUrl);\n }\n\n /** Query: documentCatalogs — call .fetch() or .watch() to execute. */\n public documentCatalogs(variables?: L.DocumentCatalogsQueryVariables): DocumentCatalogsQuery {\n return new DocumentCatalogsQuery(this._request, this._syncEngine, variables as L.DocumentCatalogsQueryVariables, this._baseUrl);\n }\n\n /** Query: documents — call .fetch() or .watch() to execute. */\n public documents(variables?: L.DocumentsQueryVariables): DocumentsQuery {\n return new DocumentsQuery(this._request, this._syncEngine, variables as L.DocumentsQueryVariables, this._baseUrl);\n }\n\n /** Query: export (scalar) */\n public export(variables: L.ExportQueryVariables): Promise<string> {\n return new ExportQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: exportWithInsightId (scalar) */\n public exportWithInsightId(variables: L.ExportWithInsightIdQueryVariables): Promise<string> {\n return new ExportWithInsightIdQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: file (scalar) */\n public file(variables: L.FileQueryVariables): Promise<string> {\n return new FileQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: fileMeta — call .fetch() or .watch() to execute. */\n public fileMeta(variables: L.FileMetaQueryVariables): FileMetaQuery {\n return new FileMetaQuery(this._request, this._syncEngine, variables as L.FileMetaQueryVariables, this._baseUrl);\n }\n\n /** Query: fileUrls — call .fetch() or .watch() to execute. */\n public fileUrls(variables: L.FileUrlsQueryVariables): FileUrlsQuery {\n return new FileUrlsQuery(this._request, this._syncEngine, variables as L.FileUrlsQueryVariables, this._baseUrl);\n }\n\n /** Query: findFitTier (scalar) */\n public findFitTier(variables: L.FindFitTierQueryVariables): Promise<L.EntitlementTier | undefined> {\n return new FindFitTierQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: folder — call .fetch() or .watch() to execute. */\n public folder(variables: L.FolderQueryVariables): FolderQuery {\n return new FolderQuery(this._request, this._syncEngine, variables as L.FolderQueryVariables, this._baseUrl);\n }\n\n /** Query: folders — call .fetch() or .watch() to execute. */\n public folders(variables?: L.FoldersQueryVariables): FoldersQuery {\n return new FoldersQuery(this._request, this._syncEngine, variables as L.FoldersQueryVariables, this._baseUrl);\n }\n\n /** Query: getCapability (scalar) */\n public getCapability(variables: L.GetCapabilityQueryVariables): Promise<boolean> {\n return new GetCapabilityQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: getDevAccessToken — call .fetch() or .watch() to execute. */\n public getDevAccessToken(): GetDevAccessTokenQuery {\n return new GetDevAccessTokenQuery(this._request, this._syncEngine, {} as L.GetDevAccessTokenQueryVariables, this._baseUrl);\n }\n\n /** Query: getLimit (scalar) */\n public getLimit(variables: L.GetLimitQueryVariables): Promise<number | undefined> {\n return new GetLimitQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: getRemaining (scalar) */\n public getRemaining(variables: L.GetRemainingQueryVariables): Promise<number | undefined> {\n return new GetRemainingQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: getTokenUsageByModel — call .fetch() or .watch() to execute. */\n public getTokenUsageByModel(): GetTokenUsageByModelQuery {\n return new GetTokenUsageByModelQuery(this._request, this._syncEngine, {} as L.GetTokenUsageByModelQueryVariables, this._baseUrl);\n }\n\n /** Query: getTokenUsageHistory — call .fetch() or .watch() to execute. */\n public getTokenUsageHistory(variables: L.GetTokenUsageHistoryQueryVariables): GetTokenUsageHistoryQuery {\n return new GetTokenUsageHistoryQuery(this._request, this._syncEngine, variables as L.GetTokenUsageHistoryQueryVariables, this._baseUrl);\n }\n\n /** Query: getTokenUsageStatus — call .fetch() or .watch() to execute. */\n public getTokenUsageStatus(): GetTokenUsageStatusQuery {\n return new GetTokenUsageStatusQuery(this._request, this._syncEngine, {} as L.GetTokenUsageStatusQueryVariables, this._baseUrl);\n }\n\n /** Query: getUsage (scalar) */\n public getUsage(variables: L.GetUsageQueryVariables): Promise<number | undefined> {\n return new GetUsageQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: insight — call .fetch() or .watch() to execute. */\n public insight(variables: L.InsightQueryVariables): InsightQuery {\n return new InsightQuery(this._request, this._syncEngine, variables as L.InsightQueryVariables, this._baseUrl);\n }\n\n /** Query: insights — call .fetch() or .watch() to execute. */\n public insights(variables?: L.InsightsQueryVariables): InsightsQuery {\n return new InsightsQuery(this._request, this._syncEngine, variables as L.InsightsQueryVariables, this._baseUrl);\n }\n\n /** Query: integration — call .fetch() or .watch() to execute. */\n public integration(variables: L.IntegrationQueryVariables): IntegrationQuery {\n return new IntegrationQuery(this._request, this._syncEngine, variables as L.IntegrationQueryVariables, this._baseUrl);\n }\n\n /** Query: integrationCatalog — call .fetch() or .watch() to execute. */\n public integrationCatalog(variables: L.IntegrationCatalogQueryVariables): IntegrationCatalogQuery {\n return new IntegrationCatalogQuery(this._request, this._syncEngine, variables as L.IntegrationCatalogQueryVariables, this._baseUrl);\n }\n\n /** Query: integrationCatalogTools (scalar) */\n public integrationCatalogTools(variables: L.IntegrationCatalogToolsQueryVariables): Promise<string[]> {\n return new IntegrationCatalogToolsQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: integrationCatalogs — call .fetch() or .watch() to execute. */\n public integrationCatalogs(variables?: L.IntegrationCatalogsQueryVariables): IntegrationCatalogsQuery {\n return new IntegrationCatalogsQuery(this._request, this._syncEngine, variables as L.IntegrationCatalogsQueryVariables, this._baseUrl);\n }\n\n /** Query: integrations — call .fetch() or .watch() to execute. */\n public integrations(variables?: L.IntegrationsQueryVariables): IntegrationsQuery {\n return new IntegrationsQuery(this._request, this._syncEngine, variables as L.IntegrationsQueryVariables, this._baseUrl);\n }\n\n /** Query: interpretations — call .fetch() or .watch() to execute. */\n public interpretations(variables?: L.InterpretationsQueryVariables): InterpretationsQuery {\n return new InterpretationsQuery(this._request, this._syncEngine, variables as L.InterpretationsQueryVariables, this._baseUrl);\n }\n\n /** Query: notification — call .fetch() or .watch() to execute. */\n public notification(variables: L.NotificationQueryVariables): NotificationQuery {\n return new NotificationQuery(this._request, this._syncEngine, variables as L.NotificationQueryVariables, this._baseUrl);\n }\n\n /** Query: notifications — call .fetch() or .watch() to execute. */\n public notifications(variables?: L.NotificationsQueryVariables): NotificationsQuery {\n return new NotificationsQuery(this._request, this._syncEngine, variables as L.NotificationsQueryVariables, this._baseUrl);\n }\n\n /** Query: notificationsByReference — call .fetch() or .watch() to execute. */\n public notificationsByReference(variables: L.NotificationsByReferenceQueryVariables): NotificationsByReferenceQuery {\n return new NotificationsByReferenceQuery(this._request, this._syncEngine, variables as L.NotificationsByReferenceQueryVariables, this._baseUrl);\n }\n\n /** Query: privacyStats — call .fetch() or .watch() to execute. */\n public privacyStats(): PrivacyStatsQuery {\n return new PrivacyStatsQuery(this._request, this._syncEngine, {} as L.PrivacyStatsQueryVariables, this._baseUrl);\n }\n\n /** Query: pulseAppSummary — call .fetch() or .watch() to execute. */\n public pulseAppSummary(variables: L.PulseAppSummaryQueryVariables): PulseAppSummaryQuery {\n return new PulseAppSummaryQuery(this._request, this._syncEngine, variables as L.PulseAppSummaryQueryVariables, this._baseUrl);\n }\n\n /** Query: pulseEvent — call .fetch() or .watch() to execute. */\n public pulseEvent(variables: L.PulseEventQueryVariables): PulseEventQuery {\n return new PulseEventQuery(this._request, this._syncEngine, variables as L.PulseEventQueryVariables, this._baseUrl);\n }\n\n /** Query: pulseEventStats — call .fetch() or .watch() to execute. */\n public pulseEventStats(variables?: L.PulseEventStatsQueryVariables): PulseEventStatsQuery {\n return new PulseEventStatsQuery(this._request, this._syncEngine, variables as L.PulseEventStatsQueryVariables, this._baseUrl);\n }\n\n /** Query: pulseEvents — call .fetch() or .watch() to execute. */\n public pulseEvents(variables?: L.PulseEventsQueryVariables): PulseEventsQuery {\n return new PulseEventsQuery(this._request, this._syncEngine, variables as L.PulseEventsQueryVariables, this._baseUrl);\n }\n\n /** Query: pulseTriggerSettings — call .fetch() or .watch() to execute. */\n public pulseTriggerSettings(variables: L.PulseTriggerSettingsQueryVariables): PulseTriggerSettingsQuery {\n return new PulseTriggerSettingsQuery(this._request, this._syncEngine, variables as L.PulseTriggerSettingsQueryVariables, this._baseUrl);\n }\n\n /** Query: query (scalar) */\n public query(variables: L.QueryQueryVariables): Promise<any> {\n return new QueryQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: queryWithInsightId (scalar) */\n public queryWithInsightId(variables: L.QueryWithInsightIdQueryVariables): Promise<any> {\n return new QueryWithInsightIdQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: queryWithMessageId (scalar) */\n public queryWithMessageId(variables: L.QueryWithMessageIdQueryVariables): Promise<any> {\n return new QueryWithMessageIdQuery(this._request, this._syncEngine).fetch(variables);\n }\n\n /** Query: report — call .fetch() or .watch() to execute. */\n public report(variables: L.ReportQueryVariables): ReportQuery {\n return new ReportQuery(this._request, this._syncEngine, variables as L.ReportQueryVariables, this._baseUrl);\n }\n\n /** Query: reports — call .fetch() or .watch() to execute. */\n public reports(variables?: L.ReportsQueryVariables): ReportsQuery {\n return new ReportsQuery(this._request, this._syncEngine, variables as L.ReportsQueryVariables, this._baseUrl);\n }\n\n /** Query: search — call .fetch() or .watch() to execute. */\n public search(variables: L.SearchQueryVariables): SearchQuery {\n return new SearchQuery(this._request, this._syncEngine, variables as L.SearchQueryVariables, this._baseUrl);\n }\n\n /** Query: table — call .fetch() or .watch() to execute. */\n public table(variables: L.TableQueryVariables): TableQuery {\n return new TableQuery(this._request, this._syncEngine, variables as L.TableQueryVariables, this._baseUrl);\n }\n\n /** Query: tables — call .fetch() or .watch() to execute. */\n public tables(variables?: L.TablesQueryVariables): TablesQuery {\n return new TablesQuery(this._request, this._syncEngine, variables as L.TablesQueryVariables, this._baseUrl);\n }\n\n /** Query: userSkillFile — call .fetch() or .watch() to execute. */\n public userSkillFile(variables: L.UserSkillFileQueryVariables): UserSkillFileQuery {\n return new UserSkillFileQuery(this._request, this._syncEngine, variables as L.UserSkillFileQueryVariables, this._baseUrl);\n }\n\n /** Query: userSkillFiles — call .fetch() or .watch() to execute. */\n public userSkillFiles(variables?: L.UserSkillFilesQueryVariables): UserSkillFilesQuery {\n return new UserSkillFilesQuery(this._request, this._syncEngine, variables as L.UserSkillFilesQueryVariables, this._baseUrl);\n }\n\n /** Query: userSkillFolder — call .fetch() or .watch() to execute. */\n public userSkillFolder(variables: L.UserSkillFolderQueryVariables): UserSkillFolderQuery {\n return new UserSkillFolderQuery(this._request, this._syncEngine, variables as L.UserSkillFolderQueryVariables, this._baseUrl);\n }\n\n /** Query: userSkillFolders — call .fetch() or .watch() to execute. */\n public userSkillFolders(variables?: L.UserSkillFoldersQueryVariables): UserSkillFoldersQuery {\n return new UserSkillFoldersQuery(this._request, this._syncEngine, variables as L.UserSkillFoldersQueryVariables, this._baseUrl);\n }\n\n /** Query: workspaceDeletionSchedule — call .fetch() or .watch() to execute. */\n public workspaceDeletionSchedule(): WorkspaceDeletionScheduleQuery {\n return new WorkspaceDeletionScheduleQuery(this._request, this._syncEngine, {} as L.WorkspaceDeletionScheduleQueryVariables, this._baseUrl);\n }\n\n /** mcpAuthUpdates subscription */\n public mcpAuthUpdates(variables?: L.McpAuthUpdatesSubscriptionVariables) {\n return new McpAuthUpdatesSubscription(this._request, this._syncEngine, this._subscribe).subscribe(variables);\n }\n\n /** sendMessageStream subscription */\n public sendMessageStream(variables: L.SendMessageStreamSubscriptionVariables) {\n return new SendMessageStreamSubscription(this._request, this._syncEngine, this._subscribe).subscribe(variables);\n }\n\n /** tokenUsageUpdates subscription */\n public tokenUsageUpdates(variables?: L.TokenUsageUpdatesSubscriptionVariables) {\n return new TokenUsageUpdatesSubscription(this._request, this._syncEngine, this._subscribe).subscribe(variables);\n }\n\n /**\n * Upload a file to the Dvina API.\n *\n * Calls `generateUploadUri` to get an upload URL, then PUTs the file.\n * Supports progress tracking in browser environments via `onProgress`.\n *\n * @param file - The file to upload (Blob or File)\n * @param name - File name\n * @param options - Optional upload options (e.g. progress callback)\n * @returns The upload result with the server-assigned file ID\n *\n * @example\n * ```typescript\n * const result = await sdk.uploadFile(file, \"report.pdf\");\n * console.log(result.id);\n *\n * // With progress tracking\n * const result = await sdk.uploadFile(file, \"report.pdf\", {\n * onProgress: ({ percent }) => console.log(`${percent}%`),\n * });\n * ```\n */\n public uploadFile(file: Blob, name: string, options?: UploadOptions): Promise<UploadResult> {\n return uploadFile(this._request, this._getToken, file, name, options);\n }\n\n /**\n * Stop the delta sync SSE connection.\n * Call this on logout or when the SDK instance is no longer needed.\n * The connection starts automatically on first query — no manual start needed.\n */\n public stopSync(): void {\n this.syncEngine.stopSync();\n }\n\n /**\n * Destroy the SDK instance: stop delta sync, terminate the WebSocket connection,\n * and close the IndexedDB database to prevent memory leaks.\n * Call this on logout or when the SDK instance is no longer needed.\n */\n public async destroy(): Promise<void> {\n this.syncEngine.stopSync();\n this._terminateWs();\n this.billing.destroy();\n await this._closeDb();\n }\n\n}"]}