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.
Files changed (115) hide show
  1. package/dist/chunks/add.mjs +17 -8
  2. package/dist/chunks/add.mjs.map +1 -0
  3. package/dist/chunks/build.mjs +5 -2
  4. package/dist/chunks/build.mjs.map +1 -0
  5. package/dist/chunks/dev.mjs +56 -21
  6. package/dist/chunks/dev.mjs.map +1 -0
  7. package/dist/chunks/init.mjs +12 -7
  8. package/dist/chunks/init.mjs.map +1 -0
  9. package/dist/chunks/prepare.mjs +5 -2
  10. package/dist/chunks/prepare.mjs.map +1 -0
  11. package/dist/chunks/start.mjs +16 -11
  12. package/dist/chunks/start.mjs.map +1 -0
  13. package/dist/chunks/write-project-info.mjs +51 -0
  14. package/dist/chunks/write-project-info.mjs.map +1 -0
  15. package/dist/cli/index.mjs +3 -1
  16. package/dist/cli/index.mjs.map +1 -0
  17. package/dist/common/index.d.mts +28 -0
  18. package/dist/common/index.d.ts +28 -0
  19. package/dist/common/index.mjs +64 -0
  20. package/dist/common/index.mjs.map +1 -0
  21. package/dist/config/index.mjs +1 -0
  22. package/dist/config/index.mjs.map +1 -0
  23. package/dist/core/index.mjs +133 -68
  24. package/dist/core/index.mjs.map +1 -0
  25. package/dist/create/index.d.mts +2 -1
  26. package/dist/create/index.d.ts +2 -1
  27. package/dist/create/index.mjs +144 -115
  28. package/dist/create/index.mjs.map +1 -0
  29. package/dist/hooks/index.mjs +6 -1
  30. package/dist/hooks/index.mjs.map +1 -0
  31. package/dist/indexer/index.d.ts +1 -0
  32. package/dist/indexer/index.mjs +1 -0
  33. package/dist/indexer/plugins.d.ts +1 -0
  34. package/dist/indexer/plugins.mjs +1 -0
  35. package/dist/indexer/testing.d.ts +1 -0
  36. package/dist/indexer/testing.mjs +1 -0
  37. package/dist/indexer/vcr.d.ts +1 -0
  38. package/dist/indexer/vcr.mjs +1 -0
  39. package/dist/rolldown/index.d.mts +7 -0
  40. package/dist/rolldown/index.d.ts +7 -0
  41. package/dist/rolldown/index.mjs +122 -0
  42. package/dist/rolldown/index.mjs.map +1 -0
  43. package/dist/runtime/dev.mjs +23 -10
  44. package/dist/runtime/internal/app.d.ts +16 -1
  45. package/dist/runtime/internal/app.mjs +51 -21
  46. package/dist/runtime/project-info.d.ts +3 -0
  47. package/dist/runtime/project-info.mjs +67 -0
  48. package/dist/runtime/start.mjs +27 -10
  49. package/dist/shared/apibara.63c9a277.mjs +30 -0
  50. package/dist/shared/apibara.63c9a277.mjs.map +1 -0
  51. package/dist/shared/apibara.730bb1e4.mjs +18 -0
  52. package/dist/shared/apibara.730bb1e4.mjs.map +1 -0
  53. package/dist/types/index.d.mts +24 -20
  54. package/dist/types/index.d.ts +24 -20
  55. package/dist/types/index.mjs +1 -0
  56. package/dist/types/index.mjs.map +1 -0
  57. package/package.json +33 -16
  58. package/src/cli/commands/add.ts +16 -7
  59. package/src/cli/commands/build.ts +5 -2
  60. package/src/cli/commands/dev.ts +64 -20
  61. package/src/cli/commands/init.ts +12 -7
  62. package/src/cli/commands/prepare.ts +4 -2
  63. package/src/cli/commands/start.ts +17 -10
  64. package/src/cli/commands/write-project-info.ts +56 -0
  65. package/src/cli/common.ts +33 -1
  66. package/src/cli/index.ts +2 -0
  67. package/src/common/constants.ts +6 -0
  68. package/src/common/helper.ts +86 -0
  69. package/src/common/index.ts +2 -0
  70. package/src/core/apibara.ts +7 -2
  71. package/src/core/build/build.ts +13 -5
  72. package/src/core/build/dev.ts +46 -23
  73. package/src/core/build/error.ts +9 -14
  74. package/src/core/build/prepare.ts +5 -3
  75. package/src/core/build/prod.ts +25 -16
  76. package/src/core/build/types.ts +11 -1
  77. package/src/core/config/defaults.ts +3 -0
  78. package/src/core/config/loader.ts +15 -7
  79. package/src/core/config/resolvers/runtime.resolver.ts +44 -0
  80. package/src/core/config/update.ts +6 -2
  81. package/src/create/add.ts +10 -9
  82. package/src/create/constants.ts +9 -11
  83. package/src/create/init.ts +8 -5
  84. package/src/create/templates.ts +132 -105
  85. package/src/hooks/useRuntimeConfig.ts +4 -1
  86. package/src/indexer/index.ts +1 -0
  87. package/src/indexer/plugins.ts +1 -0
  88. package/src/indexer/testing.ts +1 -0
  89. package/src/indexer/vcr.ts +1 -0
  90. package/src/rolldown/config.ts +84 -0
  91. package/src/rolldown/index.ts +2 -0
  92. package/src/{rollup → rolldown}/plugins/indexers.ts +3 -3
  93. package/src/rolldown/plugins/instrumentation.ts +68 -0
  94. package/src/runtime/dev.ts +25 -9
  95. package/src/runtime/internal/app.ts +75 -29
  96. package/src/runtime/project-info.ts +90 -0
  97. package/src/runtime/start.ts +30 -9
  98. package/src/types/config.ts +27 -13
  99. package/src/types/hooks.ts +8 -5
  100. package/src/types/index.ts +1 -1
  101. package/src/types/rolldown.ts +5 -0
  102. package/src/types/virtual/indexers.d.ts +4 -1
  103. package/src/types/virtual/instrumentation.d.ts +4 -0
  104. package/dist/rollup/index.d.mts +0 -6
  105. package/dist/rollup/index.d.ts +0 -6
  106. package/dist/rollup/index.mjs +0 -150
  107. package/dist/shared/apibara.1b515d04.mjs +0 -8
  108. package/src/core/config/resolvers/preset.resolver.ts +0 -9
  109. package/src/core/config/resolvers/runtime-config.resolver.ts +0 -6
  110. package/src/rollup/config.ts +0 -87
  111. package/src/rollup/index.ts +0 -2
  112. package/src/rollup/plugins/config.ts +0 -12
  113. package/src/rollup/plugins/esm-shim.ts +0 -69
  114. package/src/types/rollup.ts +0 -8
  115. package/src/types/virtual/config.d.ts +0 -3
