apibara 2.1.0-beta.31 → 2.1.0-beta.32
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 +1 -2
- package/dist/chunks/add.mjs.map +1 -1
- package/dist/chunks/build.mjs +1 -2
- package/dist/chunks/build.mjs.map +1 -1
- package/dist/chunks/dev.mjs +1 -2
- package/dist/chunks/dev.mjs.map +1 -1
- package/dist/chunks/init.mjs +1 -2
- package/dist/chunks/init.mjs.map +1 -1
- package/dist/chunks/prepare.mjs +1 -2
- package/dist/chunks/prepare.mjs.map +1 -1
- package/dist/chunks/start.mjs +10 -3
- package/dist/chunks/start.mjs.map +1 -1
- package/dist/chunks/write-project-info.mjs +1 -1
- package/dist/chunks/write-project-info.mjs.map +1 -1
- package/dist/common/index.d.mts +6 -1
- package/dist/common/index.d.ts +6 -1
- package/dist/common/index.mjs +28 -1
- package/dist/common/index.mjs.map +1 -1
- package/dist/rolldown/index.mjs +18 -0
- package/dist/rolldown/index.mjs.map +1 -1
- package/dist/runtime/start.mjs +38 -4
- package/package.json +4 -4
- package/src/cli/commands/add.ts +1 -1
- package/src/cli/commands/build.ts +1 -1
- package/src/cli/commands/dev.ts +1 -1
- package/src/cli/commands/init.ts +1 -1
- package/src/cli/commands/prepare.ts +1 -2
- package/src/cli/commands/start.ts +10 -2
- package/src/cli/commands/write-project-info.ts +1 -1
- package/src/common/index.ts +1 -0
- package/src/rolldown/config.ts +2 -1
- package/src/rolldown/plugins/static-config.ts +21 -0
- package/src/runtime/start.ts +44 -4
- package/src/types/virtual/static-config.d.ts +4 -0
- package/dist/shared/apibara.63c9a277.mjs +0 -30
- package/dist/shared/apibara.63c9a277.mjs.map +0 -1
- /package/src/{cli/common.ts → common/cli.ts} +0 -0
package/dist/chunks/add.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
import { checkForUnknownArgs } from 'apibara/common';
|
|
1
2
|
import { addIndexer } from 'apibara/create';
|
|
2
3
|
import { defineCommand } from 'citty';
|
|
3
|
-
import { a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
|
|
4
|
-
import 'consola';
|
|
5
4
|
|
|
6
5
|
const add = defineCommand({
|
|
7
6
|
meta: {
|
package/dist/chunks/add.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.mjs","sources":["../../src/cli/commands/add.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"add.mjs","sources":["../../src/cli/commands/add.ts"],"sourcesContent":["import { checkForUnknownArgs } from \"apibara/common\";\nimport { addIndexer } from \"apibara/create\";\nimport { defineCommand } from \"citty\";\n\nexport default defineCommand({\n meta: {\n name: \"add\",\n description:\n \"apibara add helps you add a new indexer to your project with sensible defaults.\",\n },\n args: {\n indexerId: {\n type: \"positional\",\n description: \"Indexer ID - must be in kebab-case\",\n required: false,\n },\n chain: {\n type: \"string\",\n description: \"Blockchain - ethereum, beaconchain, starknet\",\n },\n network: {\n type: \"string\",\n description: \"Network - mainnet, sepolia, other\",\n },\n storage: {\n type: \"string\",\n description: \"Storage - postgres, none\",\n },\n dnaUrl: {\n type: \"string\",\n description: \"DNA URL - https://custom-dna-url.apibara.org\",\n },\n dir: {\n type: \"string\",\n description:\n \"Root directory - apibara project root where apibara.config is located | default: current working directory\",\n },\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n const { indexerId, chain, network, storage, dnaUrl, dir } = args;\n\n await addIndexer({\n argIndexerId: indexerId,\n argChain: chain,\n argNetwork: network,\n argStorage: storage,\n argDnaUrl: dnaUrl,\n argRootDir: dir,\n });\n },\n});\n"],"names":[],"mappings":";;;;AAIA,YAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,KAAA;AAAA,IACN,WACE,EAAA,iFAAA;AAAA,GACJ;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,SAAW,EAAA;AAAA,MACT,IAAM,EAAA,YAAA;AAAA,MACN,WAAa,EAAA,oCAAA;AAAA,MACb,QAAU,EAAA,KAAA;AAAA,KACZ;AAAA,IACA,KAAO,EAAA;AAAA,MACL,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,8CAAA;AAAA,KACf;AAAA,IACA,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,mCAAA;AAAA,KACf;AAAA,IACA,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,0BAAA;AAAA,KACf;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,8CAAA;AAAA,KACf;AAAA,IACA,GAAK,EAAA;AAAA,MACH,IAAM,EAAA,QAAA;AAAA,MACN,WACE,EAAA,4GAAA;AAAA,KACJ;AAAA,GACF;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,MAAM,EAAE,SAAW,EAAA,KAAA,EAAO,SAAS,OAAS,EAAA,MAAA,EAAQ,KAAQ,GAAA,IAAA,CAAA;AAE5D,IAAA,MAAM,UAAW,CAAA;AAAA,MACf,YAAc,EAAA,SAAA;AAAA,MACd,QAAU,EAAA,KAAA;AAAA,MACV,UAAY,EAAA,OAAA;AAAA,MACZ,UAAY,EAAA,OAAA;AAAA,MACZ,SAAW,EAAA,MAAA;AAAA,MACX,UAAY,EAAA,GAAA;AAAA,KACb,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
|
package/dist/chunks/build.mjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
import { commonArgs, checkForUnknownArgs } from 'apibara/common';
|
|
1
2
|
import { createApibara, prepare, writeTypes, build as build$1 } from 'apibara/core';
|
|
2
3
|
import { runtimeDir } from 'apibara/runtime/meta';
|
|
3
4
|
import { defineCommand } from 'citty';
|
|
4
5
|
import { resolve, join } from 'pathe';
|
|
5
|
-
import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
|
|
6
|
-
import 'consola';
|
|
7
6
|
|
|
8
7
|
const build = defineCommand({
|
|
9
8
|
meta: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.mjs","sources":["../../src/cli/commands/build.ts"],"sourcesContent":["import { build, createApibara, prepare, writeTypes } from \"apibara/core\";\nimport { runtimeDir } from \"apibara/runtime/meta\";\nimport { defineCommand } from \"citty\";\nimport { join, resolve } from \"pathe\";\
|
|
1
|
+
{"version":3,"file":"build.mjs","sources":["../../src/cli/commands/build.ts"],"sourcesContent":["import { checkForUnknownArgs, commonArgs } from \"apibara/common\";\nimport { build, createApibara, prepare, writeTypes } from \"apibara/core\";\nimport { runtimeDir } from \"apibara/runtime/meta\";\nimport { defineCommand } from \"citty\";\nimport { join, resolve } from \"pathe\";\n\nexport default defineCommand({\n meta: {\n name: \"build\",\n description: \"Build indexer\",\n },\n args: {\n ...commonArgs,\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n const rootDir = resolve((args.dir || args._dir || \".\") as string);\n\n const apibara = await createApibara({\n rootDir,\n });\n\n apibara.options.entry = join(runtimeDir, \"start.mjs\");\n\n await prepare(apibara);\n await writeTypes(apibara);\n await build(apibara);\n await apibara.close();\n },\n});\n"],"names":["build"],"mappings":";;;;;;AAMA,cAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,OAAA;AAAA,IACN,WAAa,EAAA,eAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAG,UAAA;AAAA,GACL;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,MAAM,UAAU,OAAS,CAAA,IAAA,CAAK,GAAO,IAAA,IAAA,CAAK,QAAQ,GAAc,CAAA,CAAA;AAEhE,IAAM,MAAA,OAAA,GAAU,MAAM,aAAc,CAAA;AAAA,MAClC,OAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,OAAA,CAAQ,OAAQ,CAAA,KAAA,GAAQ,IAAK,CAAA,UAAA,EAAY,WAAW,CAAA,CAAA;AAEpD,IAAA,MAAM,QAAQ,OAAO,CAAA,CAAA;AACrB,IAAA,MAAM,WAAW,OAAO,CAAA,CAAA;AACxB,IAAA,MAAMA,QAAM,OAAO,CAAA,CAAA;AACnB,IAAA,MAAM,QAAQ,KAAM,EAAA,CAAA;AAAA,GACtB;AACF,CAAC,CAAA;;;;"}
|
package/dist/chunks/dev.mjs
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import { commonArgs, checkForUnknownArgs } from 'apibara/common';
|
|
2
3
|
import { createApibara, prepare, writeTypes, build } from 'apibara/core';
|
|
3
4
|
import { runtimeDir } from 'apibara/runtime/meta';
|
|
4
5
|
import { defineCommand } from 'citty';
|
|
5
6
|
import { colors } from 'consola/utils';
|
|
6
7
|
import { resolve, join } from 'pathe';
|
|
7
8
|
import { b as blueBright, g as gray } from '../shared/apibara.730bb1e4.mjs';
|
|
8
|
-
import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
|
|
9
9
|
import 'picocolors';
|
|
10
|
-
import 'consola';
|
|
11
10
|
|
|
12
11
|
const hmrKeyRe = /^(runtimeConfig\.|presets\.|preset$)/;
|
|
13
12
|
const dev = defineCommand({
|
package/dist/chunks/dev.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.mjs","sources":["../../src/cli/commands/dev.ts"],"sourcesContent":["import { type ChildProcess, spawn } from \"node:child_process\";\nimport { build, createApibara, prepare, writeTypes } from \"apibara/core\";\nimport { runtimeDir } from \"apibara/runtime/meta\";\nimport type { Apibara } from \"apibara/types\";\nimport { defineCommand } from \"citty\";\nimport { colors } from \"consola/utils\";\nimport { join, resolve } from \"pathe\";\nimport { blueBright, gray } from \"../../create/colors\";\
|
|
1
|
+
{"version":3,"file":"dev.mjs","sources":["../../src/cli/commands/dev.ts"],"sourcesContent":["import { type ChildProcess, spawn } from \"node:child_process\";\nimport { checkForUnknownArgs, commonArgs } from \"apibara/common\";\nimport { build, createApibara, prepare, writeTypes } from \"apibara/core\";\nimport { runtimeDir } from \"apibara/runtime/meta\";\nimport type { Apibara } from \"apibara/types\";\nimport { defineCommand } from \"citty\";\nimport { colors } from \"consola/utils\";\nimport { join, resolve } from \"pathe\";\nimport { blueBright, gray } from \"../../create/colors\";\n\n// Hot module reloading key regex\n// for only runtimeConfig.*, presets.* keys & preset key\nconst hmrKeyRe = /^(runtimeConfig\\.|presets\\.|preset$)/;\n\nexport default defineCommand({\n meta: {\n name: \"dev\",\n description: \"Start the development server\",\n },\n args: {\n ...commonArgs,\n indexers: {\n type: \"string\",\n description: \"Comma-separated list of indexers to run\",\n },\n preset: {\n type: \"string\",\n description: \"Preset to use\",\n },\n \"always-reindex\": {\n type: \"boolean\",\n default: false,\n description:\n \"Reindex the indexers from the starting block on every restart | default: `false`\",\n },\n },\n async run({ args, data, cmd, rawArgs }) {\n await checkForUnknownArgs(args, cmd);\n\n const rootDir = resolve((args.dir || args._dir || \".\") as string);\n\n if (args[\"always-reindex\"]) {\n process.env.APIBARA_ALWAYS_REINDEX = \"true\";\n }\n\n const selectedIndexers = new Set(\n args.indexers\n ?.split(\",\")\n .map((i) => i.trim())\n .sort() ?? [],\n );\n\n let apibara: Apibara;\n let childProcess: ChildProcess | undefined;\n\n const reload = async () => {\n if (apibara) {\n apibara.logger.info(\"Restarting dev server\");\n if (\"unwatch\" in apibara.options._c12) {\n await apibara.options._c12.unwatch();\n }\n\n await apibara.close();\n }\n\n apibara = await createApibara(\n {\n rootDir,\n preset: args.preset,\n },\n {\n watch: true,\n c12: {\n async onUpdate({ getDiff, newConfig }) {\n const diff = getDiff();\n\n if (diff.length === 0) {\n return; // No changes\n }\n\n apibara.logger.info(\n `Config updated: \\n${diff.map((entry) => ` ${entry.toString()}`).join(\"\\n\")}`,\n );\n\n await (diff.every((e) => hmrKeyRe.test(e.key))\n ? // in hot reload we only update the runtime values & restart indexers,no build step, apibara instance remains the same\n apibara.updateConfig(newConfig.config || {}) // Hot reload\n : reload()); // Full reload\n },\n },\n },\n true,\n );\n\n apibara.hooks.hookOnce(\"restart\", async () => {\n await reload();\n });\n\n apibara.options.entry = join(runtimeDir, \"dev.mjs\");\n\n await prepare(apibara);\n await writeTypes(apibara);\n await build(apibara);\n\n apibara.hooks.hook(\"dev:restart\", async () => {\n if (childProcess) {\n apibara.logger.info(\"Change detected, stopping indexers to restart\");\n await killProcess(childProcess);\n childProcess = undefined;\n }\n });\n\n apibara.hooks.hook(\"dev:reload\", async () => {\n if (childProcess) {\n await killProcess(childProcess);\n childProcess = undefined;\n apibara.logger.info(\"Restarting indexers\");\n } else {\n apibara.logger.info(\"Starting indexers\");\n\n const indexersText = apibara.indexers\n .map((i) =>\n selectedIndexers.has(i.name) || selectedIndexers.size === 0\n ? blueBright(i.name)\n : gray(i.name),\n )\n .join(\", \");\n apibara.logger.info(\"Indexers:\", indexersText);\n }\n\n const childArgs = [\n resolve(apibara.options.outputDir || \"./.apibara/build\", \"dev.mjs\"),\n \"start\",\n ...(args.indexers ? [\"--indexers\", args.indexers] : []),\n ];\n\n childProcess = spawn(\"node\", childArgs, {\n stdio: \"inherit\",\n });\n\n childProcess.on(\"close\", (code, signal) => {\n childProcess = undefined;\n console.log();\n apibara.logger.info(\n `Indexers process exited${\n code !== null ? ` with code ${colors.red(code)}` : \"\"\n }`,\n );\n });\n });\n };\n\n await reload();\n },\n});\n\nasync function killProcess(childProcess: ChildProcess | undefined) {\n if (childProcess) {\n await new Promise((resolve) => {\n childProcess.once(\"exit\", resolve);\n childProcess.kill();\n });\n }\n}\n"],"names":["resolve"],"mappings":"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"}
|
package/dist/chunks/init.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
import { checkForUnknownArgs } from 'apibara/common';
|
|
1
2
|
import { initializeProject } from 'apibara/create';
|
|
2
3
|
import { defineCommand } from 'citty';
|
|
3
|
-
import { a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
|
|
4
|
-
import 'consola';
|
|
5
4
|
|
|
6
5
|
const init = defineCommand({
|
|
7
6
|
meta: {
|
package/dist/chunks/init.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.mjs","sources":["../../src/cli/commands/init.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"init.mjs","sources":["../../src/cli/commands/init.ts"],"sourcesContent":["import { checkForUnknownArgs } from \"apibara/common\";\nimport { initializeProject } from \"apibara/create\";\nimport { defineCommand } from \"citty\";\n\nexport default defineCommand({\n meta: {\n name: \"init\",\n description: \"Initialize a new Apibara project\",\n },\n args: {\n dir: {\n type: \"positional\",\n description: \"Target path to initialize the project\",\n required: true,\n },\n language: {\n type: \"string\",\n description:\n \"Language to use: typescript, ts or javascript, js | default: `ts`\",\n default: \"ts\",\n alias: \"l\",\n },\n \"create-indexer\": {\n type: \"boolean\",\n name: \"create-indexer\",\n default: true,\n description: \"TODO\",\n },\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n const { dir: targetDir, \"create-indexer\": createIndexer, language } = args;\n\n await initializeProject({\n argTargetDir: targetDir,\n argLanguage: language,\n argNoCreateIndexer: !createIndexer,\n });\n },\n});\n"],"names":[],"mappings":";;;;AAIA,aAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,WAAa,EAAA,kCAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAK,EAAA;AAAA,MACH,IAAM,EAAA,YAAA;AAAA,MACN,WAAa,EAAA,uCAAA;AAAA,MACb,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA,IACA,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,QAAA;AAAA,MACN,WACE,EAAA,mEAAA;AAAA,MACF,OAAS,EAAA,IAAA;AAAA,MACT,KAAO,EAAA,GAAA;AAAA,KACT;AAAA,IACA,gBAAkB,EAAA;AAAA,MAChB,IAAM,EAAA,SAAA;AAAA,MACN,IAAM,EAAA,gBAAA;AAAA,MACN,OAAS,EAAA,IAAA;AAAA,MACT,WAAa,EAAA,MAAA;AAAA,KACf;AAAA,GACF;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,MAAM,EAAE,GAAK,EAAA,SAAA,EAAW,gBAAkB,EAAA,aAAA,EAAe,UAAa,GAAA,IAAA,CAAA;AAEtE,IAAA,MAAM,iBAAkB,CAAA;AAAA,MACtB,YAAc,EAAA,SAAA;AAAA,MACd,WAAa,EAAA,QAAA;AAAA,MACb,oBAAoB,CAAC,aAAA;AAAA,KACtB,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
|
package/dist/chunks/prepare.mjs
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import { commonArgs, checkForUnknownArgs } from 'apibara/common';
|
|
1
2
|
import { createApibara, writeTypes } from 'apibara/core';
|
|
2
3
|
import { defineCommand } from 'citty';
|
|
3
4
|
import { resolve } from 'pathe';
|
|
4
|
-
import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
|
|
5
|
-
import 'consola';
|
|
6
5
|
|
|
7
6
|
const prepare = defineCommand({
|
|
8
7
|
meta: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.mjs","sources":["../../src/cli/commands/prepare.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"prepare.mjs","sources":["../../src/cli/commands/prepare.ts"],"sourcesContent":["import { checkForUnknownArgs, commonArgs } from \"apibara/common\";\nimport { createApibara, writeTypes } from \"apibara/core\";\nimport { defineCommand } from \"citty\";\nimport { resolve } from \"pathe\";\n\nexport default defineCommand({\n meta: {\n name: \"prepare\",\n description: \"Generate types for the project\",\n },\n args: {\n ...commonArgs,\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n const rootDir = resolve((args.dir || \".\") as string);\n const apibara = await createApibara({ rootDir });\n await writeTypes(apibara);\n },\n});\n"],"names":[],"mappings":";;;;;AAKA,gBAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,gCAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAG,UAAA;AAAA,GACL;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,MAAM,OAAU,GAAA,OAAA,CAAS,IAAK,CAAA,GAAA,IAAO,GAAc,CAAA,CAAA;AACnD,IAAA,MAAM,OAAU,GAAA,MAAM,aAAc,CAAA,EAAE,SAAS,CAAA,CAAA;AAC/C,IAAA,MAAM,WAAW,OAAO,CAAA,CAAA;AAAA,GAC1B;AACF,CAAC,CAAA;;;;"}
|
package/dist/chunks/start.mjs
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import { commonArgs, checkForUnknownArgs } from 'apibara/common';
|
|
2
3
|
import { createApibara } from 'apibara/core';
|
|
3
4
|
import { defineCommand } from 'citty';
|
|
4
5
|
import { colors } from 'consola/utils';
|
|
5
6
|
import fse from 'fs-extra';
|
|
6
7
|
import { resolve } from 'pathe';
|
|
7
|
-
import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
|
|
8
|
-
import 'consola';
|
|
9
8
|
|
|
10
9
|
const start = defineCommand({
|
|
11
10
|
meta: {
|
|
@@ -44,7 +43,15 @@ const start = defineCommand({
|
|
|
44
43
|
return process.exit(1);
|
|
45
44
|
}
|
|
46
45
|
await apibara.close();
|
|
47
|
-
const childArgs = [
|
|
46
|
+
const childArgs = [
|
|
47
|
+
entry,
|
|
48
|
+
"start",
|
|
49
|
+
"--indexer",
|
|
50
|
+
indexer,
|
|
51
|
+
// important: this is required to run the indexer with apibara cli to load runtime values correctly
|
|
52
|
+
"--no-standalone",
|
|
53
|
+
...preset ? ["--preset", preset] : []
|
|
54
|
+
];
|
|
48
55
|
const childProcess = spawn("node", childArgs, {
|
|
49
56
|
stdio: "inherit"
|
|
50
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.mjs","sources":["../../src/cli/commands/start.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { createApibara } from \"apibara/core\";\nimport { defineCommand } from \"citty\";\nimport { colors } from \"consola/utils\";\nimport fse from \"fs-extra\";\nimport { resolve } from \"pathe\";\
|
|
1
|
+
{"version":3,"file":"start.mjs","sources":["../../src/cli/commands/start.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { checkForUnknownArgs, commonArgs } from \"apibara/common\";\nimport { createApibara } from \"apibara/core\";\nimport { defineCommand } from \"citty\";\nimport { colors } from \"consola/utils\";\nimport fse from \"fs-extra\";\nimport { resolve } from \"pathe\";\n\nexport default defineCommand({\n meta: {\n name: \"start\",\n description: \"Start one indexer\",\n },\n args: {\n ...commonArgs,\n indexer: {\n type: \"string\",\n description: \"The indexer to start\",\n required: true,\n },\n preset: {\n type: \"string\",\n description: \"The preset to use\",\n },\n },\n async run({ args, cmd }) {\n const { indexer, preset } = args;\n const rootDir = resolve((args.dir || args._dir || \".\") as string);\n\n await checkForUnknownArgs(args, cmd);\n\n const apibara = await createApibara({\n rootDir,\n preset,\n });\n\n apibara.logger.start(\n `Starting indexer ${indexer}${preset ? ` with preset ${preset}` : \"\"}`,\n );\n\n const outputDir = apibara.options.outputDir || \"./.apibara/build\";\n const entry = resolve(outputDir, \"start.mjs\");\n\n if (!fse.existsSync(entry)) {\n apibara.logger.error(\n `Output directory ${outputDir} does not exist. Try building the indexer with \"apibara build\" first.`,\n );\n return process.exit(1);\n }\n\n await apibara.close();\n\n const childArgs = [\n entry,\n \"start\",\n \"--indexer\",\n indexer,\n // important: this is required to run the indexer with apibara cli to load runtime values correctly\n \"--no-standalone\",\n ...(preset ? [\"--preset\", preset] : []),\n ];\n\n const childProcess = spawn(\"node\", childArgs, {\n stdio: \"inherit\",\n });\n\n childProcess.on(\"close\", (code, signal) => {\n console.log();\n apibara.logger.info(\n `Indexers process exited${\n code !== null ? ` with code ${colors.red(code)}` : \"\"\n }`,\n );\n });\n },\n});\n"],"names":[],"mappings":";;;;;;;;AAQA,cAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,OAAA;AAAA,IACN,WAAa,EAAA,mBAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAG,UAAA;AAAA,IACH,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,sBAAA;AAAA,MACb,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,mBAAA;AAAA,KACf;AAAA,GACF;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,EAAE,OAAS,EAAA,MAAA,EAAW,GAAA,IAAA,CAAA;AAC5B,IAAA,MAAM,UAAU,OAAS,CAAA,IAAA,CAAK,GAAO,IAAA,IAAA,CAAK,QAAQ,GAAc,CAAA,CAAA;AAEhE,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAM,MAAA,OAAA,GAAU,MAAM,aAAc,CAAA;AAAA,MAClC,OAAA;AAAA,MACA,MAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,OAAA,CAAQ,MAAO,CAAA,KAAA;AAAA,MACb,oBAAoB,OAAO,CAAA,EAAG,SAAS,CAAgB,aAAA,EAAA,MAAM,KAAK,EAAE,CAAA,CAAA;AAAA,KACtE,CAAA;AAEA,IAAM,MAAA,SAAA,GAAY,OAAQ,CAAA,OAAA,CAAQ,SAAa,IAAA,kBAAA,CAAA;AAC/C,IAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,SAAA,EAAW,WAAW,CAAA,CAAA;AAE5C,IAAA,IAAI,CAAC,GAAA,CAAI,UAAW,CAAA,KAAK,CAAG,EAAA;AAC1B,MAAA,OAAA,CAAQ,MAAO,CAAA,KAAA;AAAA,QACb,oBAAoB,SAAS,CAAA,qEAAA,CAAA;AAAA,OAC/B,CAAA;AACA,MAAO,OAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,KACvB;AAEA,IAAA,MAAM,QAAQ,KAAM,EAAA,CAAA;AAEpB,IAAA,MAAM,SAAY,GAAA;AAAA,MAChB,KAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA;AAAA,MAEA,iBAAA;AAAA,MACA,GAAI,MAAS,GAAA,CAAC,UAAY,EAAA,MAAM,IAAI,EAAC;AAAA,KACvC,CAAA;AAEA,IAAM,MAAA,YAAA,GAAe,KAAM,CAAA,MAAA,EAAQ,SAAW,EAAA;AAAA,MAC5C,KAAO,EAAA,SAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAA,YAAA,CAAa,EAAG,CAAA,OAAA,EAAS,CAAC,IAAA,EAAM,MAAW,KAAA;AACzC,MAAA,OAAA,CAAQ,GAAI,EAAA,CAAA;AACZ,MAAA,OAAA,CAAQ,MAAO,CAAA,IAAA;AAAA,QACb,CAAA,uBAAA,EACE,SAAS,IAAO,GAAA,CAAA,WAAA,EAAc,OAAO,GAAI,CAAA,IAAI,CAAC,CAAA,CAAA,GAAK,EACrD,CAAA,CAAA;AAAA,OACF,CAAA;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { commonArgs, checkForUnknownArgs } from 'apibara/common';
|
|
3
4
|
import { createApibara, prepare, writeTypes, build } from 'apibara/core';
|
|
4
5
|
import { runtimeDir } from 'apibara/runtime/meta';
|
|
5
6
|
import { defineCommand } from 'citty';
|
|
6
7
|
import consola from 'consola';
|
|
7
8
|
import { resolve } from 'pathe';
|
|
8
|
-
import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
|
|
9
9
|
|
|
10
10
|
const writeProjectInfo = defineCommand({
|
|
11
11
|
meta: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-project-info.mjs","sources":["../../src/cli/commands/write-project-info.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { join } from \"node:path\";\nimport { build, createApibara, prepare, writeTypes } from \"apibara/core\";\nimport { runtimeDir } from \"apibara/runtime/meta\";\nimport { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { resolve } from \"pathe\";\
|
|
1
|
+
{"version":3,"file":"write-project-info.mjs","sources":["../../src/cli/commands/write-project-info.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { join } from \"node:path\";\nimport { checkForUnknownArgs, commonArgs } from \"apibara/common\";\nimport { build, createApibara, prepare, writeTypes } from \"apibara/core\";\nimport { runtimeDir } from \"apibara/runtime/meta\";\nimport { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { resolve } from \"pathe\";\n\nexport default defineCommand({\n meta: {\n name: \"write-project-info\",\n description: \"Write json-encoded information about the project.\",\n },\n args: {\n ...commonArgs,\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n consola.start(\"Generating `project-info.json`\");\n\n const rootDir = resolve((args.dir || \".\") as string);\n const apibara = await createApibara({ rootDir, disableLogs: true });\n\n apibara.options.entry = join(runtimeDir, \"project-info.mjs\");\n\n await prepare(apibara);\n await writeTypes(apibara);\n await build(apibara);\n\n const childArgs = [\n resolve(\n apibara.options.outputDir || \"./.apibara/build\",\n \"project-info.mjs\",\n ),\n \"start\",\n \"--build-dir\",\n apibara.options.buildDir,\n ];\n\n const child = spawn(\"node\", childArgs, {\n stdio: \"inherit\",\n });\n\n child.on(\"close\", (code) => {\n if (code === 0) {\n consola.success(\"Project info written to `.apibara/project-info.json`\");\n }\n });\n\n child.on(\"error\", (error) => {\n consola.error(`Failed to write project info: ${error.message}`, error);\n });\n },\n});\n"],"names":[],"mappings":";;;;;;;;;AASA,yBAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,oBAAA;AAAA,IACN,WAAa,EAAA,mDAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAG,UAAA;AAAA,GACL;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,OAAA,CAAQ,MAAM,gCAAgC,CAAA,CAAA;AAE9C,IAAA,MAAM,OAAU,GAAA,OAAA,CAAS,IAAK,CAAA,GAAA,IAAO,GAAc,CAAA,CAAA;AACnD,IAAA,MAAM,UAAU,MAAM,aAAA,CAAc,EAAE,OAAS,EAAA,WAAA,EAAa,MAAM,CAAA,CAAA;AAElE,IAAA,OAAA,CAAQ,OAAQ,CAAA,KAAA,GAAQ,IAAK,CAAA,UAAA,EAAY,kBAAkB,CAAA,CAAA;AAE3D,IAAA,MAAM,QAAQ,OAAO,CAAA,CAAA;AACrB,IAAA,MAAM,WAAW,OAAO,CAAA,CAAA;AACxB,IAAA,MAAM,MAAM,OAAO,CAAA,CAAA;AAEnB,IAAA,MAAM,SAAY,GAAA;AAAA,MAChB,OAAA;AAAA,QACE,OAAA,CAAQ,QAAQ,SAAa,IAAA,kBAAA;AAAA,QAC7B,kBAAA;AAAA,OACF;AAAA,MACA,OAAA;AAAA,MACA,aAAA;AAAA,MACA,QAAQ,OAAQ,CAAA,QAAA;AAAA,KAClB,CAAA;AAEA,IAAM,MAAA,KAAA,GAAQ,KAAM,CAAA,MAAA,EAAQ,SAAW,EAAA;AAAA,MACrC,KAAO,EAAA,SAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,KAAA,CAAA,EAAA,CAAG,OAAS,EAAA,CAAC,IAAS,KAAA;AAC1B,MAAA,IAAI,SAAS,CAAG,EAAA;AACd,QAAA,OAAA,CAAQ,QAAQ,sDAAsD,CAAA,CAAA;AAAA,OACxE;AAAA,KACD,CAAA,CAAA;AAED,IAAM,KAAA,CAAA,EAAA,CAAG,OAAS,EAAA,CAAC,KAAU,KAAA;AAC3B,MAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,8BAAA,EAAiC,KAAM,CAAA,OAAO,IAAI,KAAK,CAAA,CAAA;AAAA,KACtE,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
|
package/dist/common/index.d.mts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ArgsDef, ParsedArgs, CommandDef } from 'citty';
|
|
2
|
+
|
|
1
3
|
declare const ENV_INTERNAL_APIBARA_RUNTIME = "_APIBARA_RUNTIME";
|
|
2
4
|
declare const ENV_INTERNAL_APIBARA_PRESET = "_APIBARA_PRESET";
|
|
3
5
|
declare const ENV_INTERNAL_APIBARA_PRESETS = "_APIBARA_PRESETS";
|
|
@@ -25,4 +27,7 @@ declare function getProcessedRuntimeConfig({ preset, presets, runtimeConfig, use
|
|
|
25
27
|
userEnvRuntimeConfig?: Record<string, unknown>;
|
|
26
28
|
}): Record<string, unknown>;
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
declare const commonArgs: ArgsDef;
|
|
31
|
+
declare const checkForUnknownArgs: <T extends ArgsDef = ArgsDef>(args: ParsedArgs<T>, cmd: CommandDef<T>) => Promise<void>;
|
|
32
|
+
|
|
33
|
+
export { ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, ENV_INTERNAL_APIBARA_RUNTIME, USER_ENV_APIBARA_RUNTIME_CONFIG, checkForUnknownArgs, commonArgs, getProcessedRuntimeConfig, getRuntimeDataFromEnv };
|
package/dist/common/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ArgsDef, ParsedArgs, CommandDef } from 'citty';
|
|
2
|
+
|
|
1
3
|
declare const ENV_INTERNAL_APIBARA_RUNTIME = "_APIBARA_RUNTIME";
|
|
2
4
|
declare const ENV_INTERNAL_APIBARA_PRESET = "_APIBARA_PRESET";
|
|
3
5
|
declare const ENV_INTERNAL_APIBARA_PRESETS = "_APIBARA_PRESETS";
|
|
@@ -25,4 +27,7 @@ declare function getProcessedRuntimeConfig({ preset, presets, runtimeConfig, use
|
|
|
25
27
|
userEnvRuntimeConfig?: Record<string, unknown>;
|
|
26
28
|
}): Record<string, unknown>;
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
declare const commonArgs: ArgsDef;
|
|
31
|
+
declare const checkForUnknownArgs: <T extends ArgsDef = ArgsDef>(args: ParsedArgs<T>, cmd: CommandDef<T>) => Promise<void>;
|
|
32
|
+
|
|
33
|
+
export { ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, ENV_INTERNAL_APIBARA_RUNTIME, USER_ENV_APIBARA_RUNTIME_CONFIG, checkForUnknownArgs, commonArgs, getProcessedRuntimeConfig, getRuntimeDataFromEnv };
|
package/dist/common/index.mjs
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import defu from 'defu';
|
|
2
|
+
import { renderUsage } from 'citty';
|
|
3
|
+
import consola from 'consola';
|
|
2
4
|
|
|
3
5
|
const ENV_INTERNAL_APIBARA_RUNTIME = "_APIBARA_RUNTIME";
|
|
4
6
|
const ENV_INTERNAL_APIBARA_PRESET = "_APIBARA_PRESET";
|
|
@@ -60,5 +62,30 @@ function getProcessedRuntimeConfig({
|
|
|
60
62
|
return _runtimeConfig;
|
|
61
63
|
}
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
const commonArgs = {
|
|
66
|
+
dir: {
|
|
67
|
+
type: "string",
|
|
68
|
+
description: "project root directory"
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const checkForUnknownArgs = async (args, cmd) => {
|
|
72
|
+
const definedArgs = [];
|
|
73
|
+
if (cmd.args) {
|
|
74
|
+
for (const [argName, argDef] of Object.entries(cmd.args)) {
|
|
75
|
+
definedArgs.push(argName);
|
|
76
|
+
if (argDef.alias) {
|
|
77
|
+
definedArgs.push(argDef.alias);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const providedArgs = Object.keys(args).filter((arg) => arg !== "_");
|
|
82
|
+
const wrongArgs = providedArgs.filter((arg) => !definedArgs.includes(arg));
|
|
83
|
+
if (wrongArgs.length > 0) {
|
|
84
|
+
consola.error(`Unknown arguments: ${wrongArgs.join(", ")}`);
|
|
85
|
+
consola.info(await renderUsage(cmd));
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export { ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, ENV_INTERNAL_APIBARA_RUNTIME, USER_ENV_APIBARA_RUNTIME_CONFIG, checkForUnknownArgs, commonArgs, getProcessedRuntimeConfig, getRuntimeDataFromEnv };
|
|
64
91
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/common/constants.ts","../../src/common/helper.ts"],"sourcesContent":["export const ENV_INTERNAL_APIBARA_RUNTIME = \"_APIBARA_RUNTIME\";\nexport const ENV_INTERNAL_APIBARA_PRESET = \"_APIBARA_PRESET\";\nexport const ENV_INTERNAL_APIBARA_PRESETS = \"_APIBARA_PRESETS\";\nexport const ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME =\n \"_APIBARA_PROCESSED_RUNTIME\";\nexport const USER_ENV_APIBARA_RUNTIME_CONFIG = \"APIBARA_RUNTIME_CONFIG\";\n","import defu from \"defu\";\nimport {\n ENV_INTERNAL_APIBARA_PRESET,\n ENV_INTERNAL_APIBARA_PRESETS,\n ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME,\n ENV_INTERNAL_APIBARA_RUNTIME,\n USER_ENV_APIBARA_RUNTIME_CONFIG,\n} from \"./constants\";\n\nexport function getRuntimeDataFromEnv() {\n const processedRuntimeConfig: Record<string, unknown> = JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] ?? \"{}\",\n );\n const preset: string | undefined = process.env[ENV_INTERNAL_APIBARA_PRESET];\n const presets: Record<string, unknown> | undefined = JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_PRESETS] ?? \"{}\",\n );\n const runtimeConfig: Record<string, unknown> | undefined = JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_RUNTIME] ?? \"{}\",\n );\n const userEnvRuntimeConfig: Record<string, unknown> | undefined = JSON.parse(\n process.env[USER_ENV_APIBARA_RUNTIME_CONFIG] ?? \"{}\",\n );\n\n return {\n userEnvRuntimeConfig,\n processedRuntimeConfig,\n preset,\n presets,\n runtimeConfig,\n };\n}\n\n/**\n * Get the merged runtime config from the user env overrided runtime config, presets and defaults.\n * Priority (Highest to lowest):\n * 1. User env overrided runtime config\n * 2. Preset\n * 3. Defaults\n */\nexport function getProcessedRuntimeConfig({\n preset,\n presets,\n runtimeConfig,\n userEnvRuntimeConfig,\n}: {\n preset?: string;\n presets?: Record<string, unknown>;\n runtimeConfig?: Record<string, unknown>;\n userEnvRuntimeConfig?: Record<string, unknown>;\n}) {\n let _runtimeConfig: Record<string, unknown> = { ...runtimeConfig };\n\n if (preset) {\n if (presets === undefined) {\n throw new Error(\n `Specified preset \"${preset}\" but no presets were defined`,\n );\n }\n\n if (presets[preset] === undefined) {\n throw new Error(`Specified preset \"${preset}\" but it was not defined`);\n }\n\n const presetValue = presets[preset] as {\n runtimeConfig: Record<string, unknown>;\n };\n\n // Preset applied\n _runtimeConfig = defu(presetValue.runtimeConfig, _runtimeConfig);\n }\n\n if (userEnvRuntimeConfig) {\n try {\n // Environment runtime config applied\n _runtimeConfig = defu(userEnvRuntimeConfig, _runtimeConfig);\n } catch (error) {\n throw new Error(\n \"Failed to parse runtime config from process.env.APIBARA_RUNTIME_CONFIG. Please ensure it is a valid JSON string.\",\n { cause: error },\n );\n }\n }\n\n return _runtimeConfig;\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/common/constants.ts","../../src/common/helper.ts","../../src/common/cli.ts"],"sourcesContent":["export const ENV_INTERNAL_APIBARA_RUNTIME = \"_APIBARA_RUNTIME\";\nexport const ENV_INTERNAL_APIBARA_PRESET = \"_APIBARA_PRESET\";\nexport const ENV_INTERNAL_APIBARA_PRESETS = \"_APIBARA_PRESETS\";\nexport const ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME =\n \"_APIBARA_PROCESSED_RUNTIME\";\nexport const USER_ENV_APIBARA_RUNTIME_CONFIG = \"APIBARA_RUNTIME_CONFIG\";\n","import defu from \"defu\";\nimport {\n ENV_INTERNAL_APIBARA_PRESET,\n ENV_INTERNAL_APIBARA_PRESETS,\n ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME,\n ENV_INTERNAL_APIBARA_RUNTIME,\n USER_ENV_APIBARA_RUNTIME_CONFIG,\n} from \"./constants\";\n\nexport function getRuntimeDataFromEnv() {\n const processedRuntimeConfig: Record<string, unknown> = JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] ?? \"{}\",\n );\n const preset: string | undefined = process.env[ENV_INTERNAL_APIBARA_PRESET];\n const presets: Record<string, unknown> | undefined = JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_PRESETS] ?? \"{}\",\n );\n const runtimeConfig: Record<string, unknown> | undefined = JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_RUNTIME] ?? \"{}\",\n );\n const userEnvRuntimeConfig: Record<string, unknown> | undefined = JSON.parse(\n process.env[USER_ENV_APIBARA_RUNTIME_CONFIG] ?? \"{}\",\n );\n\n return {\n userEnvRuntimeConfig,\n processedRuntimeConfig,\n preset,\n presets,\n runtimeConfig,\n };\n}\n\n/**\n * Get the merged runtime config from the user env overrided runtime config, presets and defaults.\n * Priority (Highest to lowest):\n * 1. User env overrided runtime config\n * 2. Preset\n * 3. Defaults\n */\nexport function getProcessedRuntimeConfig({\n preset,\n presets,\n runtimeConfig,\n userEnvRuntimeConfig,\n}: {\n preset?: string;\n presets?: Record<string, unknown>;\n runtimeConfig?: Record<string, unknown>;\n userEnvRuntimeConfig?: Record<string, unknown>;\n}) {\n let _runtimeConfig: Record<string, unknown> = { ...runtimeConfig };\n\n if (preset) {\n if (presets === undefined) {\n throw new Error(\n `Specified preset \"${preset}\" but no presets were defined`,\n );\n }\n\n if (presets[preset] === undefined) {\n throw new Error(`Specified preset \"${preset}\" but it was not defined`);\n }\n\n const presetValue = presets[preset] as {\n runtimeConfig: Record<string, unknown>;\n };\n\n // Preset applied\n _runtimeConfig = defu(presetValue.runtimeConfig, _runtimeConfig);\n }\n\n if (userEnvRuntimeConfig) {\n try {\n // Environment runtime config applied\n _runtimeConfig = defu(userEnvRuntimeConfig, _runtimeConfig);\n } catch (error) {\n throw new Error(\n \"Failed to parse runtime config from process.env.APIBARA_RUNTIME_CONFIG. Please ensure it is a valid JSON string.\",\n { cause: error },\n );\n }\n }\n\n return _runtimeConfig;\n}\n","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":"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"}
|
package/dist/rolldown/index.mjs
CHANGED
|
@@ -5,6 +5,7 @@ import { join as join$1 } from 'pathe';
|
|
|
5
5
|
import virtual from '@rollup/plugin-virtual';
|
|
6
6
|
import { hash } from 'ohash';
|
|
7
7
|
import { join } from 'node:path';
|
|
8
|
+
import { USER_ENV_APIBARA_RUNTIME_CONFIG } from 'apibara/common';
|
|
8
9
|
|
|
9
10
|
function indexers(apibara) {
|
|
10
11
|
const indexers2 = [...new Set(apibara.indexers)];
|
|
@@ -58,6 +59,22 @@ function instrumentation(apibara) {
|
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
function staticConfig(apibara) {
|
|
63
|
+
const presetString = apibara.options.preset ?? "";
|
|
64
|
+
const presetsStringified = JSON.stringify(apibara.options.presets ?? {});
|
|
65
|
+
const runtimeConfigStringified = JSON.stringify(
|
|
66
|
+
apibara.options.runtimeConfig ?? {}
|
|
67
|
+
);
|
|
68
|
+
return virtual({
|
|
69
|
+
"#apibara-internal-virtual/static-config": `
|
|
70
|
+
export const preset = ${presetString ? `"${presetString}"` : "undefined"};
|
|
71
|
+
export const presets = ${presetsStringified};
|
|
72
|
+
export const runtimeConfig = ${runtimeConfigStringified};
|
|
73
|
+
export const userEnvRuntimeConfig = JSON.parse(process.env.${USER_ENV_APIBARA_RUNTIME_CONFIG} ?? "{}");
|
|
74
|
+
`
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
61
78
|
const runtimeDependencies = [
|
|
62
79
|
"better-sqlite3",
|
|
63
80
|
"@electric-sql/pglite",
|
|
@@ -113,6 +130,7 @@ function getRolldownConfig(apibara) {
|
|
|
113
130
|
external: [...builtinModules, ...runtimeDependencies]
|
|
114
131
|
}
|
|
115
132
|
);
|
|
133
|
+
rolldownConfig.plugins?.push(staticConfig(apibara));
|
|
116
134
|
rolldownConfig.plugins?.push(instrumentation(apibara));
|
|
117
135
|
rolldownConfig.plugins?.push(indexers(apibara));
|
|
118
136
|
return rolldownConfig;
|
|
@@ -1 +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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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/rolldown/plugins/indexers.ts","../../src/rolldown/plugins/instrumentation.ts","../../src/rolldown/plugins/static-config.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 virtual from \"@rollup/plugin-virtual\";\nimport { USER_ENV_APIBARA_RUNTIME_CONFIG } from \"apibara/common\";\nimport type { Apibara } from \"apibara/types\";\nimport type { RolldownPluginOption } from \"rolldown\";\n\nexport function staticConfig(apibara: Apibara) {\n const presetString = apibara.options.preset ?? \"\";\n const presetsStringified = JSON.stringify(apibara.options.presets ?? {});\n const runtimeConfigStringified = JSON.stringify(\n apibara.options.runtimeConfig ?? {},\n );\n\n return virtual({\n \"#apibara-internal-virtual/static-config\": `\n export const preset = ${presetString ? `\"${presetString}\"` : \"undefined\"};\n export const presets = ${presetsStringified};\n export const runtimeConfig = ${runtimeConfigStringified};\n export const userEnvRuntimeConfig = JSON.parse(process.env.${USER_ENV_APIBARA_RUNTIME_CONFIG} ?? \"{}\");\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\";\nimport { staticConfig } from \"./plugins/static-config\";\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(staticConfig(apibara));\n rolldownConfig.plugins?.push(instrumentation(apibara));\n rolldownConfig.plugins?.push(indexers(apibara));\n return rolldownConfig;\n}\n"],"names":["indexers","join"],"mappings":"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"}
|
package/dist/runtime/start.mjs
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { runWithReconnect } from "@apibara/indexer";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
checkForUnknownArgs,
|
|
4
|
+
getProcessedRuntimeConfig,
|
|
5
|
+
getRuntimeDataFromEnv
|
|
6
|
+
} from "apibara/common";
|
|
3
7
|
import { defineCommand, runMain } from "citty";
|
|
4
8
|
import consola from "consola";
|
|
5
9
|
import { blueBright } from "picocolors";
|
|
6
10
|
import { register } from "#apibara-internal-virtual/instrumentation";
|
|
11
|
+
import {
|
|
12
|
+
preset as originalPreset,
|
|
13
|
+
presets,
|
|
14
|
+
runtimeConfig,
|
|
15
|
+
userEnvRuntimeConfig
|
|
16
|
+
} from "#apibara-internal-virtual/static-config";
|
|
7
17
|
import { createAuthenticatedClient, createIndexer } from "./internal/app.mjs";
|
|
8
18
|
const startCommand = defineCommand({
|
|
9
19
|
meta: {
|
|
@@ -15,11 +25,35 @@ const startCommand = defineCommand({
|
|
|
15
25
|
type: "string",
|
|
16
26
|
description: "Indexer name",
|
|
17
27
|
required: true
|
|
28
|
+
},
|
|
29
|
+
preset: {
|
|
30
|
+
type: "string",
|
|
31
|
+
description: "Preset name"
|
|
32
|
+
},
|
|
33
|
+
standalone: {
|
|
34
|
+
type: "boolean",
|
|
35
|
+
default: true,
|
|
36
|
+
description: "--standalone: can run the indexer just with node and without apibara cli \n --no-standalone: must run the indexer with apibara cli"
|
|
18
37
|
}
|
|
19
38
|
},
|
|
20
|
-
async run({ args }) {
|
|
21
|
-
const { indexer } = args;
|
|
22
|
-
|
|
39
|
+
async run({ args, cmd }) {
|
|
40
|
+
const { indexer, preset: argPreset, standalone } = args;
|
|
41
|
+
await checkForUnknownArgs(args, cmd);
|
|
42
|
+
let preset;
|
|
43
|
+
let processedRuntimeConfig;
|
|
44
|
+
if (standalone) {
|
|
45
|
+
preset = argPreset ?? originalPreset;
|
|
46
|
+
processedRuntimeConfig = getProcessedRuntimeConfig({
|
|
47
|
+
preset,
|
|
48
|
+
presets,
|
|
49
|
+
runtimeConfig,
|
|
50
|
+
userEnvRuntimeConfig
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
const envResult = getRuntimeDataFromEnv();
|
|
54
|
+
preset = envResult.preset;
|
|
55
|
+
processedRuntimeConfig = envResult.processedRuntimeConfig;
|
|
56
|
+
}
|
|
23
57
|
const { indexer: indexerInstance, logger } = createIndexer({
|
|
24
58
|
indexerName: indexer,
|
|
25
59
|
processedRuntimeConfig,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apibara",
|
|
3
|
-
"version": "2.1.0-beta.
|
|
3
|
+
"version": "2.1.0-beta.32",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/core/index.mjs",
|
|
6
6
|
"exports": {
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"playground:add": "pnpm playground add --dir playground"
|
|
99
99
|
},
|
|
100
100
|
"devDependencies": {
|
|
101
|
-
"@apibara/starknet": "2.1.0-beta.
|
|
101
|
+
"@apibara/starknet": "2.1.0-beta.32",
|
|
102
102
|
"@types/fs-extra": "^11.0.4",
|
|
103
103
|
"@types/node": "^20.14.0",
|
|
104
104
|
"@types/prompts": "^2.4.9",
|
|
@@ -109,8 +109,8 @@
|
|
|
109
109
|
"vitest": "^1.6.0"
|
|
110
110
|
},
|
|
111
111
|
"dependencies": {
|
|
112
|
-
"@apibara/indexer": "2.1.0-beta.
|
|
113
|
-
"@apibara/protocol": "2.1.0-beta.
|
|
112
|
+
"@apibara/indexer": "2.1.0-beta.32",
|
|
113
|
+
"@apibara/protocol": "2.1.0-beta.32",
|
|
114
114
|
"@rollup/plugin-replace": "^6.0.2",
|
|
115
115
|
"@rollup/plugin-virtual": "^3.0.2",
|
|
116
116
|
"c12": "^1.11.1",
|
package/src/cli/commands/add.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { checkForUnknownArgs, commonArgs } from "apibara/common";
|
|
1
2
|
import { build, createApibara, prepare, writeTypes } from "apibara/core";
|
|
2
3
|
import { runtimeDir } from "apibara/runtime/meta";
|
|
3
4
|
import { defineCommand } from "citty";
|
|
4
5
|
import { join, resolve } from "pathe";
|
|
5
|
-
import { checkForUnknownArgs, commonArgs } from "../common";
|
|
6
6
|
|
|
7
7
|
export default defineCommand({
|
|
8
8
|
meta: {
|
package/src/cli/commands/dev.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ChildProcess, spawn } from "node:child_process";
|
|
2
|
+
import { checkForUnknownArgs, commonArgs } from "apibara/common";
|
|
2
3
|
import { build, createApibara, prepare, writeTypes } from "apibara/core";
|
|
3
4
|
import { runtimeDir } from "apibara/runtime/meta";
|
|
4
5
|
import type { Apibara } from "apibara/types";
|
|
@@ -6,7 +7,6 @@ import { defineCommand } from "citty";
|
|
|
6
7
|
import { colors } from "consola/utils";
|
|
7
8
|
import { join, resolve } from "pathe";
|
|
8
9
|
import { blueBright, gray } from "../../create/colors";
|
|
9
|
-
import { checkForUnknownArgs, commonArgs } from "../common";
|
|
10
10
|
|
|
11
11
|
// Hot module reloading key regex
|
|
12
12
|
// for only runtimeConfig.*, presets.* keys & preset key
|
package/src/cli/commands/init.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import { checkForUnknownArgs, commonArgs } from "apibara/common";
|
|
1
2
|
import { createApibara, writeTypes } from "apibara/core";
|
|
2
|
-
import {} from "apibara/types";
|
|
3
3
|
import { defineCommand } from "citty";
|
|
4
4
|
import { resolve } from "pathe";
|
|
5
|
-
import { checkForUnknownArgs, commonArgs } from "../common";
|
|
6
5
|
|
|
7
6
|
export default defineCommand({
|
|
8
7
|
meta: {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
+
import { checkForUnknownArgs, commonArgs } from "apibara/common";
|
|
2
3
|
import { createApibara } from "apibara/core";
|
|
3
4
|
import { defineCommand } from "citty";
|
|
4
5
|
import { colors } from "consola/utils";
|
|
5
6
|
import fse from "fs-extra";
|
|
6
7
|
import { resolve } from "pathe";
|
|
7
|
-
import { checkForUnknownArgs, commonArgs } from "../common";
|
|
8
8
|
|
|
9
9
|
export default defineCommand({
|
|
10
10
|
meta: {
|
|
@@ -50,7 +50,15 @@ export default defineCommand({
|
|
|
50
50
|
|
|
51
51
|
await apibara.close();
|
|
52
52
|
|
|
53
|
-
const childArgs = [
|
|
53
|
+
const childArgs = [
|
|
54
|
+
entry,
|
|
55
|
+
"start",
|
|
56
|
+
"--indexer",
|
|
57
|
+
indexer,
|
|
58
|
+
// important: this is required to run the indexer with apibara cli to load runtime values correctly
|
|
59
|
+
"--no-standalone",
|
|
60
|
+
...(preset ? ["--preset", preset] : []),
|
|
61
|
+
];
|
|
54
62
|
|
|
55
63
|
const childProcess = spawn("node", childArgs, {
|
|
56
64
|
stdio: "inherit",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
+
import { checkForUnknownArgs, commonArgs } from "apibara/common";
|
|
3
4
|
import { build, createApibara, prepare, writeTypes } from "apibara/core";
|
|
4
5
|
import { runtimeDir } from "apibara/runtime/meta";
|
|
5
6
|
import { defineCommand } from "citty";
|
|
6
7
|
import consola from "consola";
|
|
7
8
|
import { resolve } from "pathe";
|
|
8
|
-
import { checkForUnknownArgs, commonArgs } from "../common";
|
|
9
9
|
|
|
10
10
|
export default defineCommand({
|
|
11
11
|
meta: {
|
package/src/common/index.ts
CHANGED
package/src/rolldown/config.ts
CHANGED
|
@@ -10,6 +10,7 @@ import type {
|
|
|
10
10
|
} from "rolldown";
|
|
11
11
|
import { indexers } from "./plugins/indexers";
|
|
12
12
|
import { instrumentation } from "./plugins/instrumentation";
|
|
13
|
+
import { staticConfig } from "./plugins/static-config";
|
|
13
14
|
|
|
14
15
|
const runtimeDependencies = [
|
|
15
16
|
"better-sqlite3",
|
|
@@ -77,8 +78,8 @@ export function getRolldownConfig(apibara: Apibara): RolldownOptions {
|
|
|
77
78
|
},
|
|
78
79
|
);
|
|
79
80
|
|
|
81
|
+
rolldownConfig.plugins?.push(staticConfig(apibara));
|
|
80
82
|
rolldownConfig.plugins?.push(instrumentation(apibara));
|
|
81
83
|
rolldownConfig.plugins?.push(indexers(apibara));
|
|
82
|
-
|
|
83
84
|
return rolldownConfig;
|
|
84
85
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import virtual from "@rollup/plugin-virtual";
|
|
2
|
+
import { USER_ENV_APIBARA_RUNTIME_CONFIG } from "apibara/common";
|
|
3
|
+
import type { Apibara } from "apibara/types";
|
|
4
|
+
import type { RolldownPluginOption } from "rolldown";
|
|
5
|
+
|
|
6
|
+
export function staticConfig(apibara: Apibara) {
|
|
7
|
+
const presetString = apibara.options.preset ?? "";
|
|
8
|
+
const presetsStringified = JSON.stringify(apibara.options.presets ?? {});
|
|
9
|
+
const runtimeConfigStringified = JSON.stringify(
|
|
10
|
+
apibara.options.runtimeConfig ?? {},
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
return virtual({
|
|
14
|
+
"#apibara-internal-virtual/static-config": `
|
|
15
|
+
export const preset = ${presetString ? `"${presetString}"` : "undefined"};
|
|
16
|
+
export const presets = ${presetsStringified};
|
|
17
|
+
export const runtimeConfig = ${runtimeConfigStringified};
|
|
18
|
+
export const userEnvRuntimeConfig = JSON.parse(process.env.${USER_ENV_APIBARA_RUNTIME_CONFIG} ?? "{}");
|
|
19
|
+
`,
|
|
20
|
+
}) as RolldownPluginOption;
|
|
21
|
+
}
|
package/src/runtime/start.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import { runWithReconnect } from "@apibara/indexer";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
checkForUnknownArgs,
|
|
4
|
+
getProcessedRuntimeConfig,
|
|
5
|
+
getRuntimeDataFromEnv,
|
|
6
|
+
} from "apibara/common";
|
|
3
7
|
import { defineCommand, runMain } from "citty";
|
|
4
8
|
import consola from "consola";
|
|
5
9
|
import { blueBright } from "picocolors";
|
|
6
10
|
import { register } from "#apibara-internal-virtual/instrumentation";
|
|
11
|
+
// used when running with node .apibara/build/start.mjs as these values are made static during build time (except userEnvRuntimeConfig)
|
|
12
|
+
import {
|
|
13
|
+
preset as originalPreset,
|
|
14
|
+
presets,
|
|
15
|
+
runtimeConfig,
|
|
16
|
+
userEnvRuntimeConfig,
|
|
17
|
+
} from "#apibara-internal-virtual/static-config";
|
|
7
18
|
import { createAuthenticatedClient, createIndexer } from "./internal/app";
|
|
8
19
|
|
|
9
20
|
const startCommand = defineCommand({
|
|
@@ -17,11 +28,39 @@ const startCommand = defineCommand({
|
|
|
17
28
|
description: "Indexer name",
|
|
18
29
|
required: true,
|
|
19
30
|
},
|
|
31
|
+
preset: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Preset name",
|
|
34
|
+
},
|
|
35
|
+
standalone: {
|
|
36
|
+
type: "boolean",
|
|
37
|
+
default: true,
|
|
38
|
+
description:
|
|
39
|
+
"--standalone: can run the indexer just with node and without apibara cli \n\t\t\t --no-standalone: must run the indexer with apibara cli",
|
|
40
|
+
},
|
|
20
41
|
},
|
|
21
|
-
async run({ args }) {
|
|
22
|
-
const { indexer } = args;
|
|
42
|
+
async run({ args, cmd }) {
|
|
43
|
+
const { indexer, preset: argPreset, standalone } = args;
|
|
44
|
+
await checkForUnknownArgs(args, cmd);
|
|
23
45
|
|
|
24
|
-
|
|
46
|
+
let preset: string | undefined;
|
|
47
|
+
let processedRuntimeConfig: Record<string, unknown> | undefined;
|
|
48
|
+
|
|
49
|
+
if (standalone) {
|
|
50
|
+
// when user does node .apibara/build/start.mjs
|
|
51
|
+
preset = argPreset ?? originalPreset;
|
|
52
|
+
processedRuntimeConfig = getProcessedRuntimeConfig({
|
|
53
|
+
preset,
|
|
54
|
+
presets,
|
|
55
|
+
runtimeConfig,
|
|
56
|
+
userEnvRuntimeConfig,
|
|
57
|
+
});
|
|
58
|
+
} else {
|
|
59
|
+
// When user does apibara start
|
|
60
|
+
const envResult = getRuntimeDataFromEnv();
|
|
61
|
+
preset = envResult.preset;
|
|
62
|
+
processedRuntimeConfig = envResult.processedRuntimeConfig;
|
|
63
|
+
}
|
|
25
64
|
|
|
26
65
|
const { indexer: indexerInstance, logger } =
|
|
27
66
|
createIndexer({
|
|
@@ -29,6 +68,7 @@ const startCommand = defineCommand({
|
|
|
29
68
|
processedRuntimeConfig,
|
|
30
69
|
preset,
|
|
31
70
|
}) ?? {};
|
|
71
|
+
|
|
32
72
|
if (!indexerInstance) {
|
|
33
73
|
consola.error(`Specified indexer "${indexer}" but it was not defined`);
|
|
34
74
|
process.exit(1);
|
|
@@ -1,30 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;;;;"}
|
|
File without changes
|