syncorejs 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +2 -1
  2. package/dist/_vendor/cli/app.d.mts.map +1 -1
  3. package/dist/_vendor/cli/app.mjs +330 -46
  4. package/dist/_vendor/cli/app.mjs.map +1 -1
  5. package/dist/_vendor/cli/context.mjs +27 -9
  6. package/dist/_vendor/cli/context.mjs.map +1 -1
  7. package/dist/_vendor/cli/dev-session.mjs.map +1 -1
  8. package/dist/_vendor/cli/doctor.mjs +513 -46
  9. package/dist/_vendor/cli/doctor.mjs.map +1 -1
  10. package/dist/_vendor/cli/errors.mjs.map +1 -1
  11. package/dist/_vendor/cli/help.mjs.map +1 -1
  12. package/dist/_vendor/cli/index.mjs +9 -2
  13. package/dist/_vendor/cli/index.mjs.map +1 -1
  14. package/dist/_vendor/cli/messages.mjs +5 -4
  15. package/dist/_vendor/cli/messages.mjs.map +1 -1
  16. package/dist/_vendor/cli/preflight.mjs.map +1 -1
  17. package/dist/_vendor/cli/project.mjs +125 -27
  18. package/dist/_vendor/cli/project.mjs.map +1 -1
  19. package/dist/_vendor/cli/render.mjs +57 -9
  20. package/dist/_vendor/cli/render.mjs.map +1 -1
  21. package/dist/_vendor/cli/targets.mjs +4 -3
  22. package/dist/_vendor/cli/targets.mjs.map +1 -1
  23. package/dist/_vendor/core/cli.d.mts +20 -4
  24. package/dist/_vendor/core/cli.d.mts.map +1 -1
  25. package/dist/_vendor/core/cli.mjs +458 -133
  26. package/dist/_vendor/core/cli.mjs.map +1 -1
  27. package/dist/_vendor/core/devtools-auth.mjs +60 -0
  28. package/dist/_vendor/core/devtools-auth.mjs.map +1 -0
  29. package/dist/_vendor/core/index.d.mts +5 -3
  30. package/dist/_vendor/core/index.mjs +22 -2
  31. package/dist/_vendor/core/index.mjs.map +1 -1
  32. package/dist/_vendor/core/runtime/components.d.mts +111 -0
  33. package/dist/_vendor/core/runtime/components.d.mts.map +1 -0
  34. package/dist/_vendor/core/runtime/components.mjs +186 -0
  35. package/dist/_vendor/core/runtime/components.mjs.map +1 -0
  36. package/dist/_vendor/core/runtime/devtools.d.mts +4 -4
  37. package/dist/_vendor/core/runtime/devtools.d.mts.map +1 -1
  38. package/dist/_vendor/core/runtime/devtools.mjs +178 -60
  39. package/dist/_vendor/core/runtime/devtools.mjs.map +1 -1
  40. package/dist/_vendor/core/runtime/functions.d.mts +398 -16
  41. package/dist/_vendor/core/runtime/functions.d.mts.map +1 -1
  42. package/dist/_vendor/core/runtime/functions.mjs +74 -3
  43. package/dist/_vendor/core/runtime/functions.mjs.map +1 -1
  44. package/dist/_vendor/core/runtime/id.d.mts.map +1 -1
  45. package/dist/_vendor/core/runtime/id.mjs.map +1 -1
  46. package/dist/_vendor/core/runtime/internal/engines/devtoolsEngine.mjs +83 -0
  47. package/dist/_vendor/core/runtime/internal/engines/devtoolsEngine.mjs.map +1 -0
  48. package/dist/_vendor/core/runtime/internal/engines/executionEngine.mjs +720 -0
  49. package/dist/_vendor/core/runtime/internal/engines/executionEngine.mjs.map +1 -0
  50. package/dist/_vendor/core/runtime/internal/engines/reactivityEngine.mjs +234 -0
  51. package/dist/_vendor/core/runtime/internal/engines/reactivityEngine.mjs.map +1 -0
  52. package/dist/_vendor/core/runtime/internal/engines/schedulerEngine.mjs +255 -0
  53. package/dist/_vendor/core/runtime/internal/engines/schedulerEngine.mjs.map +1 -0
  54. package/dist/_vendor/core/runtime/internal/engines/schemaEngine.mjs +200 -0
  55. package/dist/_vendor/core/runtime/internal/engines/schemaEngine.mjs.map +1 -0
  56. package/dist/_vendor/core/runtime/internal/engines/shared.mjs +252 -0
  57. package/dist/_vendor/core/runtime/internal/engines/shared.mjs.map +1 -0
  58. package/dist/_vendor/core/runtime/internal/engines/storageEngine.mjs +145 -0
  59. package/dist/_vendor/core/runtime/internal/engines/storageEngine.mjs.map +1 -0
  60. package/dist/_vendor/core/runtime/internal/runtimeKernel.mjs +221 -0
  61. package/dist/_vendor/core/runtime/internal/runtimeKernel.mjs.map +1 -0
  62. package/dist/_vendor/core/runtime/internal/runtimeStatus.mjs +32 -0
  63. package/dist/_vendor/core/runtime/internal/runtimeStatus.mjs.map +1 -0
  64. package/dist/_vendor/core/runtime/internal/systemMeta.mjs +61 -0
  65. package/dist/_vendor/core/runtime/internal/systemMeta.mjs.map +1 -0
  66. package/dist/_vendor/core/runtime/internal/transactionCoordinator.mjs +41 -0
  67. package/dist/_vendor/core/runtime/internal/transactionCoordinator.mjs.map +1 -0
  68. package/dist/_vendor/core/runtime/runtime.d.mts +1187 -202
  69. package/dist/_vendor/core/runtime/runtime.d.mts.map +1 -1
  70. package/dist/_vendor/core/runtime/runtime.mjs +73 -1365
  71. package/dist/_vendor/core/runtime/runtime.mjs.map +1 -1
  72. package/dist/_vendor/core/transport.d.mts +113 -0
  73. package/dist/_vendor/core/transport.d.mts.map +1 -0
  74. package/dist/_vendor/core/transport.mjs +428 -0
  75. package/dist/_vendor/core/transport.mjs.map +1 -0
  76. package/dist/_vendor/devtools-protocol/index.d.ts +187 -4
  77. package/dist/_vendor/devtools-protocol/index.d.ts.map +1 -1
  78. package/dist/_vendor/devtools-protocol/index.js +25 -9
  79. package/dist/_vendor/devtools-protocol/index.js.map +1 -1
  80. package/dist/_vendor/next/config.d.ts +3 -4
  81. package/dist/_vendor/next/config.d.ts.map +1 -1
  82. package/dist/_vendor/next/config.js +37 -19
  83. package/dist/_vendor/next/config.js.map +1 -1
  84. package/dist/_vendor/next/index.d.ts +109 -29
  85. package/dist/_vendor/next/index.d.ts.map +1 -1
  86. package/dist/_vendor/next/index.js +104 -26
  87. package/dist/_vendor/next/index.js.map +1 -1
  88. package/dist/_vendor/platform-expo/index.d.ts +156 -37
  89. package/dist/_vendor/platform-expo/index.d.ts.map +1 -1
  90. package/dist/_vendor/platform-expo/index.js +80 -12
  91. package/dist/_vendor/platform-expo/index.js.map +1 -1
  92. package/dist/_vendor/platform-expo/react.d.ts.map +1 -1
  93. package/dist/_vendor/platform-expo/react.js +11 -10
  94. package/dist/_vendor/platform-expo/react.js.map +1 -1
  95. package/dist/_vendor/platform-expo/web-sqljs-wasm.js +16 -0
  96. package/dist/_vendor/platform-expo/web-sqljs-wasm.js.map +1 -0
  97. package/dist/_vendor/platform-node/index.d.mts +192 -24
  98. package/dist/_vendor/platform-node/index.d.mts.map +1 -1
  99. package/dist/_vendor/platform-node/index.mjs +236 -97
  100. package/dist/_vendor/platform-node/index.mjs.map +1 -1
  101. package/dist/_vendor/platform-node/ipc-react.d.mts.map +1 -1
  102. package/dist/_vendor/platform-node/ipc-react.mjs +15 -2
  103. package/dist/_vendor/platform-node/ipc-react.mjs.map +1 -1
  104. package/dist/_vendor/platform-node/ipc.d.mts +11 -35
  105. package/dist/_vendor/platform-node/ipc.d.mts.map +1 -1
  106. package/dist/_vendor/platform-node/ipc.mjs +3 -273
  107. package/dist/_vendor/platform-node/ipc.mjs.map +1 -1
  108. package/dist/_vendor/platform-web/external-change.d.ts +43 -1
  109. package/dist/_vendor/platform-web/external-change.d.ts.map +1 -1
  110. package/dist/_vendor/platform-web/external-change.js +32 -1
  111. package/dist/_vendor/platform-web/external-change.js.map +1 -1
  112. package/dist/_vendor/platform-web/index.d.ts +323 -51
  113. package/dist/_vendor/platform-web/index.d.ts.map +1 -1
  114. package/dist/_vendor/platform-web/index.js +233 -30
  115. package/dist/_vendor/platform-web/index.js.map +1 -1
  116. package/dist/_vendor/platform-web/indexeddb.d.ts +12 -0
  117. package/dist/_vendor/platform-web/indexeddb.d.ts.map +1 -1
  118. package/dist/_vendor/platform-web/indexeddb.js +10 -0
  119. package/dist/_vendor/platform-web/indexeddb.js.map +1 -1
  120. package/dist/_vendor/platform-web/opfs.d.ts +13 -0
  121. package/dist/_vendor/platform-web/opfs.d.ts.map +1 -1
  122. package/dist/_vendor/platform-web/opfs.js +12 -0
  123. package/dist/_vendor/platform-web/opfs.js.map +1 -1
  124. package/dist/_vendor/platform-web/persistence.d.ts +54 -0
  125. package/dist/_vendor/platform-web/persistence.d.ts.map +1 -1
  126. package/dist/_vendor/platform-web/persistence.js +15 -0
  127. package/dist/_vendor/platform-web/persistence.js.map +1 -1
  128. package/dist/_vendor/platform-web/react.d.ts +1 -2
  129. package/dist/_vendor/platform-web/react.d.ts.map +1 -1
  130. package/dist/_vendor/platform-web/react.js +27 -13
  131. package/dist/_vendor/platform-web/react.js.map +1 -1
  132. package/dist/_vendor/platform-web/sqljs.js +10 -1
  133. package/dist/_vendor/platform-web/sqljs.js.map +1 -1
  134. package/dist/_vendor/platform-web/web-sqljs-wasm.js +8 -0
  135. package/dist/_vendor/platform-web/web-sqljs-wasm.js.map +1 -0
  136. package/dist/_vendor/platform-web/worker.d.ts +71 -44
  137. package/dist/_vendor/platform-web/worker.d.ts.map +1 -1
  138. package/dist/_vendor/platform-web/worker.js +40 -271
  139. package/dist/_vendor/platform-web/worker.js.map +1 -1
  140. package/dist/_vendor/react/index.d.ts +222 -23
  141. package/dist/_vendor/react/index.d.ts.map +1 -1
  142. package/dist/_vendor/react/index.js +476 -63
  143. package/dist/_vendor/react/index.js.map +1 -1
  144. package/dist/_vendor/schema/definition.d.ts +151 -37
  145. package/dist/_vendor/schema/definition.d.ts.map +1 -1
  146. package/dist/_vendor/schema/definition.js +102 -20
  147. package/dist/_vendor/schema/definition.js.map +1 -1
  148. package/dist/_vendor/schema/index.d.ts +4 -4
  149. package/dist/_vendor/schema/index.js +2 -2
  150. package/dist/_vendor/schema/planner.d.ts +19 -2
  151. package/dist/_vendor/schema/planner.d.ts.map +1 -1
  152. package/dist/_vendor/schema/planner.js +79 -3
  153. package/dist/_vendor/schema/planner.js.map +1 -1
  154. package/dist/_vendor/schema/validators.d.ts +279 -83
  155. package/dist/_vendor/schema/validators.d.ts.map +1 -1
  156. package/dist/_vendor/schema/validators.js +330 -38
  157. package/dist/_vendor/schema/validators.js.map +1 -1
  158. package/dist/_vendor/svelte/index.d.ts +245 -19
  159. package/dist/_vendor/svelte/index.d.ts.map +1 -1
  160. package/dist/_vendor/svelte/index.js +443 -20
  161. package/dist/_vendor/svelte/index.js.map +1 -1
  162. package/dist/browser.d.ts.map +1 -1
  163. package/dist/cli.js +3 -1
  164. package/dist/cli.js.map +1 -1
  165. package/dist/components.d.ts +2 -0
  166. package/dist/components.js +2 -0
  167. package/dist/index.d.ts +3 -2
  168. package/dist/index.js +2 -1
  169. package/package.json +29 -21
