@gonvex/local-runtime 0.5.2-staging.12 → 0.5.2-staging.14

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,"file":"portable.js","sourceRoot":"","sources":["../src/portable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { DataRead, DataPredicate, JsonObject } from "@gonvex/module-sdk";
2
+ import type { LocalPatch } from "./index.js";
3
+ import { type ReducerReadView } from "./portable.js";
4
+ export type ReadCoverage = Readonly<Record<string, {
5
+ key: string;
6
+ complete: boolean;
7
+ completeWhere?: readonly DataPredicate[];
8
+ columns?: readonly string[];
9
+ }>>;
10
+ /** Conservative implication: one complete slice must cover the whole read. */
11
+ export declare function predicateImplies(read: DataPredicate | undefined, covered: DataPredicate): boolean;
12
+ export declare function readIsCovered(known: ReadCoverage[string] | undefined, read: DataRead): boolean;
13
+ /** A primary-key list bounds the result even when the surrounding collection is partial. */
14
+ export declare function primaryReadKeys(read: DataRead, key: string): string[] | undefined;
15
+ /** Preserve keys and predicates for overlays without fetching unrelated fields. */
16
+ export declare function executionReadColumns(read: DataRead, key: string): string[] | undefined;
17
+ export declare function projectDataRows(rows: JsonObject[], read: DataRead): JsonObject[];
18
+ /** A captured immutable RAM view. Only matching rows are copied. */
19
+ export declare function memoryReadView(tables: ReadonlyMap<string, ReadonlyMap<string, JsonObject>>, coverage: ReadCoverage): ReducerReadView;
20
+ /** Predictions overlay the confirmed replica. No second entity cache is created. */
21
+ export declare function overlayReadView(base: ReducerReadView, coverage: ReadCoverage, patches: readonly LocalPatch[]): ReducerReadView;
@@ -0,0 +1,230 @@
1
+ import { matchesDataPredicate, orderedDataRead } from "@gonvex/module-sdk";
2
+ import { orderDataRows } from "./portable.js";
3
+ /** Index ID-list membership for this read only, without retaining row data. */
4
+ function readPredicate(predicate) {
5
+ if ('and' in predicate) {
6
+ const parts = predicate.and.map(readPredicate);
7
+ return row => parts.every(part => part(row));
8
+ }
9
+ if ('or' in predicate) {
10
+ const parts = predicate.or.map(readPredicate);
11
+ return row => parts.some(part => part(row));
12
+ }
13
+ if (predicate.op === 'in' && !predicate.transform) {
14
+ const values = new Set(predicate.values);
15
+ return row => {
16
+ const value = row[predicate.column];
17
+ return value != null && value === value && values.has(value);
18
+ };
19
+ }
20
+ return row => matchesDataPredicate(row, predicate);
21
+ }
22
+ /** Conservative implication: one complete slice must cover the whole read. */
23
+ export function predicateImplies(read, covered) {
24
+ if (!read)
25
+ return false;
26
+ if ('and' in covered)
27
+ return covered.and.every(term => predicateImplies(read, term));
28
+ if ('or' in read)
29
+ return read.or.every(term => predicateImplies(term, covered));
30
+ if ('or' in covered)
31
+ return covered.or.some(term => predicateImplies(read, term));
32
+ if ('and' in read)
33
+ return read.and.some(term => predicateImplies(term, covered));
34
+ return read.column === covered.column && read.op === covered.op
35
+ && read.transform === covered.transform
36
+ && JSON.stringify(read) === JSON.stringify(covered);
37
+ }
38
+ export function readIsCovered(known, read) {
39
+ return known?.complete === true || known?.completeWhere?.some(where => predicateImplies(read.where, where)) === true;
40
+ }
41
+ /** A primary-key list bounds the result even when the surrounding collection is partial. */
42
+ export function primaryReadKeys(read, key) {
43
+ const where = read.where;
44
+ if (where && 'and' in where) {
45
+ for (const term of where.and) {
46
+ const keys = primaryReadKeys({ ...read, where: term }, key);
47
+ if (keys !== undefined)
48
+ return keys;
49
+ }
50
+ return undefined;
51
+ }
52
+ if (!where || !('column' in where) || where.column !== key || where.transform)
53
+ return undefined;
54
+ if (where.op === 'eq' && typeof where.value === 'string')
55
+ return [where.value];
56
+ if (where.op === 'in' && where.values.every(value => typeof value === 'string'))
57
+ return [...new Set(where.values)];
58
+ return undefined;
59
+ }
60
+ /** Preserve keys and predicates for overlays without fetching unrelated fields. */
61
+ export function executionReadColumns(read, key) {
62
+ if (!read.columns)
63
+ return undefined;
64
+ const columns = new Set([...read.columns, key]);
65
+ const collect = (where) => {
66
+ if ('and' in where)
67
+ where.and.forEach(collect);
68
+ else if ('or' in where)
69
+ where.or.forEach(collect);
70
+ else
71
+ columns.add(where.column);
72
+ };
73
+ if (read.where)
74
+ collect(read.where);
75
+ for (const order of read.orderBy ?? [])
76
+ columns.add(order.column);
77
+ return [...columns];
78
+ }
79
+ export function projectDataRows(rows, read) {
80
+ orderDataRows(rows, read);
81
+ const window = read.limit === undefined ? rows : rows.slice(0, read.limit);
82
+ return window.map((row) => structuredClone(read.columns
83
+ ? Object.fromEntries(read.columns.map((column) => [column, row[column] ?? null]))
84
+ : row));
85
+ }
86
+ /** A captured immutable RAM view. Only matching rows are copied. */
87
+ export function memoryReadView(tables, coverage) {
88
+ return {
89
+ async select(read, excludedRowIds = []) {
90
+ read = orderedDataRead({
91
+ ...read,
92
+ key: read.key ?? coverage[read.table]?.key,
93
+ });
94
+ const known = coverage[read.table];
95
+ const matches = read.where ? readPredicate(read.where) : undefined;
96
+ const excluded = new Set(excludedRowIds);
97
+ const table = tables.get(read.table);
98
+ const keys = primaryReadKeys(read, known?.key ?? '_id');
99
+ const candidates = keys === undefined ? (table?.values() ?? [])
100
+ : keys.flatMap(id => table?.has(id) ? [table.get(id)] : []);
101
+ const rows = [];
102
+ const required = new Set(read.columns ?? known?.columns ?? []);
103
+ const collect = (predicate) => {
104
+ if ("and" in predicate)
105
+ predicate.and.forEach(collect);
106
+ else if ("or" in predicate)
107
+ predicate.or.forEach(collect);
108
+ else
109
+ required.add(predicate.column);
110
+ };
111
+ if (read.where)
112
+ collect(read.where);
113
+ for (const order of read.orderBy ?? [])
114
+ required.add(order.column);
115
+ const requiredColumns = [...required];
116
+ let completeFields = true;
117
+ for (const row of candidates) {
118
+ if (excluded.has(String(row[known?.key ?? '_id'])))
119
+ continue;
120
+ if (requiredColumns.some((column) => !Object.hasOwn(row, column)))
121
+ completeFields = false;
122
+ if (!matches || matches(row)) {
123
+ rows.push(row);
124
+ if (!read.orderBy?.length &&
125
+ read.limit !== undefined &&
126
+ rows.length >= read.limit)
127
+ break;
128
+ }
129
+ }
130
+ return {
131
+ rows: projectDataRows(rows, read),
132
+ complete: read.limit === 0 ||
133
+ (completeFields &&
134
+ (readIsCovered(known, read) ||
135
+ (keys !== undefined && keys.every(id => excluded.has(id) || table?.has(id) === true)))),
136
+ };
137
+ },
138
+ };
139
+ }
140
+ /** Predictions overlay the confirmed replica. No second entity cache is created. */
141
+ export function overlayReadView(base, coverage, patches) {
142
+ const byTable = new Map();
143
+ for (const patch of patches) {
144
+ let table = byTable.get(patch.entity);
145
+ if (!table) {
146
+ table = new Map();
147
+ byTable.set(patch.entity, table);
148
+ }
149
+ const chain = table.get(patch.rowId);
150
+ if (chain)
151
+ chain.push(patch);
152
+ else
153
+ table.set(patch.rowId, [patch]);
154
+ }
155
+ return {
156
+ keepAliveFor: base.keepAliveFor,
157
+ async select(read, excludedRowIds = []) {
158
+ read = orderedDataRead({
159
+ ...read,
160
+ key: read.key ?? coverage[read.table]?.key,
161
+ });
162
+ const changes = byTable.get(read.table);
163
+ if (!changes?.size)
164
+ return base.select(read, excludedRowIds);
165
+ const key = coverage[read.table]?.key ?? "_id";
166
+ const keys = primaryReadKeys(read, key);
167
+ const exact = read.where && 'column' in read.where && read.where.column === key
168
+ && !read.where.transform && read.where.op === 'eq' && typeof read.where.value === 'string'
169
+ ? read.where.value : undefined;
170
+ const excluded = new Set(excludedRowIds);
171
+ const relevant = new Map();
172
+ // A primary-key predicate bounds the candidates even within an AND.
173
+ // Do not fetch or apply unrelated pending rows for a small bulk read.
174
+ for (const id of keys ?? changes.keys()) {
175
+ const chain = changes.get(id);
176
+ if (chain && !excluded.has(id))
177
+ relevant.set(id, chain);
178
+ }
179
+ if (!relevant.size)
180
+ return base.select(read, excludedRowIds);
181
+ // A full replacement or deletion makes the old row irrelevant, including
182
+ // fields absent from a narrow server projection. Exclude it before base
183
+ // coverage checks; missing fields on every other row remain an error.
184
+ const superseded = [...relevant].filter(([, chain]) => chain.some(patch => patch.op !== 'patch')).map(([id]) => id);
185
+ const result = await base.select({
186
+ ...read,
187
+ columns: executionReadColumns(read, key),
188
+ limit: read.limit === undefined ? undefined : read.limit + relevant.size,
189
+ }, [...excludedRowIds, ...superseded]);
190
+ const rows = new Map(result.rows.map((row) => [String(row[key]), row]));
191
+ const missing = [...relevant].filter(([id, chain]) => !rows.has(id) && chain[0]?.op === 'patch').map(([id]) => id);
192
+ const originals = new Map();
193
+ if (missing.length) {
194
+ const fetched = await base.select({ table: read.table, key, where: { column: key, op: 'in', values: missing } });
195
+ for (const row of fetched.rows)
196
+ originals.set(String(row[key]), row);
197
+ }
198
+ const resolved = new Set();
199
+ for (const [id, chain] of relevant) {
200
+ let row = rows.get(id);
201
+ if (!row && chain[0]?.op === "patch")
202
+ row = originals.get(id);
203
+ for (const patch of chain) {
204
+ if (patch.op === "delete") {
205
+ row = undefined;
206
+ resolved.add(id);
207
+ }
208
+ else if (patch.op === "patch") {
209
+ if (row) {
210
+ row = { ...row, ...patch.fields };
211
+ resolved.add(id);
212
+ }
213
+ }
214
+ else {
215
+ row = patch.fields;
216
+ resolved.add(id);
217
+ }
218
+ }
219
+ rows.delete(id);
220
+ if (row && (!read.where || matchesDataPredicate(row, read.where)))
221
+ rows.set(id, row);
222
+ }
223
+ return {
224
+ rows: projectDataRows([...rows.values()], read),
225
+ complete: result.complete || (exact !== undefined && resolved.has(exact)),
226
+ };
227
+ },
228
+ };
229
+ }
230
+ //# sourceMappingURL=read-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-view.js","sourceRoot":"","sources":["../src/read-view.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -8,8 +8,3 @@ export type LocalTableSchema = {
8
8
  columns: Record<string, LocalColumn>;
9
9
  };
