ponder 0.11.21 → 0.11.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/esm/bin/commands/createViews.js +9 -20
- package/dist/esm/bin/commands/createViews.js.map +1 -1
- package/dist/esm/bin/commands/dev.js +1 -1
- package/dist/esm/bin/commands/dev.js.map +1 -1
- package/dist/esm/bin/commands/list.js +4 -7
- package/dist/esm/bin/commands/list.js.map +1 -1
- package/dist/esm/bin/commands/prune.js +9 -21
- package/dist/esm/bin/commands/prune.js.map +1 -1
- package/dist/esm/bin/commands/serve.js +1 -1
- package/dist/esm/bin/commands/serve.js.map +1 -1
- package/dist/esm/bin/commands/start.js +3 -3
- package/dist/esm/bin/commands/start.js.map +1 -1
- package/dist/esm/bin/utils/run.js +159 -180
- package/dist/esm/bin/utils/run.js.map +1 -1
- package/dist/esm/build/index.js +1 -48
- package/dist/esm/build/index.js.map +1 -1
- package/dist/esm/build/plugin.js +1 -1
- package/dist/esm/client/index.js +9 -13
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/database/index.js +429 -141
- package/dist/esm/database/index.js.map +1 -1
- package/dist/esm/drizzle/index.js.map +1 -1
- package/dist/esm/drizzle/kit/index.js.map +1 -1
- package/dist/esm/drizzle/onchain.js +1 -8
- package/dist/esm/drizzle/onchain.js.map +1 -1
- package/dist/esm/graphql/index.js +16 -19
- package/dist/esm/graphql/index.js.map +1 -1
- package/dist/esm/graphql/middleware.js +7 -3
- package/dist/esm/graphql/middleware.js.map +1 -1
- package/dist/esm/indexing-store/cache.js +32 -26
- package/dist/esm/indexing-store/cache.js.map +1 -1
- package/dist/esm/indexing-store/historical.js +32 -23
- package/dist/esm/indexing-store/historical.js.map +1 -1
- package/dist/esm/indexing-store/index.js +18 -1
- package/dist/esm/indexing-store/index.js.map +1 -1
- package/dist/esm/indexing-store/realtime.js +140 -89
- package/dist/esm/indexing-store/realtime.js.map +1 -1
- package/dist/esm/internal/errors.js +0 -12
- package/dist/esm/internal/errors.js.map +1 -1
- package/dist/esm/server/index.js +2 -10
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/sync-store/index.js +432 -403
- package/dist/esm/sync-store/index.js.map +1 -1
- package/dist/esm/utils/wait.js +0 -2
- package/dist/esm/utils/wait.js.map +1 -1
- package/dist/types/bin/commands/createViews.d.ts.map +1 -1
- package/dist/types/bin/commands/list.d.ts.map +1 -1
- package/dist/types/bin/commands/prune.d.ts.map +1 -1
- package/dist/types/bin/commands/start.d.ts +0 -2
- package/dist/types/bin/commands/start.d.ts.map +1 -1
- package/dist/types/bin/utils/run.d.ts +1 -1
- package/dist/types/bin/utils/run.d.ts.map +1 -1
- package/dist/types/build/index.d.ts +1 -1
- package/dist/types/build/index.d.ts.map +1 -1
- package/dist/types/client/index.d.ts.map +1 -1
- package/dist/types/database/index.d.ts +73 -25
- package/dist/types/database/index.d.ts.map +1 -1
- package/dist/types/drizzle/index.d.ts +3 -2
- package/dist/types/drizzle/index.d.ts.map +1 -1
- package/dist/types/drizzle/kit/index.d.ts +4 -3
- package/dist/types/drizzle/kit/index.d.ts.map +1 -1
- package/dist/types/drizzle/onchain.d.ts +5 -12
- package/dist/types/drizzle/onchain.d.ts.map +1 -1
- package/dist/types/graphql/index.d.ts +4 -2
- package/dist/types/graphql/index.d.ts.map +1 -1
- package/dist/types/graphql/middleware.d.ts +1 -1
- package/dist/types/graphql/middleware.d.ts.map +1 -1
- package/dist/types/indexing-store/cache.d.ts +12 -5
- package/dist/types/indexing-store/cache.d.ts.map +1 -1
- package/dist/types/indexing-store/historical.d.ts +7 -2
- package/dist/types/indexing-store/historical.d.ts.map +1 -1
- package/dist/types/indexing-store/index.d.ts +2 -4
- package/dist/types/indexing-store/index.d.ts.map +1 -1
- package/dist/types/indexing-store/realtime.d.ts +3 -1
- package/dist/types/indexing-store/realtime.d.ts.map +1 -1
- package/dist/types/internal/errors.d.ts +0 -4
- package/dist/types/internal/errors.d.ts.map +1 -1
- package/dist/types/server/index.d.ts +1 -1
- package/dist/types/server/index.d.ts.map +1 -1
- package/dist/types/sync/index.d.ts +1 -1
- package/dist/types/sync-store/index.d.ts.map +1 -1
- package/dist/types/utils/wait.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/bin/commands/createViews.ts +26 -37
- package/src/bin/commands/dev.ts +1 -1
- package/src/bin/commands/list.ts +4 -7
- package/src/bin/commands/prune.ts +17 -31
- package/src/bin/commands/serve.ts +1 -1
- package/src/bin/commands/start.ts +3 -4
- package/src/bin/utils/run.ts +210 -256
- package/src/build/index.ts +2 -53
- package/src/build/plugin.ts +1 -1
- package/src/client/index.ts +10 -21
- package/src/database/index.ts +742 -331
- package/src/drizzle/index.ts +3 -2
- package/src/drizzle/kit/index.ts +5 -2
- package/src/drizzle/onchain.ts +2 -26
- package/src/graphql/index.ts +26 -31
- package/src/graphql/middleware.ts +7 -5
- package/src/indexing-store/cache.ts +52 -35
- package/src/indexing-store/historical.ts +40 -28
- package/src/indexing-store/index.ts +27 -2
- package/src/indexing-store/realtime.ts +220 -176
- package/src/internal/errors.ts +0 -9
- package/src/server/index.ts +3 -14
- package/src/sync-store/index.ts +997 -870
- package/src/utils/wait.ts +0 -1
- package/dist/esm/database/queryBuilder.js +0 -206
- package/dist/esm/database/queryBuilder.js.map +0 -1
- package/dist/esm/database/utils.js +0 -100
- package/dist/esm/database/utils.js.map +0 -1
- package/dist/esm/drizzle/json.js +0 -119
- package/dist/esm/drizzle/json.js.map +0 -1
- package/dist/types/database/queryBuilder.d.ts +0 -37
- package/dist/types/database/queryBuilder.d.ts.map +0 -1
- package/dist/types/database/utils.d.ts +0 -25
- package/dist/types/database/utils.d.ts.map +0 -1
- package/dist/types/drizzle/json.d.ts +0 -51
- package/dist/types/drizzle/json.d.ts.map +0 -1
- package/src/database/queryBuilder.ts +0 -319
- package/src/database/utils.ts +0 -140
- package/src/drizzle/json.ts +0 -154
package/src/build/index.ts
CHANGED
|
@@ -15,8 +15,6 @@ import type {
|
|
|
15
15
|
Schema,
|
|
16
16
|
SchemaBuild,
|
|
17
17
|
} from "@/internal/types.js";
|
|
18
|
-
import { createPool } from "@/utils/pg.js";
|
|
19
|
-
import { createPglite } from "@/utils/pglite.js";
|
|
20
18
|
import { getNextAvailablePort } from "@/utils/port.js";
|
|
21
19
|
import type { Result } from "@/utils/result.js";
|
|
22
20
|
import { serialize } from "@/utils/serialize.js";
|
|
@@ -60,7 +58,7 @@ export type Build = {
|
|
|
60
58
|
database: Database;
|
|
61
59
|
}) => Promise<ApiResult>;
|
|
62
60
|
namespaceCompile: () => Result<NamespaceBuild>;
|
|
63
|
-
preCompile: (params: { config: Config }) =>
|
|
61
|
+
preCompile: (params: { config: Config }) => Result<PreBuild>;
|
|
64
62
|
compileSchema: (params: { schema: Schema }) => Result<SchemaBuild>;
|
|
65
63
|
compileIndexing: (params: {
|
|
66
64
|
configResult: Extract<ConfigResult, { status: "success" }>["result"];
|
|
@@ -357,7 +355,7 @@ export const createBuild = async ({
|
|
|
357
355
|
result: { schema, viewsSchema },
|
|
358
356
|
} as const;
|
|
359
357
|
},
|
|
360
|
-
|
|
358
|
+
preCompile({ config }): Result<PreBuild> {
|
|
361
359
|
const preBuild = safeBuildPre({
|
|
362
360
|
config,
|
|
363
361
|
options: common.options,
|
|
@@ -372,55 +370,6 @@ export const createBuild = async ({
|
|
|
372
370
|
return preBuild;
|
|
373
371
|
}
|
|
374
372
|
|
|
375
|
-
// diagnostic query
|
|
376
|
-
const dialect = preBuild.databaseConfig.kind;
|
|
377
|
-
if (dialect === "pglite") {
|
|
378
|
-
const driver = createPglite(preBuild.databaseConfig.options);
|
|
379
|
-
try {
|
|
380
|
-
await driver.query("SELECT version()");
|
|
381
|
-
} catch (e) {
|
|
382
|
-
const error = new BuildError(
|
|
383
|
-
`Failed to connect to PGlite database. Please check your database connection settings.\n\n${(e as any).message}`,
|
|
384
|
-
);
|
|
385
|
-
error.stack = undefined;
|
|
386
|
-
common.logger.error({
|
|
387
|
-
service: "build",
|
|
388
|
-
msg: "Failed build",
|
|
389
|
-
error,
|
|
390
|
-
});
|
|
391
|
-
return { status: "error", error };
|
|
392
|
-
} finally {
|
|
393
|
-
await driver.close();
|
|
394
|
-
}
|
|
395
|
-
} else if (dialect === "postgres") {
|
|
396
|
-
const pool = createPool(
|
|
397
|
-
{
|
|
398
|
-
...preBuild.databaseConfig.poolConfig,
|
|
399
|
-
application_name: "test",
|
|
400
|
-
max: 1,
|
|
401
|
-
statement_timeout: 10_000,
|
|
402
|
-
},
|
|
403
|
-
common.logger,
|
|
404
|
-
);
|
|
405
|
-
|
|
406
|
-
try {
|
|
407
|
-
await pool.query("SELECT version()");
|
|
408
|
-
} catch (e) {
|
|
409
|
-
const error = new BuildError(
|
|
410
|
-
`Failed to connect to database. Please check your database connection settings.\n\n${(e as any).message}`,
|
|
411
|
-
);
|
|
412
|
-
error.stack = undefined;
|
|
413
|
-
common.logger.error({
|
|
414
|
-
service: "build",
|
|
415
|
-
msg: "Failed build",
|
|
416
|
-
error,
|
|
417
|
-
});
|
|
418
|
-
return { status: "error", error };
|
|
419
|
-
} finally {
|
|
420
|
-
await pool.end();
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
|
|
424
373
|
for (const log of preBuild.logs) {
|
|
425
374
|
common.logger[log.level]({ service: "build", msg: log.msg });
|
|
426
375
|
}
|
package/src/build/plugin.ts
CHANGED
package/src/client/index.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Schema, Status } from "@/internal/types.js";
|
|
|
2
2
|
import type { ReadonlyDrizzle } from "@/types/db.js";
|
|
3
3
|
import { decodeCheckpoint } from "@/utils/checkpoint.js";
|
|
4
4
|
import { promiseWithResolvers } from "@/utils/promiseWithResolvers.js";
|
|
5
|
-
import {
|
|
5
|
+
import type { QueryWithTypings } from "drizzle-orm";
|
|
6
6
|
import type { PgSession } from "drizzle-orm/pg-core";
|
|
7
7
|
import { createMiddleware } from "hono/factory";
|
|
8
8
|
import { streamSSE } from "hono/streaming";
|
|
@@ -39,7 +39,7 @@ export const client = ({
|
|
|
39
39
|
|
|
40
40
|
const channel = `${globalThis.PONDER_NAMESPACE_BUILD.schema}_status_channel`;
|
|
41
41
|
|
|
42
|
-
if (
|
|
42
|
+
if ("instance" in driver) {
|
|
43
43
|
driver.instance.query(`LISTEN "${channel}"`).then(() => {
|
|
44
44
|
driver.instance.onNotification(async () => {
|
|
45
45
|
statusResolver.resolve();
|
|
@@ -47,7 +47,7 @@ export const client = ({
|
|
|
47
47
|
});
|
|
48
48
|
});
|
|
49
49
|
} else {
|
|
50
|
-
const pool = driver.
|
|
50
|
+
const pool = driver.internal;
|
|
51
51
|
|
|
52
52
|
const connectAndListen = async () => {
|
|
53
53
|
driver.listen = await pool.connect();
|
|
@@ -88,7 +88,7 @@ export const client = ({
|
|
|
88
88
|
return c.text((error as Error).message, 500);
|
|
89
89
|
}
|
|
90
90
|
} else {
|
|
91
|
-
const client = await driver.
|
|
91
|
+
const client = await driver.internal.connect();
|
|
92
92
|
|
|
93
93
|
try {
|
|
94
94
|
await validateQuery(query.sql);
|
|
@@ -123,27 +123,16 @@ export const client = ({
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
if (c.req.path === "/sql/status") {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const checkpoints = (await globalThis.PONDER_DATABASE.readonlyQB()
|
|
129
|
-
.execute(
|
|
130
|
-
sql`SELECT chain_name, chain_id, latest_checkpoint, safe_checkpoint from _ponder_checkpoint`,
|
|
131
|
-
)
|
|
132
|
-
.then((res) => res.rows)) as {
|
|
133
|
-
chain_name: string;
|
|
134
|
-
chain_id: number;
|
|
135
|
-
latest_checkpoint: string;
|
|
136
|
-
safe_checkpoint: string;
|
|
137
|
-
}[];
|
|
126
|
+
const checkpoints = await globalThis.PONDER_DATABASE.getCheckpoints();
|
|
138
127
|
|
|
139
128
|
const status: Status = {};
|
|
140
|
-
for (const {
|
|
141
|
-
status[
|
|
142
|
-
id:
|
|
129
|
+
for (const { chainName, chainId, latestCheckpoint } of checkpoints) {
|
|
130
|
+
status[chainName] = {
|
|
131
|
+
id: chainId,
|
|
143
132
|
block: {
|
|
144
|
-
number: Number(decodeCheckpoint(
|
|
133
|
+
number: Number(decodeCheckpoint(latestCheckpoint).blockNumber),
|
|
145
134
|
timestamp: Number(
|
|
146
|
-
decodeCheckpoint(
|
|
135
|
+
decodeCheckpoint(latestCheckpoint).blockTimestamp,
|
|
147
136
|
),
|
|
148
137
|
},
|
|
149
138
|
};
|