apibara 2.1.0-beta.3 → 2.1.0-beta.31
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/dist/chunks/add.mjs +17 -8
- package/dist/chunks/add.mjs.map +1 -0
- package/dist/chunks/build.mjs +5 -2
- package/dist/chunks/build.mjs.map +1 -0
- package/dist/chunks/dev.mjs +56 -21
- package/dist/chunks/dev.mjs.map +1 -0
- package/dist/chunks/init.mjs +12 -7
- package/dist/chunks/init.mjs.map +1 -0
- package/dist/chunks/prepare.mjs +5 -2
- package/dist/chunks/prepare.mjs.map +1 -0
- package/dist/chunks/start.mjs +16 -11
- package/dist/chunks/start.mjs.map +1 -0
- package/dist/chunks/write-project-info.mjs +51 -0
- package/dist/chunks/write-project-info.mjs.map +1 -0
- package/dist/cli/index.mjs +3 -1
- package/dist/cli/index.mjs.map +1 -0
- package/dist/common/index.d.mts +28 -0
- package/dist/common/index.d.ts +28 -0
- package/dist/common/index.mjs +64 -0
- package/dist/common/index.mjs.map +1 -0
- package/dist/config/index.mjs +1 -0
- package/dist/config/index.mjs.map +1 -0
- package/dist/core/index.mjs +133 -68
- package/dist/core/index.mjs.map +1 -0
- package/dist/create/index.d.mts +2 -1
- package/dist/create/index.d.ts +2 -1
- package/dist/create/index.mjs +144 -115
- package/dist/create/index.mjs.map +1 -0
- package/dist/hooks/index.mjs +6 -1
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/indexer/index.d.ts +1 -0
- package/dist/indexer/index.mjs +1 -0
- package/dist/indexer/plugins.d.ts +1 -0
- package/dist/indexer/plugins.mjs +1 -0
- package/dist/indexer/testing.d.ts +1 -0
- package/dist/indexer/testing.mjs +1 -0
- package/dist/indexer/vcr.d.ts +1 -0
- package/dist/indexer/vcr.mjs +1 -0
- package/dist/rolldown/index.d.mts +7 -0
- package/dist/rolldown/index.d.ts +7 -0
- package/dist/rolldown/index.mjs +122 -0
- package/dist/rolldown/index.mjs.map +1 -0
- package/dist/runtime/dev.mjs +23 -10
- package/dist/runtime/internal/app.d.ts +16 -1
- package/dist/runtime/internal/app.mjs +51 -21
- package/dist/runtime/project-info.d.ts +3 -0
- package/dist/runtime/project-info.mjs +67 -0
- package/dist/runtime/start.mjs +27 -10
- package/dist/shared/apibara.63c9a277.mjs +30 -0
- package/dist/shared/apibara.63c9a277.mjs.map +1 -0
- package/dist/shared/apibara.730bb1e4.mjs +18 -0
- package/dist/shared/apibara.730bb1e4.mjs.map +1 -0
- package/dist/types/index.d.mts +24 -20
- package/dist/types/index.d.ts +24 -20
- package/dist/types/index.mjs +1 -0
- package/dist/types/index.mjs.map +1 -0
- package/package.json +33 -16
- package/src/cli/commands/add.ts +16 -7
- package/src/cli/commands/build.ts +5 -2
- package/src/cli/commands/dev.ts +64 -20
- package/src/cli/commands/init.ts +12 -7
- package/src/cli/commands/prepare.ts +4 -2
- package/src/cli/commands/start.ts +17 -10
- package/src/cli/commands/write-project-info.ts +56 -0
- package/src/cli/common.ts +33 -1
- package/src/cli/index.ts +2 -0
- package/src/common/constants.ts +6 -0
- package/src/common/helper.ts +86 -0
- package/src/common/index.ts +2 -0
- package/src/core/apibara.ts +7 -2
- package/src/core/build/build.ts +13 -5
- package/src/core/build/dev.ts +46 -23
- package/src/core/build/error.ts +9 -14
- package/src/core/build/prepare.ts +5 -3
- package/src/core/build/prod.ts +25 -16
- package/src/core/build/types.ts +11 -1
- package/src/core/config/defaults.ts +3 -0
- package/src/core/config/loader.ts +15 -7
- package/src/core/config/resolvers/runtime.resolver.ts +44 -0
- package/src/core/config/update.ts +6 -2
- package/src/create/add.ts +10 -9
- package/src/create/constants.ts +9 -11
- package/src/create/init.ts +8 -5
- package/src/create/templates.ts +132 -105
- package/src/hooks/useRuntimeConfig.ts +4 -1
- package/src/indexer/index.ts +1 -0
- package/src/indexer/plugins.ts +1 -0
- package/src/indexer/testing.ts +1 -0
- package/src/indexer/vcr.ts +1 -0
- package/src/rolldown/config.ts +84 -0
- package/src/rolldown/index.ts +2 -0
- package/src/{rollup → rolldown}/plugins/indexers.ts +3 -3
- package/src/rolldown/plugins/instrumentation.ts +68 -0
- package/src/runtime/dev.ts +25 -9
- package/src/runtime/internal/app.ts +75 -29
- package/src/runtime/project-info.ts +90 -0
- package/src/runtime/start.ts +30 -9
- package/src/types/config.ts +27 -13
- package/src/types/hooks.ts +8 -5
- package/src/types/index.ts +1 -1
- package/src/types/rolldown.ts +5 -0
- package/src/types/virtual/indexers.d.ts +4 -1
- package/src/types/virtual/instrumentation.d.ts +4 -0
- package/dist/rollup/index.d.mts +0 -6
- package/dist/rollup/index.d.ts +0 -6
- package/dist/rollup/index.mjs +0 -150
- package/dist/shared/apibara.1b515d04.mjs +0 -8
- package/src/core/config/resolvers/preset.resolver.ts +0 -9
- package/src/core/config/resolvers/runtime-config.resolver.ts +0 -6
- package/src/rollup/config.ts +0 -87
- package/src/rollup/index.ts +0 -2
- package/src/rollup/plugins/config.ts +0 -12
- package/src/rollup/plugins/esm-shim.ts +0 -69
- package/src/types/rollup.ts +0 -8
- package/src/types/virtual/config.d.ts +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/hooks/useRuntimeConfig.ts"],"sourcesContent":["import { ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME } from \"apibara/common\";\nimport type { ApibaraRuntimeConfig } from \"apibara/types\";\n\nexport function useRuntimeConfig(): ApibaraRuntimeConfig {\n return JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] || \"{}\",\n );\n}\n"],"names":[],"mappings":";;AAGO,SAAS,gBAAyC,GAAA;AACvD,EAAA,OAAO,IAAK,CAAA,KAAA;AAAA,IACV,OAAA,CAAQ,GAAI,CAAA,sCAAsC,CAAK,IAAA,IAAA;AAAA,GACzD,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apibara/indexer";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apibara/indexer";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apibara/indexer/plugins";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apibara/indexer/plugins";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apibara/indexer/testing";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apibara/indexer/testing";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apibara/indexer/vcr";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apibara/indexer/vcr";
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { builtinModules } from 'node:module';
|
|
3
|
+
import defu from 'defu';
|
|
4
|
+
import { join as join$1 } from 'pathe';
|
|
5
|
+
import virtual from '@rollup/plugin-virtual';
|
|
6
|
+
import { hash } from 'ohash';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
|
|
9
|
+
function indexers(apibara) {
|
|
10
|
+
const indexers2 = [...new Set(apibara.indexers)];
|
|
11
|
+
return virtual({
|
|
12
|
+
"#apibara-internal-virtual/indexers": `
|
|
13
|
+
${indexers2.map((i) => `import * as _${hash(i)} from '${i.indexer}';`).join("\n")}
|
|
14
|
+
|
|
15
|
+
export const indexers = [
|
|
16
|
+
${indexers2.map((i) => `{ name: "${i.name}", indexer: _${hash(i)} }`).join(",\n")}
|
|
17
|
+
];
|
|
18
|
+
`
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function instrumentation(apibara) {
|
|
23
|
+
const instrumentationPath = join(
|
|
24
|
+
apibara.options._c12.cwd,
|
|
25
|
+
`instrumentation.${apibara.options._c12.configFile?.endsWith(".ts") ? "ts" : "js"}`
|
|
26
|
+
);
|
|
27
|
+
if (!existsSync(instrumentationPath)) {
|
|
28
|
+
return virtual({
|
|
29
|
+
"#apibara-internal-virtual/instrumentation": `
|
|
30
|
+
let register = undefined;
|
|
31
|
+
let logger = undefined;
|
|
32
|
+
|
|
33
|
+
export { register, logger };
|
|
34
|
+
`
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return virtual({
|
|
38
|
+
"#apibara-internal-virtual/instrumentation": `
|
|
39
|
+
let register = undefined;
|
|
40
|
+
let logger = undefined;
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
const instrumentation = require('${instrumentationPath}');
|
|
44
|
+
|
|
45
|
+
if (instrumentation?.register && typeof instrumentation.register === "function") {
|
|
46
|
+
register = instrumentation.register;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (instrumentation?.logger && typeof instrumentation.logger === "function") {
|
|
50
|
+
logger = instrumentation.logger;
|
|
51
|
+
}
|
|
52
|
+
} catch {
|
|
53
|
+
// Silently handle any require errors
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { register, logger };
|
|
57
|
+
`
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const runtimeDependencies = [
|
|
62
|
+
"better-sqlite3",
|
|
63
|
+
"@electric-sql/pglite",
|
|
64
|
+
"pg",
|
|
65
|
+
// https://socket.io/docs/v4/server-installation/#additional-packages
|
|
66
|
+
"utf-8-validate",
|
|
67
|
+
"bufferutil",
|
|
68
|
+
// was giving unresolved import warnings from `node-fetch` library.
|
|
69
|
+
"encoding"
|
|
70
|
+
];
|
|
71
|
+
function getRolldownConfig(apibara) {
|
|
72
|
+
const extensions = [
|
|
73
|
+
".ts",
|
|
74
|
+
".mjs",
|
|
75
|
+
".js",
|
|
76
|
+
".json",
|
|
77
|
+
".node",
|
|
78
|
+
".tsx",
|
|
79
|
+
".jsx"
|
|
80
|
+
];
|
|
81
|
+
const tsConfigExists = existsSync(
|
|
82
|
+
join$1(apibara.options.rootDir, "tsconfig.json")
|
|
83
|
+
);
|
|
84
|
+
const rolldownConfig = defu(
|
|
85
|
+
// biome-ignore lint/suspicious/noExplicitAny: apibara.options.rolldownConfig is typed
|
|
86
|
+
apibara.options.rolldownConfig,
|
|
87
|
+
{
|
|
88
|
+
platform: "node",
|
|
89
|
+
input: apibara.options.entry,
|
|
90
|
+
output: {
|
|
91
|
+
dir: join$1(apibara.options.outputDir || "./.apibara/build"),
|
|
92
|
+
format: "esm",
|
|
93
|
+
entryFileNames: "[name].mjs",
|
|
94
|
+
chunkFileNames: "chunks/[name]-[hash].mjs",
|
|
95
|
+
sourcemap: true
|
|
96
|
+
},
|
|
97
|
+
plugins: [],
|
|
98
|
+
onwarn(warning, rolldownWarn) {
|
|
99
|
+
if (!["CIRCULAR_DEPENDENCY", "EVAL", "THIS_IS_UNDEFINED"].includes(
|
|
100
|
+
warning.code || ""
|
|
101
|
+
) && !warning.message.includes("Unsupported source map comment") && !warning.message.includes("@__PURE__") && !warning.message.includes("/*#__PURE__*/")) {
|
|
102
|
+
rolldownWarn(warning);
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
resolve: {
|
|
106
|
+
extensions,
|
|
107
|
+
preferBuiltins: !!apibara.options.node,
|
|
108
|
+
mainFields: ["main"],
|
|
109
|
+
exportConditions: apibara.options.exportConditions,
|
|
110
|
+
tsconfigFilename: tsConfigExists ? "tsconfig.json" : void 0
|
|
111
|
+
},
|
|
112
|
+
treeshake: true,
|
|
113
|
+
external: [...builtinModules, ...runtimeDependencies]
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
rolldownConfig.plugins?.push(instrumentation(apibara));
|
|
117
|
+
rolldownConfig.plugins?.push(indexers(apibara));
|
|
118
|
+
return rolldownConfig;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export { getRolldownConfig };
|
|
122
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/rolldown/plugins/indexers.ts","../../src/rolldown/plugins/instrumentation.ts","../../src/rolldown/config.ts"],"sourcesContent":["import virtual from \"@rollup/plugin-virtual\";\nimport type { Apibara } from \"apibara/types\";\nimport { hash } from \"ohash\";\nimport type { RolldownPluginOption } from \"rolldown\";\n\nexport function indexers(apibara: Apibara) {\n const indexers = [...new Set(apibara.indexers)];\n return virtual({\n \"#apibara-internal-virtual/indexers\": `\n ${indexers.map((i) => `import * as _${hash(i)} from '${i.indexer}';`).join(\"\\n\")}\n\n export const indexers = [\n ${indexers.map((i) => `{ name: \"${i.name}\", indexer: _${hash(i)} }`).join(\",\\n\")}\n ];\n `,\n }) as RolldownPluginOption;\n}\n","import { existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport virtual from \"@rollup/plugin-virtual\";\nimport type { Apibara } from \"apibara/types\";\nimport type { RolldownPluginOption } from \"rolldown\";\n\nexport function instrumentation(apibara: Apibara) {\n const instrumentationPath = join(\n apibara.options._c12.cwd!,\n `instrumentation.${apibara.options._c12.configFile?.endsWith(\".ts\") ? \"ts\" : \"js\"}`,\n );\n\n if (!existsSync(instrumentationPath)) {\n return virtual({\n \"#apibara-internal-virtual/instrumentation\": `\n let register = undefined;\n let logger = undefined;\n \n export { register, logger };\n `,\n }) as RolldownPluginOption;\n }\n\n /**\n * We are importing the instrumentation file inline with \"require\" instead of \"import\" at the top of the file to avoid warnings from rolldown\n * when some methods are not defined in the instrumentation file.\n *\n * Example warning:\n * \n * [IMPORT_IS_UNDEFINED] Warning: Import `logger` will always be undefined because there is no matching export in 'instrumentation.ts'\n * ╭─[virtual:#apibara-internal-virtual/instrumentation:11:35]\n * │\n * 11 │ if (instrumentation && typeof instrumentation.logger === \"function\") {\n * │ ───────────┬────────── \n * │ ╰──────────── \n * ────╯\n\n * [IMPORT_IS_UNDEFINED] Warning: Import `logger` will always be undefined because there is no matching export in 'instrumentation.ts'\n * ╭─[virtual:#apibara-internal-virtual/instrumentation:12:16]\n * │\n * 12 │ logger = instrumentation.logger;\n * │ ───────────┬────────── \n * │ ╰──────────── \n * ────╯ \n */\n return virtual({\n \"#apibara-internal-virtual/instrumentation\": `\n let register = undefined;\n let logger = undefined;\n\n try {\n const instrumentation = require('${instrumentationPath}');\n \n if (instrumentation?.register && typeof instrumentation.register === \"function\") {\n register = instrumentation.register;\n }\n \n if (instrumentation?.logger && typeof instrumentation.logger === \"function\") {\n logger = instrumentation.logger;\n }\n } catch {\n // Silently handle any require errors\n }\n\n export { register, logger };\n `,\n }) as RolldownPluginOption;\n}\n","import { existsSync } from \"node:fs\";\nimport { builtinModules } from \"node:module\";\nimport type { Apibara } from \"apibara/types\";\nimport defu from \"defu\";\nimport { join } from \"pathe\";\nimport type {\n ConfigExport,\n RolldownOptions,\n RolldownPluginOption,\n} from \"rolldown\";\nimport { indexers } from \"./plugins/indexers\";\nimport { instrumentation } from \"./plugins/instrumentation\";\n\nconst runtimeDependencies = [\n \"better-sqlite3\",\n \"@electric-sql/pglite\",\n \"pg\",\n // https://socket.io/docs/v4/server-installation/#additional-packages\n \"utf-8-validate\",\n \"bufferutil\",\n // was giving unresolved import warnings from `node-fetch` library.\n \"encoding\",\n];\n\nexport function getRolldownConfig(apibara: Apibara): RolldownOptions {\n const extensions: string[] = [\n \".ts\",\n \".mjs\",\n \".js\",\n \".json\",\n \".node\",\n \".tsx\",\n \".jsx\",\n ];\n\n const tsConfigExists = existsSync(\n join(apibara.options.rootDir, \"tsconfig.json\"),\n );\n\n const rolldownConfig: RolldownOptions & {\n plugins: RolldownPluginOption[];\n } = defu(\n // biome-ignore lint/suspicious/noExplicitAny: apibara.options.rolldownConfig is typed\n apibara.options.rolldownConfig as any,\n <ConfigExport>{\n platform: \"node\",\n input: apibara.options.entry,\n output: {\n dir: join(apibara.options.outputDir || \"./.apibara/build\"),\n format: \"esm\",\n entryFileNames: \"[name].mjs\",\n chunkFileNames: \"chunks/[name]-[hash].mjs\",\n sourcemap: true,\n },\n plugins: [],\n onwarn(warning, rolldownWarn) {\n if (\n ![\"CIRCULAR_DEPENDENCY\", \"EVAL\", \"THIS_IS_UNDEFINED\"].includes(\n warning.code || \"\",\n ) &&\n !warning.message.includes(\"Unsupported source map comment\") &&\n !warning.message.includes(\"@__PURE__\") &&\n !warning.message.includes(\"/*#__PURE__*/\")\n ) {\n rolldownWarn(warning);\n }\n },\n resolve: {\n extensions,\n preferBuiltins: !!apibara.options.node,\n mainFields: [\"main\"],\n exportConditions: apibara.options.exportConditions,\n tsconfigFilename: tsConfigExists ? \"tsconfig.json\" : undefined,\n },\n treeshake: true,\n external: [...builtinModules, ...runtimeDependencies],\n },\n );\n\n rolldownConfig.plugins?.push(instrumentation(apibara));\n rolldownConfig.plugins?.push(indexers(apibara));\n\n return rolldownConfig;\n}\n"],"names":["indexers","join"],"mappings":"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"}
|
package/dist/runtime/dev.mjs
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { runWithReconnect } from "@apibara/indexer";
|
|
2
|
-
import {
|
|
2
|
+
import { getRuntimeDataFromEnv } from "apibara/common";
|
|
3
3
|
import { defineCommand, runMain } from "citty";
|
|
4
|
-
import {
|
|
4
|
+
import { blueBright } from "picocolors";
|
|
5
|
+
import {
|
|
6
|
+
availableIndexers,
|
|
7
|
+
createAuthenticatedClient,
|
|
8
|
+
createIndexer
|
|
9
|
+
} from "./internal/app.mjs";
|
|
5
10
|
const startCommand = defineCommand({
|
|
6
11
|
meta: {
|
|
7
12
|
name: "start",
|
|
@@ -11,14 +16,11 @@ const startCommand = defineCommand({
|
|
|
11
16
|
indexers: {
|
|
12
17
|
type: "string",
|
|
13
18
|
description: "Which indexers to run"
|
|
14
|
-
},
|
|
15
|
-
preset: {
|
|
16
|
-
type: "string",
|
|
17
|
-
description: "Preset to use"
|
|
18
19
|
}
|
|
19
20
|
},
|
|
20
21
|
async run({ args }) {
|
|
21
|
-
const { indexers: indexersArgs
|
|
22
|
+
const { indexers: indexersArgs } = args;
|
|
23
|
+
const { processedRuntimeConfig, preset } = getRuntimeDataFromEnv();
|
|
22
24
|
let selectedIndexers = availableIndexers;
|
|
23
25
|
if (indexersArgs) {
|
|
24
26
|
selectedIndexers = indexersArgs.split(",");
|
|
@@ -32,11 +34,22 @@ const startCommand = defineCommand({
|
|
|
32
34
|
}
|
|
33
35
|
await Promise.all(
|
|
34
36
|
selectedIndexers.map(async (indexer) => {
|
|
35
|
-
const indexerInstance = createIndexer(
|
|
36
|
-
|
|
37
|
+
const { indexer: indexerInstance, logger } = createIndexer({
|
|
38
|
+
indexerName: indexer,
|
|
39
|
+
processedRuntimeConfig,
|
|
40
|
+
preset
|
|
41
|
+
}) ?? {};
|
|
42
|
+
if (!indexerInstance) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const client = createAuthenticatedClient(
|
|
37
46
|
indexerInstance.streamConfig,
|
|
38
|
-
indexerInstance.options.streamUrl
|
|
47
|
+
indexerInstance.options.streamUrl,
|
|
48
|
+
indexerInstance.options.clientOptions
|
|
39
49
|
);
|
|
50
|
+
if (logger) {
|
|
51
|
+
logger.info(`Indexer ${blueBright(indexer)} started`);
|
|
52
|
+
}
|
|
40
53
|
await runWithReconnect(client, indexerInstance);
|
|
41
54
|
})
|
|
42
55
|
);
|
|
@@ -1,2 +1,17 @@
|
|
|
1
|
+
import { type CreateClientOptions, type StreamConfig } from "@apibara/protocol";
|
|
1
2
|
export declare const availableIndexers: any;
|
|
2
|
-
export declare function createIndexer(indexerName
|
|
3
|
+
export declare function createIndexer({ indexerName, processedRuntimeConfig, preset, }: {
|
|
4
|
+
indexerName: string;
|
|
5
|
+
/**
|
|
6
|
+
* Final processed runtime config to be used by the indexer
|
|
7
|
+
*/
|
|
8
|
+
processedRuntimeConfig: Record<string, unknown>;
|
|
9
|
+
/**
|
|
10
|
+
* Preset name which was used to generate the runtime config
|
|
11
|
+
*/
|
|
12
|
+
preset?: string;
|
|
13
|
+
}): {
|
|
14
|
+
indexer: import("@apibara/indexer").Indexer<unknown, unknown>;
|
|
15
|
+
logger: any;
|
|
16
|
+
} | undefined;
|
|
17
|
+
export declare function createAuthenticatedClient(config: StreamConfig<unknown, unknown>, streamUrl: string, options?: CreateClientOptions): import("@apibara/protocol").GrpcClient<unknown, unknown>;
|
|
@@ -6,51 +6,81 @@ import {
|
|
|
6
6
|
inMemoryPersistence,
|
|
7
7
|
logger
|
|
8
8
|
} from "@apibara/indexer/plugins";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
Metadata,
|
|
11
|
+
createClient
|
|
12
|
+
} from "@apibara/protocol";
|
|
13
|
+
import consola from "consola";
|
|
10
14
|
import { indexers } from "#apibara-internal-virtual/indexers";
|
|
15
|
+
import { logger as instrumentationLogger } from "#apibara-internal-virtual/instrumentation";
|
|
11
16
|
import { createLogger } from "./logger.mjs";
|
|
12
17
|
export const availableIndexers = indexers.map((i) => i.name);
|
|
13
|
-
export function createIndexer(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
`Specified preset "${preset}" but no presets were defined`
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
if (config.presets[preset] === void 0) {
|
|
22
|
-
throw new Error(`Specified preset "${preset}" but it was not defined`);
|
|
23
|
-
}
|
|
24
|
-
const presetValue = config.presets[preset];
|
|
25
|
-
runtimeConfig = { ...runtimeConfig, ...presetValue.runtimeConfig };
|
|
26
|
-
}
|
|
18
|
+
export function createIndexer({
|
|
19
|
+
indexerName,
|
|
20
|
+
processedRuntimeConfig,
|
|
21
|
+
preset
|
|
22
|
+
}) {
|
|
27
23
|
const indexerDefinition = indexers.find((i) => i.name === indexerName);
|
|
28
24
|
if (indexerDefinition === void 0) {
|
|
29
25
|
throw new Error(
|
|
30
26
|
`Specified indexer "${indexerName}" but it was not defined`
|
|
31
27
|
);
|
|
32
28
|
}
|
|
33
|
-
const
|
|
29
|
+
const indexerModule = indexerDefinition.indexer?.default;
|
|
30
|
+
if (indexerModule === void 0) {
|
|
31
|
+
consola.warn(
|
|
32
|
+
`Specified indexer "${indexerName}" but it does not export a default. Ignoring.`
|
|
33
|
+
);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const definition = typeof indexerModule === "function" ? indexerModule(processedRuntimeConfig) : indexerModule;
|
|
34
37
|
let reporter = createLogger({
|
|
35
38
|
indexer: indexerName,
|
|
36
39
|
preset,
|
|
37
40
|
indexers: availableIndexers
|
|
38
41
|
});
|
|
39
|
-
if (
|
|
40
|
-
|
|
42
|
+
if (instrumentationLogger) {
|
|
43
|
+
const _reporter = instrumentationLogger({
|
|
41
44
|
indexer: indexerName,
|
|
42
45
|
preset,
|
|
43
46
|
indexers: availableIndexers
|
|
44
47
|
});
|
|
48
|
+
if (_reporter && "log" in _reporter) {
|
|
49
|
+
reporter = _reporter;
|
|
50
|
+
}
|
|
45
51
|
}
|
|
46
52
|
definition.plugins = [
|
|
47
53
|
internalContext({
|
|
48
54
|
indexerName,
|
|
49
55
|
availableIndexers
|
|
50
56
|
}),
|
|
57
|
+
logger({ logger: reporter }),
|
|
51
58
|
inMemoryPersistence(),
|
|
52
|
-
...definition.plugins ?? []
|
|
53
|
-
logger({ logger: reporter })
|
|
59
|
+
...definition.plugins ?? []
|
|
54
60
|
];
|
|
55
|
-
return
|
|
61
|
+
return {
|
|
62
|
+
indexer: _createIndexer(definition),
|
|
63
|
+
logger: consola.create({ reporters: [reporter] })
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export function createAuthenticatedClient(config, streamUrl, options) {
|
|
67
|
+
const dnaToken = process.env.DNA_TOKEN;
|
|
68
|
+
if (!dnaToken) {
|
|
69
|
+
consola.warn(
|
|
70
|
+
"DNA_TOKEN environment variable is not set. Trying to connect without authentication."
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
return createClient(config, streamUrl, {
|
|
74
|
+
...options,
|
|
75
|
+
defaultCallOptions: {
|
|
76
|
+
...options?.defaultCallOptions ?? {},
|
|
77
|
+
"*": {
|
|
78
|
+
metadata: Metadata({
|
|
79
|
+
Authorization: `Bearer ${dnaToken}`
|
|
80
|
+
}),
|
|
81
|
+
// metadata cant be overrided with spread as its a class so we override it fully if user provided it.
|
|
82
|
+
...options?.defaultCallOptions?.["*"] ?? {}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
56
86
|
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { writeFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import {
|
|
4
|
+
getProcessedRuntimeConfig,
|
|
5
|
+
getRuntimeDataFromEnv
|
|
6
|
+
} from "apibara/common";
|
|
7
|
+
import { defineCommand, runMain } from "citty";
|
|
8
|
+
import { availableIndexers, createIndexer } from "./internal/app.mjs";
|
|
9
|
+
const startCommand = defineCommand({
|
|
10
|
+
meta: {
|
|
11
|
+
name: "write-project-info",
|
|
12
|
+
description: "Write json-encoded information about the project."
|
|
13
|
+
},
|
|
14
|
+
args: {
|
|
15
|
+
"build-dir": {
|
|
16
|
+
type: "string",
|
|
17
|
+
description: "project build directory"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
async run({ args }) {
|
|
21
|
+
const projectInfo = {
|
|
22
|
+
indexers: {}
|
|
23
|
+
};
|
|
24
|
+
const { presets, runtimeConfig, userEnvRuntimeConfig } = getRuntimeDataFromEnv();
|
|
25
|
+
for (const preset of Object.keys(presets ?? {})) {
|
|
26
|
+
const processedRuntimeConfig = getProcessedRuntimeConfig({
|
|
27
|
+
preset,
|
|
28
|
+
presets,
|
|
29
|
+
runtimeConfig,
|
|
30
|
+
userEnvRuntimeConfig
|
|
31
|
+
});
|
|
32
|
+
for (const indexer of availableIndexers) {
|
|
33
|
+
const { indexer: indexerInstance } = createIndexer({
|
|
34
|
+
indexerName: indexer,
|
|
35
|
+
processedRuntimeConfig,
|
|
36
|
+
preset
|
|
37
|
+
}) ?? {};
|
|
38
|
+
if (!indexerInstance) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
projectInfo.indexers[indexer] = {
|
|
42
|
+
...projectInfo.indexers[indexer] ?? {},
|
|
43
|
+
[preset]: {
|
|
44
|
+
type: indexerInstance.streamConfig.name,
|
|
45
|
+
isFactory: indexerInstance.options.factory !== void 0
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const projectInfoPath = resolve(
|
|
51
|
+
args["build-dir"] ?? ".apibara",
|
|
52
|
+
"project-info.json"
|
|
53
|
+
);
|
|
54
|
+
writeFileSync(projectInfoPath, JSON.stringify(projectInfo, null, 2));
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
export const mainCli = defineCommand({
|
|
58
|
+
meta: {
|
|
59
|
+
name: "write-project-info-runner",
|
|
60
|
+
description: "Write json-encoded information about the project."
|
|
61
|
+
},
|
|
62
|
+
subCommands: {
|
|
63
|
+
start: () => startCommand
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
runMain(mainCli);
|
|
67
|
+
export default {};
|
package/dist/runtime/start.mjs
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { runWithReconnect } from "@apibara/indexer";
|
|
2
|
-
import {
|
|
2
|
+
import { getRuntimeDataFromEnv } from "apibara/common";
|
|
3
3
|
import { defineCommand, runMain } from "citty";
|
|
4
|
-
import
|
|
4
|
+
import consola from "consola";
|
|
5
|
+
import { blueBright } from "picocolors";
|
|
6
|
+
import { register } from "#apibara-internal-virtual/instrumentation";
|
|
7
|
+
import { createAuthenticatedClient, createIndexer } from "./internal/app.mjs";
|
|
5
8
|
const startCommand = defineCommand({
|
|
6
9
|
meta: {
|
|
7
10
|
name: "start",
|
|
@@ -12,19 +15,33 @@ const startCommand = defineCommand({
|
|
|
12
15
|
type: "string",
|
|
13
16
|
description: "Indexer name",
|
|
14
17
|
required: true
|
|
15
|
-
},
|
|
16
|
-
preset: {
|
|
17
|
-
type: "string",
|
|
18
|
-
description: "Preset to use"
|
|
19
18
|
}
|
|
20
19
|
},
|
|
21
20
|
async run({ args }) {
|
|
22
|
-
const { indexer
|
|
23
|
-
const
|
|
24
|
-
const
|
|
21
|
+
const { indexer } = args;
|
|
22
|
+
const { processedRuntimeConfig, preset } = getRuntimeDataFromEnv();
|
|
23
|
+
const { indexer: indexerInstance, logger } = createIndexer({
|
|
24
|
+
indexerName: indexer,
|
|
25
|
+
processedRuntimeConfig,
|
|
26
|
+
preset
|
|
27
|
+
}) ?? {};
|
|
28
|
+
if (!indexerInstance) {
|
|
29
|
+
consola.error(`Specified indexer "${indexer}" but it was not defined`);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
const client = createAuthenticatedClient(
|
|
25
33
|
indexerInstance.streamConfig,
|
|
26
|
-
indexerInstance.options.streamUrl
|
|
34
|
+
indexerInstance.options.streamUrl,
|
|
35
|
+
indexerInstance.options.clientOptions
|
|
27
36
|
);
|
|
37
|
+
if (register) {
|
|
38
|
+
consola.start("Registering from instrumentation");
|
|
39
|
+
await register();
|
|
40
|
+
consola.success("Registered from instrumentation");
|
|
41
|
+
}
|
|
42
|
+
if (logger) {
|
|
43
|
+
logger.info(`Indexer ${blueBright(indexer)} started`);
|
|
44
|
+
}
|
|
28
45
|
await runWithReconnect(client, indexerInstance);
|
|
29
46
|
}
|
|
30
47
|
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { renderUsage } from 'citty';
|
|
2
|
+
import consola from 'consola';
|
|
3
|
+
|
|
4
|
+
const commonArgs = {
|
|
5
|
+
dir: {
|
|
6
|
+
type: "string",
|
|
7
|
+
description: "project root directory"
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
const checkForUnknownArgs = async (args, cmd) => {
|
|
11
|
+
const definedArgs = [];
|
|
12
|
+
if (cmd.args) {
|
|
13
|
+
for (const [argName, argDef] of Object.entries(cmd.args)) {
|
|
14
|
+
definedArgs.push(argName);
|
|
15
|
+
if (argDef.alias) {
|
|
16
|
+
definedArgs.push(argDef.alias);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const providedArgs = Object.keys(args).filter((arg) => arg !== "_");
|
|
21
|
+
const wrongArgs = providedArgs.filter((arg) => !definedArgs.includes(arg));
|
|
22
|
+
if (wrongArgs.length > 0) {
|
|
23
|
+
consola.error(`Unknown arguments: ${wrongArgs.join(", ")}`);
|
|
24
|
+
consola.info(await renderUsage(cmd));
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { checkForUnknownArgs as a, commonArgs as c };
|
|
30
|
+
//# sourceMappingURL=apibara.63c9a277.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apibara.63c9a277.mjs","sources":["../../src/cli/common.ts"],"sourcesContent":["import {\n type ArgsDef,\n type CommandDef,\n type ParsedArgs,\n renderUsage,\n} from \"citty\";\nimport consola from \"consola\";\n\nexport const commonArgs = <ArgsDef>{\n dir: {\n type: \"string\",\n description: \"project root directory\",\n },\n};\n\nexport const checkForUnknownArgs = async <T extends ArgsDef = ArgsDef>(\n args: ParsedArgs<T>,\n cmd: CommandDef<T>,\n) => {\n // Create a list of defined args including both the main arg names and their aliases\n const definedArgs: string[] = [];\n if (cmd.args) {\n for (const [argName, argDef] of Object.entries(cmd.args)) {\n definedArgs.push(argName);\n // Add alias to definedArgs if it exists\n if (argDef.alias) {\n definedArgs.push(argDef.alias);\n }\n }\n }\n\n const providedArgs = Object.keys(args).filter((arg) => arg !== \"_\");\n const wrongArgs = providedArgs.filter((arg) => !definedArgs.includes(arg));\n\n if (wrongArgs.length > 0) {\n consola.error(`Unknown arguments: ${wrongArgs.join(\", \")}`);\n consola.info(await renderUsage(cmd));\n process.exit(1);\n }\n};\n"],"names":[],"mappings":";;;AAQO,MAAM,UAAsB,GAAA;AAAA,EACjC,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,wBAAA;AAAA,GACf;AACF,EAAA;AAEa,MAAA,mBAAA,GAAsB,OACjC,IAAA,EACA,GACG,KAAA;AAEH,EAAA,MAAM,cAAwB,EAAC,CAAA;AAC/B,EAAA,IAAI,IAAI,IAAM,EAAA;AACZ,IAAW,KAAA,MAAA,CAAC,SAAS,MAAM,CAAA,IAAK,OAAO,OAAQ,CAAA,GAAA,CAAI,IAAI,CAAG,EAAA;AACxD,MAAA,WAAA,CAAY,KAAK,OAAO,CAAA,CAAA;AAExB,MAAA,IAAI,OAAO,KAAO,EAAA;AAChB,QAAY,WAAA,CAAA,IAAA,CAAK,OAAO,KAAK,CAAA,CAAA;AAAA,OAC/B;AAAA,KACF;AAAA,GACF;AAEA,EAAM,MAAA,YAAA,GAAe,OAAO,IAAK,CAAA,IAAI,EAAE,MAAO,CAAA,CAAC,GAAQ,KAAA,GAAA,KAAQ,GAAG,CAAA,CAAA;AAClE,EAAM,MAAA,SAAA,GAAY,aAAa,MAAO,CAAA,CAAC,QAAQ,CAAC,WAAA,CAAY,QAAS,CAAA,GAAG,CAAC,CAAA,CAAA;AAEzE,EAAI,IAAA,SAAA,CAAU,SAAS,CAAG,EAAA;AACxB,IAAA,OAAA,CAAQ,MAAM,CAAsB,mBAAA,EAAA,SAAA,CAAU,IAAK,CAAA,IAAI,CAAC,CAAE,CAAA,CAAA,CAAA;AAC1D,IAAA,OAAA,CAAQ,IAAK,CAAA,MAAM,WAAY,CAAA,GAAG,CAAC,CAAA,CAAA;AACnC,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,GAChB;AACF;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import colors from 'picocolors';
|
|
2
|
+
|
|
3
|
+
const {
|
|
4
|
+
blue,
|
|
5
|
+
blueBright,
|
|
6
|
+
cyan,
|
|
7
|
+
gray,
|
|
8
|
+
green,
|
|
9
|
+
greenBright,
|
|
10
|
+
magenta,
|
|
11
|
+
red,
|
|
12
|
+
redBright,
|
|
13
|
+
reset,
|
|
14
|
+
yellow
|
|
15
|
+
} = colors;
|
|
16
|
+
|
|
17
|
+
export { blue as a, blueBright as b, green as c, cyan as d, reset as e, gray as g, magenta as m, red as r, yellow as y };
|
|
18
|
+
//# sourceMappingURL=apibara.730bb1e4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apibara.730bb1e4.mjs","sources":["../../src/create/colors.ts"],"sourcesContent":["import colors from \"picocolors\";\n\nexport const {\n blue,\n blueBright,\n cyan,\n gray,\n green,\n greenBright,\n magenta,\n red,\n redBright,\n reset,\n yellow,\n} = colors;\n"],"names":[],"mappings":";;AAEa,MAAA;AAAA,EACX,IAAA;AAAA,EACA,UAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AACF,CAAI,GAAA;;;;"}
|
package/dist/types/index.d.mts
CHANGED
|
@@ -1,34 +1,30 @@
|
|
|
1
1
|
import { ConsolaInstance } from 'consola';
|
|
2
2
|
import { NestedHooks, Hookable } from 'hookable';
|
|
3
3
|
import { ConsolaReporter } from '@apibara/indexer/plugins';
|
|
4
|
-
import { RollupCommonJSOptions } from '@rollup/plugin-commonjs';
|
|
5
4
|
import { C12InputConfig, WatchConfigOptions, ResolvedConfig, ConfigWatcher } from 'c12';
|
|
6
|
-
import { WatchOptions } from '
|
|
7
|
-
import { InputOptions, OutputOptions } from 'rollup';
|
|
5
|
+
import { RolldownOptions, WatchOptions, InputOptions, OutputOptions } from 'rolldown';
|
|
8
6
|
|
|
9
7
|
type DeepPartial<T> = T extends Record<string, any> ? {
|
|
10
8
|
[P in keyof T]?: DeepPartial<T[P]> | T[P];
|
|
11
9
|
} : T;
|
|
12
10
|
|
|
13
|
-
type RollupConfig = InputOptions & {
|
|
14
|
-
output: OutputOptions;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
11
|
interface ApibaraHooks {
|
|
18
|
-
"
|
|
12
|
+
"rolldown:before": (apibara: Apibara, rolldownConfig: RolldownOptions) => void;
|
|
19
13
|
compiled: (apibara: Apibara) => void;
|
|
20
|
-
"dev:restart": () => void
|
|
21
|
-
"dev:reload": () => void
|
|
22
|
-
"
|
|
14
|
+
"dev:restart": () => Promise<void>;
|
|
15
|
+
"dev:reload": () => Promise<void>;
|
|
16
|
+
"rolldown:reload": () => Promise<void>;
|
|
23
17
|
restart: () => void;
|
|
24
18
|
close: () => void;
|
|
25
19
|
}
|
|
26
20
|
|
|
27
|
-
type
|
|
21
|
+
type RegisterFn = () => Promise<void>;
|
|
22
|
+
type LoggerFactoryFn = ({ indexer, indexers, preset, }: LoggerFactoryArgs) => ConsolaReporter;
|
|
23
|
+
type LoggerFactoryArgs = {
|
|
28
24
|
indexer: string;
|
|
29
25
|
indexers: string[];
|
|
30
26
|
preset?: string;
|
|
31
|
-
}
|
|
27
|
+
};
|
|
32
28
|
/**
|
|
33
29
|
* Apibara Config type (apibara.config)
|
|
34
30
|
*/
|
|
@@ -36,9 +32,8 @@ interface ApibaraConfig<T extends Record<string, DeepPartial<Pick<ApibaraConfig<
|
|
|
36
32
|
runtimeConfig?: R;
|
|
37
33
|
presets?: T;
|
|
38
34
|
preset?: keyof T;
|
|
39
|
-
logger?: LoggerFactory;
|
|
40
35
|
}
|
|
41
|
-
type ApibaraDynamicConfig = Pick<ApibaraConfig, "runtimeConfig">;
|
|
36
|
+
type ApibaraDynamicConfig = Pick<ApibaraConfig, "runtimeConfig" | "preset" | "presets">;
|
|
42
37
|
/**
|
|
43
38
|
* Config loader options
|
|
44
39
|
*/
|
|
@@ -57,14 +52,19 @@ interface ApibaraOptions<T extends Record<string, DeepPartial<Pick<ApibaraConfig
|
|
|
57
52
|
buildDir: string;
|
|
58
53
|
outputDir: string;
|
|
59
54
|
indexersDir: string;
|
|
55
|
+
disableLogs?: boolean;
|
|
60
56
|
dev: boolean;
|
|
61
|
-
watchOptions: WatchOptions;
|
|
57
|
+
watchOptions: WatchOptions["watch"];
|
|
62
58
|
hooks: NestedHooks<ApibaraHooks>;
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
rolldownConfig?: Partial<RolldownOptions>;
|
|
60
|
+
/**
|
|
61
|
+
* @deprecated Use rolldownConfig instead. This option will be removed in future releases.
|
|
62
|
+
*/
|
|
63
|
+
rollupConfig?: unknown;
|
|
65
64
|
sourceMap?: boolean;
|
|
66
65
|
entry: string;
|
|
67
|
-
|
|
66
|
+
node: boolean;
|
|
67
|
+
exportConditions?: string[];
|
|
68
68
|
typescript: {
|
|
69
69
|
strict?: boolean;
|
|
70
70
|
internalPaths?: boolean;
|
|
@@ -85,6 +85,10 @@ interface Apibara {
|
|
|
85
85
|
updateConfig: (config: ApibaraDynamicConfig) => void | Promise<void>;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
type RolldownConfig = InputOptions & {
|
|
89
|
+
output: OutputOptions;
|
|
90
|
+
};
|
|
91
|
+
|
|
88
92
|
type ApibaraRuntimeConfig = Record<string, unknown>;
|
|
89
93
|
|
|
90
|
-
export type { Apibara, ApibaraConfig, ApibaraDynamicConfig, ApibaraHooks, ApibaraOptions, ApibaraRuntimeConfig, DeepPartial, IndexerDefinition, LoadConfigOptions,
|
|
94
|
+
export type { Apibara, ApibaraConfig, ApibaraDynamicConfig, ApibaraHooks, ApibaraOptions, ApibaraRuntimeConfig, DeepPartial, IndexerDefinition, LoadConfigOptions, LoggerFactoryArgs, LoggerFactoryFn, RegisterFn, RolldownConfig };
|