arri 0.40.0 → 0.41.0

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/cli.cjs CHANGED
@@ -11,13 +11,12 @@ const esbuild = require('esbuild');
11
11
  const esbuildPluginReplace = require('esbuild-plugin-replace');
12
12
  const path = require('pathe');
13
13
  const prettier = require('prettier');
14
- const config = require('./shared/arri.ebe44c73.cjs');
14
+ const config = require('./shared/arri.0628c07d.cjs');
15
15
  const consola = require('consola');
16
16
  const globby = require('globby');
17
17
  const scule = require('scule');
18
18
  const ofetch = require('ofetch');
19
19
  const listhen = require('@joshmossas/listhen');
20
- const watcher = require('@parcel/watcher');
21
20
  const Degit = require('degit');
22
21
  const enquirer = require('enquirer');
23
22
  require('h3');
@@ -43,13 +42,12 @@ const fs__default = /*#__PURE__*/_interopDefaultCompat(fs$1);
43
42
  const esbuild__namespace = /*#__PURE__*/_interopNamespaceCompat(esbuild);
44
43
  const path__default = /*#__PURE__*/_interopDefaultCompat(path);
45
44
  const prettier__default = /*#__PURE__*/_interopDefaultCompat(prettier);
46
- const watcher__default = /*#__PURE__*/_interopDefaultCompat(watcher);
47
45
  const Degit__default = /*#__PURE__*/_interopDefaultCompat(Degit);
48
46
  const enquirer__default = /*#__PURE__*/_interopDefaultCompat(enquirer);
49
47
 
50
48
  const logger = consola.createConsola().withTag("arri");
51
- const GEN_APP_FILE = "__arri_app.js";
52
- const GEN_SERVER_ENTRY_FILE = "__arri_server.js";
49
+ const GEN_APP_FILE = "__arri_app.ts";
50
+ const GEN_SERVER_ENTRY_FILE = "__arri_server.ts";
53
51
  const OUT_APP_FILE = "app.mjs";
54
52
  const OUT_SERVER_ENTRY = "server.mjs";
55
53
  const OUT_CODEGEN = "codegen.mjs";
@@ -67,7 +65,7 @@ async function setupWorkingDir(config) {
67
65
  }
