apibara 2.1.0-beta.4 → 2.1.0-beta.41

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 (119) hide show
  1. package/dist/chunks/add.mjs +16 -8
  2. package/dist/chunks/add.mjs.map +1 -0
  3. package/dist/chunks/build.mjs +4 -2
  4. package/dist/chunks/build.mjs.map +1 -0
  5. package/dist/chunks/dev.mjs +55 -21
  6. package/dist/chunks/dev.mjs.map +1 -0
  7. package/dist/chunks/init.mjs +11 -7
  8. package/dist/chunks/init.mjs.map +1 -0
  9. package/dist/chunks/prepare.mjs +4 -2
  10. package/dist/chunks/prepare.mjs.map +1 -0
  11. package/dist/chunks/start.mjs +16 -4
  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 +33 -0
  18. package/dist/common/index.d.ts +33 -0
  19. package/dist/common/index.mjs +91 -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 +134 -69
  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 +168 -139
  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 +141 -0
  42. package/dist/rolldown/index.mjs.map +1 -0
  43. package/dist/runtime/dev.mjs +39 -17
  44. package/dist/runtime/internal/app.d.ts +14 -1
  45. package/dist/runtime/internal/app.mjs +26 -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 +78 -11
  49. package/dist/shared/apibara.730bb1e4.mjs +18 -0
  50. package/dist/shared/apibara.730bb1e4.mjs.map +1 -0
  51. package/dist/types/index.d.mts +24 -20
  52. package/dist/types/index.d.ts +24 -20
  53. package/dist/types/index.mjs +1 -0
  54. package/dist/types/index.mjs.map +1 -0
  55. package/package.json +33 -16
  56. package/src/cli/commands/add.ts +16 -7
  57. package/src/cli/commands/build.ts +5 -2
  58. package/src/cli/commands/dev.ts +64 -20
  59. package/src/cli/commands/init.ts +12 -7
  60. package/src/cli/commands/prepare.ts +4 -3
  61. package/src/cli/commands/start.ts +18 -3
  62. package/src/cli/commands/write-project-info.ts +56 -0
  63. package/src/cli/index.ts +2 -0
  64. package/src/common/cli.ts +40 -0
  65. package/src/common/constants.ts +6 -0
  66. package/src/common/helper.ts +86 -0
  67. package/src/common/index.ts +3 -0
  68. package/src/core/apibara.ts +7 -2
  69. package/src/core/build/build.ts +13 -5
  70. package/src/core/build/dev.ts +46 -23
  71. package/src/core/build/error.ts +9 -14
  72. package/src/core/build/prepare.ts +5 -3
  73. package/src/core/build/prod.ts +25 -16
  74. package/src/core/build/types.ts +11 -1
  75. package/src/core/config/defaults.ts +3 -0
  76. package/src/core/config/loader.ts +15 -7
  77. package/src/core/config/resolvers/runtime.resolver.ts +44 -0
  78. package/src/core/config/update.ts +6 -2
  79. package/src/core/scan.ts +1 -1
  80. package/src/create/add.ts +14 -20
  81. package/src/create/constants.ts +5 -7
  82. package/src/create/init.ts +8 -5
  83. package/src/create/templates.ts +144 -116
  84. package/src/create/types.ts +3 -0
  85. package/src/create/utils.ts +20 -7
  86. package/src/hooks/useRuntimeConfig.ts +4 -1
  87. package/src/indexer/index.ts +1 -0
  88. package/src/indexer/plugins.ts +1 -0
  89. package/src/indexer/testing.ts +1 -0
  90. package/src/indexer/vcr.ts +1 -0
  91. package/src/rolldown/config.ts +86 -0
  92. package/src/rolldown/index.ts +2 -0
  93. package/src/{rollup → rolldown}/plugins/indexers.ts +3 -3
  94. package/src/rolldown/plugins/instrumentation.ts +68 -0
  95. package/src/rolldown/plugins/static-config.ts +21 -0
  96. package/src/runtime/dev.ts +49 -19
  97. package/src/runtime/internal/app.ts +42 -29
  98. package/src/runtime/project-info.ts +90 -0
  99. package/src/runtime/start.ts +91 -11
  100. package/src/types/config.ts +27 -13
  101. package/src/types/hooks.ts +8 -5
  102. package/src/types/index.ts +1 -1
  103. package/src/types/rolldown.ts +5 -0
  104. package/src/types/virtual/indexers.d.ts +4 -1
  105. package/src/types/virtual/instrumentation.d.ts +4 -0
  106. package/src/types/virtual/static-config.d.ts +4 -0
  107. package/dist/rollup/index.d.mts +0 -6
  108. package/dist/rollup/index.d.ts +0 -6
  109. package/dist/rollup/index.mjs +0 -150
  110. package/dist/shared/apibara.1b515d04.mjs +0 -8
  111. package/src/cli/common.ts +0 -8
  112. package/src/core/config/resolvers/preset.resolver.ts +0 -9
  113. package/src/core/config/resolvers/runtime-config.resolver.ts +0 -6
  114. package/src/rollup/config.ts +0 -87
  115. package/src/rollup/index.ts +0 -2
  116. package/src/rollup/plugins/config.ts +0 -12
  117. package/src/rollup/plugins/esm-shim.ts +0 -69
  118. package/src/types/rollup.ts +0 -8
  119. package/src/types/virtual/config.d.ts +0 -3
