@fragno-dev/core 0.2.0 → 0.2.2

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 (146) hide show
  1. package/.turbo/turbo-build.log +72 -62
  2. package/CHANGELOG.md +28 -0
  3. package/dist/api/api.d.ts +3 -2
  4. package/dist/api/api.d.ts.map +1 -1
  5. package/dist/api/api.js +2 -1
  6. package/dist/api/api.js.map +1 -1
  7. package/dist/api/bind-services.d.ts +0 -1
  8. package/dist/api/bind-services.d.ts.map +1 -1
  9. package/dist/api/bind-services.js.map +1 -1
  10. package/dist/api/error.d.ts.map +1 -1
  11. package/dist/api/error.js.map +1 -1
  12. package/dist/api/fragment-definition-builder.d.ts +26 -44
  13. package/dist/api/fragment-definition-builder.d.ts.map +1 -1
  14. package/dist/api/fragment-definition-builder.js +15 -22
  15. package/dist/api/fragment-definition-builder.js.map +1 -1
  16. package/dist/api/fragment-instantiator.d.ts +51 -37
  17. package/dist/api/fragment-instantiator.d.ts.map +1 -1
  18. package/dist/api/fragment-instantiator.js +74 -69
  19. package/dist/api/fragment-instantiator.js.map +1 -1
  20. package/dist/api/request-context-storage.d.ts +4 -0
  21. package/dist/api/request-context-storage.d.ts.map +1 -1
  22. package/dist/api/request-context-storage.js +6 -0
  23. package/dist/api/request-context-storage.js.map +1 -1
  24. package/dist/api/request-input-context.d.ts.map +1 -1
  25. package/dist/api/request-input-context.js.map +1 -1
  26. package/dist/api/request-middleware.d.ts +1 -1
  27. package/dist/api/request-middleware.d.ts.map +1 -1
  28. package/dist/api/request-middleware.js.map +1 -1
  29. package/dist/api/request-output-context.d.ts +1 -1
  30. package/dist/api/request-output-context.d.ts.map +1 -1
  31. package/dist/api/request-output-context.js.map +1 -1
  32. package/dist/api/route-caller.d.ts +30 -0
  33. package/dist/api/route-caller.d.ts.map +1 -0
  34. package/dist/api/route-caller.js +63 -0
  35. package/dist/api/route-caller.js.map +1 -0
  36. package/dist/api/route-handler-input-options.d.ts.map +1 -1
  37. package/dist/api/route.d.ts +1 -1
  38. package/dist/api/route.d.ts.map +1 -1
  39. package/dist/api/route.js.map +1 -1
  40. package/dist/api/shared-types.d.ts.map +1 -1
  41. package/dist/client/client-error.d.ts.map +1 -1
  42. package/dist/client/client-error.js.map +1 -1
  43. package/dist/client/client.d.ts +91 -52
  44. package/dist/client/client.d.ts.map +1 -1
  45. package/dist/client/client.js +25 -9
  46. package/dist/client/client.js.map +1 -1
  47. package/dist/client/client.svelte.d.ts +6 -5
  48. package/dist/client/client.svelte.d.ts.map +1 -1
  49. package/dist/client/client.svelte.js +10 -2
  50. package/dist/client/client.svelte.js.map +1 -1
  51. package/dist/client/internal/ndjson-streaming.js.map +1 -1
  52. package/dist/client/react.d.ts +5 -4
  53. package/dist/client/react.d.ts.map +1 -1
  54. package/dist/client/react.js +104 -12
  55. package/dist/client/react.js.map +1 -1
  56. package/dist/client/solid.d.ts +7 -5
  57. package/dist/client/solid.d.ts.map +1 -1
  58. package/dist/client/solid.js +23 -9
  59. package/dist/client/solid.js.map +1 -1
  60. package/dist/client/vanilla.d.ts +16 -4
  61. package/dist/client/vanilla.d.ts.map +1 -1
  62. package/dist/client/vanilla.js +21 -1
  63. package/dist/client/vanilla.js.map +1 -1
  64. package/dist/client/vue.d.ts +7 -5
  65. package/dist/client/vue.d.ts.map +1 -1
  66. package/dist/client/vue.js +18 -10
  67. package/dist/client/vue.js.map +1 -1
  68. package/dist/id.d.ts +2 -0
  69. package/dist/id.js +3 -0
  70. package/dist/internal/cuid.d.ts +16 -0
  71. package/dist/internal/cuid.d.ts.map +1 -0
  72. package/dist/internal/cuid.js +82 -0
  73. package/dist/internal/cuid.js.map +1 -0
  74. package/dist/mod-client.d.ts +5 -4
  75. package/dist/mod-client.d.ts.map +1 -1
  76. package/dist/mod-client.js +7 -5
  77. package/dist/mod-client.js.map +1 -1
  78. package/dist/mod.d.ts +6 -5
  79. package/dist/mod.js +2 -1
  80. package/dist/runtime.js +1 -1
  81. package/dist/runtime.js.map +1 -1
  82. package/dist/test/test.d.ts +6 -6
  83. package/dist/test/test.d.ts.map +1 -1
  84. package/dist/test/test.js.map +1 -1
  85. package/dist/util/ssr.js.map +1 -1
  86. package/package.json +24 -40
  87. package/src/api/api.test.ts +3 -1
  88. package/src/api/api.ts +6 -0
  89. package/src/api/bind-services.ts +0 -5
  90. package/src/api/error.ts +1 -0
  91. package/src/api/fragment-definition-builder.extend.test.ts +2 -1
  92. package/src/api/fragment-definition-builder.test.ts +2 -1
  93. package/src/api/fragment-definition-builder.ts +49 -124
  94. package/src/api/fragment-instantiator.test.ts +92 -233
  95. package/src/api/fragment-instantiator.ts +228 -196
  96. package/src/api/fragment-services.test.ts +1 -0
  97. package/src/api/internal/path-runtime.test.ts +1 -0
  98. package/src/api/internal/path-type.test.ts +3 -1
  99. package/src/api/internal/route.test.ts +1 -0
  100. package/src/api/request-context-storage.ts +7 -0
  101. package/src/api/request-input-context.test.ts +4 -2
  102. package/src/api/request-input-context.ts +2 -1
  103. package/src/api/request-middleware.test.ts +9 -14
  104. package/src/api/request-middleware.ts +3 -2
  105. package/src/api/request-output-context.test.ts +3 -1
  106. package/src/api/request-output-context.ts +2 -1
  107. package/src/api/route-caller.test.ts +195 -0
  108. package/src/api/route-caller.ts +167 -0
  109. package/src/api/route-handler-input-options.ts +2 -1
  110. package/src/api/route.test.ts +4 -2
  111. package/src/api/route.ts +2 -1
  112. package/src/api/shared-types.ts +2 -1
  113. package/src/client/client-builder.test.ts +4 -2
  114. package/src/client/client-error.test.ts +2 -1
  115. package/src/client/client-error.ts +1 -1
  116. package/src/client/client-types.test.ts +19 -5
  117. package/src/client/client.ssr.test.ts +6 -4
  118. package/src/client/client.svelte.test.ts +18 -9
  119. package/src/client/client.svelte.ts +38 -13
  120. package/src/client/client.test.ts +49 -10
  121. package/src/client/client.ts +291 -141
  122. package/src/client/internal/ndjson-streaming.test.ts +6 -3
  123. package/src/client/internal/ndjson-streaming.ts +1 -0
  124. package/src/client/react.test.ts +176 -6
  125. package/src/client/react.ts +226 -31
  126. package/src/client/solid.test.ts +29 -5
  127. package/src/client/solid.ts +60 -22
  128. package/src/client/vanilla.test.ts +148 -6
  129. package/src/client/vanilla.ts +63 -9
  130. package/src/client/vue.test.ts +223 -84
  131. package/src/client/vue.ts +57 -30
  132. package/src/id.ts +1 -0
  133. package/src/internal/cuid.test.ts +164 -0
  134. package/src/internal/cuid.ts +133 -0
  135. package/src/mod-client.ts +4 -2
  136. package/src/mod.ts +3 -2
  137. package/src/runtime.ts +1 -1
  138. package/src/test/test.test.ts +4 -2
  139. package/src/test/test.ts +7 -9
  140. package/src/util/async.test.ts +1 -0
  141. package/src/util/content-type.test.ts +1 -0
  142. package/src/util/nanostores.test.ts +3 -1
  143. package/src/util/ssr.ts +1 -0
  144. package/tsconfig.json +1 -1
  145. package/tsdown.config.ts +1 -0
  146. package/vitest.config.ts +2 -1
