@filoz/repair-cli 0.4.0 → 1.0.0

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 (106) hide show
  1. package/dist/package.json +3 -3
  2. package/dist/src/api.d.ts +35 -0
  3. package/dist/src/api.d.ts.map +1 -0
  4. package/dist/src/api.js +118 -0
  5. package/dist/src/api.js.map +1 -0
  6. package/dist/src/commands/datasets.d.ts +3 -5
  7. package/dist/src/commands/datasets.d.ts.map +1 -1
  8. package/dist/src/commands/datasets.js +24 -33
  9. package/dist/src/commands/datasets.js.map +1 -1
  10. package/dist/src/commands/providers.d.ts +3 -5
  11. package/dist/src/commands/providers.d.ts.map +1 -1
  12. package/dist/src/commands/providers.js +32 -33
  13. package/dist/src/commands/providers.js.map +1 -1
  14. package/dist/src/commands/repair.d.ts +3 -5
  15. package/dist/src/commands/repair.d.ts.map +1 -1
  16. package/dist/src/commands/replicate.d.ts +3 -5
  17. package/dist/src/commands/replicate.d.ts.map +1 -1
  18. package/dist/src/commands/second-copy.d.ts +3 -5
  19. package/dist/src/commands/second-copy.d.ts.map +1 -1
  20. package/dist/src/commands/session-key.d.ts +3 -5
  21. package/dist/src/commands/session-key.d.ts.map +1 -1
  22. package/dist/src/commands/setup.d.ts.map +1 -1
  23. package/dist/src/commands/setup.js +11 -32
  24. package/dist/src/commands/setup.js.map +1 -1
  25. package/dist/src/commands/wallet.d.ts +3 -5
  26. package/dist/src/commands/wallet.d.ts.map +1 -1
  27. package/dist/src/db/dedupe-cids.d.ts +6 -7
  28. package/dist/src/db/dedupe-cids.d.ts.map +1 -1
  29. package/dist/src/db/dedupe-cids.js +2 -14
  30. package/dist/src/db/dedupe-cids.js.map +1 -1
  31. package/dist/src/db/find-repair-dataset.d.ts +3 -3
  32. package/dist/src/db/find-repair-dataset.d.ts.map +1 -1
  33. package/dist/src/db/find-repair-dataset.js +16 -14
  34. package/dist/src/db/find-repair-dataset.js.map +1 -1
  35. package/dist/src/db/get-active-data-set-ids.d.ts +9 -0
  36. package/dist/src/db/get-active-data-set-ids.d.ts.map +1 -0
  37. package/dist/src/db/get-active-data-set-ids.js +9 -0
  38. package/dist/src/db/get-active-data-set-ids.js.map +1 -0
  39. package/dist/src/db/get-alternate-provider-urls.d.ts +6 -0
  40. package/dist/src/db/get-alternate-provider-urls.d.ts.map +1 -0
  41. package/dist/src/db/get-alternate-provider-urls.js +24 -0
  42. package/dist/src/db/get-alternate-provider-urls.js.map +1 -0
  43. package/dist/src/db/get-pieces.d.ts +8 -27
  44. package/dist/src/db/get-pieces.d.ts.map +1 -1
  45. package/dist/src/db/get-pieces.js +44 -97
  46. package/dist/src/db/get-pieces.js.map +1 -1
  47. package/dist/src/db/get-repair-provider.d.ts +2 -2
  48. package/dist/src/db/get-repair-provider.d.ts.map +1 -1
  49. package/dist/src/db/get-repair-provider.js +8 -20
  50. package/dist/src/db/get-repair-provider.js.map +1 -1
  51. package/dist/src/db/repair-create.js +3 -3
  52. package/dist/src/db/repair-create.js.map +1 -1
  53. package/dist/src/db/replicate-create.d.ts.map +1 -1
  54. package/dist/src/db/replicate-create.js +13 -21
  55. package/dist/src/db/replicate-create.js.map +1 -1
  56. package/dist/src/db/second-copy-create.js +2 -2
  57. package/dist/src/db/second-copy-create.js.map +1 -1
  58. package/dist/src/local-schema.d.ts +1 -1
  59. package/dist/src/middleware.d.ts +7 -11
  60. package/dist/src/middleware.d.ts.map +1 -1
  61. package/dist/src/middleware.js +6 -10
  62. package/dist/src/middleware.js.map +1 -1
  63. package/dist/src/pipeline/add-pieces.d.ts +3 -3
  64. package/dist/src/pipeline/add-pieces.d.ts.map +1 -1
  65. package/dist/src/pipeline/add-pieces.js +15 -7
  66. package/dist/src/pipeline/add-pieces.js.map +1 -1
  67. package/dist/src/pipeline/create-datasets.d.ts +4 -4
  68. package/dist/src/pipeline/create-datasets.d.ts.map +1 -1
  69. package/dist/src/pipeline/create-datasets.js +7 -14
  70. package/dist/src/pipeline/create-datasets.js.map +1 -1
  71. package/dist/src/types.d.ts +6 -7
  72. package/dist/src/types.d.ts.map +1 -1
  73. package/dist/src/utils.d.ts +7 -10
  74. package/dist/src/utils.d.ts.map +1 -1
  75. package/dist/src/utils.js +1 -2
  76. package/dist/src/utils.js.map +1 -1
  77. package/package.json +3 -3
  78. package/readme.md +16 -13
  79. package/src/api.ts +220 -0
  80. package/src/commands/datasets.ts +24 -36
  81. package/src/commands/providers.ts +34 -42
  82. package/src/commands/setup.ts +12 -35
  83. package/src/db/dedupe-cids.ts +7 -24
  84. package/src/db/find-repair-dataset.ts +17 -28
  85. package/src/db/get-active-data-set-ids.ts +29 -0
  86. package/src/db/get-alternate-provider-urls.ts +43 -0
  87. package/src/db/get-pieces.ts +82 -214
  88. package/src/db/get-repair-provider.ts +10 -30
  89. package/src/db/repair-create.ts +3 -3
  90. package/src/db/replicate-create.ts +13 -21
  91. package/src/db/second-copy-create.ts +2 -2
  92. package/src/middleware.ts +7 -11
  93. package/src/pipeline/add-pieces.ts +20 -10
  94. package/src/pipeline/create-datasets.ts +9 -29
  95. package/src/types.ts +9 -7
  96. package/src/utils.ts +2 -4
  97. package/dist/src/db/find-providers-by-cid.d.ts +0 -9
  98. package/dist/src/db/find-providers-by-cid.d.ts.map +0 -1
  99. package/dist/src/db/find-providers-by-cid.js +0 -43
  100. package/dist/src/db/find-providers-by-cid.js.map +0 -1
  101. package/dist/src/indexer-schema.d.ts +0 -549
  102. package/dist/src/indexer-schema.d.ts.map +0 -1
  103. package/dist/src/indexer-schema.js +0 -56
  104. package/dist/src/indexer-schema.js.map +0 -1
  105. package/src/db/find-providers-by-cid.ts +0 -70
  106. package/src/indexer-schema.ts +0 -77
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@filoz/repair-cli",
3
- "version": "0.4.0",
3
+ "version": "1.0.0",
4
4
  "description": "Early repair for faulty service providers and datasets",