@@ -1,14 +1,27 @@
1
1
  import { AttachNodeIpcRuntimeOptions, AttachedNodeIpcRuntime, NodeIpcSyncoreSchema, RendererQueryWatch, SyncoreIpcMessageEndpoint, SyncoreMainProcessBridge, SyncoreRendererBridge, SyncoreRendererClient, SyncoreWindowBridge, attachNodeIpcRuntime, createNodeIpcMessageEndpoint, createRendererSyncoreBridgeClient, createRendererSyncoreClient, createRendererSyncoreWindowClient, installSyncoreWindowBridge } from "./ipc.mjs";
2
- import * as _syncore_core0 from "../core/index.d.mts";
3
- import { AnySyncoreSchema, DevtoolsCommandHandler, DevtoolsSink, DevtoolsSubscriptionHost, SchedulerOptions, StorageObject, StorageWriteInput, SyncoreCapabilities, SyncoreExperimentalPlugin, SyncoreRuntime, SyncoreRuntimeOptions, SyncoreSqlDriver, SyncoreStorageAdapter } from "../core/index.d.mts";
4
- import { SyncoreActiveQueryInfo, SyncoreDevtoolsEvent, SyncoreRuntimeSummary } from "../devtools-protocol/index.d.ts";
2
+ import { SyncoreActiveQueryInfo, SyncoreDevtoolsCapabilities, SyncoreDevtoolsEvent, SyncoreRuntimeSummary } from "../devtools-protocol/index.d.ts";
3
+ import { DevtoolsCommandHandler, DevtoolsSink, DevtoolsSubscriptionHost, SchedulerOptions, StorageObject, StorageWriteInput, SyncoreCapabilities, SyncoreDataModel, SyncoreExternalChangeSignal, SyncoreRuntime, SyncoreRuntimeOptions, SyncoreSqlDriver, SyncoreStorageAdapter } from "../core/index.d.mts";
5
4
 