package/package.json CHANGED
@@ -1,120 +1,111 @@
1
1
  {
2
2
  "name": "@fragno-dev/core",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
+ "homepage": "https://fragno.dev",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/rejot-dev/fragno.git",
9
+ "directory": "packages/fragno"
10
+ },
11
+ "type": "module",
12
+ "sideEffects": false,
13
+ "main": "./dist/mod.js",
14
+ "module": "./dist/mod.js",
15
+ "types": "./dist/mod.d.ts",
4
16
  "exports": {
5
17
  ".": {
6
18
  "workerd": {
7
- "development": "./src/mod.ts",
8
19
  "default": "./dist/mod.js"
9
20
  },
10
- "development": {
11
- "browser": "./src/mod-client.ts",
12
- "default": "./src/mod.ts"
13
- },
14
21
  "browser": "./dist/mod-client.js",
15
22
  "types": "./dist/mod.d.ts",
16
23
  "default": "./dist/mod.js"
17
24
  },
18
25
  "./api": {
19
- "development": "./src/api/api.ts",
20
26
  "types": "./dist/api/api.d.ts",
21
27
  "default": "./dist/api/api.js"
22
28
  },
23
29
  "./test": {
24
- "development": "./src/test/test.ts",
25
30
  "types": "./dist/test/test.d.ts",
26
31
  "default": "./dist/test/test.js"
27
32
  },
28
33
  "./route": {
29
- "development": "./src/api/route.ts",
30
34
  "types": "./dist/api/route.d.ts",
31
35
  "default": "./dist/api/route.js"
32
36
  },
33
37
  "./request": {
34
- "development": "./src/request/request.ts",
35
38
  "types": "./dist/request/request.d.ts",
36
39
  "default": "./dist/request/request.js"
37
40
  },
38
41
  "./internal/request-context-storage": {
39
- "development": "./src/api/request-context-storage.ts",
40
42
  "types": "./dist/api/request-context-storage.d.ts",
41
43
  "default": "./dist/api/request-context-storage.js"
42
44
  },
43
45
  "./internal/trace-context": {
44
- "development": "./src/internal/trace-context.ts",
45
46
  "types": "./dist/internal/trace-context.d.ts",
46
47
  "default": "./dist/internal/trace-context.js"
47
48
  },
48
49
  "./internal/symbols": {
49
- "development": "./src/internal/symbols.ts",
50
50
  "types": "./dist/internal/symbols.d.ts",
51
51
  "default": "./dist/internal/symbols.js"
52
52
  },
53
53
  "./client": {
54
- "development": "./src/client/client.ts",
55
54
  "types": "./dist/client/client.d.ts",
56
55
  "default": "./dist/client/client.js"
57
56
  },
57
+ "./id": {
58
+ "types": "./dist/id.d.ts",
59
+ "default": "./dist/id.js"
60
+ },
58
61
  "./react": {
59
- "development": "./src/client/react.ts",
60
62
  "types": "./dist/client/react.d.ts",
61
63
  "default": "./dist/client/react.js"
62
64
  },
63
65
  "./vanilla": {
64
- "development": "./src/client/vanilla.ts",
65
66
  "types": "./dist/client/vanilla.d.ts",
66
67
  "default": "./dist/client/vanilla.js"
67
68
  },
68
69
  "./vue": {
69
- "development": "./src/client/vue.ts",
70
70
  "types": "./dist/client/vue.d.ts",
71
71
  "default": "./dist/client/vue.js"
72
72
  },
73
73
  "./svelte": {
74
- "development": "./src/client/client.svelte.ts",
75
74
  "types": "./dist/client/client.svelte.d.ts",
76
75
  "default": "./dist/client/client.svelte.js"
77
76
  },
78
77
  "./solid": {
79
- "development": "./src/client/solid.ts",
80
78
  "types": "./dist/client/solid.d.ts",
81
79
  "default": "./dist/client/solid.js"
82
80
  },
83
81
  "./react-ssr": {
84
- "development": "./src/integrations/react-ssr.ts",
85
82
  "types": "./dist/integrations/react-ssr.d.ts",
86
83
  "default": "./dist/integrations/react-ssr.js"
87
84
  },
88
85
  "./package.json": "./package.json"
89
86
  },