68
66
  async function createAppWithRoutesModule(config) {
69
67
  const appModule = path__default.resolve(config.rootDir, config.srcDir, config.entry);
70
- const appImportParts = path__default.relative(path__default.resolve(config.rootDir, config.srcDir), appModule).split(".");
68
+ const appImportParts = path__default.relative(path__default.resolve(config.rootDir, config.buildDir), appModule).split(".");
71
69
  appImportParts.pop();
72
70
  const routes = [];
73
71
  const existingRoutes = [];
@@ -84,11 +82,13 @@ async function createAppWithRoutesModule(config) {
84
82
  );
85
83
  routes.sort((a, b) => a.name < b.name ? -1 : 1);
86
84
  const module = await prettier__default.format(
87
- `import app from './${appImportParts.join(".")}';
85
+ `import sourceMapSupport from 'source-map-support';
86
+ sourceMapSupport.install();
87
+ import app from '${appImportParts.join(".")}';
88
88
  ${routes.map(
89
89
  (route) => `import ${route.importName} from '${route.importPath}';`
90
90
  ).join("\n")}
91
- const routes = [${routes.map(
91
+ const routes: {id: string; route: any}[] = [${routes.map(
92
92
  (route) => `{ id: '${route.name}', route: ${route.importName} }`
93
93
  ).join(",\n")}
94
94
  ];
@@ -98,11 +98,14 @@ async function createAppWithRoutesModule(config) {
98
98
  name: route.id,
99
99
  ...route.route,
100
100
  });
101
- } else {
101
+ continue;
102
+ }
103
+ if (route.route.transport === 'ws') {
102
104
  app.wsRpc({
103
105
  name: route.id,
104
106
  ...route.route,
105
107
  });
108
+ continue;
106
109
  }
107
110
  }
108
111
  export default app`,
@@ -125,7 +128,7 @@ async function getFsRouteBatch(globPattern, config) {
125
128
  for (const file of files) {
126
129
  const meta = getRpcMetaFromPath(config, file);
127
130
  if (meta) {
128
- const importParts = path__default.relative(path__default.resolve(config.rootDir, config.srcDir), file).split(".");
131
+ const importParts = path__default.relative(path__default.resolve(config.rootDir, config.buildDir), file).split(".");
129
132
  importParts.pop();
130
133
  importParts.push("js");
131
134
  routes.push({
@@ -171,24 +174,11 @@ const getRpcMetaFromPath = (config, filePath) => {
171
174
  httpPath: `/${httpParts.join("/")}`
172
175
  };
173
176
  };
174
- async function transpileFiles(config) {
175
- const outDir = path__default.resolve(config.rootDir, config.buildDir);
176
- const files = await globby.globby(["**/*.ts"], {
177
- cwd: path__default.resolve(config.rootDir, config.srcDir)
178
- });
179
- await esbuild__namespace.build({
180
- entryPoints: [
181
- ...files.map(
182
- (file) => path__default.resolve(config.rootDir, config.srcDir, file)
183
- )
184
- ],
185
- outdir: outDir,
186
- bundle: false,
187
- format: "esm",
188
- target: "node20",
189
- platform: "node",
190
- allowOverwrite: true
191
- });
177
+ function isInsideDir(dir, parentDir) {
178
+ if (path__default.resolve(dir).startsWith(path__default.resolve(parentDir))) {
179
+ return true;
180
+ }
181
+ return false;
192
182
  }
193
183
 
194
184
  const build = citty.defineCommand({
@@ -212,6 +202,14 @@ const build = citty.defineCommand({
212
202
  if (!config$1) {
213
203
  throw new Error("Unable to find arri config");
214
204
  }
205
+ const appEntry = path__default.resolve(
206
+ config$1.rootDir,
207
+ config$1.srcDir,
208
+ config$1.entry
209
+ );
210
+ if (!fs.existsSync(appEntry)) {
211
+ throw new Error(`Unable to find entry at ${appEntry}`);
212
+ }
215
213
  await startBuild(config$1, args.skipCodegen);
216
214
  }
217
215
  });
@@ -226,8 +224,7 @@ async function startBuild(config, skipCodeGen = false) {
226
224
  await Promise.all([
227
225
  createAppWithRoutesModule(config),
228
226
  createServerEntryFile(config),
229
- createCodegenEntryFile(config),
230
- transpileFiles(config)
227
+ createCodegenEntryFile(config)
231
228
  ]);
232
229
  await bundleAppEntry(config);
233
230
  logger.log("Finished bundling");
@@ -498,7 +495,7 @@ export default app.h3App;`;
498
495
  path__default.resolve(config.rootDir, ".output", OUT_SERVER_ENTRY),
499
496
  serverContent
500
497
  );
501
- await esbuild__namespace.build({
498
+ return await esbuild__namespace.context({
502
499
  ...config.esbuild,
503
500
  entryPoints: [
504
501
  path__default.resolve(config.rootDir, config.buildDir, GEN_APP_FILE)
@@ -509,19 +506,19 @@ export default app.h3App;`;
509
506
  sourcemap: true,
510
507
  target: "node20",
511
508
  platform: "node",
512
- packages: "external",
513
- allowOverwrite: true
509
+ packages: "external"
514
510
  });
515
511
  }
516
512
  async function startDevServer(config) {
517
513
  await setupWorkingDir(config);
514
+ const watcher = await import('chokidar');
518
515
  let fileWatcher;
519
516
  await Promise.all([
520
517
  createEntryModule(config),
521
- createAppWithRoutesModule(config),
522
- transpileFiles(config)
518
+ createAppWithRoutesModule(config)
523
519
  ]);
524
- await bundleFilesContext(config);
520
+ const context = await bundleFilesContext(config);
521
+ await context.rebuild();
525
522
  const listener = await startListener(config, true);
526
523
  setTimeout(async () => {
527
524
  await generateClients(config);
@@ -532,65 +529,69 @@ async function startDevServer(config) {
532
529
  process.on("exit", async () => {
533
530
  await Promise.allSettled([
534
531
  listener.close(),
535
- fileWatcher?.unsubscribe()
532
+ fileWatcher?.close(),
533
+ context.dispose()
536
534
  ]);
537
535
  });
538
536
  process.on("SIGINT", cleanExit);
539
537
  process.on("SIGTERM", cleanExit);
540
538
  async function load(isRestart, reason) {
541
539
  if (fileWatcher) {
542
- await fileWatcher.unsubscribe();
540
+ await fileWatcher.close();
543
541
  }
544
542
  const srcDir = path__default.resolve(config.rootDir ?? "", config.srcDir);
543
+ const dirsToWatch = [srcDir];
545
544
  if (config.esbuild.alias) {
546
545
  for (const key of Object.keys(config.esbuild.alias)) {
547
- config.esbuild.alias[key];
546
+ const alias = config.esbuild.alias[key];
547
+ if (alias) {
548
+ if (!isInsideDir(alias, srcDir)) {
549
+ dirsToWatch.push(alias);
550
+ }
551
+ }
552
+ }
553
+ }
554
+ if (config.devServer.additionalWatchDirs?.length) {
555
+ for (const dir of config.devServer.additionalWatchDirs) {
556
+ dirsToWatch.push(dir);
548
557
  }
549
558
  }
550
559
  const buildDir = path__default.resolve(config.rootDir, config.buildDir);
551
560
  const outDir = path__default.resolve(config.rootDir, ".output");
552
- fileWatcher = await watcher__default.subscribe(
553
- srcDir,
554
- async (err, events) => {
555
- if (err) {
556
- logger.error(err);
557
- return;
558
- }
559
- let doNothing = true;
560
- for (const event of events) {
561
- if (event.type === "create") {
562
- continue;
563
- }
564
- doNothing = false;
565
- break;
566
- }
567
- if (doNothing) {
568
- return;
569
- }
570
- await createAppWithRoutesModule(config);
571
- let bundleCreated = false;
572
- try {
573
- logger.log(
574
- "Change detected. Bundling files and restarting server...."
575
- );
576
- await transpileFiles(config);
577
- await bundleFilesContext(config);
578
- bundleCreated = true;
579
- } catch (err2) {
580
- logger.error("ERROR", err2);
561
+ fileWatcher = watcher.watch(dirsToWatch, {
562
+ ignoreInitial: true,
563
+ ignored: [
564
+ buildDir,
565
+ outDir,
566
+ "**/.output",
567
+ "**/dist/**",
568
+ "**/node_modules/**",
569
+ "**/.git/**"
570
+ ]
571
+ });
572
+ fileWatcher.on("all", async (eventName, path2) => {
573
+ if (eventName === "addDir" || eventName === "add") {
574
+ return;
575
+ }
576
+ await createAppWithRoutesModule(config);
577
+ let bundleCreated = false;
578
+ try {
579
+ logger.log(
580
+ "Change detected. Bundling files and restarting server...."
581
+ );
582
+ await context.rebuild();
583
+ bundleCreated = true;
584
+ } catch (err) {
585
+ logger.error("ERROR", err);
586
+ bundleCreated = false;
587
+ }
588
+ if (bundleCreated && config.generators.length) {
589
+ setTimeout(async () => {
590
+ await generateClients(config);
581
591
  bundleCreated = false;
582
- }
583
- if (bundleCreated && config.generators.length) {
584
- setTimeout(async () => {
585
- await generateClients(config);
586
- bundleCreated = false;
587
- }, 1e3);
588
- }
589
- },
590
- {
591
- ignore: [buildDir, outDir]
592
+ }, 1e3);
592
593
  }
593
- );
594
+ });
594
595
  }
595
596
  await load();
596
597
  }
package/dist/cli.mjs CHANGED
@@ -10,13 +10,12 @@ import { build as build$1 } from 'esbuild';
10
10
  import { replace } from 'esbuild-plugin-replace';
11
11
  import path from 'pathe';
12
12
  import prettier from 'prettier';
13
- import { q as defaultConfig, o as isArriConfig, p as isResolvedArriConfig, a as DEV_DEFINITION_ENDPOINT } from './shared/arri.1fc3f099.mjs';
13
+ import { q as defaultConfig, o as isArriConfig, p as isResolvedArriConfig, a as DEV_DEFINITION_ENDPOINT } from './shared/arri.c3a553fc.mjs';
14
14
  import { createConsola } from 'consola';
15
15
  import { globby } from 'globby';
16
16
  import { camelCase, kebabCase } from 'scule';
17
17
  import { ofetch } from 'ofetch';
18
18
  import { listenAndWatch } from '@joshmossas/listhen';
19
- import watcher from '@parcel/watcher';
20
19
  import Degit from 'degit';
21
20
  import enquirer from 'enquirer';
22
21
  import 'h3';
@@ -24,8 +23,8 @@ import 'arri-validate';
24
23
  import 'h3-sse';
25
24
 
26
25
  const logger = createConsola().withTag("arri");
27
- const GEN_APP_FILE = "__arri_app.js";
28
- const GEN_SERVER_ENTRY_FILE = "__arri_server.js";
26
+ const GEN_APP_FILE = "__arri_app.ts";
27
+ const GEN_SERVER_ENTRY_FILE = "__arri_server.ts";
29
28
  const OUT_APP_FILE = "app.mjs";
30
29
  const OUT_SERVER_ENTRY = "server.mjs";
31
30
  const OUT_CODEGEN = "codegen.mjs";
@@ -43,7 +42,7 @@ async function setupWorkingDir(config) {
43
42
  }
44
43
  async function createAppWithRoutesModule(config) {
45
44
  const appModule = path.resolve(config.rootDir, config.srcDir, config.entry);
46
- const appImportParts = path.relative(path.resolve(config.rootDir, config.srcDir), appModule).split(".");
45
+ const appImportParts = path.relative(path.resolve(config.rootDir, config.buildDir), appModule).split(".");
47
46
  appImportParts.pop();
48
47
  const routes = [];
49
48
  const existingRoutes = [];
@@ -60,11 +59,13 @@ async function createAppWithRoutesModule(config) {
60
59
  );
61
60
  routes.sort((a, b) => a.name < b.name ? -1 : 1);
62
61
  const module = await prettier.format(
63
- `import app from './${appImportParts.join(".")}';
62
+ `import sourceMapSupport from 'source-map-support';
63
+ sourceMapSupport.install();
64
+ import app from '${appImportParts.join(".")}';
64
65
  ${routes.map(
65
66
  (route) => `import ${route.importName} from '${route.importPath}';`
66
67
  ).join("\n")}
67
- const routes = [${routes.map(
68
+ const routes: {id: string; route: any}[] = [${routes.map(
68
69
  (route) => `{ id: '${route.name}', route: ${route.importName} }`
69
70
  ).join(",\n")}
70
71
  ];
@@ -74,11 +75,14 @@ async function createAppWithRoutesModule(config) {
74
75
  name: route.id,
75
76
  ...route.route,
76
77
  });
77
- } else {
78
+ continue;
79
+ }
80
+ if (route.route.transport === 'ws') {
78
81
  app.wsRpc({
79
82
  name: route.id,
80
83
  ...route.route,
81
84
  });
85
+ continue;
82
86
  }
83
87
  }
84
88
  export default app`,
@@ -101,7 +105,7 @@ async function getFsRouteBatch(globPattern, config) {
101
105
  for (const file of files) {
102
106
  const meta = getRpcMetaFromPath(config, file);
103
107
  if (meta) {
104
- const importParts = path.relative(path.resolve(config.rootDir, config.srcDir), file).split(".");
108
+ const importParts = path.relative(path.resolve(config.rootDir, config.buildDir), file).split(".");
105
109
  importParts.pop();
106
110
  importParts.push("js");
107
111
  routes.push({
@@ -147,24 +151,11 @@ const getRpcMetaFromPath = (config, filePath) => {
147
151
  httpPath: `/${httpParts.join("/")}`
148
152
  };
149
153
  };
150
- async function transpileFiles(config) {
151
- const outDir = path.resolve(config.rootDir, config.buildDir);
152
- const files = await globby(["**/*.ts"], {
153
- cwd: path.resolve(config.rootDir, config.srcDir)
154
- });
155
- await esbuild.build({
156
- entryPoints: [
157
- ...files.map(
158
- (file) => path.resolve(config.rootDir, config.srcDir, file)
159
- )
160
- ],
161
- outdir: outDir,
162
- bundle: false,
163
- format: "esm",
164
- target: "node20",
165
- platform: "node",
166
- allowOverwrite: true
167
- });
154
+ function isInsideDir(dir, parentDir) {
155
+ if (path.resolve(dir).startsWith(path.resolve(parentDir))) {
156
+ return true;
157
+ }
158
+ return false;
168
159
  }
169
160
 
170
161
  const build = defineCommand({
@@ -188,6 +179,14 @@ const build = defineCommand({
188
179
  if (!config) {
189
180
  throw new Error("Unable to find arri config");
190
181
  }
182
+ const appEntry = path.resolve(
183
+ config.rootDir,
184
+ config.srcDir,
185
+ config.entry
186
+ );
187
+ if (!existsSync(appEntry)) {
188
+ throw new Error(`Unable to find entry at ${appEntry}`);
189
+ }
191
190
  await startBuild(config, args.skipCodegen);
192
191
  }
193
192
  });
@@ -202,8 +201,7 @@ async function startBuild(config, skipCodeGen = false) {
202
201
  await Promise.all([
203
202
  createAppWithRoutesModule(config),
204
203
  createServerEntryFile(config),
205
- createCodegenEntryFile(config),
206
- transpileFiles(config)
204
+ createCodegenEntryFile(config)
207
205
  ]);
208
206
  await bundleAppEntry(config);
209
207
  logger.log("Finished bundling");
@@ -474,7 +472,7 @@ export default app.h3App;`;
474
472
  path.resolve(config.rootDir, ".output", OUT_SERVER_ENTRY),
475
473
  serverContent
476
474
  );
477
- await esbuild.build({
475
+ return await esbuild.context({
478
476
  ...config.esbuild,
479
477
  entryPoints: [
480
478
  path.resolve(config.rootDir, config.buildDir, GEN_APP_FILE)
@@ -485,19 +483,19 @@ export default app.h3App;`;
485
483
  sourcemap: true,
486
484
  target: "node20",
487
485
  platform: "node",
488
- packages: "external",
489
- allowOverwrite: true
486
+ packages: "external"
490
487
  });
491
488
  }
492
489
  async function startDevServer(config) {
493
490
  await setupWorkingDir(config);
491
+ const watcher = await import('chokidar');
494
492
  let fileWatcher;
495
493
  await Promise.all([
496
494
  createEntryModule(config),
497
- createAppWithRoutesModule(config),
498
- transpileFiles(config)
495
+ createAppWithRoutesModule(config)
499
496
  ]);
500
- await bundleFilesContext(config);
497
+ const context = await bundleFilesContext(config);
498
+ await context.rebuild();
501
499
  const listener = await startListener(config, true);
502
500
  setTimeout(async () => {
503
501
  await generateClients(config);
@@ -508,65 +506,69 @@ async function startDevServer(config) {
508
506
  process.on("exit", async () => {
509
507
  await Promise.allSettled([
510
508
  listener.close(),
511
- fileWatcher?.unsubscribe()
509
+ fileWatcher?.close(),
510
+ context.dispose()
512
511
  ]);
513
512
  });
514
513
  process.on("SIGINT", cleanExit);
515
514
  process.on("SIGTERM", cleanExit);
516
515
  async function load(isRestart, reason) {
517
516
  if (fileWatcher) {
518
- await fileWatcher.unsubscribe();
517
+ await fileWatcher.close();
519
518
  }
520
519
  const srcDir = path.resolve(config.rootDir ?? "", config.srcDir);
520
+ const dirsToWatch = [srcDir];
521
521
  if (config.esbuild.alias) {
522
522
  for (const key of Object.keys(config.esbuild.alias)) {
523
- config.esbuild.alias[key];
523
+ const alias = config.esbuild.alias[key];
524
+ if (alias) {
525
+ if (!isInsideDir(alias, srcDir)) {
526
+ dirsToWatch.push(alias);
527
+ }
528
+ }
529
+ }
530
+ }
531
+ if (config.devServer.additionalWatchDirs?.length) {
532
+ for (const dir of config.devServer.additionalWatchDirs) {
533
+ dirsToWatch.push(dir);
524
534
  }
525
535
  }
526
536
  const buildDir = path.resolve(config.rootDir, config.buildDir);
527
537
  const outDir = path.resolve(config.rootDir, ".output");
528
- fileWatcher = await watcher.subscribe(
529
- srcDir,
530
- async (err, events) => {
531
- if (err) {
532
- logger.error(err);
533
- return;
534
- }
535
- let doNothing = true;
536
- for (const event of events) {
537
- if (event.type === "create") {
538
- continue;
539
- }
540
- doNothing = false;
541
- break;
542
- }
543
- if (doNothing) {
544
- return;
545
- }
546
- await createAppWithRoutesModule(config);
547
- let bundleCreated = false;
548
- try {
549
- logger.log(
550
- "Change detected. Bundling files and restarting server...."
551
- );
552
- await transpileFiles(config);
553
- await bundleFilesContext(config);
554
- bundleCreated = true;
555
- } catch (err2) {
556
- logger.error("ERROR", err2);
538
+ fileWatcher = watcher.watch(dirsToWatch, {
539
+ ignoreInitial: true,
540
+ ignored: [
541
+ buildDir,
542
+ outDir,
543
+ "**/.output",
544
+ "**/dist/**",
545
+ "**/node_modules/**",
546
+ "**/.git/**"
547
+ ]
548
+ });
549
+ fileWatcher.on("all", async (eventName, path2) => {
550
+ if (eventName === "addDir" || eventName === "add") {
551
+ return;
552
+ }
553
+ await createAppWithRoutesModule(config);
554
+ let bundleCreated = false;
555
+ try {
556
+ logger.log(
557
+ "Change detected. Bundling files and restarting server...."
558
+ );
559
+ await context.rebuild();
560
+ bundleCreated = true;
561
+ } catch (err) {
562
+ logger.error("ERROR", err);
563
+ bundleCreated = false;
564
+ }
565
+ if (bundleCreated && config.generators.length) {
566
+ setTimeout(async () => {
567
+ await generateClients(config);
557
568
  bundleCreated = false;
558
- }
559
- if (bundleCreated && config.generators.length) {
560
- setTimeout(async () => {
561
- await generateClients(config);
562
- bundleCreated = false;
563
- }, 1e3);
564
- }
565
- },
566
- {
567
- ignore: [buildDir, outDir]
569
+ }, 1e3);
568
570
  }
569
- );
571
+ });
570
572
  }
571
573
  await load();
572
574
  }
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const config = require('./shared/arri.ebe44c73.cjs');
3
+ const config = require('./shared/arri.0628c07d.cjs');
4
4
  const h3 = require('h3');
5
5
  require('arri-codegen-utils');
6
6
  require('arri-validate');
package/dist/index.d.cts CHANGED
@@ -296,6 +296,12 @@ interface ArriConfig {
296
296
  passphrase?: string;
297
297
  } | boolean;
298
298
  http2?: boolean;
299
+ devServer?: {
300
+ /**
301
+ * Use this to add directories outside of the srcDir that should trigger a dev server reload
302
+ */
303
+ additionalWatchDirs?: string[];
304
+ };
299
305
  }
300
306
  declare function isArriConfig(input: unknown): input is ArriConfig;
301
307
  declare function isResolvedArriConfig(input: unknown): input is ResolvedArriConfig;
package/dist/index.d.mts CHANGED
@@ -296,6 +296,12 @@ interface ArriConfig {
296
296
  passphrase?: string;
297
297
  } | boolean;
298
298
  http2?: boolean;
299
+ devServer?: {
300
+ /**
301
+ * Use this to add directories outside of the srcDir that should trigger a dev server reload
302
+ */
303
+ additionalWatchDirs?: string[];
304
+ };
299
305
  }
300
306
  declare function isArriConfig(input: unknown): input is ArriConfig;
301
307
  declare function isResolvedArriConfig(input: unknown): input is ResolvedArriConfig;
package/dist/index.d.ts CHANGED
@@ -296,6 +296,12 @@ interface ArriConfig {
296
296
  passphrase?: string;
297
297
  } | boolean;
298
298
  http2?: boolean;
299
+ devServer?: {
300
+ /**
301
+ * Use this to add directories outside of the srcDir that should trigger a dev server reload
302
+ */
303
+ additionalWatchDirs?: string[];
304
+ };
299
305
  }
300
306
  declare function isArriConfig(input: unknown): input is ArriConfig;
301
307
  declare function isResolvedArriConfig(input: unknown): input is ResolvedArriConfig;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { A as ArriApp, t as ArriRouter, j as ArriServerError, k as ArriServerErrorResponse, a as DEV_DEFINITION_ENDPOINT, D as DEV_ENDPOINT_ROOT, E as EventStreamConnection, W as WsPeer, c as createAppDefinition, e as createHttpRpcDefinition, G as createWsRpcDefinition, q as defaultConfig, s as defineConfig, l as defineError, y as defineEventStreamRpc, u as defineRoute, d as defineRpc, C as defineWebsocketRpc, m as errorResponseFromValidationErrors, f as getRpcParamName, g as getRpcPath, h as getRpcResponseName, n as handleH3Error, x as handleRoute, o as isArriConfig, z as isEventStreamRpc, p as isResolvedArriConfig, b as isRpc, i as isRpcParamSchema, B as registerEventStreamRpc, w as registerRoute, r as registerRpc, F as registerWebsocketRpc, v as validateRpcRequestInput } from './shared/arri.1fc3f099.mjs';
1
+ export { A as ArriApp, t as ArriRouter, j as ArriServerError, k as ArriServerErrorResponse, a as DEV_DEFINITION_ENDPOINT, D as DEV_ENDPOINT_ROOT, E as EventStreamConnection, W as WsPeer, c as createAppDefinition, e as createHttpRpcDefinition, G as createWsRpcDefinition, q as defaultConfig, s as defineConfig, l as defineError, y as defineEventStreamRpc, u as defineRoute, d as defineRpc, C as defineWebsocketRpc, m as errorResponseFromValidationErrors, f as getRpcParamName, g as getRpcPath, h as getRpcResponseName, n as handleH3Error, x as handleRoute, o as isArriConfig, z as isEventStreamRpc, p as isResolvedArriConfig, b as isRpc, i as isRpcParamSchema, B as registerEventStreamRpc, w as registerRoute, r as registerRpc, F as registerWebsocketRpc, v as validateRpcRequestInput } from './shared/arri.c3a553fc.mjs';
2
2
  export * from 'h3';
3
3
  import 'arri-codegen-utils';
4
4
  import 'arri-validate';
@@ -1228,7 +1228,8 @@ const defaultConfig = {
1228
1228
  buildDir: ".arri",
1229
1229
  esbuild: {},
1230
1230
  https: false,
1231
- http2: false
1231
+ http2: false,
1232
+ devServer: {}
1232
1233
  };
1233
1234
  function defineConfig(config) {
1234
1235
  return {
@@ -1243,7 +1244,8 @@ function defineConfig(config) {
1243
1244
  esbuild: config.esbuild ?? defaultConfig.esbuild,
1244
1245
  serverEntry: config.serverEntry ?? "",
1245
1246
  https: config.https ?? false,
1246
- http2: config.http2 ?? false
1247
+ http2: config.http2 ?? false,
1248
+ devServer: config.devServer ?? {}
1247
1249
  };
1248
1250
  }
1249
1251
 
@@ -1226,7 +1226,8 @@ const defaultConfig = {
1226
1226
  buildDir: ".arri",
1227
1227
  esbuild: {},
1228
1228
  https: false,
1229
- http2: false
1229
+ http2: false,
1230
+ devServer: {}
1230
1231
  };
1231
1232
  function defineConfig(config) {
1232
1233
  return {
@@ -1241,7 +1242,8 @@ function defineConfig(config) {
1241
1242
  esbuild: config.esbuild ?? defaultConfig.esbuild,
1242
1243
  serverEntry: config.serverEntry ?? "",
1243
1244
  https: config.https ?? false,
1244
- http2: config.http2 ?? false
1245
+ http2: config.http2 ?? false,
1246
+ devServer: config.devServer ?? {}
1245
1247
  };
1246
1248
  }
1247
1249
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arri",
3
- "version": "0.40.0",
3
+ "version": "0.41.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -25,9 +25,11 @@
25
25
  "arri": "./dist/cli.mjs"
26
26
  },
27
27
  "dependencies": {
28
- "@joshmossas/listhen": "1.10.0",
28
+ "@joshmossas/listhen": "1.10.1",
29
29
  "@parcel/watcher": "^2.4.1",
30
+ "@types/source-map-support": "^0.5.10",
30
31
  "c12": "^1.10.0",
32
+ "chokidar": "^3.6.0",
31
33
  "citty": "^0.1.6",
32
34
  "consola": "^3.2.3",
33
35
  "crossws": "^0.2.4",
@@ -43,11 +45,12 @@
43
45
  "pathe": "^1.1.2",
44
46
  "prettier": "^3.2.5",
45
47
  "scule": "^1.3.0",
48
+ "source-map-support": "^0.5.21",
46
49
  "uncrypto": "^0.1.3",
47
- "arri-codegen-dart": "0.40.0",
48
- "arri-codegen-utils": "0.40.0",
49
- "arri-validate": "0.40.0",
50
- "arri-codegen-ts": "0.40.0"
50
+ "arri-codegen-ts": "0.41.0",
51
+ "arri-codegen-dart": "0.41.0",
52
+ "arri-codegen-utils": "0.41.0",
53
+ "arri-validate": "0.41.0"
51
54
  },
52
55
  "devDependencies": {
53
56
  "@types/degit": "^2.8.6",