10
10
  export type LocalSchema = Record<string, LocalTableSchema>;
11
- /** Compile schema using PostgreSQL itself, without connecting to a service. */
12
- export declare function compileLocalSchema(migrations: readonly {
13
- name: string;
14
- sql: string;
15
- }[]): Promise<LocalSchema>;
package/dist/schema.js CHANGED
@@ -1,55 +1,2 @@
1
- import { PGlite } from "@electric-sql/pglite";
2
- import { pg_trgm } from "@electric-sql/pglite/contrib/pg_trgm";
3
- // The framework's tenant identity table exists before application migrations.
4
- // Keep this in parity with TENANT_IDENTITY_SQL in postgres/src/provision.rs.
5
- const identitySchema = `CREATE TABLE members (
6
- id text PRIMARY KEY, account_id text NOT NULL UNIQUE, status text NOT NULL DEFAULT 'active',
7
- display_name text NOT NULL DEFAULT '', avatar_url text NOT NULL DEFAULT '',
8
- role text NOT NULL DEFAULT 'member', permissions jsonb NOT NULL DEFAULT '{}'::jsonb,
9
- membership_revision bigint NOT NULL DEFAULT 1,
10
- created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now()
11
- )`;
12
- /** Compile schema using PostgreSQL itself, without connecting to a service. */
13
- export async function compileLocalSchema(migrations) {
14
- const db = new PGlite({ extensions: { pg_trgm } });
15
- try {
16
- await db.exec(identitySchema);
17
- for (const migration of migrations) {
18
- // gen_random_uuid is built into modern PostgreSQL. PGlite does not ship
19
- // pgcrypto's OpenSSL extension; remaining references fail explicitly.
20
- const sql = migration.sql.replace(/CREATE\s+EXTENSION\s+(?:IF\s+NOT\s+EXISTS\s+)?["']?pgcrypto["']?\s*;/gi, "");
21
- try {
22
- await db.exec(sql);
23
- }
24
- catch (error) {
25
- throw new Error(`Local schema compilation failed in ${migration.name}: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
26
- }
27
- }
28
- const { rows } = await db.query(`SELECT c.relname AS table_name, a.attname AS column_name,
29
- format_type(a.atttypid, a.atttypmod) AS type, NOT a.attnotnull AS nullable,
30
- pg_get_expr(d.adbin, d.adrelid) AS column_default,
31
- EXISTS (SELECT 1 FROM pg_index i WHERE i.indrelid=c.oid AND i.indisprimary AND a.attnum=ANY(i.indkey)) AS primary_key
32
- FROM pg_class c JOIN pg_namespace n ON c.relnamespace=n.oid
33
- JOIN pg_attribute a ON a.attrelid=c.oid AND a.attnum>0 AND NOT a.attisdropped
34
- LEFT JOIN pg_attrdef d ON d.adrelid=c.oid AND d.adnum=a.attnum
35
- WHERE n.nspname='public' AND c.relkind='r'
36
- ORDER BY c.relname, a.attnum`);
37
- const schema = {};
38
- for (const row of rows) {
39
- if (row.table_name.startsWith("_gonvex"))
40
- continue;
41
- const table = schema[row.table_name] ??= { key: "_id", columns: {} };
42
- if (row.primary_key)
43
- table.key = row.column_name;
44
- table.columns[row.column_name] = {
45
- type: row.type, nullable: row.nullable,
46
- ...(row.column_default ? { default: row.column_default } : {}),
47
- };
48
- }
49
- return schema;
50
- }
51
- finally {
52
- await db.close();
53
- }
54
- }
1
+ export {};
55
2
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAM/D,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,cAAc,GAAG;;;;;;EAMrB,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAoD;IAC3F,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,wEAAwE;YACxE,sEAAsE;YACtE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,wEAAwE,EAAE,EAAE,CAAC,CAAC;YAChH,IAAI,CAAC;gBAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;YAC3B,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;QACzK,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAG5B;;;;;;;;mCAQ4B,CAAC,CAAC;QACjC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,SAAS;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACrE,IAAI,GAAG,CAAC,WAAW;gBAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;YACjD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG;gBAC/B,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":""}
@@ -1,15 +1,24 @@
1
1
  import type { JsonValue } from "@gonvex/module-sdk";
2
2
  import type { LocalExecution, LocalIntent, LocalReplay, LocalSnapshot, LocalTransactionResult } from "./index.js";
3
+ import type { ReducerReadView } from './portable.js';
3
4
  export type LocalExecutor = {
4
5
  ready: Promise<void>;
6
+ prepare?(path: string): Promise<void>;
7
+ executeRead?(path: string, args: JsonValue, source: ReducerReadView, execution: LocalExecution): Promise<LocalTransactionResult>;
5
8
  execute(path: string, args: JsonValue, snapshot: LocalSnapshot, execution: LocalExecution): Promise<LocalTransactionResult>;
6
9
  replay(snapshot: LocalSnapshot, intents: readonly LocalIntent[]): Promise<LocalReplay>;
7
10
  close(): void;
8
11
  };
9
12
  export type LocalRuntimeBinding = {
13
+ mode?: 'portable';
10
14
  artifactHash: string;
11
15
  tables: readonly string[];
12
16
  create(): LocalExecutor;
13
17
  };
18
+ export type LocalWorkerEndpoint = {
19
+ postMessage(message: unknown): void;
20
+ terminate(): void;
21
+ addEventListener(type: "message" | "error" | "messageerror", listener: (event: any) => void): void;
22
+ };
14
23
  /** Worker lifetime and RPC are SDK-owned; applications only import generated bindings. */
15
- export declare function createLocalReducerWorker(worker: Worker): LocalExecutor;
24
+ export declare function createLocalReducerWorker(worker: LocalWorkerEndpoint): LocalExecutor;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-client.js","sourceRoot":"","sources":["../src/worker-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-client.js","sourceRoot":"","sources":["../src/worker-client.ts"],"names":[],"mappings":"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"}
package/dist/worker.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LocalReducerRuntime } from "./index.js";
2
2
  /** Generated worker entrypoint calls this exactly once. */
3
3
  export function serveLocalReducerWorker(options) {
4
- const host = new LocalReducerRuntime(options);
4
+ const host = Promise.resolve(new LocalReducerRuntime(options));
5
5
  const endpoint = globalThis;
6
6
  const respond = async (id, run) => {
7
7
  try {
@@ -12,8 +12,8 @@ export function serveLocalReducerWorker(options) {
12
12
  }
13
13
  };
14
14
  void respond(0, async () => {
15
- await host.initializeReady();
16
- // WASM is loaded before closing ambient network access. Reducers enqueue
15
+ await (await host).initializeReady();
16
+ // Reducers enqueue
17
17
  // external work through ctx.actions; they cannot send it during prediction.
18
18
  const denied = () => { throw new Error("External I/O is unavailable in a local Reducer; enqueue an Action"); };
19
19
  Object.defineProperty(globalThis, "fetch", { value: denied, writable: false, configurable: false });
@@ -25,9 +25,9 @@ export function serveLocalReducerWorker(options) {
25
25
  return;
26
26
  void respond(data.id, async () => {
27
27
  if (data.method === "execute")
28
- return host.execute(data.args[0], data.args[1], data.args[2], data.args[3]);
28
+ return (await host).execute(data.args[0], data.args[1], data.args[2], data.args[3]);
29
29
  if (data.method === "replay")
30
- return host.replay(data.args[0], data.args[1]);
30
+ return (await host).replay(data.args[0], data.args[1]);
31
31
  throw new Error("Unknown local reducer operation");
32
32
  });
33
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA4B,MAAM,YAAY,CAAC;AAE3E,2DAA2D;AAC3D,MAAM,UAAU,uBAAuB,CAAC,OAA4B;IAClE,MAAM,IAAI,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,UAGhB,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,EAAU,EAAE,GAA2B,EAAE,EAAE;QAChE,IAAI,CAAC;YAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;QAC1D,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;IAClL,CAAC,CAAC;IACF,KAAK,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,yEAAyE;QACzE,4EAA4E;QAC5E,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QAChD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QACjF,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA4B,MAAM,YAAY,CAAC;AAE3E,2DAA2D;AAC3D,MAAM,UAAU,uBAAuB,CAAC,OAA4B;IAClE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,UAGhB,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,EAAU,EAAE,GAA2B,EAAE,EAAE;QAChE,IAAI,CAAC;YAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;QAC1D,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;IAClL,CAAC,CAAC;IACF,KAAK,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QACrC,mBAAmB;QACnB,4EAA4E;QAC5E,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QAChD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QACjF,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACnH,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "@gonvex/local-runtime",
3
- "version": "0.5.2-staging.12",
3
+ "version": "0.5.2-staging.14",
4
4
  "type": "module",
5
5
  "exports": {
6
+ "./portable": {
7
+ "types": "./dist/portable.d.ts",
8
+ "default": "./dist/portable.js"
9
+ },
6
10
  ".": {
7
11
  "types": "./dist/index.d.ts",
8
12
  "default": "./dist/index.js"
@@ -18,6 +22,18 @@
18
22
  "./worker-client": {
19
23
  "types": "./dist/worker-client.d.ts",
20
24
  "default": "./dist/worker-client.js"
25
+ },
26
+ "./native-bridge": {
27
+ "types": "./dist/native-bridge.d.ts",
28
+ "default": "./dist/native-bridge.js"
29
+ },
30
+ "./read-view": {
31
+ "types": "./dist/read-view.d.ts",
32
+ "default": "./dist/read-view.js"
33
+ },
34
+ "./portable-client": {
35
+ "types": "./dist/portable-client.d.ts",
36
+ "default": "./dist/portable-client.js"
21
37
  }
22
38
  },
23
39
  "main": "./dist/index.js",
@@ -27,12 +43,14 @@
27
43
  "README.md"
28
44
  ],
29
45
  "dependencies": {
30
- "@electric-sql/pglite": "0.5.8",
31
- "@gonvex/module-sdk": "0.5.2-staging.12"
46
+ "@ungap/structured-clone": "1.4.0",
47
+ "@gonvex/module-sdk": "0.5.2-staging.14"
32
48
  },
33
49
  "devDependencies": {
50
+ "@types/ungap__structured-clone": "^1.2.0",
34
51
  "typescript": "^6.0.3",
35
- "vitest": "^4.1.6"
52
+ "vitest": "^4.1.6",
53
+ "@electric-sql/pglite": "0.5.8"
36
54
  },
37
55
  "publishConfig": {
38
56
  "access": "public"