90
- "main": "./dist/mod.js",
91
- "module": "./dist/mod.js",
92
- "types": "./dist/mod.d.ts",
93
- "type": "module",
94
- "sideEffects": false,
95
87
  "dependencies": {
96
- "@paralleldrive/cuid2": "^2.3.1",
97
88
  "@nanostores/query": "^0.3.4",
98
89
  "@nanostores/solid": "^1.1.1",
99
90
  "@standard-schema/spec": "^1.1.0",
100
- "nanostores": "^1.1.0",
91
+ "nanostores": "^1.2.0",
101
92
  "rou3": "^0.7.12"
102
93
  },
103
94
  "devDependencies": {
104
- "@sveltejs/vite-plugin-svelte": "^6.2.4",
95
+ "@sveltejs/vite-plugin-svelte": "^7.0.0",
105
96
  "@testing-library/react": "^16.3.2",
106
97
  "@testing-library/svelte": "^5.3.1",
107
98
  "@testing-library/vue": "^8.1.0",
108
99
  "@types/node": "^22.19.7",
109
100
  "@types/react": "^19.2.8",
110
101
  "@types/react-dom": "^19.2.3",
111
- "@vitest/coverage-istanbul": "^3.2.4",
102
+ "@vitest/coverage-istanbul": "^4.1.0",
112
103
  "happy-dom": "^20.3.3",
113
104
  "react": "^19.0.3",
114
105
  "react-dom": "^19.0.3",
115
106
  "solid-js": "^1.9.10",
116
107
  "svelte": "^5.47.0",
117
- "vitest": "^3.2.4",
108
+ "vitest": "^4.1.4",
118
109
  "vue": "^3.5.27",
119
110
  "zod": "^4.3.5",
120
111
  "@fragno-private/typescript-config": "0.0.1",
@@ -122,9 +113,9 @@
122
113
  },
