@hugomrdias/foxer 0.0.6 → 0.1.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.
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@hugomrdias/foxer",
3
3
  "description": "Foxer is a all-in-one application server for Filecoin.",
4
- "version": "0.0.6",
4
+ "version": "0.1.3",
5
5
  "author": "Hugo Dias <hugomrdias@gmail.com>",
6
6
  "license": "Apache-2.0 OR MIT",
7
+ "repository": {
8
+ "url": "hugomrdias/foxer",
9
+ "directory": "packages/foxer"
10
+ },
7
11
  "type": "module",
8
12
  "sideEffects": false,
9
13
  "bin": {
@@ -39,21 +43,21 @@
39
43
  "dependencies": {
40
44
  "@bluwy/giget-core": "^0.1.6",
41
45
  "@clack/prompts": "^1.1.0",
42
- "@electric-sql/pglite": "^0.3.8",
43
- "@hono/node-server": "^1.19.5",
46
+ "@electric-sql/pglite": "^0.3.16",
47
+ "@hono/node-server": "^1.19.11",
44
48
  "@libpg-query/parser": "^17.6.3",
45
49
  "@pgsql/traverse": "^17.2.4",
46
50
  "abitype": "^1.2.3",
47
- "cleye": "^2.2.1",
51
+ "cleye": "^2.3.0",
48
52
  "dotenv": "^17.2.3",
49
53
  "drizzle-orm": "1.0.0-beta.15-859cf75",
50
54
  "exit-hook": "^5.1.0",
51
- "hono": "^4.10.6",
55
+ "hono": "^4.12.7",
52
56
  "hono-pino": "^0.10.3",
53
57
  "http-shutdown": "^1.2.2",
54
58
  "lilconfig": "^3.1.3",
55
59
  "p-queue": "^9.1.0",
56
- "pg": "^8.19.0",
60
+ "pg": "^8.20.0",
57
61
  "picocolors": "^1.1.1",
58
62
  "pino": "^10.3.1",
59
63
  "postgres": "^3.4.8",
@@ -62,7 +66,7 @@
62
66
  },
63
67
  "devDependencies": {
64
68
  "@pgsql/types": "^17.6.2",
65
- "@types/node": "^25.3.3",
69
+ "@types/node": "^25.4.0",
66
70
  "@types/pg": "^8.18.0",
67
71
  "type-fest": "^5.4.4",
68
72
  "typescript": "^5.9.2"
@@ -71,6 +75,10 @@
71
75
  "hono": ">=4.5",
72
76
  "viem": ">=2"
73
77
  },
78
+ "publishConfig": {
79
+ "provenance": true,
80
+ "access": "public"
81
+ },
74
82
  "scripts": {
75
83
  "build": "tsc --build",
76
84
  "lint": "tsc --build && biome check ."
package/src/bin/create.ts CHANGED
@@ -170,7 +170,7 @@ export const create: Command = command(
170
170
  }
171
171
 
172
172
  copy(
173
- resolve(__dirname, `../../../template/biome.json`),
173
+ resolve(__dirname, `../../../template/biome.template.json`),
174
174
  resolve(root, 'biome.json')
175
175
  )
176
176
  copy(
package/src/db/migrate.ts CHANGED
@@ -214,8 +214,12 @@ function hasCascadeForeignKeyToBlockNumberTable(
214
214
  * @returns True if WAL is enabled, false otherwise
215
215
  */
216
216
  export async function isWalEnabled(db: Database) {
217
- const wal = await db
218
- .execute('SHOW WAL_LEVEL')
219
- .then((result) => result.rows[0].wal_level)
220
- return wal === 'logical'
217
+ try {
218
+ const wal = await db
219
+ .execute('SHOW WAL_LEVEL')
220
+ .then((result) => result.rows[0].wal_level)
221
+ return wal === 'logical'
222
+ } catch (error) {
223
+ throw new Error('Failed to check if WAL is enabled', { cause: error })
224
+ }
221
225
  }
@@ -1,18 +0,0 @@
1
- import { type AnyRelations, type EmptyRelations, type QueryWithTypings, type SQLWrapper } from 'drizzle-orm';
2
- import { type PgRemoteDatabase } from 'drizzle-orm/pg-proxy';
3
- import type { Simplify } from 'type-fest';
4
- export declare const compileQuery: (query: SQLWrapper) => QueryWithTypings;
5
- type ClientDb<TSchema extends Record<string, unknown> = Record<string, unknown>, TRelations extends AnyRelations = EmptyRelations> = Simplify<Omit<PgRemoteDatabase<TSchema, TRelations>, 'insert' | 'update' | 'delete' | 'transaction' | 'refreshMaterializedView' | '_' | '_query'>>;
6
- export type Client<TSchema extends Record<string, unknown> = Record<string, unknown>, TRelations extends AnyRelations = EmptyRelations> = {
7
- db: ClientDb<TSchema, TRelations>;
8
- live: <result>(queryFn: (db: ClientDb<TSchema, TRelations>) => Promise<result>, onData: (result: result) => void, onError?: (error: Error) => void) => {
9
- unsubscribe: () => void;
10
- };
11
- };
12
- export declare function createClient<TSchema extends Record<string, unknown> = Record<string, unknown>, TRelations extends AnyRelations = EmptyRelations>({ baseUrl, relations, schema, }: {
13
- baseUrl: string;
14
- relations: TRelations;
15
- schema: TSchema;
16
- }): Client<TSchema, TRelations>;
17
- export {};
18
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,cAAc,EAGnB,KAAK,gBAAgB,EAGrB,KAAK,UAAU,EAEhB,MAAM,aAAa,CAAA;AAIpB,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAoDzC,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,qBAE7C,CAAA;AAED,KAAK,QAAQ,CACX,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,SAAS,YAAY,GAAG,cAAc,IAC9C,QAAQ,CACV,IAAI,CACF,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,EACnC,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,yBAAyB,GACzB,GAAG,GACH,QAAQ,CACX,CACF,CAAA;AAED,MAAM,MAAM,MAAM,CAChB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,SAAS,YAAY,GAAG,cAAc,IAC9C;IACF,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAEjC,IAAI,EAAE,CAAC,MAAM,EACX,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,EAC/D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KAC7B;QACH,WAAW,EAAE,MAAM,IAAI,CAAA;KACxB,CAAA;CACF,CAAA;AAED,wBAAgB,YAAY,CAC1B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,SAAS,YAAY,GAAG,cAAc,EAChD,EACA,OAAO,EACP,SAAS,EACT,MAAM,GACP,EAAE;IACD,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,UAAU,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAqI9B"}
@@ -1,150 +0,0 @@
1
- import { Column, is, mapRelationalRow, SQL, Table, } from 'drizzle-orm';
2
- import { PgRelationalQuery } from 'drizzle-orm/pg-core/query-builders/query';
3
- import { PgRaw } from 'drizzle-orm/pg-core/query-builders/raw';
4
- import { drizzle } from 'drizzle-orm/pg-proxy';
5
- import { TypedQueryBuilder } from 'drizzle-orm/query-builders/query-builder';
6
- import { EventSource } from 'eventsource';
7
- import { stringify } from 'viem';
8
- function orderSelectedFields(fields, pathPrefix) {
9
- return Object.entries(fields).reduce((result, [name, field]) => {
10
- if (typeof name !== 'string') {
11
- return result;
12
- }
13
- const newPath = pathPrefix ? [...pathPrefix, name] : [name];
14
- if (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) {
15
- result.push({ path: newPath, field });
16
- }
17
- else if (is(field, Table)) {
18
- result.push(
19
- // @ts-ignore
20
- ...orderSelectedFields(field[Table.Symbol.Columns], newPath));
21
- }
22
- else {
23
- result.push(...orderSelectedFields(field, newPath));
24
- }
25
- return result;
26
- }, []);
27
- }
28
- const getUrl = (baseUrl, method, query) => {
29
- const url = new URL(baseUrl);
30
- url.pathname = `${url.pathname}/${method}`;
31
- if (query) {
32
- url.searchParams.set('sql', stringify(query));
33
- }
34
- return url;
35
- };
36
- const noopDatabase = drizzle(() => Promise.resolve({ rows: [] }), {
37
- casing: 'snake_case',
38
- });
39
- // @ts-expect-error - dialect is not typed
40
- const dialect = noopDatabase.dialect;
41
- export const compileQuery = (query) => {
42
- return dialect.sqlToQuery(query.getSQL());
43
- };
44
- export function createClient({ baseUrl, relations, schema, }) {
45
- return {
46
- db: drizzle(async (sql, params, method, typings) => {
47
- const query = { sql, params, typings };
48
- const url = getUrl(baseUrl, 'db', query);
49
- const rsp = await fetch(url.toString(), {
50
- method: 'GET',
51
- });
52
- if (!rsp.ok) {
53
- throw new Error((await rsp.json()).error);
54
- }
55
- const result = await rsp.json();
56
- if (method === 'all') {
57
- return {
58
- ...result,
59
- rows: result.rows.map((row) => Object.values(row)),
60
- };
61
- }
62
- return result;
63
- }, {
64
- relations: relations,
65
- schema: schema,
66
- casing: 'snake_case',
67
- }),
68
- live: (queryFn, onData, onError) => {
69
- let result;
70
- const passThroughDatabase = drizzle((_, __, method) => {
71
- if (method === 'all') {
72
- return Promise.resolve({
73
- ...result,
74
- rows: result.rows.map((row) => Object.values(row)),
75
- });
76
- }
77
- return Promise.resolve(result);
78
- }, { schema: schema, relations: relations, casing: 'snake_case' });
79
- const queryPromise = queryFn(passThroughDatabase);
80
- if ('getSQL' in queryPromise === false) {
81
- throw new Error('"queryFn" must return SQL. You may have to remove `.execute()` from your query.');
82
- }
83
- const queryBuilder = queryPromise;
84
- const query = compileQuery(queryBuilder);
85
- const sse = new EventSource(getUrl(baseUrl, 'live', query));
86
- async function onMessage(event) {
87
- result = JSON.parse(event.data);
88
- let data;
89
- if (queryBuilder instanceof TypedQueryBuilder) {
90
- data = await passThroughDatabase._.session
91
- .prepareQuery(query,
92
- // @ts-expect-error - selectedFields is not typed
93
- orderSelectedFields(queryPromise._.selectedFields), undefined, false)
94
- .execute();
95
- }
96
- else if (queryBuilder instanceof PgRelationalQuery) {
97
- // @ts-expect-error - _toSQL is not typed
98
- const selection = queryBuilder._toSQL().query.selection;
99
- data = await passThroughDatabase._.session
100
- .prepareQuery(query, undefined, undefined, true, (rawRows, mapColumnValue) => {
101
- const rows = rawRows.map((row) => {
102
- const obj = {};
103
- row.forEach((value, index) => {
104
- // @ts-expect-error - selection is not typed
105
- obj[selection[index].key] = value;
106
- });
107
- return mapRelationalRow(obj, selection, mapColumnValue);
108
- });
109
- // @ts-expect-error - mode is not typed
110
- if (queryBuilder.mode === 'first') {
111
- return rows[0];
112
- }
113
- return rows;
114
- })
115
- .execute();
116
- }
117
- else if (queryBuilder instanceof PgRaw) {
118
- data = await passThroughDatabase._.session
119
- .prepareQuery(query, undefined, undefined, false)
120
- .execute();
121
- }
122
- else {
123
- throw new Error('Unsupported query builder');
124
- }
125
- // @ts-expect-error - data is not typed
126
- onData(data);
127
- }
128
- function onSSEError(event) {
129
- if ('data' in event) {
130
- onError?.(new Error(event.data));
131
- }
132
- else {
133
- // @ts-expect-error - message is not typed
134
- onError?.(new Error(`SSE error ${event?.message}`));
135
- }
136
- sse.close();
137
- }
138
- sse.addEventListener('message', onMessage);
139
- sse.addEventListener('error', onSSEError);
140
- return {
141
- unsubscribe: () => {
142
- sse.removeEventListener('message', onMessage);
143
- sse.removeEventListener('error', onSSEError);
144
- sse.close();
145
- },
146
- };
147
- },
148
- };
149
- }
150
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=default-hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks/default-hooks.ts"],"names":[],"mappings":""}
@@ -1,107 +0,0 @@
1
- // import { metadataArrayToObject } from '@filoz/synapse-core/utils'
2
- // import { and, eq, inArray } from 'drizzle-orm'
3
- // import { stringify } from 'viem'
4
- // import { datasets, pieces } from '../db/schema'
5
- // import type { HookRegistry } from './registry'
6
- // /**
7
- // * Registers the built-in contract event handlers that persist indexed rows.
8
- // */
9
- // export function registerDefaultHooks(registry: HookRegistry): void {
10
- // registry.on('storage:DataSetCreated', async ({ context, event }) => {
11
- // // console.debug('storage:DataSetCreated', stringify(event.args))
12
- // const args = event.args
13
- // const accountAddress = args.payer
14
- // const now = new Date()
15
- // const metadata = metadataArrayToObject([
16
- // args.metadataKeys,
17
- // args.metadataValues,
18
- // ])
19
- // await context.db
20
- // .insert(datasets)
21
- // .values({
22
- // id: args.dataSetId,
23
- // providerId: args.providerId,
24
- // storageProvider: args.serviceProvider,
25
- // payee: args.payee,
26
- // pdpRailId: args.pdpRailId,
27
- // cdnRailId: args.cdnRailId,
28
- // cacheMissRailId: args.cacheMissRailId,
29
- // blockNumber: context.blockNumber,
30
- // accountAddress,
31
- // metadata,
32
- // createdAt: now,
33
- // updatedAt: now,
34
- // })
35
- // .onConflictDoUpdate({
36
- // target: [datasets.id],
37
- // set: {
38
- // providerId: args.providerId,
39
- // storageProvider: args.serviceProvider,
40
- // payee: args.payee,
41
- // pdpRailId: args.pdpRailId,
42
- // cdnRailId: args.cdnRailId,
43
- // cacheMissRailId: args.cacheMissRailId,
44
- // metadata,
45
- // blockNumber: context.blockNumber,
46
- // accountAddress,
47
- // updatedAt: now,
48
- // },
49
- // })
50
- // })
51
- // registry.on('storage:ServiceTerminated', async ({ context, event }) => {
52
- // // console.debug("pdpVerifier:DataSetDeleted", stringify(event.args));
53
- // const args = event.args
54
- // await context.db
55
- // .delete(datasets)
56
- // .where(and(eq(datasets.id, args.dataSetId)))
57
- // })
58
- // registry.on('pdpVerifier:PiecesAdded', async ({ context, event }) => {
59
- // // console.debug("pdpVerifier:PiecesAdded", stringify(event.args));
60
- // const args = event.args
61
- // if (args.pieceIds.length === 0) {
62
- // return
63
- // }
64
- // const dataset = await context.db.query.datasets.findFirst({
65
- // where: and(eq(datasets.id, args.setId)),
66
- // columns: { id: true },
67
- // })
68
- // if (!dataset) {
69
- // return
70
- // }
71
- // const now = new Date()
72
- // const piecesToInsert = args.pieceIds.map((pieceId, index) => {
73
- // const pieceCid = args.pieceCids[index]?.data ?? null
74
- // return {
75
- // id: pieceId,
76
- // blockNumber: context.blockNumber,
77
- // datasetId: args.setId,
78
- // accountAddress: event.transaction.from,
79
- // cid: pieceCid,
80
- // createdAt: now,
81
- // }
82
- // })
83
- // await context.db
84
- // .insert(pieces)
85
- // .values(piecesToInsert)
86
- // .onConflictDoUpdate({
87
- // target: [pieces.datasetId, pieces.id],
88
- // set: {
89
- // blockNumber: context.blockNumber,
90
- // accountAddress: event.transaction.from,
91
- // },
92
- // })
93
- // })
94
- // registry.on('pdpVerifier:PiecesRemoved', async ({ context, event }) => {
95
- // // console.debug("pdpVerifier:PiecesRemoved", stringify(event.args));
96
- // const args = event.args
97
- // if (args.pieceIds.length === 0) {
98
- // return
99
- // }
100
- // await context.db
101
- // .delete(pieces)
102
- // .where(
103
- // and(eq(pieces.datasetId, args.setId), inArray(pieces.id, args.pieceIds))
104
- // )
105
- // })
106
- // }
107
- //# sourceMappingURL=default-hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-hooks.js","sourceRoot":"","sources":["../../../src/hooks/default-hooks.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,iDAAiD;AACjD,mCAAmC;AACnC,kDAAkD;AAClD,iDAAiD;AAEjD,MAAM;AACN,+EAA+E;AAC/E,MAAM;AACN,uEAAuE;AACvE,0EAA0E;AAC1E,wEAAwE;AACxE,8BAA8B;AAC9B,wCAAwC;AACxC,6BAA6B;AAE7B,+CAA+C;AAC/C,2BAA2B;AAC3B,6BAA6B;AAC7B,SAAS;AACT,uBAAuB;AACvB,0BAA0B;AAC1B,kBAAkB;AAClB,8BAA8B;AAC9B,uCAAuC;AACvC,iDAAiD;AACjD,6BAA6B;AAC7B,qCAAqC;AACrC,qCAAqC;AACrC,iDAAiD;AACjD,4CAA4C;AAC5C,0BAA0B;AAC1B,oBAAoB;AACpB,0BAA0B;AAC1B,0BAA0B;AAC1B,WAAW;AACX,8BAA8B;AAC9B,iCAAiC;AACjC,iBAAiB;AACjB,yCAAyC;AACzC,mDAAmD;AACnD,+BAA+B;AAC/B,uCAAuC;AACvC,uCAAuC;AACvC,mDAAmD;AACnD,sBAAsB;AACtB,8CAA8C;AAC9C,4BAA4B;AAC5B,4BAA4B;AAC5B,aAAa;AACb,WAAW;AACX,OAAO;AAEP,6EAA6E;AAC7E,6EAA6E;AAC7E,8BAA8B;AAC9B,uBAAuB;AACvB,0BAA0B;AAC1B,qDAAqD;AACrD,OAAO;AAEP,2EAA2E;AAC3E,0EAA0E;AAC1E,8BAA8B;AAC9B,wCAAwC;AACxC,eAAe;AACf,QAAQ;AAER,kEAAkE;AAClE,iDAAiD;AACjD,+BAA+B;AAC/B,SAAS;AAET,sBAAsB;AACtB,eAAe;AACf,QAAQ;AAER,6BAA6B;AAC7B,qEAAqE;AACrE,6DAA6D;AAC7D,iBAAiB;AACjB,uBAAuB;AACvB,4CAA4C;AAC5C,iCAAiC;AACjC,kDAAkD;AAClD,yBAAyB;AACzB,0BAA0B;AAC1B,UAAU;AACV,SAAS;AAET,uBAAuB;AACvB,wBAAwB;AACxB,gCAAgC;AAChC,8BAA8B;AAC9B,iDAAiD;AACjD,iBAAiB;AACjB,8CAA8C;AAC9C,oDAAoD;AACpD,aAAa;AACb,WAAW;AACX,OAAO;AAEP,6EAA6E;AAC7E,4EAA4E;AAC5E,8BAA8B;AAC9B,wCAAwC;AACxC,eAAe;AACf,QAAQ;AAER,uBAAuB;AACvB,wBAAwB;AACxB,gBAAgB;AAChB,mFAAmF;AACnF,UAAU;AACV,OAAO;AACP,IAAI"}
File without changes