@@ -1,5 +1,7 @@
1
1
  import { addIndexer } from 'apibara/create';
2
2
  import { defineCommand } from 'citty';
3
+ import { a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
4
+ import 'consola';
3
5
 
4
6
  const add = defineCommand({
5
7
  meta: {
@@ -9,36 +11,43 @@ const add = defineCommand({
9
11
  args: {
10
12
  indexerId: {
11
13
  type: "positional",
12
- description: "Indexer ID",
14
+ description: "Indexer ID - must be in kebab-case",
13
15
  required: false
14
16
  },
15
17
  chain: {
16
18
  type: "string",
17
- description: "Chain"
19
+ description: "Blockchain - ethereum, beaconchain, starknet"
18
20
  },
19
21
  network: {
20
22
  type: "string",
21
- description: "Network"
23
+ description: "Network - mainnet, sepolia, other"
22
24
  },
23
25
  storage: {
24
26
  type: "string",
25
- description: "Storage"
27
+ description: "Storage - postgres, none"
26
28
  },
27
29
  dnaUrl: {
28
30
  type: "string",
29
- description: "DNA URL"
31
+ description: "DNA URL - https://custom-dna-url.apibara.org"
32
+ },
33
+ dir: {
34
+ type: "string",
35
+ description: "Root directory - apibara project root where apibara.config is located | default: current working directory"
30
36
  }
31
37
  },
32
- async run({ args }) {
33
- const { indexerId, chain, network, storage, dnaUrl } = args;
38
+ async run({ args, cmd }) {
39
+ await checkForUnknownArgs(args, cmd);
40
+ const { indexerId, chain, network, storage, dnaUrl, dir } = args;
34
41
  await addIndexer({
35
42
  argIndexerId: indexerId,
36
43
  argChain: chain,
37
44
  argNetwork: network,
38
45
  argStorage: storage,
39
- argDnaUrl: dnaUrl
46
+ argDnaUrl: dnaUrl,
47
+ argRootDir: dir
40
48
  });
41
49
  }
42
50
  });
43
51
 
44
52
  export { add as default };
53
+ //# sourceMappingURL=add.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.mjs","sources":["../../src/cli/commands/add.ts"],"sourcesContent":["import { addIndexer } from \"apibara/create\";\nimport { defineCommand } from \"citty\";\nimport { checkForUnknownArgs } from \"../common\";\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;;;;"}
@@ -2,7 +2,8 @@ import { createApibara, prepare, writeTypes, build as build$1 } from 'apibara/co
2
2
  import { runtimeDir } from 'apibara/runtime/meta';
3
3
  import { defineCommand } from 'citty';
4
4
  import { resolve, join } from 'pathe';
5
- import { c as commonArgs } from '../shared/apibara.1b515d04.mjs';
5
+ import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
6
+ import 'consola';
6
7
 
7
8
  const build = defineCommand({
8
9
  meta: {
@@ -12,7 +13,8 @@ const build = defineCommand({
12
13
  args: {
13
14
  ...commonArgs
14
15
  },
15
- async run({ args }) {
16
+ async run({ args, cmd }) {
17
+ await checkForUnknownArgs(args, cmd);
16
18
  const rootDir = resolve(args.dir || args._dir || ".");
17
19
  const apibara = await createApibara({
18
20
  rootDir
@@ -26,3 +28,4 @@ const build = defineCommand({
26
28
  });
27
29
 
28
30
  export { build as default };
31
+ //# sourceMappingURL=build.mjs.map
@@ -0,0 +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\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\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;;;;"}
@@ -4,9 +4,12 @@ import { runtimeDir } from 'apibara/runtime/meta';
4
4
  import { defineCommand } from 'citty';
5
5
  import { colors } from 'consola/utils';
6
6
  import { resolve, join } from 'pathe';
7
- import { c as commonArgs } from '../shared/apibara.1b515d04.mjs';
7
+ 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
+ import 'picocolors';
10
+ import 'consola';
8
11
 
9
- const hmrKeyRe = /^runtimeConfig\./;
12
+ const hmrKeyRe = /^(runtimeConfig\.|presets\.|preset$)/;
10
13
  const dev = defineCommand({
11
14
  meta: {
12
15
  name: "dev",
@@ -21,10 +24,22 @@ const dev = defineCommand({
21
24
  preset: {
22
25
  type: "string",
23
26
  description: "Preset to use"
27
+ },
28
+ "always-reindex": {
29
+ type: "boolean",
30
+ default: false,
31
+ description: "Reindex the indexers from the starting block on every restart | default: `false`"
24
32
  }
25
33
  },
26
- async run({ args }) {
34
+ async run({ args, data, cmd, rawArgs }) {
35
+ await checkForUnknownArgs(args, cmd);
27
36
  const rootDir = resolve(args.dir || args._dir || ".");
37
+ if (args["always-reindex"]) {
38
+ process.env.APIBARA_ALWAYS_REINDEX = "true";
39
+ }
40
+ const selectedIndexers = new Set(
41
+ args.indexers?.split(",").map((i) => i.trim()).sort() ?? []
42
+ );
28
43
  let apibara;
29
44
  let childProcess;
30
45
  const reload = async () => {
@@ -37,7 +52,8 @@ const dev = defineCommand({
37
52
  }
38
53
  apibara = await createApibara(
39
54
  {
40
- rootDir
55
+ rootDir,
56
+ preset: args.preset
41
57
  },
42
58
  {
43
59
  watch: true,
@@ -48,53 +64,72 @@ const dev = defineCommand({
48
64
  return;
49
65
  }
50
66
  apibara.logger.info(
51
- `Config updated:
52
- ${diff.map((entry) => ` ${entry.toString()}`).join("\n")}`
67
+ `Config updated:
68
+ ${diff.map((entry) => ` ${entry.toString()}`).join("\n")}`
53
69
  );
54
- await (diff.every((e) => hmrKeyRe.test(e.key)) ? apibara.updateConfig(newConfig.config || {}) : reload());
70
+ await (diff.every((e) => hmrKeyRe.test(e.key)) ? (
71
+ // in hot reload we only update the runtime values & restart indexers,no build step, apibara instance remains the same
72
+ apibara.updateConfig(newConfig.config || {})
73
+ ) : reload());
55
74
  }
56
75
  }
57
76
  },
58
77
  true
59
78
  );
60
- apibara.hooks.hookOnce("restart", reload);
79
+ apibara.hooks.hookOnce("restart", async () => {
80
+ await reload();
81
+ });
61
82
  apibara.options.entry = join(runtimeDir, "dev.mjs");
62
83
  await prepare(apibara);
63
84
  await writeTypes(apibara);
64
85
  await build(apibara);
65
- apibara.hooks.hook("dev:restart", () => {
86
+ apibara.hooks.hook("dev:restart", async () => {
66
87
  if (childProcess) {
67
88
  apibara.logger.info("Change detected, stopping indexers to restart");
68
- childProcess.kill();
89
+ await killProcess(childProcess);
69
90
  childProcess = void 0;
70
91
  }
71
92
  });
72
- apibara.hooks.hook("dev:reload", () => {
93
+ apibara.hooks.hook("dev:reload", async () => {
73
94
  if (childProcess) {
74
- childProcess.kill();
95
+ await killProcess(childProcess);
96
+ childProcess = void 0;
97
+ apibara.logger.info("Restarting indexers");
75
98
  } else {
76
- apibara.logger.success("Restarting indexers");
99
+ apibara.logger.info("Starting indexers");
100
+ const indexersText = apibara.indexers.map(
101
+ (i) => selectedIndexers.has(i.name) || selectedIndexers.size === 0 ? blueBright(i.name) : gray(i.name)
102
+ ).join(", ");
103
+ apibara.logger.info("Indexers:", indexersText);
77
104
  }
78
105
  const childArgs = [
79
106
  resolve(apibara.options.outputDir || "./.apibara/build", "dev.mjs"),
80
107
  "start",
81
- ...args.indexers ? ["--indexers", args.indexers] : [],
82
- ...args.preset ? ["--preset", args.preset] : []
108
+ ...args.indexers ? ["--indexers", args.indexers] : []
83
109
  ];
84
110
  childProcess = spawn("node", childArgs, {
85
111
  stdio: "inherit"
86
112
  });
87
- childProcess.on("close", (code) => {
88
- if (code !== null) {
89
- apibara.logger.log(
90
- `Indexers process exited with code ${colors.red(code)}`
91
- );
92
- }
113
+ childProcess.on("close", (code, signal) => {
114
+ childProcess = void 0;
115
+ console.log();
116
+ apibara.logger.info(
117
+ `Indexers process exited${code !== null ? ` with code ${colors.red(code)}` : ""}`
118
+ );
93
119
  });
94
120
  });
95
121
  };
96
122
  await reload();
97
123
  }
98
124
  });
125
+ async function killProcess(childProcess) {
126
+ if (childProcess) {
127
+ await new Promise((resolve2) => {
128
+ childProcess.once("exit", resolve2);
129
+ childProcess.kill();
130
+ });
131
+ }
132
+ }
99
133
 
100
134
  export { dev as default };
135
+ //# sourceMappingURL=dev.mjs.map
@@ -0,0 +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\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\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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"}
@@ -1,5 +1,7 @@
1
1
  import { initializeProject } from 'apibara/create';
2
2
  import { defineCommand } from 'citty';
3
+ import { a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
4
+ import 'consola';
3
5
 
4
6
  const init = defineCommand({
5
7
  meta: {
@@ -14,24 +16,27 @@ const init = defineCommand({
14
16
  },
15
17
  language: {
16
18
  type: "string",
17
- description: "Language to use: typescript, ts or javascript, js",
19
+ description: "Language to use: typescript, ts or javascript, js | default: `ts`",
18
20
  default: "ts",
19
21
  alias: "l"
20
22
  },
21
- noIndexer: {
23
+ "create-indexer": {
22
24
  type: "boolean",
23
- description: "Do not create an indexer after initialization",
24
- default: false
25
+ name: "create-indexer",
26
+ default: true,
27
+ description: "TODO"
25
28
  }
26
29
  },
27
- async run({ args }) {
28
- const { dir: targetDir, noIndexer, language } = args;
30
+ async run({ args, cmd }) {
31
+ await checkForUnknownArgs(args, cmd);
32
+ const { dir: targetDir, "create-indexer": createIndexer, language } = args;
29
33
  await initializeProject({
30
34
  argTargetDir: targetDir,
31
35
  argLanguage: language,
32
- argNoCreateIndexer: noIndexer
36
+ argNoCreateIndexer: !createIndexer
33
37
  });
34
38
  }
35
39
  });
36
40
 
37
41
  export { init as default };
42
+ //# sourceMappingURL=init.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.mjs","sources":["../../src/cli/commands/init.ts"],"sourcesContent":["import { initializeProject } from \"apibara/create\";\nimport { defineCommand } from \"citty\";\nimport { checkForUnknownArgs } from \"../common\";\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;;;;"}
@@ -1,7 +1,8 @@
1
1
  import { createApibara, writeTypes } from 'apibara/core';
2
2
  import { defineCommand } from 'citty';
3
3
  import { resolve } from 'pathe';
4
- import { c as commonArgs } from '../shared/apibara.1b515d04.mjs';
4
+ import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
5
+ import 'consola';
5
6
 
6
7
  const prepare = defineCommand({
7
8
  meta: {
@@ -11,7 +12,8 @@ const prepare = defineCommand({
11
12
  args: {
12
13
  ...commonArgs
13
14
  },
14
- async run({ args }) {
15
+ async run({ args, cmd }) {
16
+ await checkForUnknownArgs(args, cmd);
15
17
  const rootDir = resolve(args.dir || ".");
16
18
  const apibara = await createApibara({ rootDir });
17
19
  await writeTypes(apibara);
@@ -19,3 +21,4 @@ const prepare = defineCommand({
19
21
  });
20
22
 
21
23
  export { prepare as default };
24
+ //# sourceMappingURL=prepare.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare.mjs","sources":["../../src/cli/commands/prepare.ts"],"sourcesContent":["import { createApibara, writeTypes } from \"apibara/core\";\nimport {} from \"apibara/types\";\nimport { defineCommand } from \"citty\";\nimport { resolve } from \"pathe\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\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":";;;;;;AAMA,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;;;;"}
@@ -1,9 +1,11 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { createApibara } from 'apibara/core';
3
3
  import { defineCommand } from 'citty';
4
+ import { colors } from 'consola/utils';
4
5
  import fse from 'fs-extra';
5
6
  import { resolve } from 'pathe';
6
- import { c as commonArgs } from '../shared/apibara.1b515d04.mjs';
7
+ import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
8
+ import 'consola';
7
9
 
8
10
  const start = defineCommand({
9
11
  meta: {
@@ -22,11 +24,13 @@ const start = defineCommand({
22
24
  description: "The preset to use"
23
25
  }
24
26
  },
25
- async run({ args }) {
27
+ async run({ args, cmd }) {
26
28
  const { indexer, preset } = args;
27
29
  const rootDir = resolve(args.dir || args._dir || ".");
30
+ await checkForUnknownArgs(args, cmd);
28
31
  const apibara = await createApibara({
29
- rootDir
32
+ rootDir,
33
+ preset
30
34
  });
31
35
  apibara.logger.start(
32
36
  `Starting indexer ${indexer}${preset ? ` with preset ${preset}` : ""}`
@@ -40,17 +44,18 @@ const start = defineCommand({
40
44
  return process.exit(1);
41
45
  }
42
46
  await apibara.close();
43
- const childArgs = [
44
- entry,
45
- "start",
46
- "--indexer",
47
- indexer,
48
- ...preset ? ["--preset", preset] : []
49
- ];
50
- spawn("node", childArgs, {
47
+ const childArgs = [entry, "start", "--indexer", indexer];
48
+ const childProcess = spawn("node", childArgs, {
51
49
  stdio: "inherit"
52
50
  });
51
+ childProcess.on("close", (code, signal) => {
52
+ console.log();
53
+ apibara.logger.info(
54
+ `Indexers process exited${code !== null ? ` with code ${colors.red(code)}` : ""}`
55
+ );
56
+ });
53
57
  }
54
58
  });
55
59
 
56
60
  export { start as default };
61
+ //# sourceMappingURL=start.mjs.map
@@ -0,0 +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\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\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 = [entry, \"start\", \"--indexer\", indexer];\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,CAAC,KAAO,EAAA,OAAA,EAAS,aAAa,OAAO,CAAA,CAAA;AAEvD,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;;;;"}
@@ -0,0 +1,51 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { join } from 'node:path';
3
+ import { createApibara, prepare, writeTypes, build } from 'apibara/core';
4
+ import { runtimeDir } from 'apibara/runtime/meta';
5
+ import { defineCommand } from 'citty';
6
+ import consola from 'consola';
7
+ import { resolve } from 'pathe';
8
+ import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c9a277.mjs';
9
+
10
+ const writeProjectInfo = defineCommand({
11
+ meta: {
12
+ name: "write-project-info",
13
+ description: "Write json-encoded information about the project."
14
+ },
15
+ args: {
16
+ ...commonArgs
17
+ },
18
+ async run({ args, cmd }) {
19
+ await checkForUnknownArgs(args, cmd);
20
+ consola.start("Generating `project-info.json`");
21
+ const rootDir = resolve(args.dir || ".");
22
+ const apibara = await createApibara({ rootDir, disableLogs: true });
23
+ apibara.options.entry = join(runtimeDir, "project-info.mjs");
24
+ await prepare(apibara);
25
+ await writeTypes(apibara);
26
+ await build(apibara);
27
+ const childArgs = [
28
+ resolve(
29
+ apibara.options.outputDir || "./.apibara/build",
30
+ "project-info.mjs"
31
+ ),
32
+ "start",
33
+ "--build-dir",
34
+ apibara.options.buildDir
35
+ ];
36
+ const child = spawn("node", childArgs, {
37
+ stdio: "inherit"
38
+ });
39
+ child.on("close", (code) => {
40
+ if (code === 0) {
41
+ consola.success("Project info written to `.apibara/project-info.json`");
42
+ }
43
+ });
44
+ child.on("error", (error) => {
45
+ consola.error(`Failed to write project info: ${error.message}`, error);
46
+ });
47
+ }
48
+ });
49
+
50
+ export { writeProjectInfo as default };
51
+ //# sourceMappingURL=write-project-info.mjs.map
@@ -0,0 +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\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\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;;;;"}
@@ -13,9 +13,11 @@ const mainCli = defineCommand({
13
13
  start: () => import('../chunks/start.mjs').then((r) => r.default),
14
14
  prepare: () => import('../chunks/prepare.mjs').then((r) => r.default),
15
15
  init: () => import('../chunks/init.mjs').then((r) => r.default),
16
- add: () => import('../chunks/add.mjs').then((r) => r.default)
16
+ add: () => import('../chunks/add.mjs').then((r) => r.default),
17
+ "write-project-info": () => import('../chunks/write-project-info.mjs').then((r) => r.default)
17
18
  }
18
19
  });
19
20
  runMain(mainCli);
20
21
 
21
22
  export { mainCli };
23
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/cli/index.ts"],"sourcesContent":["import { defineCommand, runMain } from \"citty\";\n\nexport const mainCli = defineCommand({\n meta: {\n name: \"apibara\",\n description: \"Apibara CLI\",\n version: \"2.0.0\",\n },\n subCommands: {\n dev: () => import(\"./commands/dev\").then((r) => r.default),\n build: () => import(\"./commands/build\").then((r) => r.default),\n start: () => import(\"./commands/start\").then((r) => r.default),\n prepare: () => import(\"./commands/prepare\").then((r) => r.default),\n init: () => import(\"./commands/init\").then((r) => r.default),\n add: () => import(\"./commands/add\").then((r) => r.default),\n \"write-project-info\": () =>\n import(\"./commands/write-project-info\").then((r) => r.default),\n },\n});\n\nrunMain(mainCli);\n"],"names":[],"mappings":";;;AAEO,MAAM,UAAU,aAAc,CAAA;AAAA,EACnC,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,aAAA;AAAA,IACb,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,GAAA,EAAK,MAAM,OAAO,mBAAgB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACzD,KAAA,EAAO,MAAM,OAAO,qBAAkB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IAC7D,KAAA,EAAO,MAAM,OAAO,qBAAkB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IAC7D,OAAA,EAAS,MAAM,OAAO,uBAAoB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACjE,IAAA,EAAM,MAAM,OAAO,oBAAiB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IAC3D,GAAA,EAAK,MAAM,OAAO,mBAAgB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACzD,oBAAA,EAAsB,MACpB,OAAO,kCAA+B,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,GACjE;AACF,CAAC,EAAA;AAED,OAAA,CAAQ,OAAO,CAAA;;;;"}
@@ -0,0 +1,28 @@
1
+ declare const ENV_INTERNAL_APIBARA_RUNTIME = "_APIBARA_RUNTIME";
2
+ declare const ENV_INTERNAL_APIBARA_PRESET = "_APIBARA_PRESET";
3
+ declare const ENV_INTERNAL_APIBARA_PRESETS = "_APIBARA_PRESETS";
4
+ declare const ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME = "_APIBARA_PROCESSED_RUNTIME";
5
+ declare const USER_ENV_APIBARA_RUNTIME_CONFIG = "APIBARA_RUNTIME_CONFIG";
6
+
7
+ declare function getRuntimeDataFromEnv(): {
8
+ userEnvRuntimeConfig: Record<string, unknown> | undefined;
9
+ processedRuntimeConfig: Record<string, unknown>;
10
+ preset: string | undefined;
11
+ presets: Record<string, unknown> | undefined;
12
+ runtimeConfig: Record<string, unknown> | undefined;
13
+ };
14
+ /**
15
+ * Get the merged runtime config from the user env overrided runtime config, presets and defaults.
16
+ * Priority (Highest to lowest):
17
+ * 1. User env overrided runtime config
18
+ * 2. Preset
19
+ * 3. Defaults
20
+ */
21
+ declare function getProcessedRuntimeConfig({ preset, presets, runtimeConfig, userEnvRuntimeConfig, }: {
22
+ preset?: string;
23
+ presets?: Record<string, unknown>;
24
+ runtimeConfig?: Record<string, unknown>;
25
+ userEnvRuntimeConfig?: Record<string, unknown>;
26
+ }): Record<string, unknown>;
27
+
28
+ export { ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, ENV_INTERNAL_APIBARA_RUNTIME, USER_ENV_APIBARA_RUNTIME_CONFIG, getProcessedRuntimeConfig, getRuntimeDataFromEnv };
@@ -0,0 +1,28 @@
1
+ declare const ENV_INTERNAL_APIBARA_RUNTIME = "_APIBARA_RUNTIME";
2
+ declare const ENV_INTERNAL_APIBARA_PRESET = "_APIBARA_PRESET";
3
+ declare const ENV_INTERNAL_APIBARA_PRESETS = "_APIBARA_PRESETS";
4
+ declare const ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME = "_APIBARA_PROCESSED_RUNTIME";
5
+ declare const USER_ENV_APIBARA_RUNTIME_CONFIG = "APIBARA_RUNTIME_CONFIG";
6
+
7
+ declare function getRuntimeDataFromEnv(): {
8
+ userEnvRuntimeConfig: Record<string, unknown> | undefined;
9
+ processedRuntimeConfig: Record<string, unknown>;
10
+ preset: string | undefined;
11
+ presets: Record<string, unknown> | undefined;
12
+ runtimeConfig: Record<string, unknown> | undefined;
13
+ };
14
+ /**
15
+ * Get the merged runtime config from the user env overrided runtime config, presets and defaults.
16
+ * Priority (Highest to lowest):
17
+ * 1. User env overrided runtime config
18
+ * 2. Preset
19
+ * 3. Defaults
20
+ */
21
+ declare function getProcessedRuntimeConfig({ preset, presets, runtimeConfig, userEnvRuntimeConfig, }: {
22
+ preset?: string;
23
+ presets?: Record<string, unknown>;
24
+ runtimeConfig?: Record<string, unknown>;
25
+ userEnvRuntimeConfig?: Record<string, unknown>;
26
+ }): Record<string, unknown>;
27
+
28
+ export { ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, ENV_INTERNAL_APIBARA_RUNTIME, USER_ENV_APIBARA_RUNTIME_CONFIG, getProcessedRuntimeConfig, getRuntimeDataFromEnv };
@@ -0,0 +1,64 @@
1
+ import defu from 'defu';
2
+
3
+ const ENV_INTERNAL_APIBARA_RUNTIME = "_APIBARA_RUNTIME";
4
+ const ENV_INTERNAL_APIBARA_PRESET = "_APIBARA_PRESET";
5
+ const ENV_INTERNAL_APIBARA_PRESETS = "_APIBARA_PRESETS";
6
+ const ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME = "_APIBARA_PROCESSED_RUNTIME";
7
+ const USER_ENV_APIBARA_RUNTIME_CONFIG = "APIBARA_RUNTIME_CONFIG";
8
+
9
+ function getRuntimeDataFromEnv() {
10
+ const processedRuntimeConfig = JSON.parse(
11
+ process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] ?? "{}"
12
+ );
13
+ const preset = process.env[ENV_INTERNAL_APIBARA_PRESET];
14
+ const presets = JSON.parse(
15
+ process.env[ENV_INTERNAL_APIBARA_PRESETS] ?? "{}"
16
+ );
17
+ const runtimeConfig = JSON.parse(
18
+ process.env[ENV_INTERNAL_APIBARA_RUNTIME] ?? "{}"
19
+ );
20
+ const userEnvRuntimeConfig = JSON.parse(
21
+ process.env[USER_ENV_APIBARA_RUNTIME_CONFIG] ?? "{}"
22
+ );
23
+ return {
24
+ userEnvRuntimeConfig,
25
+ processedRuntimeConfig,
26
+ preset,
27
+ presets,
28
+ runtimeConfig
29
+ };
30
+ }
31
+ function getProcessedRuntimeConfig({
32
+ preset,
33
+ presets,
34
+ runtimeConfig,
35
+ userEnvRuntimeConfig
36
+ }) {
37
+ let _runtimeConfig = { ...runtimeConfig };
38
+ if (preset) {
39
+ if (presets === void 0) {
40
+ throw new Error(
41
+ `Specified preset "${preset}" but no presets were defined`
42
+ );
43
+ }
44
+ if (presets[preset] === void 0) {
45
+ throw new Error(`Specified preset "${preset}" but it was not defined`);
46
+ }
47
+ const presetValue = presets[preset];
48
+ _runtimeConfig = defu(presetValue.runtimeConfig, _runtimeConfig);
49
+ }
50
+ if (userEnvRuntimeConfig) {
51
+ try {
52
+ _runtimeConfig = defu(userEnvRuntimeConfig, _runtimeConfig);
53
+ } catch (error) {
54
+ throw new Error(
55
+ "Failed to parse runtime config from process.env.APIBARA_RUNTIME_CONFIG. Please ensure it is a valid JSON string.",
56
+ { cause: error }
57
+ );
58
+ }
59
+ }
60
+ return _runtimeConfig;
61
+ }
62
+
63
+ export { ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, ENV_INTERNAL_APIBARA_RUNTIME, USER_ENV_APIBARA_RUNTIME_CONFIG, getProcessedRuntimeConfig, getRuntimeDataFromEnv };
64
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +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":";;AAAO,MAAM,4BAA+B,GAAA,mBAAA;AACrC,MAAM,2BAA8B,GAAA,kBAAA;AACpC,MAAM,4BAA+B,GAAA,mBAAA;AACrC,MAAM,sCACX,GAAA,6BAAA;AACK,MAAM,+BAAkC,GAAA;;ACIxC,SAAS,qBAAwB,GAAA;AACtC,EAAA,MAAM,yBAAkD,IAAK,CAAA,KAAA;AAAA,IAC3D,OAAA,CAAQ,GAAI,CAAA,sCAAsC,CAAK,IAAA,IAAA;AAAA,GACzD,CAAA;AACA,EAAM,MAAA,MAAA,GAA6B,OAAQ,CAAA,GAAA,CAAI,2BAA2B,CAAA,CAAA;AAC1E,EAAA,MAAM,UAA+C,IAAK,CAAA,KAAA;AAAA,IACxD,OAAA,CAAQ,GAAI,CAAA,4BAA4B,CAAK,IAAA,IAAA;AAAA,GAC/C,CAAA;AACA,EAAA,MAAM,gBAAqD,IAAK,CAAA,KAAA;AAAA,IAC9D,OAAA,CAAQ,GAAI,CAAA,4BAA4B,CAAK,IAAA,IAAA;AAAA,GAC/C,CAAA;AACA,EAAA,MAAM,uBAA4D,IAAK,CAAA,KAAA;AAAA,IACrE,OAAA,CAAQ,GAAI,CAAA,+BAA+B,CAAK,IAAA,IAAA;AAAA,GAClD,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,oBAAA;AAAA,IACA,sBAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,GACF,CAAA;AACF,CAAA;AASO,SAAS,yBAA0B,CAAA;AAAA,EACxC,MAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,oBAAA;AACF,CAKG,EAAA;AACD,EAAI,IAAA,cAAA,GAA0C,EAAE,GAAG,aAAc,EAAA,CAAA;AAEjE,EAAA,IAAI,MAAQ,EAAA;AACV,IAAA,IAAI,YAAY,KAAW,CAAA,EAAA;AACzB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,qBAAqB,MAAM,CAAA,6BAAA,CAAA;AAAA,OAC7B,CAAA;AAAA,KACF;AAEA,IAAI,IAAA,OAAA,CAAQ,MAAM,CAAA,KAAM,KAAW,CAAA,EAAA;AACjC,MAAA,MAAM,IAAI,KAAA,CAAM,CAAqB,kBAAA,EAAA,MAAM,CAA0B,wBAAA,CAAA,CAAA,CAAA;AAAA,KACvE;AAEA,IAAM,MAAA,WAAA,GAAc,QAAQ,MAAM,CAAA,CAAA;AAKlC,IAAiB,cAAA,GAAA,IAAA,CAAK,WAAY,CAAA,aAAA,EAAe,cAAc,CAAA,CAAA;AAAA,GACjE;AAEA,EAAA,IAAI,oBAAsB,EAAA;AACxB,IAAI,IAAA;AAEF,MAAiB,cAAA,GAAA,IAAA,CAAK,sBAAsB,cAAc,CAAA,CAAA;AAAA,aACnD,KAAO,EAAA;AACd,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,kHAAA;AAAA,QACA,EAAE,OAAO,KAAM,EAAA;AAAA,OACjB,CAAA;AAAA,KACF;AAAA,GACF;AAEA,EAAO,OAAA,cAAA,CAAA;AACT;;;;"}
@@ -3,3 +3,4 @@ function defineConfig(config) {
3
3
  }
4
4
 
5
5
  export { defineConfig };
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/config/index.ts"],"sourcesContent":["import type { ApibaraConfig, DeepPartial } from \"apibara/types\";\n\nexport function defineConfig<\n T extends Record<\n string,\n DeepPartial<Pick<ApibaraConfig<T, R>, \"runtimeConfig\">>\n > = Record<string, never>,\n R extends Record<string, unknown> = Record<string, never>,\n>(config: ApibaraConfig<T, R>): ApibaraConfig<T, R> {\n return config;\n}\n"],"names":[],"mappings":"AAEO,SAAS,aAMd,MAAkD,EAAA;AAClD,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}