@fragno-dev/core 0.1.11 → 0.2.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/.turbo/turbo-build.log +50 -42
- package/CHANGELOG.md +51 -0
- package/dist/api/api.d.ts +19 -1
- package/dist/api/api.d.ts.map +1 -1
- package/dist/api/api.js.map +1 -1
- package/dist/api/fragment-definition-builder.d.ts +17 -7
- package/dist/api/fragment-definition-builder.d.ts.map +1 -1
- package/dist/api/fragment-definition-builder.js +3 -2
- package/dist/api/fragment-definition-builder.js.map +1 -1
- package/dist/api/fragment-instantiator.d.ts +23 -16
- package/dist/api/fragment-instantiator.d.ts.map +1 -1
- package/dist/api/fragment-instantiator.js +163 -19
- package/dist/api/fragment-instantiator.js.map +1 -1
- package/dist/api/request-input-context.d.ts +57 -1
- package/dist/api/request-input-context.d.ts.map +1 -1
- package/dist/api/request-input-context.js +67 -0
- package/dist/api/request-input-context.js.map +1 -1
- package/dist/api/request-middleware.d.ts +1 -1
- package/dist/api/request-middleware.d.ts.map +1 -1
- package/dist/api/request-middleware.js.map +1 -1
- package/dist/api/route.d.ts +7 -7
- package/dist/api/route.d.ts.map +1 -1
- package/dist/api/route.js.map +1 -1
- package/dist/client/client.d.ts +4 -3
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +103 -7
- package/dist/client/client.js.map +1 -1
- package/dist/client/vue.d.ts +7 -3
- package/dist/client/vue.d.ts.map +1 -1
- package/dist/client/vue.js +16 -1
- package/dist/client/vue.js.map +1 -1
- package/dist/internal/trace-context.d.ts +23 -0
- package/dist/internal/trace-context.d.ts.map +1 -0
- package/dist/internal/trace-context.js +14 -0
- package/dist/internal/trace-context.js.map +1 -0
- package/dist/mod-client.d.ts +3 -17
- package/dist/mod-client.d.ts.map +1 -1
- package/dist/mod-client.js +20 -10
- package/dist/mod-client.js.map +1 -1
- package/dist/mod.d.ts +3 -2
- package/dist/mod.js +2 -1
- package/dist/runtime.d.ts +15 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +33 -0
- package/dist/runtime.js.map +1 -0
- package/dist/test/test.d.ts +2 -2
- package/dist/test/test.d.ts.map +1 -1
- package/dist/test/test.js.map +1 -1
- package/package.json +23 -17
- package/src/api/api.ts +22 -0
- package/src/api/fragment-definition-builder.ts +36 -17
- package/src/api/fragment-instantiator.test.ts +286 -0
- package/src/api/fragment-instantiator.ts +338 -31
- package/src/api/internal/path-runtime.test.ts +7 -0
- package/src/api/request-input-context.test.ts +152 -0
- package/src/api/request-input-context.ts +85 -0
- package/src/api/request-middleware.test.ts +47 -1
- package/src/api/request-middleware.ts +1 -1
- package/src/api/route.ts +7 -2
- package/src/client/client.test.ts +195 -0
- package/src/client/client.ts +185 -10
- package/src/client/vue.test.ts +253 -3
- package/src/client/vue.ts +44 -1
- package/src/internal/trace-context.ts +35 -0
- package/src/mod-client.ts +51 -7
- package/src/mod.ts +6 -1
- package/src/runtime.ts +48 -0
- package/src/test/test.ts +13 -4
- package/tsdown.config.ts +1 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,65 +1,67 @@
|
|
|
1
1
|
|
|
2
|
-
> @fragno-dev/core@0.
|
|
2
|
+
> @fragno-dev/core@0.2.0 build /home/runner/work/fragno/fragno/packages/fragno
|
|
3
3
|
> tsdown
|
|
4
4
|
|
|
5
5
|
[34mℹ[39m tsdown [2mv0.15.12[22m powered by rolldown [2mv1.0.0-beta.45[22m
|
|
6
6
|
[34mℹ[39m Using tsdown config: [4m/home/runner/work/fragno/fragno/packages/fragno/tsdown.config.ts[24m
|
|
7
|
-
[34mℹ[39m entry: [34msrc/mod-client.ts, src/mod.ts, src/api/api.ts, src/api/fragment-definition-builder.ts, src/api/fragment-instantiator.ts, src/api/request-context-storage.ts, src/api/route.ts, src/api/shared-types.ts, src/client/client.svelte.ts, src/client/client.ts, src/client/react.ts, src/client/solid.ts, src/client/vanilla.ts, src/client/vue.ts, src/integrations/react-ssr.ts, src/internal/symbols.ts, src/
|
|
7
|
+
[34mℹ[39m entry: [34msrc/mod-client.ts, src/mod.ts, src/api/api.ts, src/api/fragment-definition-builder.ts, src/api/fragment-instantiator.ts, src/api/request-context-storage.ts, src/api/route.ts, src/api/shared-types.ts, src/client/client.svelte.ts, src/client/client.ts, src/client/react.ts, src/client/solid.ts, src/client/vanilla.ts, src/client/vue.ts, src/integrations/react-ssr.ts, src/internal/symbols.ts, src/internal/trace-context.ts, src/request/request.ts, src/test/test.ts[39m
|
|
8
8
|
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
9
9
|
[34mℹ[39m Build start
|
|
10
|
-
[34mℹ[39m [2mdist/[22m[1mapi/fragment-instantiator.js[22m [
|
|
11
|
-
[34mℹ[39m [2mdist/[22m[1mclient/client.js[22m [
|
|
12
|
-
[34mℹ[39m [2mdist/[22m[1mapi/fragment-definition-builder.js[22m [2m11.
|
|
10
|
+
[34mℹ[39m [2mdist/[22m[1mapi/fragment-instantiator.js[22m [2m22.15 kB[22m [2m│ gzip: 5.53 kB[22m
|
|
11
|
+
[34mℹ[39m [2mdist/[22m[1mclient/client.js[22m [2m17.87 kB[22m [2m│ gzip: 4.49 kB[22m
|
|
12
|
+
[34mℹ[39m [2mdist/[22m[1mapi/fragment-definition-builder.js[22m [2m11.21 kB[22m [2m│ gzip: 2.30 kB[22m
|
|
13
13
|
[34mℹ[39m [2mdist/[22m[1mtest/test.js[22m [2m 3.67 kB[22m [2m│ gzip: 1.31 kB[22m
|
|
14
|
+
[34mℹ[39m [2mdist/[22m[1mclient/vue.js[22m [2m 3.30 kB[22m [2m│ gzip: 1.06 kB[22m
|
|
14
15
|
[34mℹ[39m [2mdist/[22m[1mclient/client.svelte.js[22m [2m 3.20 kB[22m [2m│ gzip: 0.91 kB[22m
|
|
15
16
|
[34mℹ[39m [2mdist/[22m[1mclient/solid.js[22m [2m 2.95 kB[22m [2m│ gzip: 0.91 kB[22m
|
|
16
|
-
[34mℹ[39m [2mdist/[22m[1mclient/vue.js[22m [2m 2.77 kB[22m [2m│ gzip: 0.95 kB[22m
|
|
17
17
|
[34mℹ[39m [2mdist/[22m[1mclient/react.js[22m [2m 2.43 kB[22m [2m│ gzip: 0.89 kB[22m
|
|
18
|
+
[34mℹ[39m [2mdist/[22m[1mmod-client.js[22m [2m 2.24 kB[22m [2m│ gzip: 0.75 kB[22m
|
|
18
19
|
[34mℹ[39m [2mdist/[22m[1mclient/vanilla.js[22m [2m 2.15 kB[22m [2m│ gzip: 0.66 kB[22m
|
|
19
|
-
[34mℹ[39m [2mdist/[22m[1mmod-client.js[22m [2m 1.78 kB[22m [2m│ gzip: 0.64 kB[22m
|
|
20
20
|
[34mℹ[39m [2mdist/[22m[1mapi/request-context-storage.js[22m [2m 1.49 kB[22m [2m│ gzip: 0.75 kB[22m
|
|
21
21
|
[34mℹ[39m [2mdist/[22m[1mintegrations/react-ssr.js[22m [2m 1.26 kB[22m [2m│ gzip: 0.64 kB[22m
|
|
22
22
|
[34mℹ[39m [2mdist/[22m[1mapi/route.js[22m [2m 0.67 kB[22m [2m│ gzip: 0.34 kB[22m
|
|
23
|
+
[34mℹ[39m [2mdist/[22m[1minternal/trace-context.js[22m [2m 0.53 kB[22m [2m│ gzip: 0.26 kB[22m
|
|
24
|
+
[34mℹ[39m [2mdist/[22m[1mmod.js[22m [2m 0.39 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
23
25
|
[34mℹ[39m [2mdist/[22m[1mrequest/request.js[22m [2m 0.37 kB[22m [2m│ gzip: 0.13 kB[22m
|
|
24
|
-
[34mℹ[39m [2mdist/[22m[1mmod.js[22m [2m 0.31 kB[22m [2m│ gzip: 0.15 kB[22m
|
|
25
26
|
[34mℹ[39m [2mdist/[22m[1minternal/symbols.js[22m [2m 0.31 kB[22m [2m│ gzip: 0.22 kB[22m
|
|
26
27
|
[34mℹ[39m [2mdist/[22m[1mapi/api.js[22m [2m 0.25 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
27
28
|
[34mℹ[39m [2mdist/[22m[1mapi/shared-types.js[22m [2m 0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
28
|
-
[34mℹ[39m [2mdist/[22mapi/fragment-instantiator.js.map [
|
|
29
|
-
[34mℹ[39m [2mdist/[22mclient/client.js.map [
|
|
30
|
-
[34mℹ[39m [2mdist/[22mapi/fragment-definition-builder.js.map [2m36.
|
|
31
|
-
[34mℹ[39m [2mdist/[22mapi/route.js.map [2m14.
|
|
29
|
+
[34mℹ[39m [2mdist/[22mapi/fragment-instantiator.js.map [2m63.09 kB[22m [2m│ gzip: 14.46 kB[22m
|
|
30
|
+
[34mℹ[39m [2mdist/[22mclient/client.js.map [2m50.89 kB[22m [2m│ gzip: 11.58 kB[22m
|
|
31
|
+
[34mℹ[39m [2mdist/[22mapi/fragment-definition-builder.js.map [2m36.74 kB[22m [2m│ gzip: 5.80 kB[22m
|
|
32
|
+
[34mℹ[39m [2mdist/[22mapi/route.js.map [2m14.07 kB[22m [2m│ gzip: 2.38 kB[22m
|
|
32
33
|
[34mℹ[39m [2mdist/[22mapi/internal/path.js.map [2m11.83 kB[22m [2m│ gzip: 3.06 kB[22m
|
|
34
|
+
[34mℹ[39m [2mdist/[22mclient/vue.js.map [2m11.80 kB[22m [2m│ gzip: 3.17 kB[22m
|
|
33
35
|
[34mℹ[39m [2mdist/[22mclient/client.svelte.js.map [2m11.35 kB[22m [2m│ gzip: 2.76 kB[22m
|
|
36
|
+
[34mℹ[39m [2mdist/[22mapi/request-input-context.js.map [2m11.05 kB[22m [2m│ gzip: 3.01 kB[22m
|
|
34
37
|
[34mℹ[39m [2mdist/[22mclient/solid.js.map [2m11.00 kB[22m [2m│ gzip: 2.79 kB[22m
|
|
35
38
|
[34mℹ[39m [2mdist/[22mclient/internal/ndjson-streaming.js.map [2m10.96 kB[22m [2m│ gzip: 3.00 kB[22m
|
|
36
|
-
[34mℹ[39m [2mdist/[
|
|
37
|
-
[34mℹ[39m [2mdist/[22mclient/client.d.ts.map [2m10.
|
|
39
|
+
[34mℹ[39m [2mdist/[22mapi/fragment-instantiator.d.ts.map [2m10.48 kB[22m [2m│ gzip: 3.95 kB[22m
|
|
40
|
+
[34mℹ[39m [2mdist/[22mclient/client.d.ts.map [2m10.19 kB[22m [2m│ gzip: 3.78 kB[22m
|
|
38
41
|
[34mℹ[39m [2mdist/[22mclient/react.js.map [2m 9.54 kB[22m [2m│ gzip: 3.03 kB[22m
|
|
39
42
|
[34mℹ[39m [2mdist/[22mclient/vanilla.js.map [2m 9.20 kB[22m [2m│ gzip: 2.32 kB[22m
|
|
40
|
-
[34mℹ[39m [2mdist/[22mapi/fragment-
|
|
41
|
-
[34mℹ[39m [2mdist/[
|
|
42
|
-
[34mℹ[39m [2mdist/[22mtest/test.js.map [2m 8.55 kB[22m [2m│ gzip: 2.44 kB[22m
|
|
43
|
-
[34mℹ[39m [2mdist/[22mapi/request-input-context.js.map [2m 8.29 kB[22m [2m│ gzip: 2.40 kB[22m
|
|
43
|
+
[34mℹ[39m [2mdist/[22mapi/fragment-definition-builder.d.ts.map [2m 8.81 kB[22m [2m│ gzip: 3.52 kB[22m
|
|
44
|
+
[34mℹ[39m [2mdist/[22mtest/test.js.map [2m 8.80 kB[22m [2m│ gzip: 2.50 kB[22m
|
|
44
45
|
[34mℹ[39m [2mdist/[22mapi/request-output-context.js.map [2m 7.53 kB[22m [2m│ gzip: 2.29 kB[22m
|
|
46
|
+
[34mℹ[39m [2mdist/[22mmod-client.js.map [2m 6.52 kB[22m [2m│ gzip: 1.78 kB[22m
|
|
45
47
|
[34mℹ[39m [2mdist/[22mclient/client-error.js.map [2m 5.88 kB[22m [2m│ gzip: 1.70 kB[22m
|
|
46
|
-
[34mℹ[39m [2mdist/[22mapi/route.d.ts.map [2m 5.
|
|
47
|
-
[34mℹ[39m [2mdist/[22mapi/request-middleware.js.map [2m 5.
|
|
48
|
+
[34mℹ[39m [2mdist/[22mapi/route.d.ts.map [2m 5.79 kB[22m [2m│ gzip: 2.19 kB[22m
|
|
49
|
+
[34mℹ[39m [2mdist/[22mapi/request-middleware.js.map [2m 5.68 kB[22m [2m│ gzip: 1.97 kB[22m
|
|
50
|
+
[34mℹ[39m [2mdist/[22mapi/request-input-context.js [2m 5.34 kB[22m [2m│ gzip: 1.58 kB[22m
|
|
51
|
+
[34mℹ[39m [2mdist/[22mapi/api.js.map [2m 5.19 kB[22m [2m│ gzip: 1.38 kB[22m
|
|
48
52
|
[34mℹ[39m [2mdist/[22mclient/internal/ndjson-streaming.js [2m 4.96 kB[22m [2m│ gzip: 1.46 kB[22m
|
|
49
|
-
[34mℹ[39m [2mdist/[22mmod-client.js.map [2m 4.81 kB[22m [2m│ gzip: 1.45 kB[22m
|
|
50
|
-
[34mℹ[39m [2mdist/[22mapi/api.js.map [2m 4.37 kB[22m [2m│ gzip: 1.09 kB[22m
|
|
51
53
|
[34mℹ[39m [2mdist/[22mapi/internal/response-stream.js.map [2m 4.28 kB[22m [2m│ gzip: 1.80 kB[22m
|
|
52
54
|
[34mℹ[39m [2mdist/[22mapi/fragno-response.js.map [2m 4.18 kB[22m [2m│ gzip: 1.47 kB[22m
|
|
53
55
|
[34mℹ[39m [2mdist/[22mutil/async.js.map [2m 3.84 kB[22m [2m│ gzip: 1.53 kB[22m
|
|
54
56
|
[34mℹ[39m [2mdist/[22mapi/mutable-request-state.js.map [2m 3.76 kB[22m [2m│ gzip: 1.34 kB[22m
|
|
55
57
|
[34mℹ[39m [2mdist/[22mapi/request-output-context.js [2m 3.38 kB[22m [2m│ gzip: 1.02 kB[22m
|
|
56
|
-
[34mℹ[39m [2mdist/[22mapi/request-input-context.js [2m 3.34 kB[22m [2m│ gzip: 1.10 kB[22m
|
|
57
58
|
[34mℹ[39m [2mdist/[22mutil/content-type.js.map [2m 3.24 kB[22m [2m│ gzip: 1.23 kB[22m
|
|
58
59
|
[34mℹ[39m [2mdist/[22mclient/client-error.js [2m 3.17 kB[22m [2m│ gzip: 0.91 kB[22m
|
|
59
60
|
[34mℹ[39m [2mdist/[22mutil/ssr.js.map [2m 2.95 kB[22m [2m│ gzip: 1.24 kB[22m
|
|
60
61
|
[34mℹ[39m [2mdist/[22mapi/request-context-storage.js.map [2m 2.94 kB[22m [2m│ gzip: 1.21 kB[22m
|
|
61
62
|
[34mℹ[39m [2mdist/[22mclient/vanilla.d.ts.map [2m 2.89 kB[22m [2m│ gzip: 1.10 kB[22m
|
|
62
63
|
[34mℹ[39m [2mdist/[22mclient/react.d.ts.map [2m 2.64 kB[22m [2m│ gzip: 1.17 kB[22m
|
|
64
|
+
[34mℹ[39m [2mdist/[22mclient/vue.d.ts.map [2m 2.50 kB[22m [2m│ gzip: 1.09 kB[22m
|
|
63
65
|
[34mℹ[39m [2mdist/[22mclient/solid.d.ts.map [2m 2.44 kB[22m [2m│ gzip: 1.06 kB[22m
|
|
64
66
|
[34mℹ[39m [2mdist/[22mclient/internal/fetcher-merge.js.map [2m 2.44 kB[22m [2m│ gzip: 0.96 kB[22m
|
|
65
67
|
[34mℹ[39m [2mdist/[22mutil/nanostores.js.map [2m 2.43 kB[22m [2m│ gzip: 0.87 kB[22m
|
|
@@ -67,31 +69,34 @@
|
|
|
67
69
|
[34mℹ[39m [2mdist/[22mclient/client.svelte.d.ts.map [2m 2.32 kB[22m [2m│ gzip: 0.97 kB[22m
|
|
68
70
|
[34mℹ[39m [2mdist/[22mapi/internal/path.js [2m 2.23 kB[22m [2m│ gzip: 0.79 kB[22m
|
|
69
71
|
[34mℹ[39m [2mdist/[22mapi/request-middleware.js [2m 2.17 kB[22m [2m│ gzip: 0.79 kB[22m
|
|
70
|
-
[34mℹ[39m [2mdist/[
|
|
71
|
-
[34mℹ[39m [2mdist/[22mapi/api.d.ts.map [2m 1.
|
|
72
|
+
[34mℹ[39m [2mdist/[22mruntime.js.map [2m 2.04 kB[22m [2m│ gzip: 0.86 kB[22m
|
|
73
|
+
[34mℹ[39m [2mdist/[22mapi/api.d.ts.map [2m 1.99 kB[22m [2m│ gzip: 0.90 kB[22m
|
|
72
74
|
[34mℹ[39m [2mdist/[22mapi/error.js.map [2m 1.96 kB[22m [2m│ gzip: 0.76 kB[22m
|
|
73
75
|
[34mℹ[39m [2mdist/[22mapi/bind-services.js.map [2m 1.96 kB[22m [2m│ gzip: 0.85 kB[22m
|
|
74
76
|
[34mℹ[39m [2mdist/[22mapi/internal/response-stream.js [2m 1.76 kB[22m [2m│ gzip: 0.73 kB[22m
|
|
77
|
+
[34mℹ[39m [2mdist/[22mapi/request-input-context.d.ts.map [2m 1.67 kB[22m [2m│ gzip: 0.72 kB[22m
|
|
75
78
|
[34mℹ[39m [2mdist/[22mintegrations/react-ssr.js.map [2m 1.65 kB[22m [2m│ gzip: 0.84 kB[22m
|
|
76
79
|
[34mℹ[39m [2mdist/[22mapi/fragno-response.js [2m 1.65 kB[22m [2m│ gzip: 0.69 kB[22m
|
|
80
|
+
[34mℹ[39m [2mdist/[22mtest/test.d.ts.map [2m 1.64 kB[22m [2m│ gzip: 0.76 kB[22m
|
|
77
81
|
[34mℹ[39m [2mdist/[22mutil/content-type.js [2m 1.61 kB[22m [2m│ gzip: 0.69 kB[22m
|
|
78
82
|
[34mℹ[39m [2mdist/[22mapi/internal/path.d.ts.map [2m 1.58 kB[22m [2m│ gzip: 0.72 kB[22m
|
|
79
|
-
[34mℹ[39m [2mdist/[22mapi/request-
|
|
80
|
-
[34mℹ[39m [2mdist/[
|
|
83
|
+
[34mℹ[39m [2mdist/[22mapi/request-middleware.d.ts.map [2m 1.53 kB[22m [2m│ gzip: 0.71 kB[22m
|
|
84
|
+
[34mℹ[39m [2mdist/[22minternal/trace-context.js.map [2m 1.36 kB[22m [2m│ gzip: 0.61 kB[22m
|
|
81
85
|
[34mℹ[39m [2mdist/[22mutil/ssr.js [2m 1.34 kB[22m [2m│ gzip: 0.59 kB[22m
|
|
82
86
|
[34mℹ[39m [2mdist/[22mapi/request-output-context.d.ts.map [2m 1.29 kB[22m [2m│ gzip: 0.60 kB[22m
|
|
83
87
|
[34mℹ[39m [2mdist/[22mclient/client-error.d.ts.map [2m 1.26 kB[22m [2m│ gzip: 0.55 kB[22m
|
|
84
88
|
[34mℹ[39m [2mdist/[22mutil/nanostores.js [2m 1.25 kB[22m [2m│ gzip: 0.47 kB[22m
|
|
85
89
|
[34mℹ[39m [2mdist/[22mclient/internal/fetcher-merge.js [2m 1.23 kB[22m [2m│ gzip: 0.55 kB[22m
|
|
86
90
|
[34mℹ[39m [2mdist/[22mutil/async.js [2m 1.19 kB[22m [2m│ gzip: 0.57 kB[22m
|
|
87
|
-
[34mℹ[39m [2mdist/[22mtest/test.d.ts.map [2m 1.07 kB[22m [2m│ gzip: 0.55 kB[22m
|
|
88
91
|
[34mℹ[39m [2mdist/[22mapi/error.js [2m 0.96 kB[22m [2m│ gzip: 0.38 kB[22m
|
|
92
|
+
[34mℹ[39m [2mdist/[22mruntime.js [2m 0.94 kB[22m [2m│ gzip: 0.51 kB[22m
|
|
89
93
|
[34mℹ[39m [2mdist/[22mapi/bind-services.js [2m 0.79 kB[22m [2m│ gzip: 0.40 kB[22m
|
|
90
94
|
[34mℹ[39m [2mdist/[22mapi/error.d.ts.map [2m 0.58 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
91
95
|
[34mℹ[39m [2mdist/[22mhttp/http-status.d.ts.map [2m 0.56 kB[22m [2m│ gzip: 0.25 kB[22m
|
|
92
96
|
[34mℹ[39m [2mdist/[22mapi/request-context-storage.d.ts.map [2m 0.56 kB[22m [2m│ gzip: 0.31 kB[22m
|
|
93
97
|
[34mℹ[39m [2mdist/[22mapi/route-handler-input-options.d.ts.map [2m 0.54 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
94
98
|
[34mℹ[39m [2mdist/[22mapi/internal/route.js.map [2m 0.50 kB[22m [2m│ gzip: 0.32 kB[22m
|
|
99
|
+
[34mℹ[39m [2mdist/[22minternal/trace-context.d.ts.map [2m 0.48 kB[22m [2m│ gzip: 0.27 kB[22m
|
|
95
100
|
[34mℹ[39m [2mdist/[22mapi/bind-services.d.ts.map [2m 0.47 kB[22m [2m│ gzip: 0.28 kB[22m
|
|
96
101
|
[34mℹ[39m [2mdist/[22mapi/internal/response-stream.d.ts.map [2m 0.37 kB[22m [2m│ gzip: 0.26 kB[22m
|
|
97
102
|
[34mℹ[39m [2mdist/[22mapi/fragno-response.d.ts.map [2m 0.37 kB[22m [2m│ gzip: 0.23 kB[22m
|
|
@@ -99,31 +104,33 @@
|
|
|
99
104
|
[34mℹ[39m [2mdist/[22mapi/shared-types.d.ts.map [2m 0.31 kB[22m [2m│ gzip: 0.23 kB[22m
|
|
100
105
|
[34mℹ[39m [2mdist/[22mapi/internal/route.js [2m 0.28 kB[22m [2m│ gzip: 0.20 kB[22m
|
|
101
106
|
[34mℹ[39m [2mdist/[22mapi/mutable-request-state.d.ts.map [2m 0.28 kB[22m [2m│ gzip: 0.19 kB[22m
|
|
102
|
-
[34mℹ[39m [2mdist/[22mmod-client.d.ts.map [2m 0.24 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
103
107
|
[34mℹ[39m [2mdist/[22mintegrations/react-ssr.d.ts.map [2m 0.23 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
104
108
|
[34mℹ[39m [2mdist/[22mutil/types-util.d.ts.map [2m 0.21 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
109
|
+
[34mℹ[39m [2mdist/[22mruntime.d.ts.map [2m 0.19 kB[22m [2m│ gzip: 0.15 kB[22m
|
|
110
|
+
[34mℹ[39m [2mdist/[22mmod-client.d.ts.map [2m 0.16 kB[22m [2m│ gzip: 0.14 kB[22m
|
|
105
111
|
[34mℹ[39m [2mdist/[22minternal/symbols.d.ts.map [2m 0.14 kB[22m [2m│ gzip: 0.13 kB[22m
|
|
106
|
-
[34mℹ[39m [2mdist/[22m[32m[1mapi/fragment-definition-builder.d.ts[22m[39m [
|
|
107
|
-
[34mℹ[39m [2mdist/[22m[32m[1mapi/fragment-instantiator.d.ts[22m[39m [
|
|
108
|
-
[34mℹ[39m [2mdist/[22m[32m[1mclient/client.d.ts[22m[39m [2m13.
|
|
109
|
-
[34mℹ[39m [2mdist/[22m[32m[1mapi/route.d.ts[22m[39m [2m 7.
|
|
110
|
-
[34mℹ[39m [2mdist/[22m[32m[1mtest/test.d.ts[22m[39m [2m 5.
|
|
112
|
+
[34mℹ[39m [2mdist/[22m[32m[1mapi/fragment-definition-builder.d.ts[22m[39m [2m17.06 kB[22m [2m│ gzip: 3.40 kB[22m
|
|
113
|
+
[34mℹ[39m [2mdist/[22m[32m[1mapi/fragment-instantiator.d.ts[22m[39m [2m16.86 kB[22m [2m│ gzip: 3.63 kB[22m
|
|
114
|
+
[34mℹ[39m [2mdist/[22m[32m[1mclient/client.d.ts[22m[39m [2m13.91 kB[22m [2m│ gzip: 3.15 kB[22m
|
|
115
|
+
[34mℹ[39m [2mdist/[22m[32m[1mapi/route.d.ts[22m[39m [2m 7.07 kB[22m [2m│ gzip: 1.09 kB[22m
|
|
116
|
+
[34mℹ[39m [2mdist/[22m[32m[1mtest/test.d.ts[22m[39m [2m 5.30 kB[22m [2m│ gzip: 1.57 kB[22m
|
|
117
|
+
[34mℹ[39m [2mdist/[22m[32m[1mapi/api.d.ts[22m[39m [2m 3.93 kB[22m [2m│ gzip: 1.17 kB[22m
|
|
111
118
|
[34mℹ[39m [2mdist/[22m[32m[1mclient/vanilla.d.ts[22m[39m [2m 3.70 kB[22m [2m│ gzip: 1.04 kB[22m
|
|
112
119
|
[34mℹ[39m [2mdist/[22m[32m[1mclient/react.d.ts[22m[39m [2m 3.48 kB[22m [2m│ gzip: 1.17 kB[22m
|
|
113
|
-
[34mℹ[39m [2mdist/[22m[32m[
|
|
120
|
+
[34mℹ[39m [2mdist/[22m[32m[1mclient/vue.d.ts[22m[39m [2m 3.18 kB[22m [2m│ gzip: 1.00 kB[22m
|
|
114
121
|
[34mℹ[39m [2mdist/[22m[32m[1mclient/solid.d.ts[22m[39m [2m 3.14 kB[22m [2m│ gzip: 0.95 kB[22m
|
|
115
122
|
[34mℹ[39m [2mdist/[22m[32m[1mclient/client.svelte.d.ts[22m[39m [2m 2.88 kB[22m [2m│ gzip: 0.81 kB[22m
|
|
116
|
-
[34mℹ[39m [2mdist/[22m[32m[1mclient/vue.d.ts[22m[39m [2m 2.82 kB[22m [2m│ gzip: 0.91 kB[22m
|
|
117
|
-
[34mℹ[39m [2mdist/[22m[32m[1mmod-client.d.ts[22m[39m [2m 1.83 kB[22m [2m│ gzip: 0.56 kB[22m
|
|
118
123
|
[34mℹ[39m [2mdist/[22m[32m[1mapi/request-context-storage.d.ts[22m[39m [2m 1.79 kB[22m [2m│ gzip: 0.80 kB[22m
|
|
124
|
+
[34mℹ[39m [2mdist/[22m[32m[1mmod-client.d.ts[22m[39m [2m 1.45 kB[22m [2m│ gzip: 0.47 kB[22m
|
|
125
|
+
[34mℹ[39m [2mdist/[22m[32m[1mmod.d.ts[22m[39m [2m 1.33 kB[22m [2m│ gzip: 0.39 kB[22m
|
|
119
126
|
[34mℹ[39m [2mdist/[22m[32m[1mapi/shared-types.d.ts[22m[39m [2m 1.21 kB[22m [2m│ gzip: 0.51 kB[22m
|
|
120
|
-
[34mℹ[39m [2mdist/[22m[32m[
|
|
127
|
+
[34mℹ[39m [2mdist/[22m[32m[1minternal/trace-context.d.ts[22m[39m [2m 0.84 kB[22m [2m│ gzip: 0.38 kB[22m
|
|
121
128
|
[34mℹ[39m [2mdist/[22m[32m[1mintegrations/react-ssr.d.ts[22m[39m [2m 0.78 kB[22m [2m│ gzip: 0.38 kB[22m
|
|
122
129
|
[34mℹ[39m [2mdist/[22m[32m[1mrequest/request.d.ts[22m[39m [2m 0.48 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
123
130
|
[34mℹ[39m [2mdist/[22m[32m[1minternal/symbols.d.ts[22m[39m [2m 0.32 kB[22m [2m│ gzip: 0.22 kB[22m
|
|
124
|
-
[34mℹ[39m [2mdist/[22m[32mapi/request-input-context.d.ts[39m [2m
|
|
131
|
+
[34mℹ[39m [2mdist/[22m[32mapi/request-input-context.d.ts[39m [2m 4.59 kB[22m [2m│ gzip: 1.42 kB[22m
|
|
125
132
|
[34mℹ[39m [2mdist/[22m[32mapi/internal/path.d.ts[39m [2m 2.91 kB[22m [2m│ gzip: 0.97 kB[22m
|
|
126
|
-
[34mℹ[39m [2mdist/[22m[32mapi/request-middleware.d.ts[39m [2m 2.
|
|
133
|
+
[34mℹ[39m [2mdist/[22m[32mapi/request-middleware.d.ts[39m [2m 2.55 kB[22m [2m│ gzip: 0.90 kB[22m
|
|
127
134
|
[34mℹ[39m [2mdist/[22m[32mclient/client-error.d.ts[39m [2m 2.45 kB[22m [2m│ gzip: 0.81 kB[22m
|
|
128
135
|
[34mℹ[39m [2mdist/[22m[32mapi/mutable-request-state.d.ts[39m [2m 2.29 kB[22m [2m│ gzip: 0.90 kB[22m
|
|
129
136
|
[34mℹ[39m [2mdist/[22m[32mapi/request-output-context.d.ts[39m [2m 1.64 kB[22m [2m│ gzip: 0.64 kB[22m
|
|
@@ -134,5 +141,6 @@
|
|
|
134
141
|
[34mℹ[39m [2mdist/[22m[32mapi/fragno-response.d.ts[39m [2m 0.60 kB[22m [2m│ gzip: 0.30 kB[22m
|
|
135
142
|
[34mℹ[39m [2mdist/[22m[32mapi/bind-services.d.ts[39m [2m 0.42 kB[22m [2m│ gzip: 0.25 kB[22m
|
|
136
143
|
[34mℹ[39m [2mdist/[22m[32mutil/types-util.d.ts[39m [2m 0.35 kB[22m [2m│ gzip: 0.23 kB[22m
|
|
137
|
-
[34mℹ[39m
|
|
138
|
-
[
|
|
144
|
+
[34mℹ[39m [2mdist/[22m[32mruntime.d.ts[39m [2m 0.33 kB[22m [2m│ gzip: 0.20 kB[22m
|
|
145
|
+
[34mℹ[39m 135 files, total: 619.46 kB
|
|
146
|
+
[32m✔[39m Build complete in [32m14026ms[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,56 @@
|
|
|
1
1
|
# @fragno-dev/core
|
|
2
2
|
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 301e2f8: pathParams in RequestInputContext now returns decoded values
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- f569301: feat(vue): add `createStore` support to Vue client, matching React client functionality.
|
|
12
|
+
The `useFragno` hook now handles `FragnoStoreData` objects created via `client.createStore()` and
|
|
13
|
+
transforms them into Vue composables that return reactive store values.
|
|
14
|
+
- 20a98f8: feat: expose internal outbox route under /\_internal when outbox is enabled
|
|
15
|
+
- 7e1eb47: feat(db): add processAt scheduling and reusable durable hooks dispatchers.
|
|
16
|
+
- 5f6f90e: feat: add FormData file upload support for routes
|
|
17
|
+
|
|
18
|
+
Routes can now accept file uploads via FormData by setting `contentType: "multipart/form-data"` on
|
|
19
|
+
the route definition. The server validates incoming Content-Type headers and rejects mismatched
|
|
20
|
+
requests with 415 Unsupported Media Type.
|
|
21
|
+
|
|
22
|
+
**Route definition:**
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
defineRoute({
|
|
26
|
+
method: "POST",
|
|
27
|
+
path: "/upload",
|
|
28
|
+
contentType: "multipart/form-data",
|
|
29
|
+
async handler(ctx, res) {
|
|
30
|
+
const formData = ctx.formData();
|
|
31
|
+
const file = formData.get("file") as File;
|
|
32
|
+
return res.json({ filename: file.name });
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**New APIs:**
|
|
38
|
+
- `ctx.formData()` - Access the request body as FormData
|
|
39
|
+
- `ctx.isFormData()` - Check if the request body is FormData
|
|
40
|
+
- `RouteContentType` - Type for the `contentType` field ("application/json" |
|
|
41
|
+
"multipart/form-data")
|
|
42
|
+
|
|
43
|
+
**Client-side:** The client automatically detects FormData/File in request bodies and sends them
|
|
44
|
+
with the correct Content-Type header (letting the browser set the multipart boundary).
|
|
45
|
+
|
|
46
|
+
- 2eafef4: fix(core): handle ReadableStream request bodies for fetch and validation.
|
|
47
|
+
- 7d7b2b9: fix(core): run internal fragment middleware and type internal routes in ifMatchesRoute
|
|
48
|
+
- a79e90d: feat: add trace recording support to model checker runs
|
|
49
|
+
- 7c60341: fix(core): make browser stubs proxy-safe for extra chaining methods.
|
|
50
|
+
- afb06a4: feat(core,wf): add FragnoRuntime defaults and require runtime in workflows config.
|
|
51
|
+
- 53e5f97: fix(core,fragment-upload): honor client mount routes and avoid upload config crashes.
|
|
52
|
+
- c5fd7b3: feat(core): support application/octet-stream request bodies
|
|
53
|
+
|
|
3
54
|
## 0.1.11
|
|
4
55
|
|
|
5
56
|
### Patch Changes
|
package/dist/api/api.d.ts
CHANGED
|
@@ -18,9 +18,27 @@ type PathError<T extends string, TMessage extends string> = T & [`Error: ${TMess
|
|
|
18
18
|
*/
|
|
19
19
|
type ValidPath<T extends string = string> = T extends `/${infer Rest}` ? Rest extends "" ? PathError<T, "Path cannot be just '/'."> : T extends `${string}/` ? PathError<T, "Path cannot end with '/'."> : T : PathError<T, "Path must start with '/'.">;
|
|
20
20
|
interface RequestThisContext {}
|
|
21
|
+
/**
|
|
22
|
+
* Content types that can be accepted by a route.
|
|
23
|
+
*
|
|
24
|
+
* - `"application/json"` (default): JSON request body, validated against inputSchema
|
|
25
|
+
* - `"multipart/form-data"`: FormData request body (file uploads), no schema validation
|
|
26
|
+
*/
|
|
27
|
+
type RouteContentType = "application/json" | "multipart/form-data" | "application/octet-stream";
|
|
21
28
|
interface FragnoRouteConfig<TMethod extends HTTPMethod, TPath extends string, TInputSchema extends StandardSchemaV1$1 | undefined, TOutputSchema extends StandardSchemaV1$1 | undefined, TErrorCode extends string = string, TQueryParameters extends string = string, TThisContext extends RequestThisContext = RequestThisContext> {
|
|
22
29
|
method: TMethod;
|
|
23
30
|
path: TPath;
|
|
31
|
+
/**
|
|
32
|
+
* The expected content type for this route's request body.
|
|
33
|
+
*
|
|
34
|
+
* - `"application/json"` (default): Expects JSON body, will be validated against inputSchema
|
|
35
|
+
* - `"multipart/form-data"`: Expects FormData body (for file uploads), use `ctx.formData()` in handler
|
|
36
|
+
*
|
|
37
|
+
* The server will reject requests with mismatched Content-Type headers.
|
|
38
|
+
*
|
|
39
|
+
* @default "application/json"
|
|
40
|
+
*/
|
|
41
|
+
contentType?: RouteContentType;
|
|
24
42
|
inputSchema?: TInputSchema;
|
|
25
43
|
outputSchema?: TOutputSchema;
|
|
26
44
|
errorCodes?: readonly TErrorCode[];
|
|
@@ -34,5 +52,5 @@ declare function addRoute<TMethod extends HTTPMethod, TPath extends string, TInp
|
|
|
34
52
|
inputSchema: TInputSchema;
|
|
35
53
|
}): FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext>;
|
|
36
54
|
//#endregion
|
|
37
|
-
export { FragnoApiError, FragnoApiValidationError, type FragnoPublicConfig, FragnoRouteConfig, HTTPMethod, NonGetHTTPMethod, RequestThisContext, type RouteHandlerInputOptions, type StandardSchemaV1, ValidPath, addRoute };
|
|
55
|
+
export { FragnoApiError, FragnoApiValidationError, type FragnoPublicConfig, FragnoRouteConfig, HTTPMethod, NonGetHTTPMethod, RequestThisContext, RouteContentType, type RouteHandlerInputOptions, type StandardSchemaV1, ValidPath, addRoute };
|
|
38
56
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/api/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","names":[],"sources":["../../src/api/api.ts"],"sourcesContent":[],"mappings":";;;;;;;;KAMY,UAAA;KACA,gBAAA,GAAmB,QAAQ;KAGlC,uDAAuD,eAAe;;AAJ3E;AACA;AAA0D;AAY1D;;;AAEgB,KAFJ,SAEI,CAAA,UAAA,MAAA,GAAA,MAAA,CAAA,GAFmC,CAEnC,SAAA,IAAA,KAAA,KAAA,EAAA,GADZ,IACY,SAAA,EAAA,GAAV,SAAU,CAAA,CAAA,EAAA,0BAAA,CAAA,GACV,CADU,SAAA,GAAA,MAAA,GAAA,GAER,SAFQ,CAEE,CAFF,EAAA,2BAAA,CAAA,GAGR,CAHQ,GAIZ,SAJY,CAIF,CAJE,EAAA,2BAAA,CAAA;AAAV,UAMW,kBAAA,CANX;
|
|
1
|
+
{"version":3,"file":"api.d.ts","names":[],"sources":["../../src/api/api.ts"],"sourcesContent":[],"mappings":";;;;;;;;KAMY,UAAA;KACA,gBAAA,GAAmB,QAAQ;KAGlC,uDAAuD,eAAe;;AAJ3E;AACA;AAA0D;AAY1D;;;AAEgB,KAFJ,SAEI,CAAA,UAAA,MAAA,GAAA,MAAA,CAAA,GAFmC,CAEnC,SAAA,IAAA,KAAA,KAAA,EAAA,GADZ,IACY,SAAA,EAAA,GAAV,SAAU,CAAA,CAAA,EAAA,0BAAA,CAAA,GACV,CADU,SAAA,GAAA,MAAA,GAAA,GAER,SAFQ,CAEE,CAFF,EAAA,2BAAA,CAAA,GAGR,CAHQ,GAIZ,SAJY,CAIF,CAJE,EAAA,2BAAA,CAAA;AAAV,UAMW,kBAAA,CANX;;;;;;;AAMW,KAQL,gBAAA,GARuB,kBAAA,GAAA,qBAAA,GAAA,0BAAA;AAQvB,UAKK,iBALW,CAAA,gBAMV,UANU,EAAA,cAAA,MAAA,EAAA,qBAQL,kBARK,GAAA,SAAA,EAAA,sBASJ,kBATI,GAAA,SAAA,EAAA,mBAAA,MAAA,GAAA,MAAA,EAAA,yBAAA,MAAA,GAAA,MAAA,EAAA,qBAYL,kBAZK,GAYgB,kBAZhB,CAAA,CAAA;EAKX,MAAA,EASP,OATO;EACC,IAAA,EASV,KATU;EAEK;;;;;;;;;;EAsBM,WAAA,CAAA,EAJb,gBAIa;EAEnB,WAAA,CAAA,EALM,YAKN;EACwB,YAAA,CAAA,EALjB,aAKiB;EAAO,UAAA,CAAA,EAAA,SAJjB,UAIiB,EAAA;EAA3B,eAAA,CAAA,EAAA,SAHe,gBAGf,EAAA;EACsB,OAAA,CAAA,IAAA,EAF1B,YAE0B,EAAA,QAAA,EADtB,mBACsB,CADF,KACE,EADK,YACL,CAAA,EAAA,SAAA,EAArB,oBAAqB,CAAA,aAAA,EAAe,UAAf,CAAA,CAAA,EAC/B,OAD+B,CACvB,QADuB,CAAA;;AAArB,iBAKC,QALD,CAAA,gBAMG,UANH,EAAA,cAAA,MAAA,EAAA,sBAQS,kBART,GAAA,SAAA,EAAA,mBAAA,MAAA,GAAA,MAAA,EAAA,yBAAA,MAAA,GAAA,MAAA,EAAA,qBAWQ,kBAXR,GAW6B,kBAX7B,CAAA,CAAA,KAAA,EAaN,iBAbM,CAcX,OAdW,EAeX,SAfW,CAeD,KAfC,CAAA,EAAA,SAAA,EAiBX,aAjBW,EAkBX,UAlBW,EAmBX,gBAnBW,EAoBX,YApBW,CAAA,GAAA;EACF,WAAA,CAAA,EAAA,SAAA;CAAR,CAAA,EAqBF,iBArBE,CAsBH,OAtBG,EAuBH,KAvBG,EAAA,SAAA,EAyBH,aAzBG,EA0BH,UA1BG,EA2BH,gBA3BG,EA4BH,YA5BG,CAAA;AAAO,iBAgCI,QAhCJ,CAAA,gBAiCM,UAjCN,EAAA,cAAA,MAAA,EAAA,qBAmCW,kBAnCX,EAAA,sBAoCY,kBApCZ,GAAA,SAAA,EAAA,mBAAA,MAAA,GAAA,MAAA,EAAA,yBAAA,MAAA,GAAA,MAAA,EAAA,qBAuCW,kBAvCX,GAuCgC,kBAvChC,CAAA,CAAA,KAAA,EAyCH,iBAzCG,CA0CR,OA1CQ,EA2CR,SA3CQ,CA2CE,KA3CF,CAAA,EA4CR,YA5CQ,EA6CR,aA7CQ,EA8CR,UA9CQ,EA+CR,gBA/CQ,EAgDR,YAhDQ,CAAA,GAAA;EAII,WAAQ,EA8CP,YA9CO;CACN,CAAA,EA+Cf,iBA/Ce,CAgDhB,OAhDgB,EAiDhB,KAjDgB,EAkDhB,YAlDgB,EAmDhB,aAnDgB,EAoDhB,UApDgB,EAqDhB,gBArDgB,EAsDhB,YAtDgB,CAAA"}
|
package/dist/api/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","names":[],"sources":["../../src/api/api.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { RequestInputContext } from \"./request-input-context\";\nimport type { RequestOutputContext } from \"./request-output-context\";\n\nexport type { StandardSchemaV1 } from \"@standard-schema/spec\";\n\nexport type HTTPMethod = \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\" | \"HEAD\" | \"OPTIONS\";\nexport type NonGetHTTPMethod = Exclude<HTTPMethod, \"GET\">;\n\n// Helper type to create branded error messages that are still assignable to string\ntype PathError<T extends string, TMessage extends string> = T & [`Error: ${TMessage}`];\n\n/**\n * A valid path string that:\n * - Is non-empty\n * - Starts with \"/\"\n * - Is not just \"/\"\n * - Does not end with \"/\"\n */\nexport type ValidPath<T extends string = string> = T extends `/${infer Rest}`\n ? Rest extends \"\"\n ? PathError<T, \"Path cannot be just '/'.\"> // Excludes \"/\"\n : T extends `${string}/`\n ? PathError<T, \"Path cannot end with '/'.\"> // Excludes paths ending with \"/\"\n : T\n : PathError<T, \"Path must start with '/'.\">; // Excludes paths not starting with \"/\"\n\nexport interface RequestThisContext {}\n\nexport interface FragnoRouteConfig<\n TMethod extends HTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1 | undefined,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string = string,\n TQueryParameters extends string = string,\n TThisContext extends RequestThisContext = RequestThisContext,\n> {\n method: TMethod;\n path: TPath;\n inputSchema?: TInputSchema;\n outputSchema?: TOutputSchema;\n errorCodes?: readonly TErrorCode[];\n queryParameters?: readonly TQueryParameters[];\n handler(\n this: TThisContext,\n inputCtx: RequestInputContext<TPath, TInputSchema>,\n outputCtx: RequestOutputContext<TOutputSchema, TErrorCode>,\n ): Promise<Response>;\n}\n\n// Overload for routes without inputSchema\nexport function addRoute<\n TMethod extends HTTPMethod,\n TPath extends string,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string = string,\n TQueryParameters extends string = string,\n TThisContext extends RequestThisContext = RequestThisContext,\n>(\n route: FragnoRouteConfig<\n TMethod,\n ValidPath<TPath>,\n undefined,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n > & { inputSchema?: undefined },\n): FragnoRouteConfig<\n TMethod,\n TPath,\n undefined,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n>;\n\n// Overload for routes with inputSchema\nexport function addRoute<\n TMethod extends HTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string = string,\n TQueryParameters extends string = string,\n TThisContext extends RequestThisContext = RequestThisContext,\n>(\n route: FragnoRouteConfig<\n TMethod,\n ValidPath<TPath>,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n > & {\n inputSchema: TInputSchema;\n },\n): FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n>;\n\n// Implementation\nexport function addRoute<\n TMethod extends HTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1 | undefined,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string = string,\n TQueryParameters extends string = string,\n TThisContext extends RequestThisContext = RequestThisContext,\n>(\n route: FragnoRouteConfig<\n TMethod,\n ValidPath<TPath>,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n >,\n): FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n> {\n return route;\n}\n\nexport { FragnoApiError, FragnoApiValidationError } from \"./error\";\nexport type { RouteHandlerInputOptions } from \"./route-handler-input-options\";\nexport type { FragnoPublicConfig } from \"./shared-types\";\n"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"api.js","names":[],"sources":["../../src/api/api.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { RequestInputContext } from \"./request-input-context\";\nimport type { RequestOutputContext } from \"./request-output-context\";\n\nexport type { StandardSchemaV1 } from \"@standard-schema/spec\";\n\nexport type HTTPMethod = \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\" | \"HEAD\" | \"OPTIONS\";\nexport type NonGetHTTPMethod = Exclude<HTTPMethod, \"GET\">;\n\n// Helper type to create branded error messages that are still assignable to string\ntype PathError<T extends string, TMessage extends string> = T & [`Error: ${TMessage}`];\n\n/**\n * A valid path string that:\n * - Is non-empty\n * - Starts with \"/\"\n * - Is not just \"/\"\n * - Does not end with \"/\"\n */\nexport type ValidPath<T extends string = string> = T extends `/${infer Rest}`\n ? Rest extends \"\"\n ? PathError<T, \"Path cannot be just '/'.\"> // Excludes \"/\"\n : T extends `${string}/`\n ? PathError<T, \"Path cannot end with '/'.\"> // Excludes paths ending with \"/\"\n : T\n : PathError<T, \"Path must start with '/'.\">; // Excludes paths not starting with \"/\"\n\nexport interface RequestThisContext {}\n\n/**\n * Content types that can be accepted by a route.\n *\n * - `\"application/json\"` (default): JSON request body, validated against inputSchema\n * - `\"multipart/form-data\"`: FormData request body (file uploads), no schema validation\n */\nexport type RouteContentType =\n | \"application/json\"\n | \"multipart/form-data\"\n | \"application/octet-stream\";\n\nexport interface FragnoRouteConfig<\n TMethod extends HTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1 | undefined,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string = string,\n TQueryParameters extends string = string,\n TThisContext extends RequestThisContext = RequestThisContext,\n> {\n method: TMethod;\n path: TPath;\n /**\n * The expected content type for this route's request body.\n *\n * - `\"application/json\"` (default): Expects JSON body, will be validated against inputSchema\n * - `\"multipart/form-data\"`: Expects FormData body (for file uploads), use `ctx.formData()` in handler\n *\n * The server will reject requests with mismatched Content-Type headers.\n *\n * @default \"application/json\"\n */\n contentType?: RouteContentType;\n inputSchema?: TInputSchema;\n outputSchema?: TOutputSchema;\n errorCodes?: readonly TErrorCode[];\n queryParameters?: readonly TQueryParameters[];\n handler(\n this: TThisContext,\n inputCtx: RequestInputContext<TPath, TInputSchema>,\n outputCtx: RequestOutputContext<TOutputSchema, TErrorCode>,\n ): Promise<Response>;\n}\n\n// Overload for routes without inputSchema\nexport function addRoute<\n TMethod extends HTTPMethod,\n TPath extends string,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string = string,\n TQueryParameters extends string = string,\n TThisContext extends RequestThisContext = RequestThisContext,\n>(\n route: FragnoRouteConfig<\n TMethod,\n ValidPath<TPath>,\n undefined,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n > & { inputSchema?: undefined },\n): FragnoRouteConfig<\n TMethod,\n TPath,\n undefined,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n>;\n\n// Overload for routes with inputSchema\nexport function addRoute<\n TMethod extends HTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string = string,\n TQueryParameters extends string = string,\n TThisContext extends RequestThisContext = RequestThisContext,\n>(\n route: FragnoRouteConfig<\n TMethod,\n ValidPath<TPath>,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n > & {\n inputSchema: TInputSchema;\n },\n): FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n>;\n\n// Implementation\nexport function addRoute<\n TMethod extends HTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1 | undefined,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string = string,\n TQueryParameters extends string = string,\n TThisContext extends RequestThisContext = RequestThisContext,\n>(\n route: FragnoRouteConfig<\n TMethod,\n ValidPath<TPath>,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n >,\n): FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n> {\n return route;\n}\n\nexport { FragnoApiError, FragnoApiValidationError } from \"./error\";\nexport type { RouteHandlerInputOptions } from \"./route-handler-input-options\";\nexport type { FragnoPublicConfig } from \"./shared-types\";\n"],"mappings":";;;AAqIA,SAAgB,SASd,OAiBA;AACA,QAAO"}
|
|
@@ -18,11 +18,11 @@ interface ServiceMetadata {
|
|
|
18
18
|
* Callback that instantiates a linked fragment.
|
|
19
19
|
* Receives the same context as the main fragment and returns an instantiated fragment.
|
|
20
20
|
*/
|
|
21
|
-
type LinkedFragmentCallback<TConfig, TOptions extends FragnoPublicConfig, TServiceDependencies> = (context: {
|
|
21
|
+
type LinkedFragmentCallback<TConfig, TOptions extends FragnoPublicConfig, TServiceDependencies, TFragment extends AnyFragnoInstantiatedFragment = AnyFragnoInstantiatedFragment> = (context: {
|
|
22
22
|
config: TConfig;
|
|
23
23
|
options: TOptions;
|
|
24
24
|
serviceDependencies?: TServiceDependencies;
|
|
25
|
-
}) =>
|
|
25
|
+
}) => TFragment;
|
|
26
26
|
/**
|
|
27
27
|
* Extract the services type from a FragnoInstantiatedFragment
|
|
28
28
|
*/
|
|
@@ -125,11 +125,20 @@ interface FragmentDefinition<TConfig, TOptions extends FragnoPublicConfig, TDeps
|
|
|
125
125
|
options: TOptions;
|
|
126
126
|
deps: TDeps;
|
|
127
127
|
}) => RequestContextStorage<TRequestStorage>;
|
|
128
|
+
/**
|
|
129
|
+
* Optional factory for internal data attached to fragment.$internal.
|
|
130
|
+
*/
|
|
131
|
+
internalDataFactory?: (context: {
|
|
132
|
+
config: TConfig;
|
|
133
|
+
options: TOptions;
|
|
134
|
+
deps: TDeps;
|
|
135
|
+
linkedFragments: TLinkedFragments;
|
|
136
|
+
}) => Record<string, unknown> | void;
|
|
128
137
|
/**
|
|
129
138
|
* Optional linked fragments that will be automatically instantiated with this fragment.
|
|
130
139
|
* Linked fragments are service-only and share the same config/options as the parent.
|
|
131
140
|
*/
|
|
132
|
-
linkedFragments?: { [K in keyof TLinkedFragments]: LinkedFragmentCallback<TConfig, TOptions, TServiceDependencies> };
|
|
141
|
+
linkedFragments?: { [K in keyof TLinkedFragments]: LinkedFragmentCallback<TConfig, TOptions, TServiceDependencies, TLinkedFragments[K]> };
|
|
133
142
|
$serviceThisContext?: TServiceThisContext;
|
|
134
143
|
$handlerThisContext?: THandlerThisContext;
|
|
135
144
|
$requestStorage?: TRequestStorage;
|
|
@@ -164,7 +173,7 @@ declare class FragmentDefinitionBuilder<TConfig, TOptions extends FragnoPublicCo
|
|
|
164
173
|
options: TOptions;
|
|
165
174
|
deps: TDeps;
|
|
166
175
|
}) => RequestContextStorage<TRequestStorage>;
|
|
167
|
-
linkedFragments?: { [K in keyof TLinkedFragments]: LinkedFragmentCallback<TConfig, TOptions, TServiceDependencies> };
|
|
176
|
+
linkedFragments?: { [K in keyof TLinkedFragments]: LinkedFragmentCallback<TConfig, TOptions, TServiceDependencies, TLinkedFragments[K]> };
|
|
168
177
|
});
|
|
169
178
|
get name(): string;
|
|
170
179
|
/**
|
|
@@ -290,10 +299,11 @@ declare class FragmentDefinitionBuilder<TConfig, TOptions extends FragnoPublicCo
|
|
|
290
299
|
}): FragmentDefinitionBuilder<TConfig, TOptions, TDeps, TBaseServices, TServices$1, TServiceDependencies, TPrivateServices, TNewServiceThisContext, TNewHandlerThisContext, TRequestStorage, TLinkedFragments>;
|
|
291
300
|
/**
|
|
292
301
|
* Register a linked fragment that will be automatically instantiated.
|
|
293
|
-
* Linked fragments
|
|
294
|
-
*
|
|
302
|
+
* Linked fragments share the same config/options as the parent and their services
|
|
303
|
+
* are exposed as private services. Routes are not exposed by default, but the
|
|
304
|
+
* instantiator may mount internal linked fragment routes under an internal prefix.
|
|
295
305
|
*/
|
|
296
|
-
withLinkedFragment<const TName extends string,
|
|
306
|
+
withLinkedFragment<const TName extends string, TFragment extends AnyFragnoInstantiatedFragment>(name: TName, callback: LinkedFragmentCallback<TConfig, TOptions, TServiceDependencies, TFragment>): FragmentDefinitionBuilder<TConfig, TOptions, TDeps, TBaseServices, TServices$1, TServiceDependencies, TPrivateServices & ExtractLinkedServices<() => TFragment>, TServiceThisContext, THandlerThisContext, TRequestStorage, TLinkedFragments & { [K in TName]: TFragment }>;
|
|
297
307
|
/**
|
|
298
308
|
* Extend this builder with a transformation function.
|
|
299
309
|
* This enables fluent API extensions like `.extend(withDatabase(schema))`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment-definition-builder.d.ts","names":[],"sources":["../../src/api/fragment-definition-builder.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAMiC;AAgBjC,UAXU,eAAA,CAWE;EAEO;
|
|
1
|
+
{"version":3,"file":"fragment-definition-builder.d.ts","names":[],"sources":["../../src/api/fragment-definition-builder.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAMiC;AAgBjC,UAXU,eAAA,CAWE;EAEO;EAEC,IAAA,EAAA,MAAA;EAAgC;EAE1C,QAAA,EAAA,OAAA;;;;;AAQV;AAAuC,KAd3B,sBAc2B,CAAA,OAAA,EAAA,iBAZpB,kBAYoB,EAAA,oBAAA,EAAA,kBAVnB,6BAUmB,GAVa,6BAUb,CAAA,GAAA,CAAA,OAAA,EAAA;EAGlC,MAAA,EAXK,OAWL;EACD,OAAA,EAXO,QAWP;EAAS,mBAAA,CAAA,EAVW,oBAUX;AAMb,CAAA,EAAA,GAfM,SAeM;;;;AAQJ,KAlBI,qBAkBJ,CAAA,CAAA,CAAA,GAlB+B,CAkB/B,UAAA,CAAA,GAAA,IAAA,EAAA,KAAA,EAAA,EAAA,GAfH,0BAeG,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,UAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,IAdJ,SAcI,GAAA,KAAA;;;;AAOI,KAfA,4BAec,CAAA,OAAA,EAAA,iBAbP,kBAaO,EAAA,KAAA,EAAA,eAAA,CAAA,GAAA;EAMI,MAAA,EAfpB,OAeoB;EAEpB,OAAA,EAhBC,QAgBD;EACC,IAAA,EAhBH,KAgBG;EACH,OAAA,EAhBG,qBAgBH,CAhByB,eAgBzB,CAAA;CACO;;;;AAMe,KAjBlB,cAiBkB,CAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,4BAXA,kBAWA,CAAA,GAAA;EAAkC,MAAA,EATtD,OASsD;EAAC,OAAA,EARtD,QAQsD;EAMrD,IAAA,EAbJ,KAaI;EAOkB,WAAA,EAnBf,oBAmBe;EAG1B,eAAA,EArBe,gBAqBf;EACA;;;;EAIA,aAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EArBsB,CAqBtB,GArB0B,QAqB1B,CArBmC,mBAqBnC,CAAA,EAAA,GArB4D,CAqB5D;CANO;;;AAcX;AAEmB,KAzBP,oBAyBO,CAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,4BAlBW,kBAkBX,CAAA,GAAA,CAAA,OAAA,EAhBR,cAgBQ,CAff,OAee,EAdf,QAce,EAbf,KAae,EAZf,oBAYe,EAXf,gBAWe,EAVf,mBAUe,CAAA,EAAA,GARd,QAQc;;;;;AAckB,UAhBpB,kBAgBoB,CAAA,OAAA,EAAA,iBAdlB,kBAckB,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,4BARP,kBAQO,EAAA,4BAPP,kBAOO,EAAA,kBAAA,CAAA,CAAA,EAAA,yBALV,MAKU,CAAA,MAAA,EALK,6BAKL,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA;EAAkB,IAAA,EAAA,MAAA;EAAe,YAAA,CAAA,EAAA,CAAA,OAAA,EAAA;IAGlE,MAAA,EAHiC,OAGjC;IACA,OAAA,EAJmD,QAInD;EACA,CAAA,EAAA,GALkE,KAKlE;EACA,YAAA,CAAA,EAJa,oBAIb,CAHA,OAGA,EAFA,QAEA,EADA,KACA,EAAA,oBAAA,EACA,gBADA,EAEA,aAFA,EAGA,mBAHA,CAAA;EACA,aAAA,CAAA,EAAA,QACA,MAMY,WANZ,GAMwB,oBANxB,CAOE,OAPF,EAQE,QARF,EASE,KATF,EAUE,oBAVF,EAWE,gBAXF,EAYE,WAZF,CAYY,CAZZ,CAAA,EAaE,mBAbF,CAAA,EACA;EAPa,eAAA,CAAA,EAAA,QAYD,MAaA,gBAbA,GAamB,oBAbnB,CAcV,OAdU,EAeV,QAfU,EAgBV,KAhBU,EAiBV,oBAjBU,EAkBV,gBAlBU;EAAA;EAmBV,gBAlBA,CAkBiB,CAlBjB,CAAA,EAmBA,mBAnBA,CAAA,EACA;EACA,mBAAA,CAAA,EAAA,QACA,MAsBU,oBAtBV,GAsBiC,eAtBjC,EACA;EACA;;;;;;;;;;;;;EAO6B,oBAAA,CAAA,EAAA,CAAA,OAAA,EAAA;IAanB,MAAA,EAiBJ,OAjBI;IAAuB,OAAA,EAkB1B,QAlB0B;IAiB3B,IAAA,EAEF,KAFE;EACC,CAAA,EAAA,GAEL,eAFK;EACH;;;;;;;;;;;;;;;;;EAkDW,iBAAA,CAAA,EAAA,CAAA,OAAA,EA7BR,4BA6BQ,CA7BqB,OA6BrB,EA7B8B,QA6B9B,EA7BwC,KA6BxC,EA7B+C,eA6B/C,CAAA,EAAA,GAAA;IACb,cAAA,EA5BY,mBA4BZ;IAOQ,cAAA,EAlCI,mBAkCJ;EACV,CAAA;EACA;;;;;;;;;;EAgBO,kBAAA,CAAA,EAAA,CAAA,OAAyB,EAAA;IAEnB,MAAA,EAxCP,OAwCO;IAMW,OAAA,EA7CjB,QA6CiB;IACA,IAAA,EA7CpB,KA6CoB;EAEY,CAAA,EAAA,GA9ClC,qBA8CkC,CA9CZ,eA8CY,CAAA;EAAf;;;EAkE+C,mBAAA,CAAA,EAAA,CAAA,OAAA,EAAA;IAElE,MAAA,EA5GI,OA4GJ;IACA,OAAA,EA5GK,QA4GL;IACA,IAAA,EA5GE,KA4GF;IACA,eAAA,EA5Ga,gBA4Gb;EACA,CAAA,EAAA,GA5GA,MA4GA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,IAAA;EACA;;;;EAKE,eAAA,CAAA,EAAA,QACA,MA5GM,gBA4GN,GA5GyB,sBA4GzB,CA3GJ,OA2GI,EA1GJ,QA0GI,EAzGJ,oBAyGI,EAxGJ,gBAwGI,CAxGa,CAwGb,CAAA,CAAA,EACA;EACA,mBAAA,CAAA,EAtGc,mBAsGd;EACA,mBAAA,CAAA,EAtGc,mBAsGd;EACA,eAAA,CAAA,EAtGU,eAsGV;EAAU,gBAAA,CAAA,EArGC,gBAqGD;;;;;;AAQV,cAtGG,yBAsGH,CAAA,OAAA,EAAA,iBApGS,kBAoGT,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,4BA9FoB,kBA8FpB,EAAA,4BA7FoB,kBA6FpB,EAAA,kBAAA,CAAA,CAAA,EAAA,yBA3FiB,MA2FjB,CAAA,MAAA,EA3FgC,6BA2FhC,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAA,OAAA;EACA,WAAA,CAAA,IAAA,EAAA,MAAA,EAAA,KA2EmD,CA3EnD,EAAA;IACA,YAAA,CAAA,EAAA,CAAA,OAAA,EAAA;MAAiB,MAAA,EA5Bc,OA4Bd;MACjB,OAAA,EA7BiD,QA6BjD;IAP6B,CAAA,EAAA,GAtBmC,KAsBnC;IAWnB,YAAA,CAAA,EAhCC,oBAgCD,CA/BZ,OA+BY,EA9BZ,QA8BY,EA7BZ,KA6BY,EA5BZ,oBA4BY,EA3BZ,gBA2BY,EA1BZ,aA0BY,EAzBZ,mBAyBY,CAAA;IAAuB,aAAA,CAAA,EAAA,QAG3B,MAzBI,WAyBJ,GAzBgB,oBAyBhB,CAxBN,OAwBM,EAvBN,QAuBM,EAtBN,KAsBM,EArBN,oBAqBM,EApBN,gBAoBM,EAnBN,WAmBM,CAnBI,CAmBJ,CAAA,EAlBN,mBAkBM,CAAA,EACC;IACH,eAAA,CAAA,EAAA,QACF,MAjBQ,gBAiBR,GAjB2B,oBAiB3B,CAhBF,OAgBE,EAfF,QAeE,EAdF,KAcE,EAbF,oBAaE,EAZF,gBAYE,EAXF,gBAWE,CAXe,CAWf,CAAA,EAVF,mBAUE,CAAA,EAEkC;IAAS,mBAAA,CAAA,EAAA,QAAU,MAR7C,oBAQ6C,GARtB,eAQsB,EAAO;IAAvD,oBAAA,CAAA,EAAA,CAAA,OAAA,EAAA;MAEO,MAAA,EAPR,OAOQ;MACA,OAAA,EAPP,QAOO;MAGR,IAAA,EATF,KASE;IACC,CAAA,EAAA,GATL,eASK;IACH,iBAAA,CAAA,EAAA,CAAA,OAAA,EARG,4BAQH,CARgC,OAQhC,EARyC,QAQzC,EARmD,KAQnD,EAR0D,eAQ1D,CAAA,EAAA,GAAA;MACoB,cAAA,EAPV,mBAOU;MAAtB,cAAA,EANY,mBAMZ;IAEQ,CAAA;IACV,kBAAA,CAAA,EAAA,CAAA,OAAA,EAAA;MACA,MAAA,EAPM,OAON;MACA,OAAA,EAPO,QAOP;MACA,IAAA,EAPI,KAOJ;IAAiB,CAAA,EAAA,GANf,qBAMe,CANO,eAMP,CAAA;IAJY,eAAA,CAAA,EAAA,QAkDX,MAlDR,gBAkDQ,GAlDW,sBAkDX,CAjDlB,OAiDkB,EAhDlB,QAgDkB,EA/ClB,oBA+CkB,EA9ClB,gBA8CkB,CA9CD,CA8CC,CAAA,CAAA,EAAkB;EAAe,CAAA;EAEzD,IAAA,IAAA,CAAA,CAAA,EAAA,MAAA;EACA;;;;;;;;;;;;;;;;;;;;;;EAyEA,gBAAA,CAAA,QAAA,CAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAAA;IACA,MAAA,EA7EwB,OA6ExB;IACA,OAAA,EA9E0C,QA8E1C;EACA,CAAA,EAAA,GA/EyD,QA+EzD,CAAA,EA9EC,yBA8ED,CA7EA,OA6EA,EA5EA,QA4EA,EA3EA,QA2EA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAxEA,oBAwEA,EAAA,CAAA,CAAA,EAtEA,mBAsEA,EArEA,mBAqEA,EApEA,eAoEA,EAnEA,gBAmEA,CAAA;EACA;;;;EAmCE,mBAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAvDE,oBAuDF,CAtDA,OAsDA,EArDA,QAqDA,EApDA,KAoDA,EAnDA,oBAmDA,EAlDA,gBAkDA,EAjDA,WAiDA,EAhDA,mBAgDA,CAAA,CAAA,EA9CD,yBA8CC,CA7CF,OA6CE,EA5CF,QA4CE,EA3CF,KA2CE,EA1CF,WA0CE,EAzCF,WAyCE,EAxCF,oBAwCE,EAvCF,gBAuCE,EAtCF,mBAsCE,EArCF,mBAqCE,EApCF,eAoCE,EAnCF,gBAmCE,CAAA;EACA;;;;EAIA,eAAA,CAAA,qBAAA,MAAA,EAAA,QAAA,CAAA,CAAA,WAAA,EARW,YAQX,EAAA,EAAA,EAPE,oBAOF,CANA,OAMA,EALA,QAKA,EAJA,KAIA,EAHA,oBAGA,EAFA,gBAEA,EADA,QACA,EAAA,mBAAA,CAAA,CAAA,EAED,yBAFC,CAGF,OAHE,EAIF,QAJE,EAKF,KALE,EAMF,aANE,EAOF,WAPE,GAAA,QAOkB,YAdhB,GAc+B,QAd/B,EAUJ,EAKA,oBALA,EAMA,gBANA,EAOA,mBAPA,EAQA,mBARA,EASA,eATA,EAUA,gBAVA,CAAA;EACA;;;;;;;EAKA,sBAAA,CAAA,qBAAA,MAAA,EAAA,QAAA,CAAA,CAAA,WAAA,EAuDa,YAvDb,EAAA,EAAA,EAwDI,oBAxDJ,CAyDE,OAzDF,EA0DE,QA1DF,EA2DE,KA3DF,EA4DE,oBA5DF,EA6DE,gBA7DF,EA8DE,QA9DF,EA+DE,mBA/DF,CAAA,CAAA,EAiEC,yBAjED,CAkEA,OAlEA,EAmEA,QAnEA,EAoEA,KApEA,EAqEA,aArEA,EAsEA,WAtEA,EAuEA,oBAvEA,EAwEA,gBAxEA,GAAA,QAwE2B,YAvE3B,GAuE0C,QAvE1C,EACA,EAuEA,mBAvEA,EAwEA,mBAxEA,EAyEA,eAzEA,EA0EA,gBA1EA,CAAA;EACA;;;EAoDa,WAAA,CAAA,qBAAA,MAAA,EAAA,QAAA,CAAA,CAAA,WAAA,EAmEA,YAnEA,CAAA,EAoEZ,yBApEY,CAqEb,OArEa,EAsEb,QAtEa,EAuEb,KAvEa,EAwEb,aAxEa,EAyEb,WAzEa,EA0Eb,oBA1Ea,GAAA,QA0EkB,YAxE7B,GAwE4C,QAxE5C,EACA,EAwEF,gBAxEE,EAyEF,mBAzEE,EA0EF,mBA1EE,EA2EF,eA3EE,EA4EF,gBA5EE,CAAA;EACA;;;EAGA,mBAAA,CAAA,qBAAA,MAAA,EAAA,QAAA,CAAA,CAAA,WAAA,EA8GW,YA9GX,CAAA,EA+GD,yBA/GC,CAgHF,OAhHE,EAiHF,QAjHE,EAkHF,KAlHE,EAmHF,aAnHE,EAoHF,WApHE,EAqHF,oBArHE,GAAA,QAqH6B,YApH7B,GAoH4C,QApH5C,GAAA,SAAA,EAPE,EA4HJ,gBA5HI,EA6HJ,mBA7HI,EA8HJ,mBA9HI,EA+HJ,eA/HI,EAgIJ,gBAhII,CAAA;EAUJ;;;;;;;;;;;;;;;;;;;;;;EA+D8C,kBAAA,CAAA,kBAAA,CAAA,CAAA,WAAA,EAAA,CAAA,OAAA,EAAA;IAC9C,MAAA,EAkHU,OAlHV;IACA,OAAA,EAkHW,QAlHX;IACA,IAAA,EAkHQ,KAlHR;EACA,CAAA,EAAA,GAkHM,kBAlHN,CAAA,EAmHC,yBAnHD,CAoHA,OApHA,EAqHA,QArHA,EAsHA,KAtHA,EAuHA,aAvHA,EAwHA,WAxHA,EAyHA,oBAzHA,EA0HA,gBA1HA,EA2HA,mBA3HA,EA4HA,mBA5HA,EA6HA,kBA7HA,EA8HA,gBA9HA,CAAA;EACA;;;;;;;;;;;;;;;;EAuCC,0BAAA,CAAA,WAAA,CAAA,CAAA,UAAA,EAAA,CAAA,OAAA,EAAA;IAuES,MAAA,EAuEA,OAvEA;IACC,OAAA,EAuEA,QAvEA;IACH,IAAA,EAuEA,KAvEA;EACF,CAAA,EAAA,GAuEA,qBAvEA,CAuEsB,WAvEtB,CAAA,CAAA,EAwEL,yBAxEK,CAyEN,OAzEM,EA0EN,QA1EM,EA2EN,KA3EM,EA4EN,aA5EM,EA6EN,WA7EM,EA8EN,oBA9EM,EA+EN,gBA/EM,EAgFN,mBAhFM,EAiFN,mBAjFM,EAkFN,WAlFM,EAmFN,gBAnFM,CAAA;EAEN;;;;;;;;;;;;;;;;;EAuEA,eAAA,CAAA,+BAwD+B,kBAxD/B,EAAA,+BAyD+B,kBAzD/B,CAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EA2Dc,4BA3Dd,CA2D2C,OA3D3C,EA2DoD,QA3DpD,EA2D8D,KA3D9D,EA2DqE,eA3DrE,CAAA,EAAA,GAAA;IACA,cAAA,EA2DkB,sBA3DlB;IACA,cAAA,EA2DkB,sBA3DlB;EACA,CAAA,CAAA,EA4DC,yBA5DD,CA6DA,OA7DA,EA8DA,QA9DA,EA+DA,KA/DA,EAgEA,aAhEA,EAiEA,WAjEA,EAkEA,oBAlEA,EAmEA,gBAnEA,EAoEA,sBApEA,EAqEA,sBArEA,EAsEA,eAtEA,EAuEA,gBAvEA,CAAA;EACA;;;;;;EAMA,kBAAA,CAAA,oBAAA,MAAA,EAAA,kBAiG+D,6BAjG/D,CAAA,CAAA,IAAA,EAkGM,KAlGN,EAAA,QAAA,EAmGU,sBAnGV,CAmGiC,OAnGjC,EAmG0C,QAnG1C,EAmGoD,oBAnGpD,EAmG0E,SAnG1E,CAAA,CAAA,EAoGC,yBApGD,CAqGA,OArGA,EAsGA,QAtGA,EAuGA,KAvGA,EAwGA,aAxGA,EAyGA,WAzGA,EA0GA,oBA1GA,EA2GA,gBA3GA,GA2GmB,qBA3GnB,CAAA,GAAA,GA2G+C,SA3G/C,CAAA,EA4GA,mBA5GA,EA6GA,mBA7GA,EA8GA,eA9GA,EA+GA,gBA/GA,GAAA,QA+G2B,KA1H1B,GA0HkC,SA1HlC,EAyD8B,CAAA;EACA;;;;EAEsC,MAAA,CAAA,iBAAA,CAAA,CAAA,WAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,GAqGb,WArGa,CAAA,EAqGC,WArGD;EAAvD;;;EAKd,KAAA,CAAA,CAAA,EAuGO,kBAvGP,CAwGA,OAxGA,EAyGA,QAzGA,EA0GA,KA1GA,EA2GA,aA3GA,EA4GA,WA5GA,EA6GA,oBA7GA,EA8GA,gBA9GA,EA+GA,mBA/GA,EAgHA,mBAhHA,EAiHA,eAjHA,EAkHA,gBAlHA,CAAA;;;;;AAKA,iBAiIY,cAjIZ,CAAA,UAAA,CAAA,CAAA,EAAA,iBAmIe,kBAnIf,GAmIoC,kBAnIpC,EAAA,4BAoI0B,kBApI1B,GAoI+C,kBApI/C,EAAA,4BAqI0B,kBArI1B,GAqI+C,kBArI/C,EAAA,kBAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAyID,yBAzIC,CA0IF,OA1IE,EA2IF,QA3IE,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAiJF,mBAjJE,EAkJF,mBAlJE,EAmJF,eAnJE,EAAA,CAAA,CAAA,CAAA"}
|
|
@@ -269,8 +269,9 @@ var FragmentDefinitionBuilder = class FragmentDefinitionBuilder {
|
|
|
269
269
|
}
|
|
270
270
|
/**
|
|
271
271
|
* Register a linked fragment that will be automatically instantiated.
|
|
272
|
-
* Linked fragments
|
|
273
|
-
*
|
|
272
|
+
* Linked fragments share the same config/options as the parent and their services
|
|
273
|
+
* are exposed as private services. Routes are not exposed by default, but the
|
|
274
|
+
* instantiator may mount internal linked fragment routes under an internal prefix.
|
|
274
275
|
*/
|
|
275
276
|
withLinkedFragment(name, callback) {
|
|
276
277
|
const newLinkedFragments = {
|