5
5
  "repository": {
6
6
  "type": "git",
@@ -105,10 +105,12 @@
105
105
  },
106
106
  "dependencies": {
107
107
  "@clack/prompts": "^1.5.1",
108
+ "@filecoin-project/api-client": "^0.2.0",
108
109
  "@filoz/synapse-core": "^0.7.0",
109
110
  "@libsql/client": "^0.17.3",
110
111
  "conf": "^15.1.0",
111
112
  "drizzle-orm": "catalog:",
113
+ "fetch-extras": "^3.2.1",
112
114
  "incur": "^0.4.6",
113
115
  "iso-base": "^4.4.0",
114
116
  "iso-conf": "^0.4.0",
@@ -117,14 +119,12 @@
117
119
  "p-locate": "^7.0.0",
118
120
  "p-map": "^7.0.4",
119
121
  "p-queue": "^9.3.0",
120
- "pg": "^8.21.0",
121
122
  "terminal-link": "^5.0.0",
122
123
  "viem": "catalog:"
123
124
  },
124
125
  "devDependencies": {
125
126
  "@biomejs/biome": "catalog:",
126
127
  "@types/node": "catalog:",
127
- "@types/pg": "^8.20.0",
128
128
  "playwright-test": "^14.1.12",
129
129
  "type-fest": "^5.7.0",
130
130
  "typescript": "catalog:"
@@ -0,0 +1,35 @@
1
+ import { type DataSet, type Piece, type PieceWithDataSet, type Provider } from '@filecoin-project/api-client';
2
+ import type { IndexerApi } from './types.ts';
3
+ export { ApiError, DEFAULT_API_URL } from '@filecoin-project/api-client';
4
+ export type { DataSet, Piece, PieceWithDataSet, Provider };
5
+ export type Network = 'mainnet' | 'calibration';
6
+ export declare const MAX_PAGE_SIZE = 200;
7
+ export declare function networkFromChainId(chainId: number): Network;
8
+ export declare function createIndexerApi({ baseUrl, chainId }: {
9
+ baseUrl?: string;
10
+ chainId: number;
11
+ }): IndexerApi;
12
+ export declare function getProvider({ client, network }: IndexerApi, providerId: bigint): Promise<Provider | null>;
13
+ export declare function listProviders({ client, network }: IndexerApi, query?: {
14
+ active?: boolean;
15
+ approved?: boolean;
16
+ endorsed?: boolean;
17
+ }): Promise<Provider[]>;
18
+ export declare function getDataSet({ client, network }: IndexerApi, dataSetId: bigint): Promise<DataSet | null>;
19
+ export declare function listDataSets({ client, network }: IndexerApi, query: {
20
+ owner?: string;
21
+ providerId?: bigint;
22
+ deleted?: boolean;
23
+ withCdn?: boolean;
24
+ }): Promise<DataSet[]>;
25
+ export declare function dataSetPiecePages({ client, network }: IndexerApi, dataSetId: bigint, query?: {
26
+ removed?: boolean;
27
+ }): AsyncGenerator<Piece[]>;
28
+ export declare function listDataSetPieces(api: IndexerApi, dataSetId: bigint, query?: {
29
+ removed?: boolean;
30
+ }): Promise<Piece[]>;
31
+ export declare function providerPiecePages({ client, network }: IndexerApi, providerId: bigint, query?: {
32
+ removed?: boolean;
33
+ }): AsyncGenerator<PieceWithDataSet[]>;
34
+ export declare function toStringMetadata(metadata: Record<string, unknown> | null): Record<string, string>;
35
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EAEZ,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EAEd,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACxE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAA;AAG1D,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,aAAa,CAAA;AAG/C,eAAO,MAAM,aAAa,MAAM,CAAA;AAYhC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAQD,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAaxG;AAoCD,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAQzG;AAGD,wBAAgB,aAAa,CAC3B,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,EAC/B,KAAK,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACvE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAmBrB;AAGD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQtG;AAGD,wBAAgB,YAAY,CAC1B,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,EAC/B,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACnF,OAAO,CAAC,OAAO,EAAE,CAAC,CAoBpB;AAGD,wBAAgB,iBAAiB,CAC/B,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,EAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,cAAc,CAAC,KAAK,EAAE,CAAC,CAWzB;AAGD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,OAAO,CAAC,KAAK,EAAE,CAAC,CAElB;AAMD,wBAAgB,kBAAkB,CAChC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,EAC/B,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAWpC;AAQD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjG"}
@@ -0,0 +1,118 @@
1
+ import { ApiError, createApiClient, DEFAULT_API_URL, unwrap, } from '@filecoin-project/api-client';
2
+ import { pipeline, withRateLimit, withRetry, withTimeout } from 'fetch-extras';
3
+ export { ApiError, DEFAULT_API_URL } from '@filecoin-project/api-client';
4
+ export const MAX_PAGE_SIZE = 200;
5
+ const MAX_RETRIES = 5;
6
+ const REQUEST_TIMEOUT_MS = 30_000;
7
+ const RATE_LIMIT = { requestsPerInterval: 120, interval: 60_000 };
8
+ export function networkFromChainId(chainId) {
9
+ return chainId === 314 ? 'mainnet' : 'calibration';
10
+ }
11
+ export function createIndexerApi({ baseUrl, chainId }) {
12
+ const fetchWithRetry = pipeline(fetch, withTimeout(REQUEST_TIMEOUT_MS), withRateLimit(RATE_LIMIT), withRetry({ retries: MAX_RETRIES }));
13
+ return {
14
+ client: createApiClient({ baseUrl: baseUrl ?? DEFAULT_API_URL, fetch: fetchWithRetry }),
15
+ network: networkFromChainId(chainId),
16
+ };
17
+ }
18
+ async function orNull(promise) {
19
+ try {
20
+ return await promise;
21
+ }
22
+ catch (error) {
23
+ if (ApiError.isNotFound(error))
24
+ return null;
25
+ throw error;
26
+ }
27
+ }
28
+ async function collect(pages) {
29
+ const items = [];
30
+ for await (const page of pages)
31
+ items.push(...page);
32
+ return items;
33
+ }
34
+ async function* paginate(fetchPage) {
35
+ let cursor;
36
+ do {
37
+ const page = await fetchPage(cursor);
38
+ yield page.data;
39
+ cursor = page.nextCursor ?? undefined;
40
+ } while (cursor);
41
+ }
42
+ export function getProvider({ client, network }, providerId) {
43
+ return orNull(client
44
+ .GET('/{network}/providers/{providerId}', {
45
+ params: { path: { network, providerId: providerId.toString() } },
46
+ })
47
+ .then((result) => unwrap(result).data));
48
+ }
49
+ export function listProviders({ client, network }, query = {}) {
50
+ return collect(paginate((cursor) => client
51
+ .GET('/{network}/providers', {
52
+ params: {
53
+ path: { network },
54
+ query: {
55
+ limit: MAX_PAGE_SIZE,
56
+ cursor,
57
+ active: bool(query.active),
58
+ approved: bool(query.approved),
59
+ endorsed: bool(query.endorsed),
60
+ },
61
+ },
62
+ })
63
+ .then(unwrap)));
64
+ }
65
+ export function getDataSet({ client, network }, dataSetId) {
66
+ return orNull(client
67
+ .GET('/{network}/data-sets/{dataSetId}', {
68
+ params: { path: { network, dataSetId: dataSetId.toString() } },
69
+ })
70
+ .then((result) => unwrap(result).data));
71
+ }
72
+ export function listDataSets({ client, network }, query) {
73
+ return collect(paginate((cursor) => client
74
+ .GET('/{network}/data-sets', {
75
+ params: {
76
+ path: { network },
77
+ query: {
78
+ limit: MAX_PAGE_SIZE,
79
+ cursor,
80
+ owner: query.owner,
81
+ provider_id: query.providerId?.toString(),
82
+ deleted: bool(query.deleted),
83
+ with_cdn: bool(query.withCdn),
84
+ },
85
+ },
86
+ })
87
+ .then(unwrap)));
88
+ }
89
+ export function dataSetPiecePages({ client, network }, dataSetId, query = {}) {
90
+ return paginate((cursor) => client
91
+ .GET('/{network}/data-sets/{dataSetId}/pieces', {
92
+ params: {
93
+ path: { network, dataSetId: dataSetId.toString() },
94
+ query: { limit: MAX_PAGE_SIZE, cursor, removed: bool(query.removed) },
95
+ },
96
+ })
97
+ .then(unwrap));
98
+ }
99
+ export function listDataSetPieces(api, dataSetId, query = {}) {
100
+ return collect(dataSetPiecePages(api, dataSetId, query));
101
+ }
102
+ export function providerPiecePages({ client, network }, providerId, query = {}) {
103
+ return paginate((cursor) => client
104
+ .GET('/{network}/pieces', {
105
+ params: {
106
+ path: { network },
107
+ query: { limit: MAX_PAGE_SIZE, cursor, provider_id: providerId.toString(), removed: bool(query.removed) },
108
+ },
109
+ })
110
+ .then(unwrap));
111
+ }
112
+ function bool(value) {
113
+ return value === undefined ? undefined : value ? 'true' : 'false';
114
+ }
115
+ export function toStringMetadata(metadata) {
116
+ return Object.fromEntries(Object.entries(metadata ?? {}).map(([key, value]) => [key, String(value)]));
117
+ }
118
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,16 @@
1
1
  import { Cli, z } from 'incur';
2
2
  export declare const datasets: Cli.Cli<{}, z.ZodObject<{
3
- indexerDb: z.ZodCustom<import("../types.ts").IndexerDatabase, import("../types.ts").IndexerDatabase>;
3
+ api: z.ZodCustom<import("../types.ts").IndexerApi, import("../types.ts").IndexerApi>;
4
4
  localDb: z.ZodCustom<import("../types.ts").LocalDatabase, import("../types.ts").LocalDatabase>;
5
5
  config: z.ZodCustom<import("iso-conf").Conf<z.ZodObject<{
6
6
  privateKey: z.ZodOptional<z.ZodString>;
7
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
8
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
7
+ apiUrl: z.ZodOptional<z.ZodURL>;
9
8
  chainId: z.ZodOptional<z.ZodNumber>;
10
9
  dbPath: z.ZodOptional<z.ZodString>;
11
10
  source: z.ZodOptional<z.ZodString>;
12
11
  }, z.core.$strip>>, import("iso-conf").Conf<z.ZodObject<{
13
12
  privateKey: z.ZodOptional<z.ZodString>;
14
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
15
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
13
+ apiUrl: z.ZodOptional<z.ZodURL>;
16
14
  chainId: z.ZodOptional<z.ZodNumber>;
17
15
  dbPath: z.ZodOptional<z.ZodString>;
18
16
  source: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../../../src/commands/datasets.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAK9B,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;6BAInB,CAAA"}
1
+ {"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../../../src/commands/datasets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAM9B,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;6BAInB,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import * as p from '@clack/prompts';
2
2
  import * as SP from '@filoz/synapse-core/sp';
3
3
  import { getPdpDataSet } from '@filoz/synapse-core/warm-storage';
4
- import { and, asc, eq } from 'drizzle-orm';
5
4
  import { Cli, z } from 'incur';
6
5
  import { isAddress } from 'viem';
6
+ import { getDataSet, getProvider, listDataSetPieces, listDataSets, listProviders } from "../api.js";
7
7
  import { contextMiddleware, contextSchema } from "../middleware.js";
8
8
  import { globalOptions, hashLink } from "../utils.js";
9
9
  export const datasets = Cli.create('datasets', {
@@ -16,38 +16,32 @@ datasets.command('list', {
16
16
  options: globalOptions.extend({
17
17
  providerId: z.coerce.bigint().optional().describe('Filter datasets by provider ID'),
18
18
  payer: z.string().refine(isAddress, 'Invalid address').optional().describe('Filter datasets by payer address'),
19
+ stats: z.boolean().optional().default(false).describe('Include piece counts (slow: walks every piece)'),
19
20
  }),
20
21
  middleware: [contextMiddleware],
21
22
  run: async (c) => {
22
23
  try {
23
- const schema = c.var.indexerDb._.fullSchema;
24
+ const { api } = c.var;
24
25
  const payer = c.options.payer?.toLowerCase() ?? c.var.client.account.address.toLowerCase();
25
- const conditions = [eq(schema.dataSets.deleted, false), eq(schema.dataSets.payer, payer)];
26
- if (c.options.providerId != null) {
27
- conditions.push(eq(schema.dataSets.providerId, c.options.providerId));
28
- }
29
- const datasets = await c.var.indexerDb.query.dataSets.findMany({
30
- where: and(...conditions),
31
- with: {
32
- provider: true,
33
- pieces: {
34
- where: eq(c.var.indexerDb._.fullSchema.pieces.removed, false),
35
- },
36
- },
37
- orderBy: [asc(schema.dataSets.dataSetId)],
38
- });
39
- const datasetsFlattened = datasets.map((dataset) => {
40
- const { provider, pieces } = dataset;
41
- return {
26
+ const [rows, providers] = await Promise.all([
27
+ listDataSets(api, { owner: payer, providerId: c.options.providerId, deleted: false }),
28
+ listProviders(api),
29
+ ]);
30
+ const serviceUrls = new Map(providers.map((provider) => [provider.providerId, provider.serviceUrl]));
31
+ const datasetsFlattened = [];
32
+ for (const dataset of rows.reverse()) {
33
+ datasetsFlattened.push({
42
34
  id: dataset.dataSetId,
43
35
  withCdn: dataset.withCdn,
44
36
  withIpfsIndexing: dataset.withIpfsIndexing,
45
37
  source: dataset.source,
46
- provider: provider.serviceUrl,
38
+ provider: dataset.providerId == null ? null : serviceUrls.get(dataset.providerId),
47
39
  pdpEndEpoch: dataset.pdpEndEpoch,
48
- pieces: pieces.length,
49
- };
50
- });
40
+ ...(c.options.stats && {
41
+ pieces: (await listDataSetPieces(api, BigInt(dataset.dataSetId), { removed: false })).length,
42
+ }),
43
+ });
44
+ }
51
45
  return c.ok({
52
46
  datasets: datasetsFlattened,
53
47
  });
@@ -130,15 +124,8 @@ datasets.command('show', {
130
124
  middleware: [contextMiddleware],
131
125
  run: async (c) => {
132
126
  try {
133
- const dataset = await c.var.indexerDb.query.dataSets.findFirst({
134
- where: eq(c.var.indexerDb._.fullSchema.dataSets.dataSetId, c.args.id),
135
- with: {
136
- provider: true,
137
- pieces: {
138
- where: eq(c.var.indexerDb._.fullSchema.pieces.removed, false),
139
- },
140
- },
141
- });
127
+ const { api } = c.var;
128
+ const dataset = await getDataSet(api, c.args.id);
142
129
  if (!dataset) {
143
130
  return c.error({
144
131
  code: 'DATASET_NOT_FOUND',
@@ -146,7 +133,11 @@ datasets.command('show', {
146
133
  retryable: false,
147
134
  });
148
135
  }
149
- return c.ok(dataset);
136
+ const [provider, pieces] = await Promise.all([
137
+ dataset.providerId == null ? null : getProvider(api, BigInt(dataset.providerId)),
138
+ listDataSetPieces(api, c.args.id, { removed: false }),
139
+ ]);
140
+ return c.ok({ ...dataset, provider, pieces: pieces.reverse() });
150
141
  }
151
142
  catch (error) {
152
143
  if (c.options.debug) {
@@ -1 +1 @@
1
- {"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../../src/commands/datasets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../../src/commands/datasets.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,16 @@
1
1
  import { Cli, z } from 'incur';
2
2
  export declare const providers: Cli.Cli<{}, z.ZodObject<{
3
- indexerDb: z.ZodCustom<import("../types.ts").IndexerDatabase, import("../types.ts").IndexerDatabase>;
3
+ api: z.ZodCustom<import("../types.ts").IndexerApi, import("../types.ts").IndexerApi>;
4
4
  localDb: z.ZodCustom<import("../types.ts").LocalDatabase, import("../types.ts").LocalDatabase>;
5
5
  config: z.ZodCustom<import("iso-conf").Conf<z.ZodObject<{
6
6
  privateKey: z.ZodOptional<z.ZodString>;
7
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
8
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
7
+ apiUrl: z.ZodOptional<z.ZodURL>;
9
8
  chainId: z.ZodOptional<z.ZodNumber>;
10
9
  dbPath: z.ZodOptional<z.ZodString>;
11
10
  source: z.ZodOptional<z.ZodString>;
12
11
  }, z.core.$strip>>, import("iso-conf").Conf<z.ZodObject<{
13
12
  privateKey: z.ZodOptional<z.ZodString>;
14
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
15
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
13
+ apiUrl: z.ZodOptional<z.ZodURL>;
16
14
  chainId: z.ZodOptional<z.ZodNumber>;
17
15
  dbPath: z.ZodOptional<z.ZodString>;
18
16
  source: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/commands/providers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAa9B,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;6BAIpB,CAAA"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/commands/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAsB9B,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;6BAIpB,CAAA"}
@@ -1,6 +1,7 @@
1
- import { and, asc, count, eq, inArray, isNull, lte, or, sum } from 'drizzle-orm';
2
1
  import { Cli, z } from 'incur';
3
2
  import { getBlockNumber } from 'viem/actions';
3
+ import { listProviders, providerPiecePages } from "../api.js";
4
+ import { getActiveDataSetIds } from "../db/get-active-data-set-ids.js";
4
5
  import { contextMiddleware, contextSchema } from "../middleware.js";
5
6
  import { globalOptions } from "../utils.js";
6
7
  function formatBytesAsGb(bytes) {
@@ -9,6 +10,11 @@ function formatBytesAsGb(bytes) {
9
10
  const fraction = scaled % 100n;
10
11
  return `${whole}.${fraction.toString().padStart(2, '0')} GB`;
11
12
  }
13
+ function compareIds(a, b) {
14
+ const x = BigInt(a);
15
+ const y = BigInt(b);
16
+ return x < y ? -1 : x > y ? 1 : 0;
17
+ }
12
18
  export const providers = Cli.create('providers', {
13
19
  description: 'Provider commands',
14
20
  options: globalOptions,
@@ -18,41 +24,35 @@ providers.command('list', {
18
24
  description: 'List all providers from the indexer',
19
25
  options: globalOptions.extend({
20
26
  all: z.boolean().optional().default(false).describe('Include all providers'),
27
+ stats: z
28
+ .boolean()
29
+ .optional()
30
+ .default(false)
31
+ .describe('Include piece count and total size (slow: walks every piece of each provider)'),
21
32
  }),
22
33
  middleware: [contextMiddleware],
23
34
  run: async (c) => {
24
35
  try {
25
- const schema = c.var.indexerDb._.fullSchema;
26
- const filters = [
27
- eq(schema.providers.providerActive, true),
28
- eq(schema.providers.pdpProductActive, true),
29
- ];
30
- if (!c.options.all) {
31
- filters.push(or(eq(schema.providers.approved, true), eq(schema.providers.endorsed, true)));
32
- }
33
- const blockNumber = await getBlockNumber(c.var.client);
34
- const rows = await c.var.indexerDb.query.providers.findMany({
35
- orderBy: [asc(schema.providers.providerId)],
36
- where: and(...filters),
37
- });
38
- const providerIds = rows.map((provider) => provider.providerId);
36
+ const { api } = c.var;
37
+ const rows = (await listProviders(api, { active: true }))
38
+ .filter((provider) => provider.pdpProductActive && (c.options.all || provider.approved || provider.endorsed))
39
+ .sort((a, b) => compareIds(a.providerId, b.providerId));
39
40
  const statsByProviderId = new Map();
40
- if (providerIds.length > 0) {
41
- const stats = await c.var.indexerDb
42
- .select({
43
- providerId: schema.dataSets.providerId,
44
- pieceCount: count(schema.pieces.pieceId),
45
- totalSize: sum(schema.pieces.rawSize),
46
- })
47
- .from(schema.pieces)
48
- .innerJoin(schema.dataSets, eq(schema.pieces.dataSetId, schema.dataSets.dataSetId))
49
- .where(and(inArray(schema.dataSets.providerId, providerIds), eq(schema.dataSets.deleted, false), or(isNull(schema.dataSets.pdpEndEpoch), lte(schema.dataSets.pdpEndEpoch, blockNumber)), eq(schema.pieces.removed, false)))
50
- .groupBy(schema.dataSets.providerId);
51
- for (const stat of stats) {
52
- statsByProviderId.set(stat.providerId, {
53
- pieceCount: stat.pieceCount,
54
- totalSize: stat.totalSize == null ? 0n : BigInt(stat.totalSize),
55
- });
41
+ if (c.options.stats && rows.length > 0) {
42
+ const blockNumber = await getBlockNumber(c.var.client);
43
+ for (const provider of rows) {
44
+ const providerId = BigInt(provider.providerId);
45
+ const activeDataSetIds = await getActiveDataSetIds({ api, providerId, blockNumber });
46
+ const stats = { pieceCount: 0, totalSize: 0n };
47
+ for await (const pieces of providerPiecePages(api, providerId, { removed: false })) {
48
+ for (const piece of pieces) {
49
+ if (!activeDataSetIds.has(piece.dataSetId))
50
+ continue;
51
+ stats.pieceCount++;
52
+ stats.totalSize += BigInt(piece.rawSize ?? 0);
53
+ }
54
+ }
55
+ statsByProviderId.set(provider.providerId, stats);
56
56
  }
57
57
  }
58
58
  const providersFlattened = rows.map((provider) => {
@@ -63,8 +63,7 @@ providers.command('list', {
63
63
  serviceUrl: provider.serviceUrl,
64
64
  approved: provider.approved,
65
65
  endorsed: provider.endorsed,
66
- pieceCount: stats?.pieceCount ?? 0,
67
- totalSize: formatBytesAsGb(stats?.totalSize ?? 0n),
66
+ ...(stats && { pieceCount: stats.pieceCount, totalSize: formatBytesAsGb(stats.totalSize) }),
68
67
  };
69
68
  });
70
69
  return c.ok({
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/commands/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/commands/providers.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,16 @@
1
1
  import { Cli, z } from 'incur';
2
2
  export declare const repair: Cli.Cli<{}, z.ZodObject<{
3
- indexerDb: z.ZodCustom<import("../types.ts").IndexerDatabase, import("../types.ts").IndexerDatabase>;
3
+ api: z.ZodCustom<import("../types.ts").IndexerApi, import("../types.ts").IndexerApi>;
4
4
  localDb: z.ZodCustom<import("../types.ts").LocalDatabase, import("../types.ts").LocalDatabase>;
5
5
  config: z.ZodCustom<import("iso-conf").Conf<z.ZodObject<{
6
6
  privateKey: z.ZodOptional<z.ZodString>;
7
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
8
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
7
+ apiUrl: z.ZodOptional<z.ZodURL>;
9
8
  chainId: z.ZodOptional<z.ZodNumber>;
10
9
  dbPath: z.ZodOptional<z.ZodString>;
11
10
  source: z.ZodOptional<z.ZodString>;
12
11
  }, z.core.$strip>>, import("iso-conf").Conf<z.ZodObject<{
13
12
  privateKey: z.ZodOptional<z.ZodString>;
14
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
15
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
13
+ apiUrl: z.ZodOptional<z.ZodURL>;
16
14
  chainId: z.ZodOptional<z.ZodNumber>;
17
15
  dbPath: z.ZodOptional<z.ZodString>;
18
16
  source: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../../src/commands/repair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAS9B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;6BAGjB,CAAA"}
1
+ {"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../../src/commands/repair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAS9B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;6BAGjB,CAAA"}
@@ -1,18 +1,16 @@
1
1
  import { Cli, z } from 'incur';
2
2
  export declare const replicate: Cli.Cli<{}, z.ZodObject<{
3
- indexerDb: z.ZodCustom<import("../types.ts").IndexerDatabase, import("../types.ts").IndexerDatabase>;
3
+ api: z.ZodCustom<import("../types.ts").IndexerApi, import("../types.ts").IndexerApi>;
4
4
  localDb: z.ZodCustom<import("../types.ts").LocalDatabase, import("../types.ts").LocalDatabase>;
5
5
  config: z.ZodCustom<import("iso-conf").Conf<z.ZodObject<{
6
6
  privateKey: z.ZodOptional<z.ZodString>;
7
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
8
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
7
+ apiUrl: z.ZodOptional<z.ZodURL>;
9
8
  chainId: z.ZodOptional<z.ZodNumber>;
10
9
  dbPath: z.ZodOptional<z.ZodString>;
11
10
  source: z.ZodOptional<z.ZodString>;
12
11
  }, z.core.$strip>>, import("iso-conf").Conf<z.ZodObject<{
13
12
  privateKey: z.ZodOptional<z.ZodString>;
14
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
15
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
13
+ apiUrl: z.ZodOptional<z.ZodURL>;
16
14
  chainId: z.ZodOptional<z.ZodNumber>;
17
15
  dbPath: z.ZodOptional<z.ZodString>;
18
16
  source: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"replicate.d.ts","sourceRoot":"","sources":["../../../src/commands/replicate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAS9B,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;6BAGpB,CAAA"}
1
+ {"version":3,"file":"replicate.d.ts","sourceRoot":"","sources":["../../../src/commands/replicate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAS9B,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;6BAGpB,CAAA"}
@@ -1,18 +1,16 @@
1
1
  import { Cli, z } from 'incur';
2
2
  export declare const secondCopy: Cli.Cli<{}, z.ZodObject<{
3
- indexerDb: z.ZodCustom<import("../types.ts").IndexerDatabase, import("../types.ts").IndexerDatabase>;
3
+ api: z.ZodCustom<import("../types.ts").IndexerApi, import("../types.ts").IndexerApi>;
4
4
  localDb: z.ZodCustom<import("../types.ts").LocalDatabase, import("../types.ts").LocalDatabase>;
5
5
  config: z.ZodCustom<import("iso-conf").Conf<z.ZodObject<{
6
6
  privateKey: z.ZodOptional<z.ZodString>;
7
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
8
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
7
+ apiUrl: z.ZodOptional<z.ZodURL>;
9
8
  chainId: z.ZodOptional<z.ZodNumber>;
10
9
  dbPath: z.ZodOptional<z.ZodString>;
11
10
  source: z.ZodOptional<z.ZodString>;
12
11
  }, z.core.$strip>>, import("iso-conf").Conf<z.ZodObject<{
13
12
  privateKey: z.ZodOptional<z.ZodString>;
14
- indexerMainnetUrl: z.ZodOptional<z.ZodURL>;
15
- indexerCalibrationUrl: z.ZodOptional<z.ZodURL>;
13
+ apiUrl: z.ZodOptional<z.ZodURL>;
16
14
  chainId: z.ZodOptional<z.ZodNumber>;
17
15
  dbPath: z.ZodOptional<z.ZodString>;
18
16
  source: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"second-copy.d.ts","sourceRoot":"","sources":["../../../src/commands/second-copy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAS9B,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;6BAGrB,CAAA"}
1
+ {"version":3,"file":"second-copy.d.ts","sourceRoot":"","sources":["../../../src/commands/second-copy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAS9B,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;6BAGrB,CAAA"}