@@ -0,0 +1 @@
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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"}
@@ -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;;;;"}
@@ -3,14 +3,14 @@ import { createHooks } from 'hookable';
3
3
  import { watchConfig, loadConfig } from 'c12';
4
4
  import { klona } from 'klona/full';
5
5
  import { resolve, join, basename, isAbsolute, relative, dirname } from 'pathe';
6
- import defu from 'defu';
6
+ import { ENV_INTERNAL_APIBARA_RUNTIME, ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, USER_ENV_APIBARA_RUNTIME_CONFIG, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, getProcessedRuntimeConfig } from 'apibara/common';
7
7
  import fse from 'fs-extra';
8
- import { getRollupConfig } from 'apibara/rollup';
8
+ import { getRolldownConfig } from 'apibara/rolldown';
9
+ import { colors } from 'consola/utils';
9
10
  import { watch } from 'chokidar';
11
+ import defu from 'defu';
10
12
  import { debounce } from 'perfect-debounce';
11
- import * as rollup from 'rollup';
12
- import { rollup as rollup$1 } from 'rollup';
13
- import { colors } from 'consola/utils';
13
+ import * as rolldown from 'rolldown';
14
14
  import fsp from 'node:fs/promises';
15
15
  import { generateTypes, resolveSchema } from 'untyped';
16
16
 
@@ -24,7 +24,9 @@ const ApibaraDefaults = {
24
24
  strict: false,
25
25
  generateRuntimeConfigTypes: true,
26
26
  internalPaths: false
27
- }
27
+ },
28
+ node: true,
29
+ exportConditions: ["node"]
28
30
  };
29
31
 
30
32
  async function resolvePathOptions(options) {
@@ -37,25 +39,47 @@ async function resolvePathOptions(options) {
37
39
  }
38
40
  }
39
41
 
