@briancray/belte 0.3.1 → 0.5.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.
Files changed (61) hide show
  1. package/bin/belte.ts +22 -13
  2. package/package.json +1 -1
  3. package/src/appEntry.ts +24 -8
  4. package/src/buildDisconnected.ts +3 -0
  5. package/src/bundleApp.ts +24 -2
  6. package/src/controlServerWorker.ts +205 -7
  7. package/src/discoveryEntry.ts +58 -11
  8. package/src/lib/browser/cache.ts +29 -6
  9. package/src/lib/browser/startClient.ts +24 -1
  10. package/src/lib/bundle/BundleWindow.ts +11 -0
  11. package/src/lib/bundle/disconnected.svelte +238 -42
  12. package/src/lib/bundle/onMenu.ts +20 -5
  13. package/src/lib/bundle/openWebview.ts +9 -2
  14. package/src/lib/bundle/signMacApp.ts +35 -0
  15. package/src/lib/cli/createClient.ts +65 -27
  16. package/src/lib/cli/loadEnvFromBinaryDir.ts +8 -38
  17. package/src/lib/cli/runCli.ts +37 -15
  18. package/src/lib/cli/types/CliManifestEntry.ts +7 -2
  19. package/src/lib/mcp/annotationsForMethod.ts +29 -0
  20. package/src/lib/mcp/createMcpServer.ts +10 -8
  21. package/src/lib/mcp/dispatchMcpRequest.ts +115 -33
  22. package/src/lib/mcp/toolResultFromResponse.ts +66 -0
  23. package/src/lib/server/jsonl.ts +2 -1
  24. package/src/lib/server/rpc/defineVerb.ts +30 -17
  25. package/src/lib/server/rpc/parseArgs.ts +2 -1
  26. package/src/lib/server/rpc/types/VerbHelper.ts +19 -11
  27. package/src/lib/server/rpc/types/VerbRegistryEntry.ts +14 -6
  28. package/src/lib/server/runtime/buildOpenApiSpec.ts +17 -6
  29. package/src/lib/server/runtime/createPublicAssetServer.ts +17 -6
  30. package/src/lib/server/runtime/createServer.ts +57 -21
  31. package/src/lib/server/runtime/globToPathSet.ts +29 -0
  32. package/src/lib/server/runtime/logBrowserOnlyRoutes.ts +44 -0
  33. package/src/lib/server/runtime/parsePort.ts +16 -0
  34. package/src/lib/server/sockets/createSocketDispatcher.ts +71 -8
  35. package/src/lib/server/sockets/defineSocket.ts +7 -1
  36. package/src/lib/server/sockets/recentHistory.ts +11 -0
  37. package/src/lib/server/sockets/socketOperations.ts +35 -0
  38. package/src/lib/server/sockets/types/SocketOperation.ts +22 -0
  39. package/src/lib/server/sse.ts +2 -1
  40. package/src/lib/shared/appDataDir.ts +22 -0
  41. package/src/lib/shared/buildRpcRequest.ts +2 -1
  42. package/src/lib/shared/carriesBodyArgs.ts +13 -0
  43. package/src/lib/shared/isReadOnlyMethod.ts +14 -0
  44. package/src/lib/shared/isStreamingResponse.ts +11 -0
  45. package/src/lib/shared/jsonlErrorFrame.ts +24 -0
  46. package/src/lib/shared/keyForRemoteCall.ts +2 -1
  47. package/src/lib/shared/loadEnvFile.ts +17 -0
  48. package/src/lib/shared/loadEnvFromDataDir.ts +15 -0
  49. package/src/lib/shared/parseEnv.ts +30 -0
  50. package/src/lib/shared/readEnvFile.ts +15 -0
  51. package/src/lib/shared/resolveClientFlags.ts +8 -6
  52. package/src/lib/shared/responseErrorText.ts +9 -0
  53. package/src/lib/shared/serializeEnv.ts +18 -0
  54. package/src/lib/shared/sseErrorFrame.ts +29 -0
  55. package/src/lib/shared/streamResponse.ts +168 -0
  56. package/src/lib/shared/subscribableFromResponse.ts +1 -172
  57. package/src/lib/shared/types/CacheEntry.ts +6 -0
  58. package/src/serverEntry.ts +12 -0
  59. package/template/src/bundle/icon.png +0 -0
  60. package/template/src/server/rpc/getHello.ts +5 -3
  61. package/src/lib/shared/belteImportName.test.ts +0 -58
@@ -1,58 +0,0 @@
1
- import { afterAll, expect, test } from 'bun:test'
2
- import { mkdtempSync, rmSync } from 'node:fs'
3
- import { tmpdir } from 'node:os'
4
- import { belteImportName } from './belteImportName.ts'
5
-
6
- const roots: string[] = []
7
- afterAll(() => roots.forEach((root) => rmSync(root, { recursive: true, force: true })))
8
-
9
- // Writes a package.json into a fresh temp dir and returns the dir.
10
- async function projectWith(packageJson: unknown): Promise<string> {
11
- const root = mkdtempSync(`${tmpdir()}/belte-import-name-`)
12
- roots.push(root)
13
- await Bun.write(`${root}/package.json`, JSON.stringify(packageJson))
14
- return root
15
- }
16
-
17
- test('uses the canonical name for a direct dependency', async () => {
18
- const cwd = await projectWith({ dependencies: { '@briancray/belte': '^0.2.0' } })
19
- expect(await belteImportName(cwd)).toBe('@briancray/belte')
20
- })
21
-
22
- test('uses the `belte` alias key for an npm alias', async () => {
23
- const cwd = await projectWith({ dependencies: { belte: 'npm:@briancray/belte@^0.2.0' } })
24
- expect(await belteImportName(cwd)).toBe('belte')
25
- })
26
-
27
- test('uses the `belte` alias key for a workspace alias', async () => {
28
- const cwd = await projectWith({ dependencies: { belte: 'workspace:@briancray/belte@*' } })
29
- expect(await belteImportName(cwd)).toBe('belte')
30
- })
31
-
32
- test('uses a non-`belte` alias key when that is how belte is declared', async () => {
33
- const cwd = await projectWith({ dependencies: { framework: 'npm:@briancray/belte' } })
34
- expect(await belteImportName(cwd)).toBe('framework')
35
- })
36
-
37
- test('prefers the `belte` alias over a direct canonical dependency', async () => {
38
- const cwd = await projectWith({
39
- dependencies: { '@briancray/belte': '^0.2.0', belte: 'npm:@briancray/belte@^0.2.0' },
40
- })
41
- expect(await belteImportName(cwd)).toBe('belte')
42
- })
43
-
44
- test('finds the alias in devDependencies', async () => {
45
- const cwd = await projectWith({ devDependencies: { belte: 'npm:@briancray/belte@^0.2.0' } })
46
- expect(await belteImportName(cwd)).toBe('belte')
47
- })
48
-
49
- test('falls back to the canonical name when belte is absent', async () => {
50
- const cwd = await projectWith({ dependencies: { svelte: '^5.0.0' } })
51
- expect(await belteImportName(cwd)).toBe('@briancray/belte')
52
- })
53
-
54
- test('falls back to the canonical name when package.json is missing', async () => {
55
- const root = mkdtempSync(`${tmpdir()}/belte-import-name-`)
56
- roots.push(root)
57
- expect(await belteImportName(root)).toBe('@briancray/belte')
58
- })