123
114
  "peerDependencies": {
124
115
  "react": "^19.0.0",
125
- "vue": "^3",
116
+ "solid-js": "^1.0.0",
126
117
  "svelte": "^5",
127
- "solid-js": "^1.0.0"
118
+ "vue": "^3"
128
119
  },
129
120
  "peerDependenciesMeta": {
130
121
  "react": {
@@ -140,17 +131,10 @@
140
131
  "optional": true
141
132
  }
142
133
  },
143
- "repository": {
144
- "type": "git",
145
- "url": "https://github.com/rejot-dev/fragno.git",
146
- "directory": "packages/fragno"
147
- },
148
- "homepage": "https://fragno.dev",
149
- "license": "MIT",
150
134
  "scripts": {
151
135
  "build": "tsdown",
152
136
  "build:watch": "tsdown --watch",
153
- "types:check": "tsc --noEmit",
137
+ "types:check": "tsgo --noEmit",
154
138
  "test": "vitest run",
155
139
  "test:watch": "vitest --watch"
156
140
  }
@@ -1,7 +1,9 @@
1
1
  import { test, expect, expectTypeOf, describe } from "vitest";
2
- import { addRoute, type ValidPath } from "./api";
2
+
3
3
  import { z } from "zod";
4
4
 
5
+ import { addRoute, type ValidPath } from "./api";
6
+
5
7
  describe("addRoute", () => {
6
8
  test("addRoute no inputSchema", () => {
7
9
  addRoute({
package/src/api/api.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
+
2
3
  import type { RequestInputContext } from "./request-input-context";
3
4
  import type { RequestOutputContext } from "./request-output-context";
4
5
 
@@ -162,5 +163,10 @@ export function addRoute<
162
163
  }
163
164
 
164
165
  export { FragnoApiError, FragnoApiValidationError } from "./error";
166
+ export {
167
+ createRouteCaller,
168
+ type RouteCallerConfig,
169
+ type RouteCallerForFragment,
170
+ } from "./route-caller";
165
171
  export type { RouteHandlerInputOptions } from "./route-handler-input-options";
166
172
  export type { FragnoPublicConfig } from "./shared-types";
@@ -1,8 +1,3 @@
1
- // Type helper to remove 'this' parameter from functions
2
- type OmitThisParameter<T> = T extends (this: infer _This, ...args: infer A) => infer R
3
- ? (...args: A) => R
4
- : T;
5
-
6
1
  // Recursively remove 'this' parameter from all functions in an object
7
2
  export type BoundServices<T> = {
8
3
  [K in keyof T]: T[K] extends (...args: never[]) => unknown
package/src/api/error.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
+
2
3
  import type { StatusCode } from "../http/http-status";
3
4
 
4
5
  export class FragnoApiError extends Error {
@@ -1,7 +1,8 @@
1
1
  import { describe, it, expect } from "vitest";
2
+
3
+ import type { RequestThisContext } from "./api";
2
4
  import { defineFragment, FragmentDefinitionBuilder } from "./fragment-definition-builder";
3
5
  import type { FragnoPublicConfig } from "./shared-types";
4
- import type { RequestThisContext } from "./api";
5
6
 
6
7
  describe("FragmentDefinitionBuilder.extend()", () => {
7
8
  describe("basic functionality", () => {
@@ -1,7 +1,8 @@
1
1
  import { describe, it, expect, expectTypeOf, vi } from "vitest";
2
+
3
+ import type { RequestThisContext } from "./api";
2
4
  import { defineFragment, type FragmentDefinition } from "./fragment-definition-builder";
3
5
  import type { FragnoPublicConfig } from "./shared-types";
4
- import type { RequestThisContext } from "./api";
5
6
 
6
7
  describe("FragmentDefinitionBuilder", () => {
7
8
  describe("defineFragment", () => {