@filoz/repair-cli 0.0.1

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 (127) hide show
  1. package/dist/src/cli.d.ts +3 -0
  2. package/dist/src/cli.d.ts.map +1 -0
  3. package/dist/src/cli.js +19 -0
  4. package/dist/src/cli.js.map +1 -0
  5. package/dist/src/commands/datasets.d.ts +9 -0
  6. package/dist/src/commands/datasets.d.ts.map +1 -0
  7. package/dist/src/commands/datasets.js +59 -0
  8. package/dist/src/commands/datasets.js.map +1 -0
  9. package/dist/src/commands/providers.d.ts +9 -0
  10. package/dist/src/commands/providers.d.ts.map +1 -0
  11. package/dist/src/commands/providers.js +84 -0
  12. package/dist/src/commands/providers.js.map +1 -0
  13. package/dist/src/commands/repair.d.ts +9 -0
  14. package/dist/src/commands/repair.d.ts.map +1 -0
  15. package/dist/src/commands/repair.js +170 -0
  16. package/dist/src/commands/repair.js.map +1 -0
  17. package/dist/src/commands/setup.d.ts +11 -0
  18. package/dist/src/commands/setup.d.ts.map +1 -0
  19. package/dist/src/commands/setup.js +127 -0
  20. package/dist/src/commands/setup.js.map +1 -0
  21. package/dist/src/commands/wallet.d.ts +9 -0
  22. package/dist/src/commands/wallet.d.ts.map +1 -0
  23. package/dist/src/commands/wallet.js +150 -0
  24. package/dist/src/commands/wallet.js.map +1 -0
  25. package/dist/src/db/get-pieces.d.ts +23 -0
  26. package/dist/src/db/get-pieces.d.ts.map +1 -0
  27. package/dist/src/db/get-pieces.js +84 -0
  28. package/dist/src/db/get-pieces.js.map +1 -0
  29. package/dist/src/db/get-providers-by-cid.d.ts +10 -0
  30. package/dist/src/db/get-providers-by-cid.d.ts.map +1 -0
  31. package/dist/src/db/get-providers-by-cid.js +45 -0
  32. package/dist/src/db/get-providers-by-cid.js.map +1 -0
  33. package/dist/src/db/get-repair-dataset.d.ts +9 -0
  34. package/dist/src/db/get-repair-dataset.d.ts.map +1 -0
  35. package/dist/src/db/get-repair-dataset.js +15 -0
  36. package/dist/src/db/get-repair-dataset.js.map +1 -0
  37. package/dist/src/db/get-repair-provider.d.ts +6 -0
  38. package/dist/src/db/get-repair-provider.d.ts.map +1 -0
  39. package/dist/src/db/get-repair-provider.js +28 -0
  40. package/dist/src/db/get-repair-provider.js.map +1 -0
  41. package/dist/src/db/get-target-dataset.d.ts +7 -0
  42. package/dist/src/db/get-target-dataset.d.ts.map +1 -0
  43. package/dist/src/db/get-target-dataset.js +27 -0
  44. package/dist/src/db/get-target-dataset.js.map +1 -0
  45. package/dist/src/db/repair-create.d.ts +7 -0
  46. package/dist/src/db/repair-create.d.ts.map +1 -0
  47. package/dist/src/db/repair-create.js +69 -0
  48. package/dist/src/db/repair-create.js.map +1 -0
  49. package/dist/src/db/repair-delete.d.ts +11 -0
  50. package/dist/src/db/repair-delete.d.ts.map +1 -0
  51. package/dist/src/db/repair-delete.js +22 -0
  52. package/dist/src/db/repair-delete.js.map +1 -0
  53. package/dist/src/db/repair-update.d.ts +10 -0
  54. package/dist/src/db/repair-update.d.ts.map +1 -0
  55. package/dist/src/db/repair-update.js +13 -0
  56. package/dist/src/db/repair-update.js.map +1 -0
  57. package/dist/src/db/sync-pieces-onchain.d.ts +10 -0
  58. package/dist/src/db/sync-pieces-onchain.d.ts.map +1 -0
  59. package/dist/src/db/sync-pieces-onchain.js +35 -0
  60. package/dist/src/db/sync-pieces-onchain.js.map +1 -0
  61. package/dist/src/db/update-operation.d.ts +11 -0
  62. package/dist/src/db/update-operation.d.ts.map +1 -0
  63. package/dist/src/db/update-operation.js +14 -0
  64. package/dist/src/db/update-operation.js.map +1 -0
  65. package/dist/src/db/upsert-operations.d.ts +8 -0
  66. package/dist/src/db/upsert-operations.d.ts.map +1 -0
  67. package/dist/src/db/upsert-operations.js +13 -0
  68. package/dist/src/db/upsert-operations.js.map +1 -0
  69. package/dist/src/error.d.ts +14 -0
  70. package/dist/src/error.d.ts.map +1 -0
  71. package/dist/src/error.js +27 -0
  72. package/dist/src/error.js.map +1 -0
  73. package/dist/src/indexer-schema.d.ts +549 -0
  74. package/dist/src/indexer-schema.d.ts.map +1 -0
  75. package/dist/src/indexer-schema.js +56 -0
  76. package/dist/src/indexer-schema.js.map +1 -0
  77. package/dist/src/local-schema.d.ts +456 -0
  78. package/dist/src/local-schema.d.ts.map +1 -0
  79. package/dist/src/local-schema.js +63 -0
  80. package/dist/src/local-schema.js.map +1 -0
  81. package/dist/src/middleware.d.ts +19 -0
  82. package/dist/src/middleware.d.ts.map +1 -0
  83. package/dist/src/middleware.js +28 -0
  84. package/dist/src/middleware.js.map +1 -0
  85. package/dist/src/pipeline/create-datasets.d.ts +10 -0
  86. package/dist/src/pipeline/create-datasets.d.ts.map +1 -0
  87. package/dist/src/pipeline/create-datasets.js +48 -0
  88. package/dist/src/pipeline/create-datasets.js.map +1 -0
  89. package/dist/src/pipeline/pull.d.ts +30 -0
  90. package/dist/src/pipeline/pull.d.ts.map +1 -0
  91. package/dist/src/pipeline/pull.js +169 -0
  92. package/dist/src/pipeline/pull.js.map +1 -0
  93. package/dist/src/types.d.ts +34 -0
  94. package/dist/src/types.d.ts.map +1 -0
  95. package/dist/src/types.js +1 -0
  96. package/dist/src/types.js.map +1 -0
  97. package/dist/src/utils.d.ts +11945 -0
  98. package/dist/src/utils.d.ts.map +1 -0
  99. package/dist/src/utils.js +121 -0
  100. package/dist/src/utils.js.map +1 -0
  101. package/package.json +135 -0
  102. package/readme.md +250 -0
  103. package/src/cli.ts +20 -0
  104. package/src/commands/datasets.ts +62 -0
  105. package/src/commands/providers.ts +99 -0
  106. package/src/commands/repair.ts +177 -0
  107. package/src/commands/setup.ts +142 -0
  108. package/src/commands/wallet.ts +159 -0
  109. package/src/db/get-pieces.ts +189 -0
  110. package/src/db/get-providers-by-cid.ts +75 -0
  111. package/src/db/get-repair-dataset.ts +44 -0
  112. package/src/db/get-repair-provider.ts +47 -0
  113. package/src/db/get-target-dataset.ts +47 -0
  114. package/src/db/repair-create.ts +101 -0
  115. package/src/db/repair-delete.ts +39 -0
  116. package/src/db/repair-update.ts +20 -0
  117. package/src/db/sync-pieces-onchain.ts +53 -0
  118. package/src/db/update-operation.ts +26 -0
  119. package/src/db/upsert-operations.ts +23 -0
  120. package/src/error.ts +33 -0
  121. package/src/indexer-schema.ts +77 -0
  122. package/src/local-schema.ts +91 -0
  123. package/src/middleware.ts +34 -0
  124. package/src/pipeline/create-datasets.ts +70 -0
  125. package/src/pipeline/pull.ts +255 -0
  126. package/src/types.ts +41 -0
  127. package/src/utils.ts +190 -0
