@orpc/server 2.0.0-beta.26 → 2.0.0-beta.27
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/README.md +37 -76
- package/dist/adapters/aws-lambda/index.mjs +3 -3
- package/dist/adapters/crossws/index.mjs +3 -3
- package/dist/adapters/fastify/index.mjs +3 -3
- package/dist/adapters/fetch/index.mjs +3 -3
- package/dist/adapters/message-port/index.mjs +3 -3
- package/dist/adapters/node/index.mjs +3 -3
- package/dist/adapters/standard/index.d.mts +1 -1
- package/dist/adapters/standard/index.d.ts +1 -1
- package/dist/adapters/standard/index.mjs +3 -3
- package/dist/adapters/websocket/index.mjs +3 -3
- package/dist/extensions/callable.mjs +2 -2
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +5 -5
- package/dist/plugins/index.d.mts +26 -21
- package/dist/plugins/index.d.ts +26 -21
- package/dist/plugins/index.mjs +74 -52
- package/dist/shared/{server.7T18Khvf.mjs → server.CkButhNT.mjs} +7 -2
- package/dist/shared/{server.Cbv46U7N.mjs → server.D9VprDph.mjs} +2 -2
- package/dist/shared/{server.DgunZU0v.mjs → server.Dh77P3ii.mjs} +1 -1
- package/dist/shared/{server.B2pXdfpL.mjs → server.eCTV8Vpp.mjs} +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -56,6 +56,7 @@ You can read the documentation [here](https://orpc.dev).
|
|
|
56
56
|
- [@orpc/swr](https://www.npmjs.com/package/@orpc/swr): Integrate with [SWR](https://swr.vercel.app/).
|
|
57
57
|
- [@orpc/experimental-effect](https://www.npmjs.com/package/@orpc/experimental-effect): Integrate with [Effect](https://effect.website/).
|
|
58
58
|
- [@orpc/nest](https://www.npmjs.com/package/@orpc/nest): Implement your contract with [NestJS](https://nestjs.com/).
|
|
59
|
+
- [@orpc/node](https://www.npmjs.com/package/@orpc/node): [Node.js](https://nodejs.org/) plugins, helpers, like serving static files.
|
|
59
60
|
- [@orpc/bun](https://www.npmjs.com/package/@orpc/bun): Adapters for [Bun's Redis](https://bun.sh/).
|
|
60
61
|
- [@orpc/cloudflare](https://www.npmjs.com/package/@orpc/cloudflare): Adapters for [Cloudflare's RateLimit and Durable Objects](https://developers.cloudflare.com/workers/).
|
|
61
62
|
- [@orpc/trpc](https://www.npmjs.com/package/@orpc/trpc): Reuse existing [tRPC](https://trpc.io/) routers within oRPC.
|
|
@@ -74,7 +75,7 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
|
|
|
74
75
|
|
|
75
76
|
<table>
|
|
76
77
|
<tr>
|
|
77
|
-
<td align="center"><a href="https://screenshotone.com/?ref=orpc" target="_blank" rel="noopener" title="ScreenshotOne.com"><img src="https://avatars.githubusercontent.com/u/97035603?v=4" width="279" alt="ScreenshotOne.com"/><br />ScreenshotOne.com</a></td>
|
|
78
|
+
<td align="center"><a href="https://screenshotone.com/?ref=orpc" target="_blank" rel="sponsored noopener" title="ScreenshotOne.com"><img src="https://avatars.githubusercontent.com/u/97035603?v=4" width="279" alt="ScreenshotOne.com"/><br />ScreenshotOne.com</a></td>
|
|
78
79
|
</tr>
|
|
79
80
|
</table>
|
|
80
81
|
|
|
@@ -82,7 +83,7 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
|
|
|
82
83
|
|
|
83
84
|
<table>
|
|
84
85
|
<tr>
|
|
85
|
-
<td align="center"><a href="https://misskey.io/?ref=orpc" target="_blank" rel="noopener" title="村上さん"><img src="https://avatars.githubusercontent.com/u/37681609?u=0dd4c7e4ba937cbb52b068c55914b1d8164dc0c7&v=4" width="209" alt="村上さん"/><br />村上さん</a></td>
|
|
86
|
+
<td align="center"><a href="https://misskey.io/?ref=orpc" target="_blank" rel="sponsored noopener" title="村上さん"><img src="https://avatars.githubusercontent.com/u/37681609?u=0dd4c7e4ba937cbb52b068c55914b1d8164dc0c7&v=4" width="209" alt="村上さん"/><br />村上さん</a></td>
|
|
86
87
|
</tr>
|
|
87
88
|
</table>
|
|
88
89
|
|
|
@@ -90,7 +91,7 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
|
|
|
90
91
|
|
|
91
92
|
<table>
|
|
92
93
|
<tr>
|
|
93
|
-
<td align="center"><a href="https://github.com/ln-markets?ref=orpc" target="_blank" rel="noopener" title="LN Markets"><img src="https://avatars.githubusercontent.com/u/70597625?v=4" width="167" alt="LN Markets"/><br />LN Markets</a></td>
|
|
94
|
+
<td align="center"><a href="https://github.com/ln-markets?ref=orpc" target="_blank" rel="sponsored noopener" title="LN Markets"><img src="https://avatars.githubusercontent.com/u/70597625?v=4" width="167" alt="LN Markets"/><br />LN Markets</a></td>
|
|
94
95
|
</tr>
|
|
95
96
|
</table>
|
|
96
97
|
|
|
@@ -98,24 +99,25 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
|
|
|
98
99
|
|
|
99
100
|
<table>
|
|
100
101
|
<tr>
|
|
101
|
-
<td align="center"><a href="https://github.com/hrmcdonald?ref=orpc" target="_blank" rel="noopener" title="Reece McDonald"><img src="https://avatars.githubusercontent.com/u/39349270?v=4" width="139" alt="Reece McDonald"/><br />Reece McDonald</a></td>
|
|
102
|
-
<td align="center"><a href="https://github.com/
|
|
103
|
-
<td align="center"><a href="https://github.com/
|
|
104
|
-
<td align="center"><a href="https://github.com/
|
|
105
|
-
<td align="center"><a href="https://github.com/
|
|
106
|
-
<td align="center"><a href="https://github.com/
|
|
102
|
+
<td align="center"><a href="https://github.com/hrmcdonald?ref=orpc" target="_blank" rel="sponsored noopener" title="Reece McDonald"><img src="https://avatars.githubusercontent.com/u/39349270?v=4" width="139" alt="Reece McDonald"/><br />Reece McDonald</a></td>
|
|
103
|
+
<td align="center"><a href="https://github.com/u1-liquid?ref=orpc" target="_blank" rel="sponsored noopener" title="あわわわとーにゅ"><img src="https://avatars.githubusercontent.com/u/17376330?u=de3353804be889f009f7e0a1582daf04d0ab292d&v=4" width="139" alt="あわわわとーにゅ"/><br />あわわわとーにゅ</a></td>
|
|
104
|
+
<td align="center"><a href="https://github.com/nicognaW?ref=orpc" target="_blank" rel="sponsored noopener" title="nk"><img src="https://avatars.githubusercontent.com/u/66731869?u=4699bda3a9092d3ec34fbd959450767bcc8b8b6d&v=4" width="139" alt="nk"/><br />nk</a></td>
|
|
105
|
+
<td align="center"><a href="https://github.com/supastarter?ref=orpc" target="_blank" rel="sponsored noopener" title="supastarter"><img src="https://avatars.githubusercontent.com/u/110960143?v=4" width="139" alt="supastarter"/><br />supastarter</a></td>
|
|
106
|
+
<td align="center"><a href="https://github.com/divmgl?ref=orpc" target="_blank" rel="sponsored noopener" title="Dexter Miguel"><img src="https://avatars.githubusercontent.com/u/5452298?u=645993204be8696c085ecf0d228c3062efe2ed65&v=4" width="139" alt="Dexter Miguel"/><br />Dexter Miguel</a></td>
|
|
107
|
+
<td align="center"><a href="https://github.com/herrfugbaum?ref=orpc" target="_blank" rel="sponsored noopener" title="herrfugbaum"><img src="https://avatars.githubusercontent.com/u/12859776?u=644dc1666d0220bc0468eb0de3c56b919f635b16&v=4" width="139" alt="herrfugbaum"/><br />herrfugbaum</a></td>
|
|
107
108
|
</tr>
|
|
108
109
|
<tr>
|
|
109
|
-
<td align="center"><a href="https://github.com/
|
|
110
|
-
<td align="center"><a href="https://github.com/
|
|
111
|
-
<td align="center"><a href="https://github.com/
|
|
112
|
-
<td align="center"><a href="https://github.com/
|
|
113
|
-
<td align="center"><a href="https://github.com/
|
|
114
|
-
<td align="center"><a href="https://github.com/
|
|
110
|
+
<td align="center"><a href="https://github.com/ryota-murakami?ref=orpc" target="_blank" rel="sponsored noopener" title="Ryota Murakami"><img src="https://avatars.githubusercontent.com/u/5501268?u=599389e03340734325726ca3f8f423c021d47d7f&v=4" width="139" alt="Ryota Murakami"/><br />Ryota Murakami</a></td>
|
|
111
|
+
<td align="center"><a href="https://github.com/dcramer?ref=orpc" target="_blank" rel="sponsored noopener" title="David Cramer"><img src="https://avatars.githubusercontent.com/u/23610?v=4" width="139" alt="David Cramer"/><br />David Cramer</a></td>
|
|
112
|
+
<td align="center"><a href="https://github.com/valerii15298?ref=orpc" target="_blank" rel="sponsored noopener" title="Valerii Petryniak"><img src="https://avatars.githubusercontent.com/u/44531564?u=88ac74d9bacd20401518441907acad21063cd397&v=4" width="139" alt="Valerii Petryniak"/><br />Valerii Petryniak</a></td>
|
|
113
|
+
<td align="center"><a href="https://github.com/letstri?ref=orpc" target="_blank" rel="sponsored noopener" title="Valerii Strilets"><img src="https://avatars.githubusercontent.com/u/13253748?u=c7b10399ccc8f8081e24db94ec32cd9858e86ac3&v=4" width="139" alt="Valerii Strilets"/><br />Valerii Strilets</a></td>
|
|
114
|
+
<td align="center"><a href="https://github.com/K-Mistele?ref=orpc" target="_blank" rel="sponsored noopener" title="Kyle Mistele"><img src="https://avatars.githubusercontent.com/u/18430555?u=3afebeb81de666e35aaac3ed46f14159d7603ffb&v=4" width="139" alt="Kyle Mistele"/><br />Kyle Mistele</a></td>
|
|
115
|
+
<td align="center"><a href="https://github.com/christ12938?ref=orpc" target="_blank" rel="sponsored noopener" title="christ12938"><img src="https://avatars.githubusercontent.com/u/25758598?v=4" width="139" alt="christ12938"/><br />christ12938</a></td>
|
|
115
116
|
</tr>
|
|
116
117
|
<tr>
|
|
117
|
-
<td align="center"><a href="https://github.com/
|
|
118
|
-
<td align="center"><a href="https://github.com/
|
|
118
|
+
<td align="center"><a href="https://github.com/Ryanjso?ref=orpc" target="_blank" rel="sponsored noopener" title="Ryan Soderberg"><img src="https://avatars.githubusercontent.com/u/39172778?u=5ed913c31d57e7221b75784abcad48c7ebddde27&v=4" width="139" alt="Ryan Soderberg"/><br />Ryan Soderberg</a></td>
|
|
119
|
+
<td align="center"><a href="https://github.com/itigoore01?ref=orpc" target="_blank" rel="sponsored noopener" title="shota"><img src="https://avatars.githubusercontent.com/u/11831107?u=c976a6dc7e055eb026304c46c99100ed22b0c8e0&v=4" width="139" alt="shota"/><br />shota</a></td>
|
|
120
|
+
<td align="center"><a href="https://github.com/ellis-driscoll?ref=orpc" target="_blank" rel="sponsored noopener" title="Ellis Driscoll"><img src="https://avatars.githubusercontent.com/u/70685966?u=c5f95bc33b5991d9744abe00052542e4a2ed3cb9&v=4" width="139" alt="Ellis Driscoll"/><br />Ellis Driscoll</a></td>
|
|
119
121
|
</tr>
|
|
120
122
|
</table>
|
|
121
123
|
|
|
@@ -123,72 +125,31 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
|
|
|
123
125
|
|
|
124
126
|
<table>
|
|
125
127
|
<tr>
|
|
126
|
-
<td align="center"><a href="https://github.com/rhinodavid?ref=orpc" target="_blank" rel="noopener" title="David Walsh"><img src="https://avatars.githubusercontent.com/u/5778036?u=b5521f07d2f88c3db2a0dae62b5f2f8357214af0&v=4" width="119" alt="David Walsh"/><br />David Walsh</a></td>
|
|
127
|
-
<td align="center"><a href="https://github.com/Robbe95?ref=orpc" target="_blank" rel="noopener" title="Robbe Vaes"><img src="https://avatars.githubusercontent.com/u/44748019?u=e0232402c045ad4eac7cbd217f1f47e083103b89&v=4" width="119" alt="Robbe Vaes"/><br />Robbe Vaes</a></td>
|
|
128
|
-
<td align="center"><a href="https://github.com/aidansunbury?ref=orpc" target="_blank" rel="noopener" title="Aidan Sunbury"><img src="https://avatars.githubusercontent.com/u/64103161?v=4" width="119" alt="Aidan Sunbury"/><br />Aidan Sunbury</a></td>
|
|
129
|
-
<td align="center"><a href="https://github.com/soonoo?ref=orpc" target="_blank" rel="noopener" title="soonoo"><img src="https://avatars.githubusercontent.com/u/5436405?u=5d0b4aa955c87e30e6bda7f0cccae5402da99528&v=4" width="119" alt="soonoo"/><br />soonoo</a></td>
|
|
130
|
-
<td align="center"><a href="https://github.com/kporten?ref=orpc" target="_blank" rel="noopener" title="Kevin Porten"><img src="https://avatars.githubusercontent.com/u/1839345?u=dc2263d5cfe0d927ce1a0be04a1d55dd6b55405c&v=4" width="119" alt="Kevin Porten"/><br />Kevin Porten</a></td>
|
|
131
|
-
<td align="center"><a href="https://github.com/pumpkinlink?ref=orpc" target="_blank" rel="noopener" title="Denis"><img src="https://avatars.githubusercontent.com/u/11864620?u=5f47bbe6c65d0f6f5cf011021490238e4b0593d0&v=4" width="119" alt="Denis"/><br />Denis</a></td>
|
|
132
|
-
<td align="center"><a href="https://github.com/christopher-kapic?ref=orpc" target="_blank" rel="noopener" title="Christopher Kapic"><img src="https://avatars.githubusercontent.com/u/59740769?u=e7ad4b72b5bf6c9eb1644c26dbf3332a8f987377&v=4" width="119" alt="Christopher Kapic"/><br />Christopher Kapic</a></td>
|
|
128
|
+
<td align="center"><a href="https://github.com/rhinodavid?ref=orpc" target="_blank" rel="sponsored noopener" title="David Walsh"><img src="https://avatars.githubusercontent.com/u/5778036?u=b5521f07d2f88c3db2a0dae62b5f2f8357214af0&v=4" width="119" alt="David Walsh"/><br />David Walsh</a></td>
|
|
129
|
+
<td align="center"><a href="https://github.com/Robbe95?ref=orpc" target="_blank" rel="sponsored noopener" title="Robbe Vaes"><img src="https://avatars.githubusercontent.com/u/44748019?u=e0232402c045ad4eac7cbd217f1f47e083103b89&v=4" width="119" alt="Robbe Vaes"/><br />Robbe Vaes</a></td>
|
|
130
|
+
<td align="center"><a href="https://github.com/aidansunbury?ref=orpc" target="_blank" rel="sponsored noopener" title="Aidan Sunbury"><img src="https://avatars.githubusercontent.com/u/64103161?v=4" width="119" alt="Aidan Sunbury"/><br />Aidan Sunbury</a></td>
|
|
131
|
+
<td align="center"><a href="https://github.com/soonoo?ref=orpc" target="_blank" rel="sponsored noopener" title="soonoo"><img src="https://avatars.githubusercontent.com/u/5436405?u=5d0b4aa955c87e30e6bda7f0cccae5402da99528&v=4" width="119" alt="soonoo"/><br />soonoo</a></td>
|
|
132
|
+
<td align="center"><a href="https://github.com/kporten?ref=orpc" target="_blank" rel="sponsored noopener" title="Kevin Porten"><img src="https://avatars.githubusercontent.com/u/1839345?u=dc2263d5cfe0d927ce1a0be04a1d55dd6b55405c&v=4" width="119" alt="Kevin Porten"/><br />Kevin Porten</a></td>
|
|
133
|
+
<td align="center"><a href="https://github.com/pumpkinlink?ref=orpc" target="_blank" rel="sponsored noopener" title="Denis"><img src="https://avatars.githubusercontent.com/u/11864620?u=5f47bbe6c65d0f6f5cf011021490238e4b0593d0&v=4" width="119" alt="Denis"/><br />Denis</a></td>
|
|
134
|
+
<td align="center"><a href="https://github.com/christopher-kapic?ref=orpc" target="_blank" rel="sponsored noopener" title="Christopher Kapic"><img src="https://avatars.githubusercontent.com/u/59740769?u=e7ad4b72b5bf6c9eb1644c26dbf3332a8f987377&v=4" width="119" alt="Christopher Kapic"/><br />Christopher Kapic</a></td>
|
|
133
135
|
</tr>
|
|
134
136
|
<tr>
|
|
135
|
-
<td align="center"><a href="https://github.com/thomasballinger?ref=orpc" target="_blank" rel="noopener" title="Tom Ballinger"><img src="https://avatars.githubusercontent.com/u/458879?u=4b045ac75d721b6ac2b42a74d7d37f61f0414031&v=4" width="119" alt="Tom Ballinger"/><br />Tom Ballinger</a></td>
|
|
136
|
-
<td align="center"><a href="https://github.com/SSam0419?ref=orpc" target="_blank" rel="noopener" title="Sam"><img src="https://avatars.githubusercontent.com/u/102863520?u=3c89611f549d5070be232eb4532f690c8f2e7a65&v=4" width="119" alt="Sam"/><br />Sam</a></td>
|
|
137
|
-
<td align="center"><a href="https://github.com/Titoine?ref=orpc" target="_blank" rel="noopener" title="Titoine"><img src="https://avatars.githubusercontent.com/u/3514286?u=1bb1e86b0c99c8a1121372e56d51a177eea12191&v=4" width="119" alt="Titoine"/><br />Titoine</a></td>
|
|
138
|
-
<td align="center"><a href="https://github.com/Mnigos?ref=orpc" target="_blank" rel="noopener" title="Igor Makowski"><img src="https://avatars.githubusercontent.com/u/56691628?u=ee8c879478f7c151b9156aef6c74243fa3e247a8&v=4" width="119" alt="Igor Makowski"/><br />Igor Makowski</a></td>
|
|
139
|
-
<td align="center"><a href="https://github.com/hanayashiki?ref=orpc" target="_blank" rel="noopener" title="hanayashiki"><img src="https://avatars.githubusercontent.com/u/26056783?u=06c3b9205a16fd41a871e82da1cc2a09306d53f5&v=4" width="119" alt="hanayashiki"/><br />hanayashiki</a></td>
|
|
140
|
-
<td align="center"><a href="https://github.com/ldub?ref=orpc" target="_blank" rel="noopener" title="Lev Dubinets"><img src="https://avatars.githubusercontent.com/u/3114081?u=f547f5d5012cab54851f1b1ad72d10e537f78fc2&v=4" width="119" alt="Lev Dubinets"/><br />Lev Dubinets</a></td>
|
|
141
|
-
<td align="center"><a href="https://github.com/mr-kelly?ref=orpc" target="_blank" rel="noopener" title="Kelly Peilin Chan"><img src="https://avatars.githubusercontent.com/u/520852?u=6b0f7105f694e7b5cacf410a3f04c7044b469dc8&v=4" width="119" alt="Kelly Peilin Chan"/><br />Kelly Peilin Chan</a></td>
|
|
137
|
+
<td align="center"><a href="https://github.com/thomasballinger?ref=orpc" target="_blank" rel="sponsored noopener" title="Tom Ballinger"><img src="https://avatars.githubusercontent.com/u/458879?u=4b045ac75d721b6ac2b42a74d7d37f61f0414031&v=4" width="119" alt="Tom Ballinger"/><br />Tom Ballinger</a></td>
|
|
138
|
+
<td align="center"><a href="https://github.com/SSam0419?ref=orpc" target="_blank" rel="sponsored noopener" title="Sam"><img src="https://avatars.githubusercontent.com/u/102863520?u=3c89611f549d5070be232eb4532f690c8f2e7a65&v=4" width="119" alt="Sam"/><br />Sam</a></td>
|
|
139
|
+
<td align="center"><a href="https://github.com/Titoine?ref=orpc" target="_blank" rel="sponsored noopener" title="Titoine"><img src="https://avatars.githubusercontent.com/u/3514286?u=1bb1e86b0c99c8a1121372e56d51a177eea12191&v=4" width="119" alt="Titoine"/><br />Titoine</a></td>
|
|
140
|
+
<td align="center"><a href="https://github.com/Mnigos?ref=orpc" target="_blank" rel="sponsored noopener" title="Igor Makowski"><img src="https://avatars.githubusercontent.com/u/56691628?u=ee8c879478f7c151b9156aef6c74243fa3e247a8&v=4" width="119" alt="Igor Makowski"/><br />Igor Makowski</a></td>
|
|
141
|
+
<td align="center"><a href="https://github.com/hanayashiki?ref=orpc" target="_blank" rel="sponsored noopener" title="hanayashiki"><img src="https://avatars.githubusercontent.com/u/26056783?u=06c3b9205a16fd41a871e82da1cc2a09306d53f5&v=4" width="119" alt="hanayashiki"/><br />hanayashiki</a></td>
|
|
142
|
+
<td align="center"><a href="https://github.com/ldub?ref=orpc" target="_blank" rel="sponsored noopener" title="Lev Dubinets"><img src="https://avatars.githubusercontent.com/u/3114081?u=f547f5d5012cab54851f1b1ad72d10e537f78fc2&v=4" width="119" alt="Lev Dubinets"/><br />Lev Dubinets</a></td>
|
|
143
|
+
<td align="center"><a href="https://github.com/mr-kelly?ref=orpc" target="_blank" rel="sponsored noopener" title="Kelly Peilin Chan"><img src="https://avatars.githubusercontent.com/u/520852?u=6b0f7105f694e7b5cacf410a3f04c7044b469dc8&v=4" width="119" alt="Kelly Peilin Chan"/><br />Kelly Peilin Chan</a></td>
|
|
142
144
|
</tr>
|
|
143
145
|
<tr>
|
|
144
|
-
<td align="center"><a href="https://github.com/guyariely?ref=orpc" target="_blank" rel="noopener" title="Guy Ariely"><img src="https://avatars.githubusercontent.com/u/42813496?u=edb6b7f563bf28e160a290832e7da57c0506f8ca&v=4" width="119" alt="Guy Ariely"/><br />Guy Ariely</a></td>
|
|
145
|
-
<td align="center"><a href="https://github.com/piscis?ref=orpc" target="_blank" rel="noopener" title="Alex"><img src="https://avatars.githubusercontent.com/u/326163?u=b245f368bd940cf51d08c0b6bf55f8257f359437&v=4" width="119" alt="Alex"/><br />Alex</a></td>
|
|
146
|
-
<td align="center"><a href="https://github.com/finom?ref=orpc" target="_blank" rel="noopener" title="Andrey Gubanov"><img src="https://avatars.githubusercontent.com/u/1082083?u=c5f2daf7ebece498e85c83367bb37b4e10e2649d&v=4" width="119" alt="Andrey Gubanov"/><br />Andrey Gubanov</a></td>
|
|
146
|
+
<td align="center"><a href="https://github.com/guyariely?ref=orpc" target="_blank" rel="sponsored noopener" title="Guy Ariely"><img src="https://avatars.githubusercontent.com/u/42813496?u=edb6b7f563bf28e160a290832e7da57c0506f8ca&v=4" width="119" alt="Guy Ariely"/><br />Guy Ariely</a></td>
|
|
147
|
+
<td align="center"><a href="https://github.com/piscis?ref=orpc" target="_blank" rel="sponsored noopener" title="Alex"><img src="https://avatars.githubusercontent.com/u/326163?u=b245f368bd940cf51d08c0b6bf55f8257f359437&v=4" width="119" alt="Alex"/><br />Alex</a></td>
|
|
148
|
+
<td align="center"><a href="https://github.com/finom?ref=orpc" target="_blank" rel="sponsored noopener" title="Andrey Gubanov"><img src="https://avatars.githubusercontent.com/u/1082083?u=c5f2daf7ebece498e85c83367bb37b4e10e2649d&v=4" width="119" alt="Andrey Gubanov"/><br />Andrey Gubanov</a></td>
|
|
147
149
|
</tr>
|
|
148
150
|
</table>
|
|
149
151
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
<p>
|
|
153
|
-
<a href="https://github.com/MrMaxie?ref=orpc" target="_blank" rel="noopener" title="Maxie"><img src="https://avatars.githubusercontent.com/u/3857836?u=5e6b57973d4385d655663ffdd836e487856f2984&v=4" width="32" height="32" alt="Maxie" /></a>
|
|
154
|
-
<a href="https://github.com/Stijn-Timmer?ref=orpc" target="_blank" rel="noopener" title="Stijn Timmer"><img src="https://avatars.githubusercontent.com/u/100147665?u=106b2c18e9c98a61861b4ee7fc100f5b9906a6c9&v=4" width="32" height="32" alt="Stijn Timmer" /></a>
|
|
155
|
-
<a href="https://github.com/u1-liquid?ref=orpc" target="_blank" rel="noopener" title="あわわわとーにゅ"><img src="https://avatars.githubusercontent.com/u/17376330?u=de3353804be889f009f7e0a1582daf04d0ab292d&v=4" width="32" height="32" alt="あわわわとーにゅ" /></a>
|
|
156
|
-
<a href="https://github.com/zuplo?ref=orpc" target="_blank" rel="noopener" title="Zuplo"><img src="https://avatars.githubusercontent.com/u/85497839?v=4" width="32" height="32" alt="Zuplo" /></a>
|
|
157
|
-
<a href="https://github.com/motopods?ref=orpc" target="_blank" rel="noopener" title="motopods"><img src="https://avatars.githubusercontent.com/u/58200641?v=4" width="32" height="32" alt="motopods" /></a>
|
|
158
|
-
<a href="https://github.com/franciscohermida?ref=orpc" target="_blank" rel="noopener" title="Francisco Hermida"><img src="https://avatars.githubusercontent.com/u/483242?u=bbcbc80eb9d8781ff401f7dafc3b59cd7bea0561&v=4" width="32" height="32" alt="Francisco Hermida" /></a>
|
|
159
|
-
<a href="https://github.com/theoludwig?ref=orpc" target="_blank" rel="noopener" title="Théo LUDWIG"><img src="https://avatars.githubusercontent.com/u/25207499?u=a6a9653725a2f574c07893748806668e0598cdbe&v=4" width="32" height="32" alt="Théo LUDWIG" /></a>
|
|
160
|
-
<a href="https://github.com/abhay-ramesh?ref=orpc" target="_blank" rel="noopener" title="Abhay Ramesh"><img src="https://avatars.githubusercontent.com/u/66196314?u=c5c2b0327b26606c2efcfaf17046ab18c3d25c57&v=4" width="32" height="32" alt="Abhay Ramesh" /></a>
|
|
161
|
-
<a href="https://github.com/shr-ink?ref=orpc" target="_blank" rel="noopener" title="shr.ink oü"><img src="https://avatars.githubusercontent.com/u/139700438?v=4" width="32" height="32" alt="shr.ink oü" /></a>
|
|
162
|
-
<a href="https://github.com/johngerome?ref=orpc" target="_blank" rel="noopener" title="0x4e32"><img src="https://avatars.githubusercontent.com/u/2002000?u=505e54608466ab53754f702973687b04c6424c1f&v=4" width="32" height="32" alt="0x4e32" /></a>
|
|
163
|
-
<a href="https://github.com/yzuyr?ref=orpc" target="_blank" rel="noopener" title="Ryuz"><img src="https://avatars.githubusercontent.com/u/196539378?u=d38374588d219b6748b16406982f6559411466d4&v=4" width="32" height="32" alt="Ryuz" /></a>
|
|
164
|
-
<a href="https://github.com/happyboy2022?ref=orpc" target="_blank" rel="noopener" title="happyboy"><img src="https://avatars.githubusercontent.com/u/103669586?u=65b49c4b893ed3703909fbb3a7a22313f3f9c121&v=4" width="32" height="32" alt="happyboy" /></a>
|
|
165
|
-
<a href="https://github.com/YiCChi?ref=orpc" target="_blank" rel="noopener" title="yicchi"><img src="https://avatars.githubusercontent.com/u/86967274?u=6c2756f09fe15dd94d572f560e979cd157982852&v=4" width="32" height="32" alt="yicchi" /></a>
|
|
166
|
-
<a href="https://github.com/cloudycotton?ref=orpc" target="_blank" rel="noopener" title="Saksham"><img src="https://avatars.githubusercontent.com/u/168998965?u=9b9634a5aed66a51c1b880663272725b00b92b14&v=4" width="32" height="32" alt="Saksham" /></a>
|
|
167
|
-
<a href="https://github.com/hrynevychroman?ref=orpc" target="_blank" rel="noopener" title="Roman Hrynevych"><img src="https://avatars.githubusercontent.com/u/82209198?u=1a1d111ab3d589855b9cc8a7fefb1b5c6a4fbbaf&v=4" width="32" height="32" alt="Roman Hrynevych" /></a>
|
|
168
|
-
<a href="https://github.com/rokitgg?ref=orpc" target="_blank" rel="noopener" title="rokitg"><img src="https://avatars.githubusercontent.com/u/125133357?u=06c74aefaa2236b06a2e5fba5a5c612339f45912&v=4" width="32" height="32" alt="rokitg" /></a>
|
|
169
|
-
<a href="https://github.com/omarkhatibgg?ref=orpc" target="_blank" rel="noopener" title="Omar Khatib"><img src="https://avatars.githubusercontent.com/u/9054278?u=afbba7331b85c51b8eee4130f5fd31b1017dc919&v=4" width="32" height="32" alt="Omar Khatib" /></a>
|
|
170
|
-
<a href="https://github.com/YuSabo90002?ref=orpc" target="_blank" rel="noopener" title="Yu-Sabo"><img src="https://avatars.githubusercontent.com/u/13120582?v=4" width="32" height="32" alt="Yu-Sabo" /></a>
|
|
171
|
-
<a href="https://github.com/bapspatil?ref=orpc" target="_blank" rel="noopener" title="Bapusaheb Patil"><img src="https://avatars.githubusercontent.com/u/16699418?u=6d9d8e0a64a6f91ca1c4d559c72d931172bdcbbd&v=4" width="32" height="32" alt="Bapusaheb Patil" /></a>
|
|
172
|
-
<a href="https://github.com/ripgrim?ref=orpc" target="_blank" rel="noopener" title="grim"><img src="https://avatars.githubusercontent.com/u/75869731?u=b17c42ec2309552fdb822a86b25a2f99146a4d72&v=4" width="32" height="32" alt="grim" /></a>
|
|
173
|
-
<a href="https://github.com/nelsonlaidev?ref=orpc" target="_blank" rel="noopener" title="Nelson Lai"><img src="https://avatars.githubusercontent.com/u/75498339?u=2fc0e0b95dd184c5ffb744df977cb15a18b60672&v=4" width="32" height="32" alt="Nelson Lai" /></a>
|
|
174
|
-
<a href="https://github.com/nguyenlc1993?ref=orpc" target="_blank" rel="noopener" title="Lê Cao Nguyên"><img src="https://avatars.githubusercontent.com/u/13871971?u=83c8b69d9e35b589c4e1f066cc113b1d9461386f&v=4" width="32" height="32" alt="Lê Cao Nguyên" /></a>
|
|
175
|
-
<a href="https://github.com/wobsoriano?ref=orpc" target="_blank" rel="noopener" title="Robert Soriano"><img src="https://avatars.githubusercontent.com/u/13049130?u=6d72104182e7c9ed25934815313fb69107332111&v=4" width="32" height="32" alt="Robert Soriano" /></a>
|
|
176
|
-
<a href="https://github.com/andrewpeters9?ref=orpc" target="_blank" rel="noopener" title="Andrew Peters"><img src="https://avatars.githubusercontent.com/u/36251325?v=4" width="32" height="32" alt="Andrew Peters" /></a>
|
|
177
|
-
<a href="https://github.com/R44VC0RP?ref=orpc" target="_blank" rel="noopener" title="Ryan Vogel"><img src="https://avatars.githubusercontent.com/u/89211796?u=1857347b9787d8d8a7ea5bfc333f96be92d5a683&v=4" width="32" height="32" alt="Ryan Vogel" /></a>
|
|
178
|
-
<a href="https://github.com/SKostyukovich?ref=orpc" target="_blank" rel="noopener" title="SKostyukovich"><img src="https://avatars.githubusercontent.com/u/10700067?v=4" width="32" height="32" alt="SKostyukovich" /></a>
|
|
179
|
-
<a href="https://github.com/peter-adam-dy?ref=orpc" target="_blank" rel="noopener" title="Peter Adam"><img src="https://avatars.githubusercontent.com/u/132129459?u=4f3dbbb3b443990b56acb7d6a5d11ed2c555f6db&v=4" width="32" height="32" alt="Peter Adam" /></a>
|
|
180
|
-
<a href="https://github.com/FabworksHQ?ref=orpc" target="_blank" rel="noopener" title="Fabworks"><img src="https://avatars.githubusercontent.com/u/160179500?v=4" width="32" height="32" alt="Fabworks" /></a>
|
|
181
|
-
<a href="https://github.com/NovakAnton?ref=orpc" target="_blank" rel="noopener" title="Novak Antonijevic"><img src="https://avatars.githubusercontent.com/u/157126729?u=ae49fa22292d55c0434ff0ca008206155b18663b&v=4" width="32" height="32" alt="Novak Antonijevic" /></a>
|
|
182
|
-
<a href="https://github.com/laduniestu?ref=orpc" target="_blank" rel="noopener" title="Laduni Estu Syalwa"><img src="https://avatars.githubusercontent.com/u/44757637?u=a2fc1ea8f7d827a96721176f79d30592d1c48059&v=4" width="32" height="32" alt="Laduni Estu Syalwa" /></a>
|
|
183
|
-
<a href="https://github.com/yukimotochern?ref=orpc" target="_blank" rel="noopener" title="Chen, Zhi-Yuan"><img src="https://avatars.githubusercontent.com/u/20896173?u=945c33fc21725e4d566a0d02afc54b136ca1d67a&v=4" width="32" height="32" alt="Chen, Zhi-Yuan" /></a>
|
|
184
|
-
<a href="https://github.com/illarionvk?ref=orpc" target="_blank" rel="noopener" title="Illarion Koperski"><img src="https://avatars.githubusercontent.com/u/5012724?u=7cfa13652f7ac5fb3c56d880e3eb3fbe40c3ea34&v=4" width="32" height="32" alt="Illarion Koperski" /></a>
|
|
185
|
-
<a href="https://github.com/steelbrain?ref=orpc" target="_blank" rel="noopener" title="Anees Iqbal"><img src="https://avatars.githubusercontent.com/u/4278113?u=22b80b5399eed68ac76cd58b02961b0481f1db11&v=4" width="32" height="32" alt="Anees Iqbal" /></a>
|
|
186
|
-
<a href="https://github.com/Scrumplex?ref=orpc" target="_blank" rel="noopener" title="Sefa Eyeoglu"><img src="https://avatars.githubusercontent.com/u/11587657?u=ab503582165c0bbff0cca47ce31c9450bb1553c9&v=4" width="32" height="32" alt="Sefa Eyeoglu" /></a>
|
|
187
|
-
<a href="https://github.com/nattstack?ref=orpc" target="_blank" rel="noopener" title="natt"><img src="https://avatars.githubusercontent.com/u/31426677?u=fa9dbb8b3e66eb0ea3c88db5dc07f31c8c5418fe&v=4" width="32" height="32" alt="natt" /></a>
|
|
188
|
-
<a href="https://github.com/ChromeGG?ref=orpc" target="_blank" rel="noopener" title="Adam Tkaczyk"><img src="https://avatars.githubusercontent.com/u/39050595?u=a58ca6042a6950e94e6e92442db76ef584279bc0&v=4" width="32" height="32" alt="Adam Tkaczyk" /></a>
|
|
189
|
-
<a href="https://github.com/plancraft?ref=orpc" target="_blank" rel="noopener" title="plancraft"><img src="https://avatars.githubusercontent.com/u/46482287?v=4" width="32" height="32" alt="plancraft" /></a>
|
|
190
|
-
<a href="https://github.com/Nic13Gamer?ref=orpc" target="_blank" rel="noopener" title="Nicholas"><img src="https://avatars.githubusercontent.com/u/54724556?u=56a7ab430ce7a80d648ab6eba051d454a818ed0b&v=4" width="32" height="32" alt="Nicholas" /></a>
|
|
191
|
-
</p>
|
|
152
|
+
With thanks to 37 past sponsors who helped get oRPC here.
|
|
192
153
|
|
|
193
154
|
## References
|
|
194
155
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { sortPlugins, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
|
|
2
2
|
import { toStandardLazyRequest, sendStandardResponse } from '@standardserver/aws-lambda';
|
|
3
3
|
import { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
|
|
4
|
-
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.
|
|
4
|
+
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.D9VprDph.mjs';
|
|
5
5
|
import '@orpc/client';
|
|
6
6
|
import '@standardserver/core';
|
|
7
|
-
import '../../shared/server.
|
|
7
|
+
import '../../shared/server.CkButhNT.mjs';
|
|
8
8
|
import '@orpc/contract';
|
|
9
|
-
import '../../shared/server.
|
|
9
|
+
import '../../shared/server.Dh77P3ii.mjs';
|
|
10
10
|
|
|
11
11
|
class CompositeAwsLambdaHandlerPlugin {
|
|
12
12
|
name = "~composite/aws-lambda";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { resolveMaybeOptionalOptions } from '@orpc/shared';
|
|
2
2
|
import { ServerPeer, encodePeerMessage, decodePeerMessage, isClientPeerSendMessage } from '@standardserver/peer';
|
|
3
3
|
import { c as createStandardPeerRequestHandler } from '../../shared/server.CX4vUnDk.mjs';
|
|
4
|
-
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.
|
|
4
|
+
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.D9VprDph.mjs';
|
|
5
5
|
import '@orpc/client';
|
|
6
6
|
import '@standardserver/core';
|
|
7
|
-
import '../../shared/server.
|
|
7
|
+
import '../../shared/server.CkButhNT.mjs';
|
|
8
8
|
import '@orpc/contract';
|
|
9
|
-
import '../../shared/server.
|
|
9
|
+
import '../../shared/server.Dh77P3ii.mjs';
|
|
10
10
|
|
|
11
11
|
class experimental_CrosswsHandler {
|
|
12
12
|
constructor(handler, options = {}) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { sortPlugins, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
|
|
2
2
|
import { toStandardLazyRequest, sendStandardResponse } from '@standardserver/fastify';
|
|
3
3
|
import { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
|
|
4
|
-
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.
|
|
4
|
+
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.D9VprDph.mjs';
|
|
5
5
|
import '@orpc/client';
|
|
6
6
|
import '@standardserver/core';
|
|
7
|
-
import '../../shared/server.
|
|
7
|
+
import '../../shared/server.CkButhNT.mjs';
|
|
8
8
|
import '@orpc/contract';
|
|
9
|
-
import '../../shared/server.
|
|
9
|
+
import '../../shared/server.Dh77P3ii.mjs';
|
|
10
10
|
|
|
11
11
|
class CompositeFastifyHandlerPlugin {
|
|
12
12
|
name = "~composite/fastify";
|
|
@@ -2,12 +2,12 @@ export { R as BodyLimitPlugin } from '../../shared/server.Cd4Z1hpV.mjs';
|
|
|
2
2
|
import { sortPlugins, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
|
|
3
3
|
import { toStandardLazyRequest, toFetchResponse } from '@standardserver/fetch';
|
|
4
4
|
import { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
|
|
5
|
-
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.
|
|
5
|
+
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.D9VprDph.mjs';
|
|
6
6
|
import '@orpc/client';
|
|
7
7
|
import '@standardserver/core';
|
|
8
|
-
import '../../shared/server.
|
|
8
|
+
import '../../shared/server.CkButhNT.mjs';
|
|
9
9
|
import '@orpc/contract';
|
|
10
|
-
import '../../shared/server.
|
|
10
|
+
import '../../shared/server.Dh77P3ii.mjs';
|
|
11
11
|
|
|
12
12
|
class CompositeFetchHandlerPlugin {
|
|
13
13
|
name = "~composite/fetch";
|
|
@@ -2,12 +2,12 @@ import { onMessagePortMessage, onMessagePortClose, postMessagePortMessage } from
|
|
|
2
2
|
import { value, resolveMaybeOptionalOptions } from '@orpc/shared';
|
|
3
3
|
import { ServerPeer, encodePeerMessage, decodePeerMessage, isClientPeerSendMessage, isPeerMessage } from '@standardserver/peer';
|
|
4
4
|
import { c as createStandardPeerRequestHandler } from '../../shared/server.CX4vUnDk.mjs';
|
|
5
|
-
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.
|
|
5
|
+
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.D9VprDph.mjs';
|
|
6
6
|
import '@orpc/client';
|
|
7
7
|
import '@standardserver/core';
|
|
8
|
-
import '../../shared/server.
|
|
8
|
+
import '../../shared/server.CkButhNT.mjs';
|
|
9
9
|
import '@orpc/contract';
|
|
10
|
-
import '../../shared/server.
|
|
10
|
+
import '../../shared/server.Dh77P3ii.mjs';
|
|
11
11
|
|
|
12
12
|
class MessagePortHandler {
|
|
13
13
|
constructor(handler, options = {}) {
|
|
@@ -2,13 +2,13 @@ export { R as BodyLimitPlugin } from '../../shared/server.Cd4Z1hpV.mjs';
|
|
|
2
2
|
import { sortPlugins, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
|
|
3
3
|
import { toStandardLazyRequest, sendStandardResponse } from '@standardserver/node';
|
|
4
4
|
import { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
|
|
5
|
-
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.
|
|
5
|
+
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.D9VprDph.mjs';
|
|
6
6
|
import '@orpc/client';
|
|
7
7
|
import '@standardserver/core';
|
|
8
8
|
import '@standardserver/fetch';
|
|
9
|
-
import '../../shared/server.
|
|
9
|
+
import '../../shared/server.CkButhNT.mjs';
|
|
10
10
|
import '@orpc/contract';
|
|
11
|
-
import '../../shared/server.
|
|
11
|
+
import '../../shared/server.Dh77P3ii.mjs';
|
|
12
12
|
|
|
13
13
|
class CompositeNodeHttpHandlerPlugin {
|
|
14
14
|
name = "~composite/node-http";
|
|
@@ -2,9 +2,9 @@ import { c as StandardHandlerHandleOptions } from '../../shared/server.JbCIPL4P.
|
|
|
2
2
|
export { C as CompositeStandardHandlerPlugin, O as OtelHandlerPlugin, b as StandardHandler, d as StandardHandlerCodec, e as StandardHandlerCodecResolvedProcedure, h as StandardHandlerHandleResult, i as StandardHandlerInterceptor, g as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, S as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, f as StandardHandlerRoutingInterceptorOptions } from '../../shared/server.JbCIPL4P.mjs';
|
|
3
3
|
export { a as RPCHandlerCodec, R as RPCHandlerCodecOptions, b as RPCMatcher, c as RPCMatcherOptions, d as RPC_DEFAULT_ALLOW_METHODS } from '../../shared/server.CkNnZ5F-.mjs';
|
|
4
4
|
import { C as Context } from '../../shared/server.CwrYlF72.mjs';
|
|
5
|
-
export { StandardBody, StandardBodyHint, StandardHeaders, StandardLazyRequest, StandardLazyResponse, StandardMethod, StandardRequest, StandardResponse, StandardUrl } from '@standardserver/core';
|
|
6
5
|
import '@orpc/client';
|
|
7
6
|
import '@orpc/shared';
|
|
7
|
+
import '@standardserver/core';
|
|
8
8
|
import '@orpc/contract';
|
|
9
9
|
import '../../shared/server.Dm0os-OP.mjs';
|
|
10
10
|
|
|
@@ -2,9 +2,9 @@ import { c as StandardHandlerHandleOptions } from '../../shared/server.DrN1Pj1-.
|
|
|
2
2
|
export { C as CompositeStandardHandlerPlugin, O as OtelHandlerPlugin, b as StandardHandler, d as StandardHandlerCodec, e as StandardHandlerCodecResolvedProcedure, h as StandardHandlerHandleResult, i as StandardHandlerInterceptor, g as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, S as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, f as StandardHandlerRoutingInterceptorOptions } from '../../shared/server.DrN1Pj1-.js';
|
|
3
3
|
export { a as RPCHandlerCodec, R as RPCHandlerCodecOptions, b as RPCMatcher, c as RPCMatcherOptions, d as RPC_DEFAULT_ALLOW_METHODS } from '../../shared/server.C2n16pp0.js';
|
|
4
4
|
import { C as Context } from '../../shared/server.CwrYlF72.js';
|
|
5
|
-
export { StandardBody, StandardBodyHint, StandardHeaders, StandardLazyRequest, StandardLazyResponse, StandardMethod, StandardRequest, StandardResponse, StandardUrl } from '@standardserver/core';
|
|
6
5
|
import '@orpc/client';
|
|
7
6
|
import '@orpc/shared';
|
|
7
|
+
import '@standardserver/core';
|
|
8
8
|
import '@orpc/contract';
|
|
9
9
|
import '../../shared/server.DtfwuV6U.js';
|
|
10
10
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { C as CompositeStandardHandlerPlugin, O as OtelHandlerPlugin, R as RPCHandlerCodec, a as RPCMatcher, b as RPC_DEFAULT_ALLOW_METHODS, S as StandardHandler } from '../../shared/server.
|
|
1
|
+
export { C as CompositeStandardHandlerPlugin, O as OtelHandlerPlugin, R as RPCHandlerCodec, a as RPCMatcher, b as RPC_DEFAULT_ALLOW_METHODS, S as StandardHandler } from '../../shared/server.D9VprDph.mjs';
|
|
2
2
|
export { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
|
|
3
3
|
import '@orpc/client';
|
|
4
4
|
import '@orpc/shared';
|
|
5
5
|
import '@standardserver/core';
|
|
6
|
-
import '../../shared/server.
|
|
6
|
+
import '../../shared/server.CkButhNT.mjs';
|
|
7
7
|
import '@orpc/contract';
|
|
8
|
-
import '../../shared/server.
|
|
8
|
+
import '../../shared/server.Dh77P3ii.mjs';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { toStringOrBytes, resolveMaybeOptionalOptions, sequential, loadBytes } from '@orpc/shared';
|
|
2
2
|
import { ServerPeer, encodePeerMessage, decodePeerMessage, isClientPeerSendMessage } from '@standardserver/peer';
|
|
3
3
|
import { c as createStandardPeerRequestHandler } from '../../shared/server.CX4vUnDk.mjs';
|
|
4
|
-
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.
|
|
4
|
+
import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.D9VprDph.mjs';
|
|
5
5
|
import '@orpc/client';
|
|
6
6
|
import '@standardserver/core';
|
|
7
|
-
import '../../shared/server.
|
|
7
|
+
import '../../shared/server.CkButhNT.mjs';
|
|
8
8
|
import '@orpc/contract';
|
|
9
|
-
import '../../shared/server.
|
|
9
|
+
import '../../shared/server.Dh77P3ii.mjs';
|
|
10
10
|
|
|
11
11
|
class WebSocketHandler {
|
|
12
12
|
constructor(handler, options = {}) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as createProcedureClient } from '../shared/server.
|
|
2
|
-
import { D as DecoratedProcedure } from '../shared/server.
|
|
1
|
+
import { c as createProcedureClient } from '../shared/server.CkButhNT.mjs';
|
|
2
|
+
import { D as DecoratedProcedure } from '../shared/server.eCTV8Vpp.mjs';
|
|
3
3
|
import '@orpc/client';
|
|
4
4
|
import '@orpc/contract';
|
|
5
5
|
import '@orpc/shared';
|
package/dist/index.d.mts
CHANGED
|
@@ -8,7 +8,7 @@ import { C as Context, d as Middleware, M as MergedContext, e as MergedInitialCo
|
|
|
8
8
|
export { j as LazyDefinition, k as MiddlewareDefinition, l as MiddlewareDone, m as MiddlewareDoneOptions, n as MiddlewareNext, o as MiddlewareNextOptions, p as MiddlewareOptions, q as MiddlewareResult, c as ProcedureClientInterceptor, r as ProcedureClientInterceptorOptions, s as ProcedureDefinition, t as ProcedureHandlerOptions, u as createProcedureClient, v as unlazy } from './shared/server.CwrYlF72.mjs';
|
|
9
9
|
import { A as AnyRouter, R as Router, C as ContractedRouter, I as InferRouterInitialContext } from './shared/server.Dm0os-OP.mjs';
|
|
10
10
|
export { a as InferRouterCurrentContexts, b as InferRouterError, c as InferRouterErrors, a as InferRouterFinalContexts, d as InferRouterInitialContexts, e as InferRouterInputs, f as InferRouterOutputs } from './shared/server.Dm0os-OP.mjs';
|
|
11
|
-
export { ErrorEvent, EventMeta, getEventMeta, unwrapEvent, withEventMeta } from '@standardserver/core';
|
|
11
|
+
export { ErrorEvent, EventMeta, StandardBody, StandardBodyHint, StandardHeaders, StandardLazyRequest, StandardLazyResponse, StandardMethod, StandardRequest, StandardResponse, StandardUrl, getEventMeta, unwrapEvent, withEventMeta } from '@standardserver/core';
|
|
12
12
|
|
|
13
13
|
interface DecoratedMiddleware<TInContext extends Context, TOutContext extends Context, TInput, TOutput, TErrorMap extends ErrorMap> extends Middleware<TInContext, TOutContext, TInput, TOutput, TErrorMap> {
|
|
14
14
|
adaptInput<T>(adapt: (input: T) => TInput): DecoratedMiddleware<TInContext, TOutContext, T, TOutput, TErrorMap>;
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { C as Context, d as Middleware, M as MergedContext, e as MergedInitialCo
|
|
|
8
8
|
export { j as LazyDefinition, k as MiddlewareDefinition, l as MiddlewareDone, m as MiddlewareDoneOptions, n as MiddlewareNext, o as MiddlewareNextOptions, p as MiddlewareOptions, q as MiddlewareResult, c as ProcedureClientInterceptor, r as ProcedureClientInterceptorOptions, s as ProcedureDefinition, t as ProcedureHandlerOptions, u as createProcedureClient, v as unlazy } from './shared/server.CwrYlF72.js';
|
|
9
9
|
import { A as AnyRouter, R as Router, C as ContractedRouter, I as InferRouterInitialContext } from './shared/server.DtfwuV6U.js';
|
|
10
10
|
export { a as InferRouterCurrentContexts, b as InferRouterError, c as InferRouterErrors, a as InferRouterFinalContexts, d as InferRouterInitialContexts, e as InferRouterInputs, f as InferRouterOutputs } from './shared/server.DtfwuV6U.js';
|
|
11
|
-
export { ErrorEvent, EventMeta, getEventMeta, unwrapEvent, withEventMeta } from '@standardserver/core';
|
|
11
|
+
export { ErrorEvent, EventMeta, StandardBody, StandardBodyHint, StandardHeaders, StandardLazyRequest, StandardLazyResponse, StandardMethod, StandardRequest, StandardResponse, StandardUrl, getEventMeta, unwrapEvent, withEventMeta } from '@standardserver/core';
|
|
12
12
|
|
|
13
13
|
interface DecoratedMiddleware<TInContext extends Context, TOutContext extends Context, TInput, TOutput, TErrorMap extends ErrorMap> extends Middleware<TInContext, TOutContext, TInput, TOutput, TErrorMap> {
|
|
14
14
|
adaptInput<T>(adapt: (input: T) => TInput): DecoratedMiddleware<TInContext, TOutContext, T, TOutput, TErrorMap>;
|
package/dist/index.mjs
CHANGED
|
@@ -2,11 +2,11 @@ import { mergeErrorMap, resolveMetaPlugins, getHiddenMetaPlugins, ProcedureContr
|
|
|
2
2
|
export { ValidationError, asyncIteratorObject, defineMeta, error, eventIterator, reconcileORPCError, type } from '@orpc/contract';
|
|
3
3
|
import { toArray, bindMethods, isTypescriptObject, resolveMaybeOptionalOptions } from '@orpc/shared';
|
|
4
4
|
export { AsyncIteratorClass, asyncIteratorToStream, asyncIteratorToUnproxiedDataStream, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onAsyncIteratorObjectError, onError, onFinish, onReadableStreamError, onStart, onSuccess, streamToAsyncIteratorObject, streamToAsyncIteratorObject as streamToEventIterator } from '@orpc/shared';
|
|
5
|
-
import { L as Lazy, P as Procedure, c as createProcedureClient } from './shared/server.
|
|
6
|
-
export { u as unlazy } from './shared/server.
|
|
7
|
-
import { D as DecoratedProcedure } from './shared/server.
|
|
8
|
-
import { b as augmentRouter, d as augmentImplementedRouter, e as withHiddenRouterContract, f as createGuardedProcedureLazy, g as getRouter } from './shared/server.
|
|
9
|
-
export { a as DEFAULT_ERROR_STATUS, D as DEFAULT_SUCCESS_STATUS, h as call, c as createContractProcedure, i as getHiddenRouterContract, u as unlazyRouter, j as walkProcedureContractsAsync, w as walkProcedureContractsSync } from './shared/server.
|
|
5
|
+
import { L as Lazy, P as Procedure, c as createProcedureClient } from './shared/server.CkButhNT.mjs';
|
|
6
|
+
export { u as unlazy } from './shared/server.CkButhNT.mjs';
|
|
7
|
+
import { D as DecoratedProcedure } from './shared/server.eCTV8Vpp.mjs';
|
|
8
|
+
import { b as augmentRouter, d as augmentImplementedRouter, e as withHiddenRouterContract, f as createGuardedProcedureLazy, g as getRouter } from './shared/server.Dh77P3ii.mjs';
|
|
9
|
+
export { a as DEFAULT_ERROR_STATUS, D as DEFAULT_SUCCESS_STATUS, h as call, c as createContractProcedure, i as getHiddenRouterContract, u as unlazyRouter, j as walkProcedureContractsAsync, w as walkProcedureContractsSync } from './shared/server.Dh77P3ii.mjs';
|
|
10
10
|
import { RECURSIVE_CLIENT_UNWRAP_KEYS } from '@orpc/client';
|
|
11
11
|
export { COMMON_ERROR_STATUS_MAP, ORPCError, RPCJsonSerializer, RPCSerializer, cloneORPCError, isDefinedError, isInferableError, safe, toORPCError } from '@orpc/client';
|
|
12
12
|
export { ErrorEvent, getEventMeta, unwrapEvent, withEventMeta } from '@standardserver/core';
|
package/dist/plugins/index.d.mts
CHANGED
|
@@ -96,18 +96,18 @@ interface CORSHandlerPluginOptions<T extends Context> {
|
|
|
96
96
|
*
|
|
97
97
|
* @default (origin) => origin
|
|
98
98
|
*/
|
|
99
|
-
origin?: Value<
|
|
99
|
+
origin?: Value<string | readonly string[] | null | undefined, [origin: string | undefined, options: StandardHandlerRoutingInterceptorOptions<T>]>;
|
|
100
100
|
/**
|
|
101
101
|
* Configures the `Timing-Allow-Origin` header.
|
|
102
102
|
* Can be a string, an array of allowed origins, or a function that returns the allowed origin(s).
|
|
103
103
|
*
|
|
104
104
|
* @default undefined
|
|
105
105
|
*/
|
|
106
|
-
timingOrigin?: Value<
|
|
106
|
+
timingOrigin?: Value<string | readonly string[] | null | undefined, [origin: string | undefined, options: StandardHandlerRoutingInterceptorOptions<T>]>;
|
|
107
107
|
/**
|
|
108
108
|
* Configures the `Access-Control-Allow-Methods` header for preflight requests.
|
|
109
109
|
*
|
|
110
|
-
* @default ['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH']
|
|
110
|
+
* @default ['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH', 'QUERY']
|
|
111
111
|
*/
|
|
112
112
|
allowMethods?: readonly string[];
|
|
113
113
|
/**
|
|
@@ -155,6 +155,28 @@ declare class CORSHandlerPlugin<T extends Context> implements StandardHandlerPlu
|
|
|
155
155
|
init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Adds Cross-Site Request Forgery (CSRF) protection that makes the safe `GET` method as
|
|
160
|
+
* secure as unsafe ones such as `POST`. It rejects `GET` requests arriving as top-level
|
|
161
|
+
* navigations initiated cross-site or from outside the browser, the only context where
|
|
162
|
+
* another site can make a browser attach `SameSite=Lax` cookies to a safe-method request.
|
|
163
|
+
*
|
|
164
|
+
* @remarks
|
|
165
|
+
* **Note**: Requests browsers send without `SameSite=Lax` cookies, such as cross-site `fetch`
|
|
166
|
+
* and `<img>`, pass through, so procedures stay reachable from other sites. This safeguard
|
|
167
|
+
* requires authentication cookies explicitly marked `SameSite=Lax` or `SameSite=Strict`,
|
|
168
|
+
* since browsers may attach other cookies to the requests that pass.
|
|
169
|
+
*
|
|
170
|
+
* @see {@link https://orpc.dev/docs/plugins/get-method-csrf-protection | GET Method CSRF Protection Plugin}
|
|
171
|
+
*/
|
|
172
|
+
declare class GetMethodCsrfProtectionHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
|
|
173
|
+
name: string;
|
|
174
|
+
/** Judge the real request, before batch splits it into client-authored sub-requests. */
|
|
175
|
+
after: string[];
|
|
176
|
+
init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
|
|
177
|
+
private isAllowed;
|
|
178
|
+
}
|
|
179
|
+
|
|
158
180
|
interface MethodOverrideHandlerPluginOptions {
|
|
159
181
|
/**
|
|
160
182
|
* The query parameter carrying the override method.
|
|
@@ -323,22 +345,5 @@ declare class RethrowHandlerPlugin<T extends Context> implements StandardHandler
|
|
|
323
345
|
init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
|
|
324
346
|
}
|
|
325
347
|
|
|
326
|
-
|
|
327
|
-
* Adds basic Cross-Site Request Forgery (CSRF) protection to your oRPC application.
|
|
328
|
-
* When a request includes cookies, it helps ensure the request originates from JavaScript
|
|
329
|
-
* (for example, fetch/XHR) rather than from standard HTML forms or direct browser navigation.
|
|
330
|
-
*
|
|
331
|
-
* @remarks
|
|
332
|
-
* Unlike `SameSite` cookies, this protection also covers cross-site requests that
|
|
333
|
-
* still carry cookies, so it is the recommended safeguard when you enable the `GET`
|
|
334
|
-
* method on RPC handlers or rely on cookie-based authentication.
|
|
335
|
-
*
|
|
336
|
-
* @see {@link https://orpc.dev/docs/plugins/simple-csrf-protection | Simple CSRF Protection Plugin}
|
|
337
|
-
*/
|
|
338
|
-
declare class SimpleCsrfProtectionHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
|
|
339
|
-
name: string;
|
|
340
|
-
init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
export { BATCH_CONTENT_TYPE, BatchHandlerPlugin, CORSHandlerPlugin, CORSHandlerPlugin as CORSPlugin, MethodOverrideHandlerPlugin, RequestCompressionHandlerPlugin, RequestHeadersHandlerPlugin, RequestHeadersHandlerPlugin as RequestHeadersPlugin, ResponseCompressionHandlerPlugin, ResponseHeadersHandlerPlugin, ResponseHeadersHandlerPlugin as ResponseHeadersPlugin, RethrowHandlerPlugin, SimpleCsrfProtectionHandlerPlugin };
|
|
348
|
+
export { BATCH_CONTENT_TYPE, BatchHandlerPlugin, CORSHandlerPlugin, CORSHandlerPlugin as CORSPlugin, GetMethodCsrfProtectionHandlerPlugin, MethodOverrideHandlerPlugin, RequestCompressionHandlerPlugin, RequestHeadersHandlerPlugin, RequestHeadersHandlerPlugin as RequestHeadersPlugin, ResponseCompressionHandlerPlugin, ResponseHeadersHandlerPlugin, ResponseHeadersHandlerPlugin as ResponseHeadersPlugin, RethrowHandlerPlugin };
|
|
344
349
|
export type { BatchHandlerPluginOptions, CORSHandlerPluginOptions, MethodOverrideHandlerPluginOptions, RequestHeadersHandlerPluginContext, RequestHeadersHandlerPluginContext as RequestHeadersPluginContext, ResponseCompressionHandlerPluginOptions, ResponseHeadersHandlerPluginContext, ResponseHeadersHandlerPluginContext as ResponseHeadersPluginContext, RethrowHandlerPluginOptions };
|
package/dist/plugins/index.d.ts
CHANGED
|
@@ -96,18 +96,18 @@ interface CORSHandlerPluginOptions<T extends Context> {
|
|
|
96
96
|
*
|
|
97
97
|
* @default (origin) => origin
|
|
98
98
|
*/
|
|
99
|
-
origin?: Value<
|
|
99
|
+
origin?: Value<string | readonly string[] | null | undefined, [origin: string | undefined, options: StandardHandlerRoutingInterceptorOptions<T>]>;
|
|
100
100
|
/**
|
|
101
101
|
* Configures the `Timing-Allow-Origin` header.
|
|
102
102
|
* Can be a string, an array of allowed origins, or a function that returns the allowed origin(s).
|
|
103
103
|
*
|
|
104
104
|
* @default undefined
|
|
105
105
|
*/
|
|
106
|
-
timingOrigin?: Value<
|
|
106
|
+
timingOrigin?: Value<string | readonly string[] | null | undefined, [origin: string | undefined, options: StandardHandlerRoutingInterceptorOptions<T>]>;
|
|
107
107
|
/**
|
|
108
108
|
* Configures the `Access-Control-Allow-Methods` header for preflight requests.
|
|
109
109
|
*
|
|
110
|
-
* @default ['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH']
|
|
110
|
+
* @default ['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH', 'QUERY']
|
|
111
111
|
*/
|
|
112
112
|
allowMethods?: readonly string[];
|
|
113
113
|
/**
|
|
@@ -155,6 +155,28 @@ declare class CORSHandlerPlugin<T extends Context> implements StandardHandlerPlu
|
|
|
155
155
|
init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Adds Cross-Site Request Forgery (CSRF) protection that makes the safe `GET` method as
|
|
160
|
+
* secure as unsafe ones such as `POST`. It rejects `GET` requests arriving as top-level
|
|
161
|
+
* navigations initiated cross-site or from outside the browser, the only context where
|
|
162
|
+
* another site can make a browser attach `SameSite=Lax` cookies to a safe-method request.
|
|
163
|
+
*
|
|
164
|
+
* @remarks
|
|
165
|
+
* **Note**: Requests browsers send without `SameSite=Lax` cookies, such as cross-site `fetch`
|
|
166
|
+
* and `<img>`, pass through, so procedures stay reachable from other sites. This safeguard
|
|
167
|
+
* requires authentication cookies explicitly marked `SameSite=Lax` or `SameSite=Strict`,
|
|
168
|
+
* since browsers may attach other cookies to the requests that pass.
|
|
169
|
+
*
|
|
170
|
+
* @see {@link https://orpc.dev/docs/plugins/get-method-csrf-protection | GET Method CSRF Protection Plugin}
|
|
171
|
+
*/
|
|
172
|
+
declare class GetMethodCsrfProtectionHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
|
|
173
|
+
name: string;
|
|
174
|
+
/** Judge the real request, before batch splits it into client-authored sub-requests. */
|
|
175
|
+
after: string[];
|
|
176
|
+
init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
|
|
177
|
+
private isAllowed;
|
|
178
|
+
}
|
|
179
|
+
|
|
158
180
|
interface MethodOverrideHandlerPluginOptions {
|
|
159
181
|
/**
|
|
160
182
|
* The query parameter carrying the override method.
|
|
@@ -323,22 +345,5 @@ declare class RethrowHandlerPlugin<T extends Context> implements StandardHandler
|
|
|
323
345
|
init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
|
|
324
346
|
}
|
|
325
347
|
|
|
326
|
-
|
|
327
|
-
* Adds basic Cross-Site Request Forgery (CSRF) protection to your oRPC application.
|
|
328
|
-
* When a request includes cookies, it helps ensure the request originates from JavaScript
|
|
329
|
-
* (for example, fetch/XHR) rather than from standard HTML forms or direct browser navigation.
|
|
330
|
-
*
|
|
331
|
-
* @remarks
|
|
332
|
-
* Unlike `SameSite` cookies, this protection also covers cross-site requests that
|
|
333
|
-
* still carry cookies, so it is the recommended safeguard when you enable the `GET`
|
|
334
|
-
* method on RPC handlers or rely on cookie-based authentication.
|
|
335
|
-
*
|
|
336
|
-
* @see {@link https://orpc.dev/docs/plugins/simple-csrf-protection | Simple CSRF Protection Plugin}
|
|
337
|
-
*/
|
|
338
|
-
declare class SimpleCsrfProtectionHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
|
|
339
|
-
name: string;
|
|
340
|
-
init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
export { BATCH_CONTENT_TYPE, BatchHandlerPlugin, CORSHandlerPlugin, CORSHandlerPlugin as CORSPlugin, MethodOverrideHandlerPlugin, RequestCompressionHandlerPlugin, RequestHeadersHandlerPlugin, RequestHeadersHandlerPlugin as RequestHeadersPlugin, ResponseCompressionHandlerPlugin, ResponseHeadersHandlerPlugin, ResponseHeadersHandlerPlugin as ResponseHeadersPlugin, RethrowHandlerPlugin, SimpleCsrfProtectionHandlerPlugin };
|
|
348
|
+
export { BATCH_CONTENT_TYPE, BatchHandlerPlugin, CORSHandlerPlugin, CORSHandlerPlugin as CORSPlugin, GetMethodCsrfProtectionHandlerPlugin, MethodOverrideHandlerPlugin, RequestCompressionHandlerPlugin, RequestHeadersHandlerPlugin, RequestHeadersHandlerPlugin as RequestHeadersPlugin, ResponseCompressionHandlerPlugin, ResponseHeadersHandlerPlugin, ResponseHeadersHandlerPlugin as ResponseHeadersPlugin, RethrowHandlerPlugin };
|
|
344
349
|
export type { BatchHandlerPluginOptions, CORSHandlerPluginOptions, MethodOverrideHandlerPluginOptions, RequestHeadersHandlerPluginContext, RequestHeadersHandlerPluginContext as RequestHeadersPluginContext, ResponseCompressionHandlerPluginOptions, ResponseHeadersHandlerPluginContext, ResponseHeadersHandlerPluginContext as ResponseHeadersPluginContext, RethrowHandlerPluginOptions };
|
package/dist/plugins/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { toArray, value, isCompressibleContentType, isAsyncIteratorObject, stringifyJSON } from '@orpc/shared';
|
|
1
|
+
import { toArray, value, parseAcceptEncodingQualities, isCompressibleContentType, isAsyncIteratorObject, stringifyJSON } from '@orpc/shared';
|
|
2
2
|
import { flattenStandardHeader, parseStandardUrl, generateContentDisposition, mergeStandardHeaders } from '@standardserver/core';
|
|
3
3
|
import { isClientPeerSendMessage, ServerPeer, encodePeerMessage } from '@standardserver/peer';
|
|
4
4
|
import { toFetchHeaders, toStandardBody, toStandardHeaders } from '@standardserver/fetch';
|
|
5
5
|
export { R as RequestLimitHandlerPlugin } from '../shared/server.Cd4Z1hpV.mjs';
|
|
6
|
-
import
|
|
6
|
+
import '@orpc/client';
|
|
7
7
|
|
|
8
8
|
const BATCH_CONTENT_TYPE = "application/vnd.orpc.batch";
|
|
9
9
|
class BatchHandlerPlugin {
|
|
@@ -61,16 +61,10 @@ class BatchHandlerPlugin {
|
|
|
61
61
|
response: { status: 400, headers: {}, body: "Invalid batch request data parameter" }
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
-
if (mightBeMessages.some((m) => m.kind === "request" && m.json.method !== "GET")) {
|
|
65
|
-
return {
|
|
66
|
-
matched: true,
|
|
67
|
-
response: { status: 400, headers: {}, body: "GET batch requests only accept GET sub-requests" }
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
64
|
messages = mightBeMessages;
|
|
71
65
|
} else {
|
|
72
66
|
const mightBeMessages = await interceptorOptions.request.resolveBody();
|
|
73
|
-
if (!Array.isArray(mightBeMessages)) {
|
|
67
|
+
if (!Array.isArray(mightBeMessages) || mightBeMessages.some((m) => !isClientPeerSendMessage(m))) {
|
|
74
68
|
return {
|
|
75
69
|
matched: true,
|
|
76
70
|
response: { status: 400, headers: {}, body: "Invalid batch request body" }
|
|
@@ -84,6 +78,13 @@ class BatchHandlerPlugin {
|
|
|
84
78
|
response: { status: 400, headers: {}, body: "Invalid batch request" }
|
|
85
79
|
};
|
|
86
80
|
}
|
|
81
|
+
const outerMethod = interceptorOptions.request.method;
|
|
82
|
+
if ((outerMethod === "GET" || outerMethod === "QUERY") && messages.some((message) => message.kind === "request" && message.json.method !== outerMethod)) {
|
|
83
|
+
return {
|
|
84
|
+
matched: true,
|
|
85
|
+
response: { status: 400, headers: {}, body: `${outerMethod} batch requests only accept ${outerMethod} sub-requests` }
|
|
86
|
+
};
|
|
87
|
+
}
|
|
87
88
|
const maxSize = await value(this.maxSize, interceptorOptions);
|
|
88
89
|
if (messages.length > maxSize) {
|
|
89
90
|
return {
|
|
@@ -215,7 +216,7 @@ class CORSHandlerPlugin {
|
|
|
215
216
|
constructor(options = {}) {
|
|
216
217
|
const defaults = {
|
|
217
218
|
origin: (origin) => origin,
|
|
218
|
-
allowMethods: ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH"]
|
|
219
|
+
allowMethods: ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH", "QUERY"]
|
|
219
220
|
};
|
|
220
221
|
this.options = {
|
|
221
222
|
...defaults,
|
|
@@ -229,12 +230,12 @@ class CORSHandlerPlugin {
|
|
|
229
230
|
return result;
|
|
230
231
|
}
|
|
231
232
|
const resHeaders = { ...result.response.headers };
|
|
232
|
-
const origin = flattenStandardHeader(interceptorOptions.request.headers.origin)
|
|
233
|
-
const allowedOrigins = toArray(
|
|
233
|
+
const origin = flattenStandardHeader(interceptorOptions.request.headers.origin);
|
|
234
|
+
const allowedOrigins = toArray(value(this.options.origin, origin, interceptorOptions));
|
|
234
235
|
if (allowedOrigins.includes("*")) {
|
|
235
236
|
resHeaders["access-control-allow-origin"] = "*";
|
|
236
237
|
} else {
|
|
237
|
-
if (allowedOrigins.includes(origin)) {
|
|
238
|
+
if (origin !== void 0 && allowedOrigins.includes(origin)) {
|
|
238
239
|
resHeaders["access-control-allow-origin"] = origin;
|
|
239
240
|
}
|
|
240
241
|
const existingVary = flattenStandardHeader(resHeaders.vary);
|
|
@@ -242,10 +243,10 @@ class CORSHandlerPlugin {
|
|
|
242
243
|
resHeaders.vary = existingVary ? `${existingVary}, Origin` : "Origin";
|
|
243
244
|
}
|
|
244
245
|
}
|
|
245
|
-
const allowedTimingOrigins = toArray(
|
|
246
|
+
const allowedTimingOrigins = toArray(value(this.options.timingOrigin, origin, interceptorOptions));
|
|
246
247
|
if (allowedTimingOrigins.includes("*")) {
|
|
247
248
|
resHeaders["timing-allow-origin"] = "*";
|
|
248
|
-
} else if (allowedTimingOrigins.includes(origin)) {
|
|
249
|
+
} else if (origin !== void 0 && allowedTimingOrigins.includes(origin)) {
|
|
249
250
|
resHeaders["timing-allow-origin"] = origin;
|
|
250
251
|
}
|
|
251
252
|
if (this.options.credentials) {
|
|
@@ -291,6 +292,42 @@ class CORSHandlerPlugin {
|
|
|
291
292
|
}
|
|
292
293
|
}
|
|
293
294
|
|
|
295
|
+
class GetMethodCsrfProtectionHandlerPlugin {
|
|
296
|
+
name = "~get-method-csrf-protection";
|
|
297
|
+
/** Judge the real request, before batch splits it into client-authored sub-requests. */
|
|
298
|
+
after = ["~batch"];
|
|
299
|
+
init(options) {
|
|
300
|
+
const routingInterceptor = (interceptorOptions) => {
|
|
301
|
+
if (this.isAllowed(interceptorOptions)) {
|
|
302
|
+
return interceptorOptions.next();
|
|
303
|
+
}
|
|
304
|
+
return Promise.resolve({
|
|
305
|
+
matched: true,
|
|
306
|
+
response: { status: 403, headers: {}, body: "Request blocked by CSRF protection." }
|
|
307
|
+
});
|
|
308
|
+
};
|
|
309
|
+
return {
|
|
310
|
+
...options,
|
|
311
|
+
routingInterceptors: [routingInterceptor, ...toArray(options.routingInterceptors)]
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
isAllowed({ request }) {
|
|
315
|
+
if (request.method !== "GET") {
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
const site = flattenStandardHeader(request.headers["sec-fetch-site"])?.toLowerCase();
|
|
319
|
+
if (site === void 0 || site === "same-origin" || site === "same-site") {
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
const mode = flattenStandardHeader(request.headers["sec-fetch-mode"])?.toLowerCase();
|
|
323
|
+
const dest = flattenStandardHeader(request.headers["sec-fetch-dest"])?.toLowerCase();
|
|
324
|
+
if (mode === void 0 || dest === void 0) {
|
|
325
|
+
return false;
|
|
326
|
+
}
|
|
327
|
+
return mode !== "navigate" || dest !== "document";
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
294
331
|
class MethodOverrideHandlerPlugin {
|
|
295
332
|
name = "~method-override";
|
|
296
333
|
/**
|
|
@@ -443,13 +480,16 @@ class ResponseCompressionHandlerPlugin {
|
|
|
443
480
|
if (contentEncoding !== void 0) {
|
|
444
481
|
return result;
|
|
445
482
|
}
|
|
483
|
+
if (response.status === 206 || response.headers["content-range"] !== void 0) {
|
|
484
|
+
return result;
|
|
485
|
+
}
|
|
446
486
|
if (isNoTransformCacheControl(flattenStandardHeader(response.headers["cache-control"]))) {
|
|
447
487
|
return result;
|
|
448
488
|
}
|
|
449
|
-
const acceptEncodings =
|
|
489
|
+
const acceptEncodings = parseAcceptEncodingQualities(
|
|
450
490
|
flattenStandardHeader(interceptorOptions.request.headers["accept-encoding"])
|
|
451
491
|
);
|
|
452
|
-
const encoding = this.encodings.find((enc) => acceptEncodings.
|
|
492
|
+
const encoding = this.encodings.find((enc) => (acceptEncodings.get(enc) ?? 0) > 0);
|
|
453
493
|
if (encoding === void 0) {
|
|
454
494
|
return result;
|
|
455
495
|
}
|
|
@@ -467,7 +507,8 @@ class ResponseCompressionHandlerPlugin {
|
|
|
467
507
|
...headers,
|
|
468
508
|
"standard-server": "octet-stream",
|
|
469
509
|
"content-length": [],
|
|
470
|
-
"content-encoding": encoding
|
|
510
|
+
"content-encoding": encoding,
|
|
511
|
+
"vary": varyByAcceptEncoding(headers.vary)
|
|
471
512
|
}
|
|
472
513
|
}
|
|
473
514
|
};
|
|
@@ -488,7 +529,8 @@ class ResponseCompressionHandlerPlugin {
|
|
|
488
529
|
"content-type": body.type,
|
|
489
530
|
"content-length": [],
|
|
490
531
|
"content-disposition": contentDisposition,
|
|
491
|
-
"content-encoding": encoding
|
|
532
|
+
"content-encoding": encoding,
|
|
533
|
+
"vary": varyByAcceptEncoding(headers.vary)
|
|
492
534
|
}
|
|
493
535
|
}
|
|
494
536
|
};
|
|
@@ -525,7 +567,8 @@ class ResponseCompressionHandlerPlugin {
|
|
|
525
567
|
"standard-server": [],
|
|
526
568
|
"content-type": res.headers.get("content-type"),
|
|
527
569
|
"content-length": [],
|
|
528
|
-
"content-encoding": encoding
|
|
570
|
+
"content-encoding": encoding,
|
|
571
|
+
"vary": varyByAcceptEncoding(headers.vary)
|
|
529
572
|
}
|
|
530
573
|
}
|
|
531
574
|
};
|
|
@@ -543,7 +586,8 @@ class ResponseCompressionHandlerPlugin {
|
|
|
543
586
|
"standard-server": [],
|
|
544
587
|
"content-type": "application/x-www-form-urlencoded",
|
|
545
588
|
"content-length": [],
|
|
546
|
-
"content-encoding": encoding
|
|
589
|
+
"content-encoding": encoding,
|
|
590
|
+
"vary": varyByAcceptEncoding(headers.vary)
|
|
547
591
|
}
|
|
548
592
|
}
|
|
549
593
|
};
|
|
@@ -561,7 +605,8 @@ class ResponseCompressionHandlerPlugin {
|
|
|
561
605
|
"standard-server": [],
|
|
562
606
|
"content-type": "application/json",
|
|
563
607
|
"content-length": [],
|
|
564
|
-
"content-encoding": encoding
|
|
608
|
+
"content-encoding": encoding,
|
|
609
|
+
"vary": varyByAcceptEncoding(headers.vary)
|
|
565
610
|
}
|
|
566
611
|
}
|
|
567
612
|
};
|
|
@@ -578,11 +623,13 @@ class ResponseCompressionHandlerPlugin {
|
|
|
578
623
|
};
|
|
579
624
|
}
|
|
580
625
|
}
|
|
581
|
-
function
|
|
582
|
-
|
|
583
|
-
|
|
626
|
+
function varyByAcceptEncoding(vary) {
|
|
627
|
+
const current = flattenStandardHeader(vary);
|
|
628
|
+
if (current === void 0) {
|
|
629
|
+
return "accept-encoding";
|
|
584
630
|
}
|
|
585
|
-
|
|
631
|
+
const fields = current.split(",").map((field) => field.trim().toLowerCase());
|
|
632
|
+
return fields.includes("accept-encoding") || fields.includes("*") ? current : `${current}, accept-encoding`;
|
|
586
633
|
}
|
|
587
634
|
const CACHE_CONTROL_NO_TRANSFORM_REGEX = /(?:^|,)\s*no-transform\s*(?:,|$)/i;
|
|
588
635
|
function isNoTransformCacheControl(cacheControl) {
|
|
@@ -680,29 +727,4 @@ class RethrowHandlerPlugin {
|
|
|
680
727
|
}
|
|
681
728
|
}
|
|
682
729
|
|
|
683
|
-
|
|
684
|
-
name = "~simple-csrf-protection";
|
|
685
|
-
init(options) {
|
|
686
|
-
const interceptor = async (interceptorOptions) => {
|
|
687
|
-
const mode = flattenStandardHeader(
|
|
688
|
-
interceptorOptions.request.headers["sec-fetch-mode"]
|
|
689
|
-
)?.toLowerCase();
|
|
690
|
-
if (mode === void 0) {
|
|
691
|
-
return interceptorOptions.next();
|
|
692
|
-
}
|
|
693
|
-
if (mode === "cors" || mode === "same-origin") {
|
|
694
|
-
return interceptorOptions.next();
|
|
695
|
-
}
|
|
696
|
-
throw new ORPCError("FORBIDDEN", {
|
|
697
|
-
message: "Request blocked by CSRF protection."
|
|
698
|
-
});
|
|
699
|
-
};
|
|
700
|
-
return {
|
|
701
|
-
...options,
|
|
702
|
-
// appended last so user's interceptors can catch ORPCError
|
|
703
|
-
interceptors: [...toArray(options.interceptors), interceptor]
|
|
704
|
-
};
|
|
705
|
-
}
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
export { BATCH_CONTENT_TYPE, BatchHandlerPlugin, CORSHandlerPlugin, CORSHandlerPlugin as CORSPlugin, MethodOverrideHandlerPlugin, RequestCompressionHandlerPlugin, RequestHeadersHandlerPlugin, RequestHeadersHandlerPlugin as RequestHeadersPlugin, ResponseCompressionHandlerPlugin, ResponseHeadersHandlerPlugin, ResponseHeadersHandlerPlugin as ResponseHeadersPlugin, RethrowHandlerPlugin, SimpleCsrfProtectionHandlerPlugin };
|
|
730
|
+
export { BATCH_CONTENT_TYPE, BatchHandlerPlugin, CORSHandlerPlugin, CORSHandlerPlugin as CORSPlugin, GetMethodCsrfProtectionHandlerPlugin, MethodOverrideHandlerPlugin, RequestCompressionHandlerPlugin, RequestHeadersHandlerPlugin, RequestHeadersHandlerPlugin as RequestHeadersPlugin, ResponseCompressionHandlerPlugin, ResponseHeadersHandlerPlugin, ResponseHeadersHandlerPlugin as ResponseHeadersPlugin, RethrowHandlerPlugin };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { wrapAsyncIteratorPreservingEventMeta, ORPCError, cloneORPCError } from '@orpc/client';
|
|
2
2
|
import { createORPCErrorConstructorMap, reconcileORPCError, ValidationError, ProcedureContract } from '@orpc/contract';
|
|
3
|
-
import { getConstructor, isTypescriptObject, resolveMaybeOptionalOptions, toArray, value, runWithSpan, intercept, isAsyncIteratorObject, override, traceAsyncIterator, traceReadableStream } from '@orpc/shared';
|
|
3
|
+
import { getConstructor, isTypescriptObject, resolveMaybeOptionalOptions, toArray, value, runWithSpan, intercept, isAsyncIteratorObject, override, traceAsyncIterator, traceReadableStream, isPlainObject, mergeTwoLevels } from '@orpc/shared';
|
|
4
4
|
|
|
5
5
|
class Lazy {
|
|
6
6
|
"~orpc";
|
|
@@ -127,7 +127,12 @@ async function executeProcedureInternal(procedure, options) {
|
|
|
127
127
|
const endInputIndex = midIndex === orderedMiddlewares.length ? inputSchemas.length : orderedMiddlewares[midIndex].inputSchemasLengthAtUse ?? 0;
|
|
128
128
|
if (!procedure["~orpc"].disableInputValidation) {
|
|
129
129
|
for (let i = startInputIndex; i < endInputIndex; i++) {
|
|
130
|
-
|
|
130
|
+
const validated = await validateInput(
|
|
131
|
+
i,
|
|
132
|
+
inputSchemas[i],
|
|
133
|
+
inputSchemas.length > 1 && isPlainObject(currentInput) ? options.input : currentInput
|
|
134
|
+
);
|
|
135
|
+
currentInput = i !== 0 ? mergeTwoLevels(currentInput, validated) : validated;
|
|
131
136
|
}
|
|
132
137
|
}
|
|
133
138
|
let currentOutput;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ORPCError, toORPCError, RPCSerializer, COMMON_ERROR_STATUS_MAP } from '@orpc/client';
|
|
2
2
|
import { sortPlugins, getOpenTelemetryConfig, runWithSpan, toArray, matchesHttpPathPrefix, intercept, ORPC_NAME, isAsyncIteratorObject, override, traceAsyncIterator, recordSpanError, pathToHttpPath, normalizeHttpPath, value, parseEmptyableJSON } from '@orpc/shared';
|
|
3
3
|
import { flattenStandardHeader, parseStandardUrl } from '@standardserver/core';
|
|
4
|
-
import { c as createProcedureClient, u as unlazy, P as Procedure } from './server.
|
|
5
|
-
import { w as walkProcedureContractsSync, g as getRouter, c as createContractProcedure, D as DEFAULT_SUCCESS_STATUS, a as DEFAULT_ERROR_STATUS } from './server.
|
|
4
|
+
import { c as createProcedureClient, u as unlazy, P as Procedure } from './server.CkButhNT.mjs';
|
|
5
|
+
import { w as walkProcedureContractsSync, g as getRouter, c as createContractProcedure, D as DEFAULT_SUCCESS_STATUS, a as DEFAULT_ERROR_STATUS } from './server.Dh77P3ii.mjs';
|
|
6
6
|
|
|
7
7
|
class CompositeStandardHandlerPlugin {
|
|
8
8
|
name = "~composite";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as createProcedureClient, P as Procedure, L as Lazy, u as unlazy } from './server.
|
|
1
|
+
import { c as createProcedureClient, P as Procedure, L as Lazy, u as unlazy } from './server.CkButhNT.mjs';
|
|
2
2
|
import { resolveMetaPlugins, mergeErrorMap, ProcedureContract } from '@orpc/contract';
|
|
3
3
|
import { omit, isTypescriptObject } from '@orpc/shared';
|
|
4
4
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveMetaPlugins, mergeErrorMap, getHiddenMetaPlugins } from '@orpc/contract';
|
|
2
|
-
import { P as Procedure } from './server.
|
|
2
|
+
import { P as Procedure } from './server.CkButhNT.mjs';
|
|
3
3
|
|
|
4
4
|
class DecoratedProcedure extends Procedure {
|
|
5
5
|
meta(...plugins) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orpc/server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.0-beta.
|
|
4
|
+
"version": "2.0.0-beta.27",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"funding": "https://github.com/sponsors/dinwwwh",
|
|
7
7
|
"homepage": "https://orpc.dev",
|
|
@@ -107,13 +107,13 @@
|
|
|
107
107
|
"@standardserver/node": "^0.7.1",
|
|
108
108
|
"@standardserver/peer": "^0.7.1",
|
|
109
109
|
"cookie": "^2.0.1",
|
|
110
|
-
"@orpc/client": "2.0.0-beta.
|
|
111
|
-
"@orpc/contract": "2.0.0-beta.
|
|
112
|
-
"@orpc/shared": "2.0.0-beta.
|
|
110
|
+
"@orpc/client": "2.0.0-beta.27",
|
|
111
|
+
"@orpc/contract": "2.0.0-beta.27",
|
|
112
|
+
"@orpc/shared": "2.0.0-beta.27"
|
|
113
113
|
},
|
|
114
114
|
"devDependencies": {
|
|
115
115
|
"crossws": "^0.4.6",
|
|
116
|
-
"fastify": "^5.11.
|
|
116
|
+
"fastify": "^5.11.3",
|
|
117
117
|
"supertest": "^7.2.2",
|
|
118
118
|
"zod": "^4.4.3"
|
|
119
119
|
},
|