6
5
  //#region src/index.d.ts
7
- type NodeSyncoreSchema = AnySyncoreSchema;
6
+ type NodeSyncoreSchema<TSchema extends SyncoreDataModel = SyncoreDataModel> = TSchema;
7
+ /**
8
+ * SQLite driver backed by Node.js’s built-in `node:sqlite` module (Node 22+).
9
+ *
10
+ * Opens the database at `databasePath` with `WAL` journal mode and foreign-key
11
+ * enforcement enabled. The file is created if it does not exist.
12
+ *
13
+ * ```ts
14
+ * const driver = new NodeSqliteDriver("./data/app.db");
15
+ * ```
16
+ *
17
+ * In most cases you should use {@link createNodeSyncoreRuntime} which
18
+ * instantiates this driver automatically from your `databasePath` option.
19
+ */
8
20
  declare class NodeSqliteDriver implements SyncoreSqlDriver {
21
+ readonly databasePath: string;
9
22
  private readonly database;
10
23
  private transactionDepth;
11
- constructor(filename: string);
24
+ constructor(databasePath: string);
12
25
  exec(sql: string): Promise<void>;
13
26
  run(sql: string, params?: unknown[]): Promise<{
14
27
  changes: number;
@@ -20,6 +33,19 @@ declare class NodeSqliteDriver implements SyncoreSqlDriver {
20
33
  withSavepoint<T>(name: string, callback: () => Promise<T>): Promise<T>;
21
34
  close(): Promise<void>;
22
35
  }
36
+ /**
37
+ * Blob storage adapter that reads and writes files in a local directory.
38
+ *
39
+ * Each stored object is saved as a flat file named by its ID inside
40
+ * `directory`. The directory is created automatically on first write.
41
+ *
42
+ * ```ts
43
+ * const storage = new NodeFileStorageAdapter("./data/storage");
44
+ * ```
45
+ *
46
+ * In most cases you should use {@link createNodeSyncoreRuntime} which
47
+ * instantiates this adapter automatically from your `storageDirectory` option.
48
+ */
23
49
  declare class NodeFileStorageAdapter implements SyncoreStorageAdapter {
24
50
  private readonly directory;
25
51
  constructor(directory: string);
@@ -30,70 +56,208 @@ declare class NodeFileStorageAdapter implements SyncoreStorageAdapter {
30
56
  delete(id: string): Promise<void>;
31
57
  list(): Promise<StorageObject[]>;
32
58
  }
33
- interface CreateNodeRuntimeOptions {
59
+ /**
60
+ * Options for {@link createNodeSyncoreRuntime}.
61
+ *
62
+ * At minimum supply `databasePath`, `storageDirectory`, `schema`, and
63
+ * `functions`. Everything else has sensible defaults (auto-devtools connect in
64
+ * development, Node SQLite driver, local file storage).
65
+ *
66
+ * ```ts
67
+ * createNodeSyncoreRuntime({
68
+ * databasePath: path.join(dataDir, "app.db"),
69
+ * storageDirectory: path.join(dataDir, "storage"),
70
+ * schema,
71
+ * functions,
72
+ * });
73
+ * ```
74
+ */
75
+ interface CreateNodeRuntimeOptions<TSchema extends NodeSyncoreSchema = NodeSyncoreSchema> {
76
+ /**
77
+ * Absolute or relative path to the SQLite database file.
78
+ *
79
+ * The file is created if it does not exist. Use an absolute path in
80
+ * production to avoid ambiguity about the current working directory.
81
+ */
34
82
  databasePath: string;
83
+ /**
84
+ * Directory where blob storage objects (images, files, etc.) are persisted.
85
+ *
86
+ * The directory is created automatically if it does not exist.
87
+ */
35
88
  storageDirectory: string;
36
- schema: NodeSyncoreSchema;
37
- functions: SyncoreRuntimeOptions<NodeSyncoreSchema>["functions"];
89
+ /** The data model that defines the available tables and indexes. */
90
+ schema: TSchema;
91
+ /**
92
+ * The registered function map. Use the `functions` export from
93
+ * `syncore/_generated/functions.ts`.
94
+ */
95
+ functions: SyncoreRuntimeOptions<TSchema>["functions"];
96
+ /**
97
+ * Resolved Syncore component instances. Only required when your app
98
+ * installs Syncore component packages.
99
+ */
100
+ components?: SyncoreRuntimeOptions<TSchema>["components"];
101
+ /**
102
+ * Platform capabilities injected into `ctx.capabilities` inside function
103
+ * handlers.
104
+ */
38
105
  capabilities?: SyncoreCapabilities;
39
- experimentalPlugins?: Array<SyncoreExperimentalPlugin<NodeSyncoreSchema>>;
106
+ /** Human-readable app name shown in the devtools dashboard. */
40
107
  appName?: string;
108
+ /** Origin label (e.g. process name) shown in devtools. */
41
109
  origin?: string;
110
+ /** Devtools session label. Auto-generated when omitted. */
42
111
  sessionLabel?: string;
112
+ /**
113
+ * Platform label reported to devtools. Defaults to `"node"`, or
114
+ * `"electron-main"` when the runtime is used inside Electron's main process.
115
+ */
43
116
  platform?: string;
117
+ /**
118
+ * Devtools event sink. Pass `false` to disable devtools entirely (recommended
119
+ * for production). Omit to auto-connect to the local devtools server when
120
+ * running in development.
121
+ */
44
122
  devtools?: DevtoolsSink | false;
123
+ /**
124
+ * Explicit devtools WebSocket server URL. Defaults to
125
+ * `ws://localhost:3099` (the Syncore devtools default port).
126
+ */
45
127
  devtoolsUrl?: string;
128
+ /** Scheduler configuration for background and recurring jobs. */
46
129
  scheduler?: SchedulerOptions;
47
130
  }
48
131
  /**
49
- * Options for creating a managed Node Syncore client.
132
+ * Alias of {@link CreateNodeRuntimeOptions} exposed for the managed-client
133
+ * helper.
134
+ * @see CreateNodeRuntimeOptions
50
135
  */
51
- type WithNodeSyncoreClientOptions = CreateNodeRuntimeOptions;
136
+ type WithNodeSyncoreClientOptions<TSchema extends NodeSyncoreSchema = NodeSyncoreSchema> = CreateNodeRuntimeOptions<TSchema>;
52
137
  /**
53
138
  * A started local Node runtime paired with its client and a dispose helper.
139
+ *
140
+ * Returned by `withNodeSyncoreClient()`. Call `dispose()` when you are
141
+ * finished (e.g. in tests or short-lived scripts) to stop the runtime and
142
+ * close the database.
54
143
  */
55
- interface ManagedNodeSyncoreClient {
56
- runtime: SyncoreRuntime<NodeSyncoreSchema>;
57
- client: ReturnType<SyncoreRuntime<NodeSyncoreSchema>["createClient"]>;
144
+ interface ManagedNodeSyncoreClient<TSchema extends NodeSyncoreSchema = NodeSyncoreSchema> {
145
+ /** The underlying runtime instance. */
146
+ runtime: SyncoreRuntime<TSchema>;
147
+ /** A ready-to-use client for calling Syncore functions. */
148
+ client: ReturnType<SyncoreRuntime<TSchema>["createClient"]>;
149
+ /** Stop the runtime, flush pending jobs, and close the database. */
58
150
  dispose(): Promise<void>;
59
151
  }
152
+ /**
153
+ * Opaque handle returned by Syncore’s Electron IPC bridge setup.
154
+ *
155
+ * - `ready`: resolves when the bridge is connected and the renderer is ready to
156
+ * receive messages.
157
+ * - `dispose()`: tears down the bridge and removes IPC listeners.
158
+ */
60
159
  interface SyncoreElectronIpcBinding {
61
160
  ready: Promise<void>;
62
161
  dispose(): Promise<void>;
63
162
  }
163
+ /**
164
+ * Minimal interface that Syncore requires from an Electron `BrowserWindow`
165
+ * instance.
166
+ *
167
+ * Scoped to avoid importing Electron at the type level.
168
+ */
64
169
  interface SyncoreElectronBridgeWindow {
65
170
  isDestroyed(): boolean;
66
171
  webContents: {
67
172
  send(channel: string, message: unknown): void;
68
173
  };
69
174
  }
175
+ /**
176
+ * Options for setting up Syncore’s Electron main-process IPC bridge.
177
+ *
178
+ * The bridge forwards database change events from the main-process runtime to
179
+ * the renderer window over a named IPC channel.
180
+ *
181
+ * ```ts
182
+ * createElectronSyncoreBridge(runtime, {
183
+ * window: mainWindow,
184
+ * onRendererMessage: (listener) => {
185
+ * ipcMain.on("syncore", (_e, msg) => listener(msg));
186
+ * return () => ipcMain.removeAllListeners("syncore");
187
+ * },
188
+ * });
189
+ * ```
190
+ */
70
191
  interface CreateElectronSyncoreBridgeOptions {
192
+ /** The renderer window that will receive push messages. */
71
193
  window: SyncoreElectronBridgeWindow;
194
+ /**
195
+ * Register a listener for messages sent from the renderer. Must return an
196
+ * unsubscribe function.
197
+ */
72
198
  onRendererMessage(listener: (message: unknown) => void): () => void;
199
+ /** IPC channel name. Defaults to `"syncore"`. */
73
200
  channel?: string;
74
201
  }
75
202
  /**
76
- * The subset of Electron's `ipcMain` used by Syncore's main-process helper.
203
+ * The subset of Electrons `ipcMain` used by Syncores main-process helper.
204
+ *
205
+ * Using this narrowed interface avoids a hard runtime dependency on Electron.
77
206
  */
78
207
  interface SyncoreElectronIpcMain {
79
- on(channel: string, listener: (event: unknown, message: unknown) => void): void;
80
- off(channel: string, listener: (event: unknown, message: unknown) => void): void;
208
+ on(channel: string, listener: (event: {
209
+ sender: unknown;
210
+ }, message: unknown) => void): void;
211
+ off(channel: string, listener: (event: {
212
+ sender: unknown;
213
+ }, message: unknown) => void): void;
81
214
  }
215
+ /**
216
+ * Options for creating a client inside an Electron renderer process via the
217
+ * preload IPC bridge.
218
+ */
82
219
  interface CreateSyncoreRendererWindowClientOptions {
220
+ /** Name of the bridge registered in the preload script. Defaults to `"syncore"`. */
83
221
  bridgeName?: string;
84
222
  }
85
223
  /**
86
- * Create a Node or Electron runtime backed by SQLite and local file storage.
224
+ * Create a Syncore runtime for Node.js (or Electron’s main process) backed by
225
+ * the built-in `node:sqlite` driver and local file storage.
226
+ *
227
+ * This is the recommended entry point for Node and Electron apps. It wires up
228
+ * the SQL driver, storage adapter, devtools WebSocket connection, and
229
+ * cross-process change signals automatically.
230
+ *
231
+ * ```ts
232
+ * import path from "node:path";
233
+ * import { createNodeSyncoreRuntime } from "syncorejs/node";
234
+ * import schema from "./syncore/schema";
235
+ * import { functions } from "./syncore/_generated/functions";
236
+ *
237
+ * const runtime = createNodeSyncoreRuntime({
238
+ * databasePath: path.join(app.getPath("userData"), "db.sqlite"),
239
+ * storageDirectory: path.join(app.getPath("userData"), "storage"),
240
+ * schema,
241
+ * functions,
242
+ * });
243
+ *
244
+ * await runtime.start();
245
+ * const client = runtime.createClient();
246
+ * ```
247
+ *
248
+ * @param options - Configuration object. See {@link CreateNodeRuntimeOptions}.
249
+ * @returns A configured (but not yet started) {@link SyncoreRuntime}. Call
250
+ * `await runtime.start()` before using the client.
87
251
  */
88
- declare function createNodeSyncoreRuntime(options: CreateNodeRuntimeOptions): SyncoreRuntime<NodeSyncoreSchema>;
252
+ declare function createNodeSyncoreRuntime<TSchema extends NodeSyncoreSchema>(options: CreateNodeRuntimeOptions<TSchema>): SyncoreRuntime<TSchema>;
89
253
  /**
90
254
  * Create a same-process Syncore client from a started Node runtime.
91
255
  */
92
- declare function createNodeSyncoreClient(runtime: SyncoreRuntime<NodeSyncoreSchema>): _syncore_core0.SyncoreClient;
256
+ declare function createNodeSyncoreClient<TSchema extends NodeSyncoreSchema>(runtime: SyncoreRuntime<TSchema>): import("../core/index.d.mts").SyncoreClient;
93
257
  /**
94
258
  * Start a Node Syncore runtime and return its client together with a dispose helper.
95
259
  */
96
- declare function createManagedNodeSyncoreClient(options: WithNodeSyncoreClientOptions): Promise<ManagedNodeSyncoreClient>;
260
+ declare function createManagedNodeSyncoreClient<TSchema extends NodeSyncoreSchema>(options: WithNodeSyncoreClientOptions<TSchema>): Promise<ManagedNodeSyncoreClient<TSchema>>;
97
261
  /**
98
262
  * Run a callback with a started local Node Syncore client and always stop the runtime.
99
263
  *
@@ -104,12 +268,12 @@ declare function createManagedNodeSyncoreClient(options: WithNodeSyncoreClientOp
104
268
  * });
105
269
  * ```
106
270
  */
107
- declare function withNodeSyncoreClient<TResult>(options: WithNodeSyncoreClientOptions, callback: (client: ReturnType<SyncoreRuntime<NodeSyncoreSchema>["createClient"]>, runtime: SyncoreRuntime<NodeSyncoreSchema>) => Promise<TResult> | TResult): Promise<TResult>;
271
+ declare function withNodeSyncoreClient<TSchema extends NodeSyncoreSchema, TResult>(options: WithNodeSyncoreClientOptions<TSchema>, callback: (client: ReturnType<SyncoreRuntime<TSchema>["createClient"]>, runtime: SyncoreRuntime<TSchema>) => Promise<TResult> | TResult): Promise<TResult>;
108
272
  /**
109
273
  * Create the default Electron main-process bridge used to connect a BrowserWindow
110
274
  * to a Syncore runtime.
111
275
  */
112
- declare function createElectronSyncoreBridge(options: CreateElectronSyncoreBridgeOptions): SyncoreIpcMessageEndpoint & {
276
+ declare function createElectronSyncoreBridge(options: CreateElectronSyncoreBridgeOptions): import("../core/index.d.mts").SyncoreBridgeMessageEndpoint & {
113
277
  dispose(): void;
114
278
  };
115
279
  /**
@@ -134,14 +298,18 @@ interface NodeWebSocketDevtoolsSinkOptions {
134
298
  origin?: string;
135
299
  sessionLabel?: string;
136
300
  targetKind?: "client" | "project";
301
+ runtimeRole?: "app" | "project-target";
137
302
  storageProtocol?: string;
138
303
  databaseLabel?: string;
304
+ dataSourceAlias?: string;
139
305
  storageIdentity?: string;
306
+ capabilities?: SyncoreDevtoolsCapabilities;
140
307
  }
141
308
  interface NodeWebSocketDevtoolsSink extends DevtoolsSink {
142
- attachRuntime(runtime: SyncoreRuntime<AnySyncoreSchema>): void;
309
+ attachRuntime(runtime: SyncoreRuntime<NodeSyncoreSchema>): void;
143
310
  attachCommandHandler(handler: DevtoolsCommandHandler): void;
144
311
  attachSubscriptionHost(host: DevtoolsSubscriptionHost): void;
312
+ externalChangeSignal?: SyncoreExternalChangeSignal;
145
313
  dispose(): void;
146
314
  }
147
315
  declare function createNodeWebSocketDevtoolsSink(options: NodeWebSocketDevtoolsSinkOptions): NodeWebSocketDevtoolsSink;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"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"}