@@ -0,0 +1,30 @@
1
+ import { taskLog } from '@clack/prompts';
2
+ import type { OperationSelect, RepairSelect } from '../local-schema.ts';
3
+ import type { IndexerDatabase, LocalDatabase, WalletClient } from '../types.ts';
4
+ export type PullPiecesBatch = {
5
+ operations: OperationSelect[];
6
+ };
7
+ export type RunPullPiecesPhaseOptions = {
8
+ localDb: LocalDatabase;
9
+ indexerDb: IndexerDatabase;
10
+ repair: RepairSelect;
11
+ concurrency: number;
12
+ batchSize: number;
13
+ client: WalletClient;
14
+ reset: boolean;
15
+ };
16
+ export declare function createPullPiecesWorker({ localDb, indexerDb, repair, client, state, log, }: {
17
+ localDb: LocalDatabase;
18
+ indexerDb: IndexerDatabase;
19
+ repair: RepairSelect;
20
+ client: WalletClient;
21
+ state: {
22
+ totalBatches: number;
23
+ totalOperations: number;
24
+ completedOperations: number;
25
+ failedOperations: number;
26
+ };
27
+ log: ReturnType<typeof taskLog>;
28
+ }): (batch: PullPiecesBatch, batchNumber: number) => Promise<void>;
29
+ export declare function runPullPiecesPhase({ localDb, indexerDb, repair, concurrency, batchSize, client, reset, }: RunPullPiecesPhaseOptions): Promise<void>;
30
+ //# sourceMappingURL=pull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/pipeline/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAUxC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI/E,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,aAAa,CAAA;IACtB,SAAS,EAAE,eAAe,CAAA;IAC1B,MAAM,EAAE,YAAY,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAGD,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,GACJ,EAAE;IACD,OAAO,EAAE,aAAa,CAAA;IACtB,SAAS,EAAE,eAAe,CAAA;IAC1B,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;QACvB,mBAAmB,EAAE,MAAM,CAAA;QAC3B,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,GAAG,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAA;CAChC,IACe,OAAO,eAAe,EAAE,aAAa,MAAM,mBA+H1D;AAQD,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,MAAM,EACN,WAAW,EACX,SAAS,EACT,MAAM,EACN,KAAK,GACN,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6D3C"}
@@ -0,0 +1,169 @@
1
+ import { taskLog } from '@clack/prompts';
2
+ import * as Piece from '@filoz/synapse-core/piece';
3
+ import { createPieceUrlPDP } from '@filoz/synapse-core/piece';
4
+ import * as SP from '@filoz/synapse-core/sp';
5
+ import { and, asc, eq, gt, inArray } from 'drizzle-orm';
6
+ import PQueue from 'p-queue';
7
+ import { getTargetDataset } from "../db/get-target-dataset.js";
8
+ import { syncPiecesOnchain } from "../db/sync-pieces-onchain.js";
9
+ import { updateOperation } from "../db/update-operation.js";
10
+ import { upsertOperations } from "../db/upsert-operations.js";
11
+ import { hashLink } from "../utils.js";
12
+ export function createPullPiecesWorker({ localDb, indexerDb, repair, client, state, log, }) {
13
+ return async (batch, batchNumber) => {
14
+ let completedCids = 0;
15
+ let failedCids = 0;
16
+ const cidToOperation = new Map();
17
+ const spin = log.group(`Batch ${batchNumber}/${state.totalBatches}`);
18
+ spin.message(`Pull 0 completed, 0 failed`);
19
+ try {
20
+ const dataset = await getTargetDataset({ localDb, repairId: repair.id, client });
21
+ for (const operation of batch.operations) {
22
+ cidToOperation.set(operation.cid, operation);
23
+ }
24
+ const completedOperations1 = await syncPiecesOnchain({
25
+ indexerDb,
26
+ localDb,
27
+ dataSetId: dataset.dataSetId,
28
+ cidToOperation,
29
+ });
30
+ state.completedOperations += completedOperations1;
31
+ completedCids += completedOperations1;
32
+ const pullPieces = [];
33
+ for (const [cid, operation] of cidToOperation) {
34
+ const pieceCid = Piece.from(cid);
35
+ const sourceUrl = createPieceUrlPDP({
36
+ cid,
37
+ serviceURL: operation.alternateProvider,
38
+ });
39
+ pullPieces.push({ pieceCid, sourceUrl });
40
+ }
41
+ if (pullPieces.length > 0) {
42
+ const pullResult = await SP.waitForPullPieces(client, {
43
+ serviceURL: repair.targetProviderUrl,
44
+ dataSetId: dataset.dataSetId,
45
+ clientDataSetId: dataset.clientDataSetId,
46
+ pieces: pullPieces,
47
+ timeout: 1000 * 60 * 30,
48
+ onStatus: (_status) => {
49
+ const completed = _status.pieces.filter((piece) => piece.status === 'complete').length;
50
+ const failed = _status.pieces.filter((piece) => piece.status === 'failed').length;
51
+ spin.message(`Pull ${completed} completed, ${failed} failed`);
52
+ },
53
+ });
54
+ for (const { pieceCid, status } of pullResult.pieces) {
55
+ const cid = pieceCid.toString();
56
+ const operation = cidToOperation.get(cid);
57
+ if (!operation) {
58
+ console.log(`operation not found for cid ${cid}`);
59
+ continue;
60
+ }
61
+ if (status !== 'complete') {
62
+ state.failedOperations++;
63
+ failedCids++;
64
+ cidToOperation.delete(cid);
65
+ await updateOperation({
66
+ localDb,
67
+ operationId: operation.id,
68
+ status: 'failed',
69
+ error: `pull failed with status ${status}`,
70
+ });
71
+ }
72
+ }
73
+ }
74
+ const completedOperations2 = await syncPiecesOnchain({
75
+ indexerDb,
76
+ localDb,
77
+ dataSetId: dataset.dataSetId,
78
+ cidToOperation,
79
+ });
80
+ state.completedOperations += completedOperations2;
81
+ completedCids += completedOperations2;
82
+ const commitPieces = [];
83
+ for (const [cid] of cidToOperation) {
84
+ commitPieces.push({
85
+ pieceCid: Piece.from(cid),
86
+ });
87
+ }
88
+ if (commitPieces.length > 0) {
89
+ const addPiecesResult = await SP.addPieces(client, {
90
+ serviceURL: repair.targetProviderUrl,
91
+ dataSetId: dataset.dataSetId,
92
+ clientDataSetId: dataset.clientDataSetId,
93
+ pieces: commitPieces,
94
+ });
95
+ spin.message(`Waiting for add pieces ${hashLink(addPiecesResult.txHash, client.chain)}...`);
96
+ const addPiecesResult2 = await SP.waitForAddPieces(addPiecesResult);
97
+ state.completedOperations += cidToOperation.size;
98
+ completedCids += cidToOperation.size;
99
+ await upsertOperations({
100
+ localDb,
101
+ operations: Array.from(cidToOperation.values()).map((operation) => ({
102
+ ...operation,
103
+ status: 'completed',
104
+ error: null,
105
+ result: { dataSetId: addPiecesResult2.dataSetId, txHash: addPiecesResult2.txHash },
106
+ })),
107
+ });
108
+ }
109
+ spin.success(`Batch ${batchNumber}/${state.totalBatches} ${completedCids} added, ${failedCids} failed`);
110
+ }
111
+ catch (error) {
112
+ state.failedOperations += cidToOperation.size;
113
+ const message = error instanceof Error ? error.message : 'Unknown error';
114
+ spin.error(`Batch ${batchNumber}/${state.totalBatches} - ${message.replace(/\n/g, ' ')}`);
115
+ await upsertOperations({
116
+ localDb,
117
+ operations: Array.from(cidToOperation.values()).map((operation) => ({
118
+ ...operation,
119
+ status: 'failed',
120
+ error: message,
121
+ })),
122
+ });
123
+ }
124
+ };
125
+ }
126
+ export async function runPullPiecesPhase({ localDb, indexerDb, repair, concurrency, batchSize, client, reset, }) {
127
+ const localSchema = localDb._.fullSchema;
128
+ const pullConcurrency = Math.max(1, concurrency);
129
+ const pullBatchSize = Math.max(1, batchSize);
130
+ let pullCursor = 0;
131
+ const totalOperations = await localDb.$count(localSchema.operations, and(eq(localSchema.operations.repairId, repair.id), eq(localSchema.operations.type, 'add_piece'), inArray(localSchema.operations.status, reset ? ['pending', 'failed'] : ['pending'])));
132
+ let batchNumber = 0;
133
+ const state = {
134
+ totalBatches: Math.ceil(totalOperations / pullBatchSize),
135
+ totalOperations,
136
+ completedOperations: 0,
137
+ failedOperations: 0,
138
+ };
139
+ const log = taskLog({
140
+ title: 'Pulling pieces',
141
+ limit: 1,
142
+ });
143
+ async function getNextPullBatch() {
144
+ const operations = await localDb.query.operations.findMany({
145
+ where: and(eq(localSchema.operations.repairId, repair.id), eq(localSchema.operations.type, 'add_piece'), inArray(localSchema.operations.status, reset ? ['pending', 'failed'] : ['pending']), gt(localSchema.operations.id, pullCursor)),
146
+ orderBy: [asc(localSchema.operations.id)],
147
+ limit: pullBatchSize,
148
+ });
149
+ if (operations.length === 0) {
150
+ return null;
151
+ }
152
+ pullCursor = operations.at(-1)?.id ?? pullCursor;
153
+ return { operations };
154
+ }
155
+ const pullPiecesWorker = createPullPiecesWorker({ localDb, indexerDb, repair, client, state, log });
156
+ const pullPiecesQueue = new PQueue({ concurrency: pullConcurrency });
157
+ while (true) {
158
+ await pullPiecesQueue.onSizeLessThan(pullConcurrency);
159
+ const batch = await getNextPullBatch();
160
+ if (!batch)
161
+ break;
162
+ batchNumber++;
163
+ const currentBatchNumber = batchNumber;
164
+ pullPiecesQueue.add(() => pullPiecesWorker(batch, currentBatchNumber)).catch(console.error);
165
+ }
166
+ await pullPiecesQueue.onIdle();
167
+ log.success(`Pulled ${state.completedOperations} pieces, ${state.failedOperations} failed`);
168
+ }
169
+ //# sourceMappingURL=pull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/pipeline/pull.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { Chain } from '@filoz/synapse-core/chains';
2
+ import type { Client } from '@libsql/client';
3
+ import type { LibSQLDatabase } from 'drizzle-orm/libsql';
4
+ import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
5
+ import type { z } from 'incur';
6
+ import type { Pool } from 'pg';
7
+ import type { Account, Address, Hex, Transport, Client as ViemClient } from 'viem';
8
+ import type * as indexerSchema from './indexer-schema.ts';
9
+ import type * as localSchema from './local-schema.ts';
10
+ import type { contextSchema } from './middleware.ts';
11
+ export type LocalDatabase = LibSQLDatabase<typeof localSchema> & {
12
+ $client: Client;
13
+ };
14
+ export type IndexerDatabase = NodePgDatabase<typeof indexerSchema> & {
15
+ $client: Pool;
16
+ };
17
+ export interface Config {
18
+ privateKey: Hex;
19
+ indexerMainnetUrl: string;
20
+ indexerCalibrationUrl: string;
21
+ chainId: number;
22
+ dbPath: string;
23
+ }
24
+ export type WalletClient = ViemClient<Transport, Chain, Account>;
25
+ export type Context = z.infer<typeof contextSchema>;
26
+ export type RepairProvider = {
27
+ providerId: bigint;
28
+ providerAddress: Address;
29
+ name: string;
30
+ serviceUrl: string;
31
+ approved: boolean;
32
+ endorsed: boolean;
33
+ };
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAA;AAC9B,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAA;AAClF,OAAO,KAAK,KAAK,aAAa,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,KAAK,WAAW,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IAC/D,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,GAAG;IACnE,OAAO,EAAE,IAAI,CAAA;CACd,CAAA;AAED,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,GAAG,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AAEhE,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAKnD,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}