40
- async function presetResolver(options) {
41
- if (options.preset && options.presets?.[options.preset]) {
42
- const new_options = defu(options.presets[options.preset], options);
43
- Object.assign(options, new_options);
42
+ function runtimeConfigResolver(options) {
43
+ try {
44
+ const { runtimeConfig, preset, presets } = options;
45
+ if (runtimeConfig) {
46
+ process.env[ENV_INTERNAL_APIBARA_RUNTIME] = JSON.stringify(runtimeConfig);
47
+ }
48
+ if (preset) {
49
+ process.env[ENV_INTERNAL_APIBARA_PRESET] = preset;
50
+ }
51
+ if (presets) {
52
+ process.env[ENV_INTERNAL_APIBARA_PRESETS] = JSON.stringify(presets);
53
+ }
54
+ const userEnvRuntimeConfig = JSON.parse(
55
+ process.env[USER_ENV_APIBARA_RUNTIME_CONFIG] ?? "{}"
56
+ );
57
+ process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] = JSON.stringify(
58
+ getProcessedRuntimeConfig({
59
+ preset,
60
+ presets,
61
+ runtimeConfig,
62
+ userEnvRuntimeConfig
63
+ })
64
+ );
65
+ } catch (error) {
66
+ throw new Error("Failed to process & set runtime environment variables", {
67
+ cause: error
68
+ });
44
69
  }
45
70
  }
46
71
 
47
- async function resolveRuntimeConfigOptions(options) {
48
- options.runtimeConfig = { ...options.runtimeConfig };
49
- process.env.APIBARA_RUNTIME_CONFIG = JSON.stringify(options.runtimeConfig);
50
- }
51
-
52
- const configResolvers = [
53
- resolvePathOptions,
54
- resolveRuntimeConfigOptions,
55
- presetResolver
56
- ];
72
+ const configResolvers = [resolvePathOptions, runtimeConfigResolver];
57
73
  async function loadOptions(configOverrides = {}, opts = {}, dev = false) {
58
74
  const options = await _loadUserConfig(configOverrides, opts, dev);
75
+ try {
76
+ JSON.stringify(options.runtimeConfig);
77
+ } catch (error) {
78
+ throw new Error(
79
+ "Non-serializable runtimeConfig. Please ensure the config is serializable.",
80
+ { cause: error }
81
+ );
82
+ }
59
83
  for (const resolver of configResolvers) {
60
84
  await resolver(options);
61
85
  }
@@ -82,12 +106,13 @@ async function _loadUserConfig(configOverrides = {}, opts = {}, dev = false) {
82
106
  return options;
83
107
  }
84
108
 
85
- async function updateApibaraConfig(apibara, _config) {
86
- await apibara.hooks.callHook("rollup:reload");
109
+ async function updateApibaraConfig(apibara, newConfig) {
110
+ runtimeConfigResolver(newConfig);
87
111
  apibara.logger.success("Apibara config hot reloaded!");
112
+ await apibara.hooks.callHook("dev:reload");
88
113
  }
89
114
 
90
- const INDEXER_EXTENSIONS = [".indexer.ts", ".indexer.js"];
115
+ const INDEXER_EXTENSIONS = [".indexer.ts", ".indexer.js", ".indexer.mjs"];
91
116
  async function scanIndexers(apibara) {
92
117
  apibara.logger.debug("Scanning indexers");
93
118
  const indexersDir = join(
@@ -119,14 +144,15 @@ function indexerNameFromFile(file) {
119
144
 
120
145
  async function createApibara(config = {}, opts = {}, dev = false) {
121
146
  const options = await loadOptions(config, opts, dev);
147
+ process.env.NODE_OPTIONS = process.env.NODE_OPTIONS ? `${process.env.NODE_OPTIONS} --enable-source-maps` : "--enable-source-maps";
122
148
  const apibara = {
123
149
  options,
124
150
  indexers: [],
125
151
  hooks: createHooks(),
126
152
  close: () => apibara.hooks.callHook("close"),
127
153
  logger: consola.withTag("apibara"),
128
- async updateConfig(config2) {
129
- updateApibaraConfig(apibara);
154
+ async updateConfig(newConfig) {
155
+ updateApibaraConfig(apibara, newConfig);
130
156
  }
131
157
  };
132
158
  apibara.hooks.addHooks(apibara.options.hooks);
@@ -134,20 +160,20 @@ async function createApibara(config = {}, opts = {}, dev = false) {
134
160
  return apibara;
135
161
  }
136
162
 
137
- function formatRollupError(_error) {
163
+ function formatRolldownError(_error) {
138
164
  try {
139
165
  const logs = [_error.toString()];
140
166
  const errors = _error?.errors || [_error];
141
167
  for (const error of errors) {
142
168
  const id = error.path || error.id || _error.id;
143
169
  let path = isAbsolute(id) ? relative(process.cwd(), id) : id;
144
- const location = error.loc || error.location;
170
+ const location = error.loc;
145
171
  if (location) {
146
172
  path += `:${location.line}:${location.column}`;
147
173
  }
148
- const text = error.text || error.frame;
174
+ const text = error.frame;
149
175
  logs.push(
150
- `Rollup error while processing \`${path}\`` + text ? "\n\n" + text : ""
176
+ `Rolldown error while processing \`${path}\`` + text ? "\n\n" + text : ""
151
177
  );
152
178
  }
153
179
  return logs.join("\n");
@@ -156,45 +182,48 @@ function formatRollupError(_error) {
156
182
  }
157
183
  }
158
184
 
159
- async function watchDev(apibara, rollupConfig) {
160
- let rollupWatcher;
185
+ async function watchDev(apibara, rolldownConfig) {
186
+ let rolldownWatcher;
161
187
  async function load() {
162
- if (rollupWatcher) {
163
- await rollupWatcher.close();
188
+ apibara.logger.start("Setting up a dev server");
189
+ if (rolldownWatcher) {
190
+ await rolldownWatcher.close();
164
191
  }
165
- rollupWatcher = startRollupWatcher(apibara, rollupConfig);
192
+ rolldownWatcher = startRolldownWatcher(apibara, rolldownConfig);
166
193
  }
167
- const reload = debounce(load);
168
- const watchPatterns = [join(apibara.options.rootDir, "indexers")];
194
+ const reload = debounce(async () => await load());
195
+ const watchPatterns = getWatchPatterns(apibara);
169
196
  const watchReloadEvents = /* @__PURE__ */ new Set(["add", "addDir", "unlink", "unlinkDir"]);
170
197
  const reloadWatcher = watch(watchPatterns, { ignoreInitial: true }).on(
171
198
  "all",
172
- (event) => {
199
+ async (event) => {
173
200
  if (watchReloadEvents.has(event)) {
174
- reload();
201
+ await reload();
175
202
  }
176
203
  }
177
204
  );
178
205
  apibara.hooks.hook("close", () => {
179
- rollupWatcher.close();
206
+ rolldownWatcher.close();
180
207
  reloadWatcher.close();
181
208
  });
182
- apibara.hooks.hook("rollup:reload", () => reload());
209
+ apibara.hooks.hook("rolldown:reload", async () => await reload());
183
210
  await load();
184
211
  }
185
- function startRollupWatcher(apibara, rollupConfig) {
186
- const watcher = rollup.watch(
187
- defu(rollupConfig, {
212
+ function startRolldownWatcher(apibara, rolldownConfig) {
213
+ const ignorePatterns = getIgnorePatterns();
214
+ const watcher = rolldown.watch(
215
+ defu(rolldownConfig, {
188
216
  watch: {
189
- chokidar: apibara.options.watchOptions
217
+ exclude: ignorePatterns,
218
+ ...apibara.options.watchOptions ?? {}
190
219
  }
191
220
  })
192
221
  );
193
222
  let start;
194
- watcher.on("event", (event) => {
223
+ watcher.on("event", async (event) => {
195
224
  switch (event.code) {
196
225
  case "START": {
197
- apibara.hooks.callHook("dev:restart");
226
+ await apibara.hooks.callHook("dev:restart");
198
227
  return;
199
228
  }
200
229
  case "BUNDLE_START": {
@@ -207,37 +236,57 @@ function startRollupWatcher(apibara, rollupConfig) {
207
236
  "Indexers built",
208
237
  start ? `in ${Date.now() - start} ms` : ""
209
238
  );
210
- apibara.hooks.callHook("dev:reload");
239
+ await apibara.hooks.callHook("dev:reload");
211
240
  return;
212
241
  }
213
242
  case "ERROR": {
214
- apibara.logger.error(formatRollupError(event.error));
243
+ apibara.logger.error(formatRolldownError(event.error));
215
244
  }
216
245
  }
217
246
  });
218
247
  return watcher;
219
248
  }
249
+ const getWatchPatterns = (apibara) => [
250
+ join(apibara.options.rootDir, "indexers")
251
+ ];
252
+ const getIgnorePatterns = (apibara) => [
253
+ "**/.apibara/**",
254
+ "**/.git/**",
255
+ "**/.DS_Store",
256
+ "**/node_modules/**",
257
+ "**/dist/**",
258
+ "**/.turbo/**",
259
+ // changes to apibara.config is handled by c12 itself so we dont need rolldown to handle this
260
+ "**/apibara.config?(.ts|.js|.mjs)"
261
+ ];
220
262
 
221
- async function buildProduction(apibara, rollupConfig) {
222
- apibara.logger.start(
223
- `Building ${colors.cyan(apibara.indexers.length)} indexers`
224
- );
263
+ async function buildProduction(apibara, rolldownConfig) {
264
+ if (!apibara.options.disableLogs) {
265
+ apibara.logger.start(
266
+ `Building ${colors.cyan(apibara.indexers.length)} indexers`
267
+ );
268
+ }
269
+ const startTime = Date.now();
225
270
  try {
226
- const bundle = await rollup$1(rollupConfig);
227
- if (Array.isArray(rollupConfig.output)) {
228
- for (const outputOptions of rollupConfig.output) {
271
+ const bundle = await rolldown.rolldown(rolldownConfig);
272
+ if (Array.isArray(rolldownConfig.output)) {
273
+ for (const outputOptions of rolldownConfig.output) {
229
274
  await bundle.write(outputOptions);
230
275
  }
231
- } else if (rollupConfig.output) {
232
- await bundle.write(rollupConfig.output);
276
+ } else if (rolldownConfig.output) {
277
+ await bundle.write(rolldownConfig.output);
233
278
  } else {
234
- throw new Error("No output options specified in Rollup config");
279
+ throw new Error("No output options specified in Rolldown config");
235
280
  }
236
281
  await bundle.close();
237
- apibara.logger.success("Build succeeded!");
238
- apibara.logger.info(
239
- `You can start the indexers with ${colors.cyan("apibara start")}`
240
- );
282
+ const endTime = Date.now();
283
+ const duration = endTime - startTime;
284
+ if (!apibara.options.disableLogs) {
285
+ apibara.logger.success(`Build succeeded in ${duration}ms`);
286
+ apibara.logger.info(
287
+ `You can start the indexers with ${colors.cyan("apibara start")}`
288
+ );
289
+ }
241
290
  } catch (error) {
242
291
  apibara.logger.error("Build failed", error);
243
292
  throw error;
@@ -245,9 +294,16 @@ async function buildProduction(apibara, rollupConfig) {
245
294
  }
246
295
 
247
296
  async function build(apibara) {
248
- const rollupConfig = getRollupConfig(apibara);
249
- await apibara.hooks.callHook("rollup:before", apibara, rollupConfig);
250
- return apibara.options.dev ? await watchDev(apibara, rollupConfig) : await buildProduction(apibara, rollupConfig);
297
+ const rolldownConfig = getRolldownConfig(apibara);
298
+ await apibara.hooks.callHook("rolldown:before", apibara, rolldownConfig);
299
+ if (apibara.options.rollupConfig) {
300
+ apibara.logger.error(
301
+ `
302
+ ${colors.cyan("apibara.config:")} rollupConfig is deprecated. Use rolldownConfig instead`
303
+ );
304
+ process.exit(1);
305
+ }
306
+ return apibara.options.dev ? await watchDev(apibara, rolldownConfig) : await buildProduction(apibara, rolldownConfig);
251
307
  }
252
308
 
253
309
  function prettyPath(path, highlight = true) {
@@ -258,9 +314,11 @@ function prettyPath(path, highlight = true) {
258
314
  async function prepare(apibara) {
259
315
  await prepareDir(apibara.options.buildDir);
260
316
  await prepareDir(apibara.options.outputDir);
261
- apibara.logger.success(
262
- `Output directory ${prettyPath(apibara.options.outputDir)} cleaned`
263
- );
317
+ if (!apibara.options.disableLogs) {
318
+ apibara.logger.success(
319
+ `Output directory ${prettyPath(apibara.options.outputDir)} cleaned`
320
+ );
321
+ }
264
322
  }
265
323
  async function prepareDir(dir) {
266
324
  await fsp.mkdir(dir, { recursive: true });
@@ -268,6 +326,10 @@ async function prepareDir(dir) {
268
326
  }
269
327
 
270
328
  async function writeTypes(apibara) {
329
+ const isTypeScript = apibara.options._c12.configFile?.endsWith(".ts");
330
+ if (!isTypeScript) {
331
+ return;
332
+ }
271
333
  const typesDir = resolve(apibara.options.buildDir, "types");
272
334
  const config = [
273
335
  "// Generated by apibara",
@@ -303,7 +365,10 @@ declare module "apibara/types" {`,
303
365
  await fsp.writeFile(_file, file.contents);
304
366
  })
305
367
  );
306
- apibara.logger.success(`Types written to ${prettyPath(typesDir)}`);
368
+ if (!apibara.options.disableLogs) {
369
+ apibara.logger.success(`Types written to ${prettyPath(typesDir)}`);
370
+ }
307
371
  }
308
372
 
309
373
  export { build, createApibara, prepare, writeTypes };
374
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/core/config/defaults.ts","../../src/core/config/resolvers/paths.resolver.ts","../../src/core/config/resolvers/runtime.resolver.ts","../../src/core/config/loader.ts","../../src/core/config/update.ts","../../src/core/scan.ts","../../src/core/apibara.ts","../../src/core/build/error.ts","../../src/core/build/dev.ts","../../src/core/build/prod.ts","../../src/core/build/build.ts","../../src/core/path.ts","../../src/core/build/prepare.ts","../../src/core/build/types.ts"],"sourcesContent":["import type { ApibaraConfig } from \"apibara/types\";\n\nexport const ApibaraDefaults: ApibaraConfig = {\n rootDir: \".\",\n indexersDir: \"indexers\",\n\n runtimeConfig: {},\n hooks: {},\n\n buildDir: \".apibara\",\n\n typescript: {\n strict: false,\n generateRuntimeConfigTypes: true,\n internalPaths: false,\n },\n\n node: true,\n exportConditions: [\"node\"],\n};\n","import type { ApibaraOptions } from \"apibara/types\";\nimport { resolve } from \"pathe\";\n\nexport async function resolvePathOptions(options: ApibaraOptions) {\n options.rootDir = resolve(options.rootDir || \".\");\n\n for (const key of [\"buildDir\"] as const) {\n options[key] = resolve(options.rootDir, options[key]);\n }\n\n if (!options.outputDir) {\n options.outputDir = resolve(options.rootDir, \".apibara/build\");\n }\n}\n","import {\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 getProcessedRuntimeConfig,\n} from \"apibara/common\";\nimport type { ApibaraOptions } from \"apibara/types\";\n\nexport function runtimeConfigResolver(options: Partial<ApibaraOptions>) {\n try {\n const { runtimeConfig, preset, presets } = options;\n\n if (runtimeConfig) {\n process.env[ENV_INTERNAL_APIBARA_RUNTIME] = JSON.stringify(runtimeConfig);\n }\n if (preset) {\n process.env[ENV_INTERNAL_APIBARA_PRESET] = preset;\n }\n\n if (presets) {\n process.env[ENV_INTERNAL_APIBARA_PRESETS] = JSON.stringify(presets);\n }\n\n const userEnvRuntimeConfig = JSON.parse(\n process.env[USER_ENV_APIBARA_RUNTIME_CONFIG] ?? \"{}\",\n );\n\n // This is final processed runtime config that will be used by the indexer and useRuntimeConfig hook\n process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] = JSON.stringify(\n getProcessedRuntimeConfig({\n preset,\n presets,\n runtimeConfig,\n userEnvRuntimeConfig,\n }),\n );\n } catch (error) {\n throw new Error(\"Failed to process & set runtime environment variables\", {\n cause: error,\n });\n }\n}\n","import type {\n ApibaraConfig,\n ApibaraOptions,\n LoadConfigOptions,\n} from \"apibara/types\";\nimport { loadConfig, watchConfig } from \"c12\";\nimport { klona } from \"klona/full\";\nimport { ApibaraDefaults } from \"./defaults\";\nimport { resolvePathOptions } from \"./resolvers/paths.resolver\";\nimport { runtimeConfigResolver } from \"./resolvers/runtime.resolver\";\n\n// runtimeConfigResolver handles assigning runtime values to env\nconst configResolvers = [resolvePathOptions, runtimeConfigResolver] as const;\n\nexport async function loadOptions(\n configOverrides: ApibaraConfig = {},\n opts: LoadConfigOptions = {},\n dev = false,\n): Promise<ApibaraOptions> {\n const options = await _loadUserConfig(configOverrides, opts, dev);\n\n // Check if the runtimeConfig is serializable\n try {\n JSON.stringify(options.runtimeConfig);\n } catch (error) {\n throw new Error(\n \"Non-serializable runtimeConfig. Please ensure the config is serializable.\",\n { cause: error },\n );\n }\n\n for (const resolver of configResolvers) {\n await resolver(options);\n }\n\n return options;\n}\n\nasync function _loadUserConfig(\n configOverrides: ApibaraConfig = {},\n opts: LoadConfigOptions = {},\n dev = false,\n): Promise<ApibaraOptions> {\n // biome-ignore lint: noParameterAssign\n configOverrides = klona(configOverrides);\n\n const loadedConfig = await (opts.watch\n ? watchConfig<ApibaraConfig>\n : loadConfig<ApibaraConfig>)({\n name: \"apibara\",\n dotenv: dev,\n cwd: configOverrides.rootDir,\n overrides: {\n ...configOverrides,\n },\n defaults: { ...ApibaraDefaults },\n ...opts.c12,\n });\n\n const options = klona(loadedConfig.config) as ApibaraOptions;\n\n options._config = configOverrides;\n options._c12 = loadedConfig;\n\n if (dev) {\n options.dev = dev;\n }\n\n return options;\n}\n","import type { Apibara, ApibaraDynamicConfig } from \"apibara/types\";\nimport { runtimeConfigResolver } from \"./resolvers/runtime.resolver\";\n\nexport async function updateApibaraConfig(\n apibara: Apibara,\n newConfig: ApibaraDynamicConfig,\n) {\n // applies new config values to env again during hot reload\n runtimeConfigResolver(newConfig);\n apibara.logger.success(\"Apibara config hot reloaded!\");\n // we simply stop indexers and restart them with updated runtime values\n await apibara.hooks.callHook(\"dev:reload\");\n}\n","import type { Apibara } from \"apibara/types\";\nimport fse from \"fs-extra\";\nimport { basename, join } from \"pathe\";\n\nconst INDEXER_EXTENSIONS = [\".indexer.ts\", \".indexer.js\", \".indexer.mjs\"];\n\nexport async function scanIndexers(apibara: Apibara) {\n apibara.logger.debug(\"Scanning indexers\");\n\n const indexersDir = join(\n apibara.options.rootDir,\n apibara.options.indexersDir,\n );\n\n if (!fse.existsSync(indexersDir)) {\n throw new Error(`Indexers directory not found: ${indexersDir}`);\n }\n\n apibara.indexers = [];\n\n for (const file of fse.readdirSync(indexersDir)) {\n const indexerName = indexerNameFromFile(file);\n if (indexerName) {\n apibara.indexers.push({\n name: indexerName,\n indexer: join(indexersDir, file),\n });\n }\n }\n\n apibara.logger.debug(`Found ${apibara.indexers.length} indexers`);\n}\n\nfunction indexerNameFromFile(file: string) {\n for (const extension of INDEXER_EXTENSIONS) {\n if (file.endsWith(extension)) {\n return basename(file, extension);\n }\n }\n}\n","import type {\n Apibara,\n ApibaraConfig,\n ApibaraDynamicConfig,\n LoadConfigOptions,\n} from \"apibara/types\";\nimport consola from \"consola\";\nimport { createHooks } from \"hookable\";\nimport { loadOptions } from \"./config/loader\";\nimport { updateApibaraConfig } from \"./config/update\";\nimport { scanIndexers } from \"./scan\";\n\nexport async function createApibara(\n config: ApibaraConfig = {},\n opts: LoadConfigOptions = {},\n dev = false,\n): Promise<Apibara> {\n const options = await loadOptions(config, opts, dev);\n\n // Enable source map support in Node\n process.env.NODE_OPTIONS = process.env.NODE_OPTIONS\n ? `${process.env.NODE_OPTIONS} --enable-source-maps`\n : \"--enable-source-maps\";\n\n const apibara: Apibara = {\n options,\n indexers: [],\n hooks: createHooks(),\n close: () => apibara.hooks.callHook(\"close\"),\n logger: consola.withTag(\"apibara\"),\n async updateConfig(newConfig: ApibaraDynamicConfig) {\n updateApibaraConfig(apibara, newConfig);\n },\n };\n\n apibara.hooks.addHooks(apibara.options.hooks);\n\n await scanIndexers(apibara);\n\n return apibara;\n}\n","import { isAbsolute, relative } from \"pathe\";\nimport type * as rolldown from \"rolldown\";\n\nexport function formatRolldownError(_error: rolldown.RollupError) {\n try {\n const logs: string[] = [_error.toString()];\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n const errors = (_error as any)?.errors || [_error as rolldown.RollupError];\n for (const error of errors) {\n const id = error.path || error.id || (_error as rolldown.RollupError).id;\n let path = isAbsolute(id) ? relative(process.cwd(), id) : id;\n const location = (error as rolldown.RollupError).loc;\n if (location) {\n path += `:${location.line}:${location.column}`;\n }\n const text = (error as rolldown.RollupError).frame;\n\n logs.push(\n `Rolldown error while processing \\`${path}\\`` + text\n ? \"\\n\\n\" + text\n : \"\",\n );\n }\n return logs.join(\"\\n\");\n } catch {\n return _error?.toString();\n }\n}\n","import type { Apibara } from \"apibara/types\";\nimport { watch } from \"chokidar\";\nimport defu from \"defu\";\nimport { join } from \"pathe\";\nimport { debounce } from \"perfect-debounce\";\nimport * as rolldown from \"rolldown\";\nimport { formatRolldownError } from \"./error\";\n\nexport async function watchDev(\n apibara: Apibara,\n rolldownConfig: rolldown.RolldownOptions,\n) {\n let rolldownWatcher: rolldown.RolldownWatcher;\n async function load() {\n apibara.logger.start(\"Setting up a dev server\");\n if (rolldownWatcher) {\n await rolldownWatcher.close();\n }\n rolldownWatcher = startRolldownWatcher(apibara, rolldownConfig);\n }\n const reload = debounce(async () => await load());\n\n const watchPatterns = getWatchPatterns(apibara);\n\n const watchReloadEvents = new Set([\"add\", \"addDir\", \"unlink\", \"unlinkDir\"]);\n const reloadWatcher = watch(watchPatterns, { ignoreInitial: true }).on(\n \"all\",\n async (event) => {\n if (watchReloadEvents.has(event)) {\n await reload();\n }\n },\n );\n\n apibara.hooks.hook(\"close\", () => {\n rolldownWatcher.close();\n reloadWatcher.close();\n });\n\n apibara.hooks.hook(\"rolldown:reload\", async () => await reload());\n\n await load();\n}\n\nfunction startRolldownWatcher(\n apibara: Apibara,\n rolldownConfig: rolldown.RolldownOptions,\n) {\n const ignorePatterns = getIgnorePatterns(apibara);\n const watcher = rolldown.watch(\n defu(rolldownConfig, {\n watch: {\n exclude: ignorePatterns,\n ...((apibara.options.watchOptions ?? {}) as rolldown.WatchOptions),\n },\n }),\n );\n let start: number;\n\n watcher.on(\"event\", async (event) => {\n switch (event.code) {\n // The watcher is (re)starting\n case \"START\": {\n await apibara.hooks.callHook(\"dev:restart\");\n return;\n }\n\n // Building an individual bundle\n case \"BUNDLE_START\": {\n start = Date.now();\n return;\n }\n\n // Finished building all bundles\n case \"END\": {\n apibara.hooks.callHook(\"compiled\", apibara);\n apibara.logger.success(\n \"Indexers built\",\n start ? `in ${Date.now() - start} ms` : \"\",\n );\n await apibara.hooks.callHook(\"dev:reload\");\n return;\n }\n\n // Encountered an error while bundling\n case \"ERROR\": {\n apibara.logger.error(formatRolldownError(event.error));\n }\n }\n });\n return watcher;\n}\n\nconst getWatchPatterns = (apibara: Apibara) => [\n join(apibara.options.rootDir, \"indexers\"),\n];\n\nconst getIgnorePatterns = (apibara: Apibara) => [\n \"**/.apibara/**\",\n \"**/.git/**\",\n \"**/.DS_Store\",\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/.turbo/**\",\n // changes to apibara.config is handled by c12 itself so we dont need rolldown to handle this\n \"**/apibara.config?(.ts|.js|.mjs)\",\n];\n","import type { Apibara } from \"apibara/types\";\nimport { colors } from \"consola/utils\";\nimport * as rolldown from \"rolldown\";\n\nexport async function buildProduction(\n apibara: Apibara,\n rolldownConfig: rolldown.RolldownOptions,\n) {\n if (!apibara.options.disableLogs) {\n apibara.logger.start(\n `Building ${colors.cyan(apibara.indexers.length)} indexers`,\n );\n }\n\n const startTime = Date.now();\n\n try {\n const bundle = await rolldown.rolldown(rolldownConfig);\n\n if (Array.isArray(rolldownConfig.output)) {\n for (const outputOptions of rolldownConfig.output) {\n await bundle.write(outputOptions);\n }\n } else if (rolldownConfig.output) {\n await bundle.write(rolldownConfig.output as rolldown.OutputOptions);\n } else {\n throw new Error(\"No output options specified in Rolldown config\");\n }\n\n await bundle.close();\n\n const endTime = Date.now();\n const duration = endTime - startTime;\n\n if (!apibara.options.disableLogs) {\n apibara.logger.success(`Build succeeded in ${duration}ms`);\n apibara.logger.info(\n `You can start the indexers with ${colors.cyan(\"apibara start\")}`,\n );\n }\n } catch (error) {\n apibara.logger.error(\"Build failed\", error);\n throw error;\n }\n}\n","import { getRolldownConfig } from \"apibara/rolldown\";\nimport type { Apibara } from \"apibara/types\";\nimport { colors } from \"consola/utils\";\nimport { watchDev } from \"./dev\";\nimport { buildProduction } from \"./prod\";\n\nexport async function build(apibara: Apibara) {\n const rolldownConfig = getRolldownConfig(apibara);\n\n await apibara.hooks.callHook(\"rolldown:before\", apibara, rolldownConfig);\n\n if (apibara.options.rollupConfig) {\n apibara.logger.error(\n `\\n${colors.cyan(\"apibara.config:\")} rollupConfig is deprecated. Use rolldownConfig instead`,\n );\n process.exit(1);\n }\n\n return apibara.options.dev\n ? await watchDev(apibara, rolldownConfig)\n : await buildProduction(apibara, rolldownConfig);\n}\n","import { colors } from \"consola/utils\";\nimport { relative } from \"pathe\";\n\n/** Return a (possibly highlighted) path relative to the current working directory.\n *\n * From nitrojs/nitro.\n */\nexport function prettyPath(path: string, highlight = true) {\n const rel = relative(process.cwd(), path);\n return highlight ? colors.cyan(rel) : rel;\n}\n","import fsp from \"node:fs/promises\";\nimport type { Apibara } from \"apibara/types\";\nimport fse from \"fs-extra\";\nimport { prettyPath } from \"../path\";\n\nexport async function prepare(apibara: Apibara) {\n await prepareDir(apibara.options.buildDir);\n await prepareDir(apibara.options.outputDir);\n\n if (!apibara.options.disableLogs) {\n apibara.logger.success(\n `Output directory ${prettyPath(apibara.options.outputDir)} cleaned`,\n );\n }\n}\n\nasync function prepareDir(dir: string) {\n await fsp.mkdir(dir, { recursive: true });\n await fse.emptyDir(dir);\n}\n","import fsp from \"node:fs/promises\";\nimport type { Apibara } from \"apibara/types\";\nimport { dirname, join, resolve } from \"pathe\";\nimport { type JSValue, generateTypes, resolveSchema } from \"untyped\";\nimport { prettyPath } from \"../path\";\n\nexport async function writeTypes(apibara: Apibara) {\n // Check if the config file has a TypeScript extension so we assume it's a TypeScript project\n const isTypeScript = apibara.options._c12.configFile?.endsWith(\".ts\");\n\n if (!isTypeScript) {\n // If it's not a TypeScript project, we don't need to generate the types\n return;\n }\n\n const typesDir = resolve(apibara.options.buildDir, \"types\");\n\n const config = [\n \"// Generated by apibara\",\n `\ndeclare module \"apibara/types\" {`,\n apibara.options.typescript.generateRuntimeConfigTypes\n ? generateTypes(\n await resolveSchema(\n Object.fromEntries(\n Object.entries(apibara.options.runtimeConfig),\n ) as Record<string, JSValue>,\n ),\n {\n interfaceName: \"ApibaraRuntimeConfig\",\n addExport: false,\n addDefaults: false,\n allowExtraKeys: false,\n indentation: 2,\n },\n )\n : \"\",\n \"}\",\n // Makes this a module for augmentation purposes\n \"export type {};\",\n ];\n\n const buildFiles: { path: string; contents: string }[] = [];\n\n buildFiles.push({\n path: join(typesDir, \"apibara-config.d.ts\"),\n contents: config.join(\"\\n\"),\n });\n\n await Promise.all(\n buildFiles.map(async (file) => {\n const _file = resolve(apibara.options.buildDir, file.path);\n await fsp.mkdir(dirname(_file), { recursive: true });\n await fsp.writeFile(_file, file.contents);\n }),\n );\n\n if (!apibara.options.disableLogs) {\n apibara.logger.success(`Types written to ${prettyPath(typesDir)}`);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -4,8 +4,9 @@ type Options$1 = {
4
4
  argNetwork?: string;
5
5
  argStorage?: string;
6
6
  argDnaUrl?: string;
7
+ argRootDir?: string;
7
8
  };
8
- declare function addIndexer({ argIndexerId, argChain, argNetwork, argStorage, argDnaUrl, }: Options$1): Promise<void>;
9
+ declare function addIndexer({ argIndexerId, argChain, argNetwork, argStorage, argDnaUrl, argRootDir, }: Options$1): Promise<void>;
9
10
 
10
11
  type Options = {
11
12
  argTargetDir: string;
@@ -4,8 +4,9 @@ type Options$1 = {
4
4
  argNetwork?: string;
5
5
  argStorage?: string;
6
6
  argDnaUrl?: string;
7
+ argRootDir?: string;
7
8
  };
8
- declare function addIndexer({ argIndexerId, argChain, argNetwork, argStorage, argDnaUrl, }: Options$1): Promise<void>;
9
+ declare function addIndexer({ argIndexerId, argChain, argNetwork, argStorage, argDnaUrl, argRootDir, }: Options$1): Promise<void>;
9
10
 
10
11
  type Options = {
11
12
  argTargetDir: string;