@orpc/experimental-durable-iterator 0.0.0-next.2f529b8 → 0.0.0-next.325aa5d

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 CHANGED
@@ -1,22 +1,25 @@
1
1
  <div align="center">
2
- <image align="center" src="https://orpc.unnoq.com/logo.webp" width=280 alt="oRPC logo" />
2
+ <image align="center" src="https://orpc.dev/logo.webp" width=280 alt="oRPC logo" />
3
3
  </div>
4
4
 
5
5
  <h1></h1>
6
6
 
7
7
  <div align="center">
8
- <a href="https://codecov.io/gh/unnoq/orpc">
9
- <img alt="codecov" src="https://codecov.io/gh/unnoq/orpc/branch/main/graph/badge.svg">
8
+ <a href="https://codecov.io/gh/middleapi/orpc">
9
+ <img alt="codecov" src="https://codecov.io/gh/middleapi/orpc/branch/main/graph/badge.svg">
10
10
  </a>
11
11
  <a href="https://www.npmjs.com/package/@orpc/experimental-durable-iterator">
12
12
  <img alt="weekly downloads" src="https://img.shields.io/npm/dw/%40orpc%2Fexperimental-durable-iterator?logo=npm" />
13
13
  </a>
14
- <a href="https://github.com/unnoq/orpc/blob/main/LICENSE">
15
- <img alt="MIT License" src="https://img.shields.io/github/license/unnoq/orpc?logo=open-source-initiative" />
14
+ <a href="https://github.com/middleapi/orpc/blob/main/LICENSE">
15
+ <img alt="MIT License" src="https://img.shields.io/github/license/middleapi/orpc?logo=open-source-initiative" />
16
16
  </a>
17
17
  <a href="https://discord.gg/TXEbwRBvQn">
18
18
  <img alt="Discord" src="https://img.shields.io/discord/1308966753044398161?color=7389D8&label&logo=discord&logoColor=ffffff" />
19
19
  </a>
20
+ <a href="https://deepwiki.com/middleapi/orpc">
21
+ <img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki">
22
+ </a>
20
23
  </div>
21
24
 
22
25
  <h3 align="center">Typesafe APIs Made Simple 🪄</h3>
@@ -42,7 +45,7 @@
42
45
 
43
46
  ## Documentation
44
47
 
45
- You can find the full documentation [here](https://orpc.unnoq.com).
48
+ You can find the full documentation [here](https://orpc.dev).
46
49
 
47
50
  ## Packages
48
51
 
@@ -67,12 +70,124 @@ You can find the full documentation [here](https://orpc.unnoq.com).
67
70
 
68
71
  ## Sponsors
69
72
 
70
- <p align="center">
71
- <a href="https://cdn.jsdelivr.net/gh/unnoq/unnoq/sponsors.svg">
72
- <img src='https://cdn.jsdelivr.net/gh/unnoq/unnoq/sponsors.svg'/>
73
- </a>
73
+ If you find oRPC valuable and would like to support its development, you can do so here: [GitHub Sponsors](https://github.com/sponsors/dinwwwh).
74
+
75
+ ### 🏆 Platinum Sponsor
76
+
77
+ <table>
78
+ <tr>
79
+ <td align="center"><a href="https://screenshotone.com/?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="ScreenshotOne.com"><img src="https://avatars.githubusercontent.com/u/97035603?v=4" width="220" alt="ScreenshotOne.com"/><br />ScreenshotOne.com</a></td>
80
+ </tr>
81
+ </table>
82
+
83
+ ### 🥇 Gold Sponsor
84
+
85
+ <table>
86
+ <tr>
87
+ <td align="center"><a href="https://zuplo.link/orpc?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Zuplo"><img src="https://avatars.githubusercontent.com/u/85497839?v=4" width="170" alt="Zuplo"/><br />Zuplo</a></td>
88
+ </tr>
89
+ </table>
90
+
91
+ ### 🥈 Silver Sponsor
92
+
93
+ <table>
94
+ <tr>
95
+ <td align="center"><a href="https://misskey.io/?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="村上さん"><img src="https://avatars.githubusercontent.com/u/37681609?u=0dd4c7e4ba937cbb52b068c55914b1d8164dc0c7&amp;v=4" width="120" alt="村上さん"/><br />村上さん</a></td>
96
+ <td align="center"><a href="https://valerii15298.github.io/?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Valerii Petryniak"><img src="https://avatars.githubusercontent.com/u/44531564?u=88ac74d9bacd20401518441907acad21063cd397&amp;v=4" width="120" alt="Valerii Petryniak"/><br />Valerii Petryniak</a></td>
97
+ <td align="center"><a href="https://github.com/christ12938?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="christ12938"><img src="https://avatars.githubusercontent.com/u/25758598?v=4" width="120" alt="christ12938"/><br />christ12938</a></td>
98
+ </tr>
99
+ </table>
100
+
101
+ ### Generous Sponsors
102
+
103
+ <table>
104
+ <tr>
105
+ <td align="center"><a href="https://github.com/ln-markets?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="LN Markets"><img src="https://avatars.githubusercontent.com/u/70597625?v=4" width="88" alt="LN Markets"/><br />LN Markets</a></td>
106
+ </tr>
107
+ </table>
108
+
109
+ ### Sponsors
110
+
111
+ <table>
112
+ <tr>
113
+ <td align="center"><a href="https://github.com/hrmcdonald?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Reece McDonald"><img src="https://avatars.githubusercontent.com/u/39349270?v=4" width="76" alt="Reece McDonald"/><br />Reece McDonald</a></td>
114
+ <td align="center"><a href="https://github.com/Scrumplex?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Sefa Eyeoglu"><img src="https://avatars.githubusercontent.com/u/11587657?u=ab503582165c0bbff0cca47ce31c9450bb1553c9&amp;v=4" width="76" alt="Sefa Eyeoglu"/><br />Sefa Eyeoglu</a></td>
115
+ <td align="center"><a href="https://github.com/u1-liquid?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="あわわわとーにゅ"><img src="https://avatars.githubusercontent.com/u/17376330?u=de3353804be889f009f7e0a1582daf04d0ab292d&amp;v=4" width="76" alt="あわわわとーにゅ"/><br />あわわわとーにゅ</a></td>
116
+ <td align="center"><a href="https://github.com/nicognaW?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="nk"><img src="https://avatars.githubusercontent.com/u/66731869?u=4699bda3a9092d3ec34fbd959450767bcc8b8b6d&amp;v=4" width="76" alt="nk"/><br />nk</a></td>
117
+ <td align="center"><a href="https://github.com/supastarter?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="supastarter"><img src="https://avatars.githubusercontent.com/u/110960143?v=4" width="76" alt="supastarter"/><br />supastarter</a></td>
118
+ <td align="center"><a href="https://github.com/divmgl?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Dexter Miguel"><img src="https://avatars.githubusercontent.com/u/5452298?u=645993204be8696c085ecf0d228c3062efe2ed65&amp;v=4" width="76" alt="Dexter Miguel"/><br />Dexter Miguel</a></td>
119
+ </tr>
120
+ <tr>
121
+ <td align="center"><a href="https://github.com/herrfugbaum?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="herrfugbaum"><img src="https://avatars.githubusercontent.com/u/12859776?u=644dc1666d0220bc0468eb0de3c56b919f635b16&amp;v=4" width="76" alt="herrfugbaum"/><br />herrfugbaum</a></td>
122
+ <td align="center"><a href="https://github.com/ryota-murakami?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Ryota Murakami"><img src="https://avatars.githubusercontent.com/u/5501268?u=599389e03340734325726ca3f8f423c021d47d7f&amp;v=4" width="76" alt="Ryota Murakami"/><br />Ryota Murakami</a></td>
123
+ <td align="center"><a href="https://github.com/dcramer?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="David Cramer"><img src="https://avatars.githubusercontent.com/u/23610?v=4" width="76" alt="David Cramer"/><br />David Cramer</a></td>
124
+ <td align="center"><a href="https://github.com/happyboy2022?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="happyboy"><img src="https://avatars.githubusercontent.com/u/103669586?u=65b49c4b893ed3703909fbb3a7a22313f3f9c121&amp;v=4" width="76" alt="happyboy"/><br />happyboy</a></td>
125
+ <td align="center"><a href="https://github.com/letstri?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Valerii Strilets"><img src="https://avatars.githubusercontent.com/u/13253748?u=c7b10399ccc8f8081e24db94ec32cd9858e86ac3&amp;v=4" width="76" alt="Valerii Strilets"/><br />Valerii Strilets</a></td>
126
+ <td align="center"><a href="https://github.com/K-Mistele?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Kyle Mistele"><img src="https://avatars.githubusercontent.com/u/18430555?u=3afebeb81de666e35aaac3ed46f14159d7603ffb&amp;v=4" width="76" alt="Kyle Mistele"/><br />Kyle Mistele</a></td>
127
+ </tr>
128
+ <tr>
129
+ <td align="center"><a href="https://github.com/andrewpeters9?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Andrew Peters"><img src="https://avatars.githubusercontent.com/u/36251325?v=4" width="76" alt="Andrew Peters"/><br />Andrew Peters</a></td>
130
+ <td align="center"><a href="https://github.com/R44VC0RP?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Ryan Vogel"><img src="https://avatars.githubusercontent.com/u/89211796?u=1857347b9787d8d8a7ea5bfc333f96be92d5a683&amp;v=4" width="76" alt="Ryan Vogel"/><br />Ryan Vogel</a></td>
131
+ <td align="center"><a href="https://github.com/peter-adam-dy?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Peter Adam"><img src="https://avatars.githubusercontent.com/u/132129459?u=4f3dbbb3b443990b56acb7d6a5d11ed2c555f6db&amp;v=4" width="76" alt="Peter Adam"/><br />Peter Adam</a></td>
132
+ <td align="center"><a href="https://github.com/yukimotochern?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Chen, Zhi-Yuan"><img src="https://avatars.githubusercontent.com/u/20896173?u=945c33fc21725e4d566a0d02afc54b136ca1d67a&amp;v=4" width="76" alt="Chen, Zhi-Yuan"/><br />Chen, Zhi-Yuan</a></td>
133
+ <td align="center"><a href="https://github.com/Ryanjso?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Ryan Soderberg"><img src="https://avatars.githubusercontent.com/u/39172778?u=5ed913c31d57e7221b75784abcad48c7ebddde27&amp;v=4" width="76" alt="Ryan Soderberg"/><br />Ryan Soderberg</a></td>
134
+ </tr>
135
+ </table>
136
+
137
+ ### Backers
138
+
139
+ <table>
140
+ <tr>
141
+ <td align="center"><a href="https://github.com/rhinodavid?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="David Walsh"><img src="https://avatars.githubusercontent.com/u/5778036?u=b5521f07d2f88c3db2a0dae62b5f2f8357214af0&amp;v=4" width="54" alt="David Walsh"/><br />David Walsh</a></td>
142
+ <td align="center"><a href="https://github.com/Robbe95?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Robbe Vaes"><img src="https://avatars.githubusercontent.com/u/44748019?u=e0232402c045ad4eac7cbd217f1f47e083103b89&amp;v=4" width="54" alt="Robbe Vaes"/><br />Robbe Vaes</a></td>
143
+ <td align="center"><a href="https://github.com/aidansunbury?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Aidan Sunbury"><img src="https://avatars.githubusercontent.com/u/64103161?v=4" width="54" alt="Aidan Sunbury"/><br />Aidan Sunbury</a></td>
144
+ <td align="center"><a href="https://github.com/soonoo?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="soonoo"><img src="https://avatars.githubusercontent.com/u/5436405?u=5d0b4aa955c87e30e6bda7f0cccae5402da99528&amp;v=4" width="54" alt="soonoo"/><br />soonoo</a></td>
145
+ <td align="center"><a href="https://github.com/kporten?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Kevin Porten"><img src="https://avatars.githubusercontent.com/u/1839345?u=dc2263d5cfe0d927ce1a0be04a1d55dd6b55405c&amp;v=4" width="54" alt="Kevin Porten"/><br />Kevin Porten</a></td>
146
+ <td align="center"><a href="https://github.com/pumpkinlink?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Denis"><img src="https://avatars.githubusercontent.com/u/11864620?u=5f47bbe6c65d0f6f5cf011021490238e4b0593d0&amp;v=4" width="54" alt="Denis"/><br />Denis</a></td>
147
+ </tr>
148
+ <tr>
149
+ <td align="center"><a href="https://github.com/christopher-kapic?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Christopher Kapic"><img src="https://avatars.githubusercontent.com/u/59740769?v=4" width="54" alt="Christopher Kapic"/><br />Christopher Kapic</a></td>
150
+ <td align="center"><a href="https://github.com/thomasballinger?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Tom Ballinger"><img src="https://avatars.githubusercontent.com/u/458879?u=4b045ac75d721b6ac2b42a74d7d37f61f0414031&amp;v=4" width="54" alt="Tom Ballinger"/><br />Tom Ballinger</a></td>
151
+ <td align="center"><a href="https://github.com/SSam0419?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Sam"><img src="https://avatars.githubusercontent.com/u/102863520?u=3c89611f549d5070be232eb4532f690c8f2e7a65&amp;v=4" width="54" alt="Sam"/><br />Sam</a></td>
152
+ <td align="center"><a href="https://github.com/Titoine?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Titoine"><img src="https://avatars.githubusercontent.com/u/3514286?u=1bb1e86b0c99c8a1121372e56d51a177eea12191&amp;v=4" width="54" alt="Titoine"/><br />Titoine</a></td>
153
+ <td align="center"><a href="https://github.com/Mnigos?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Igor Makowski"><img src="https://avatars.githubusercontent.com/u/56691628?u=ee8c879478f7c151b9156aef6c74243fa3e247a8&amp;v=4" width="54" alt="Igor Makowski"/><br />Igor Makowski</a></td>
154
+ <td align="center"><a href="https://github.com/steelbrain?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Anees Iqbal"><img src="https://avatars.githubusercontent.com/u/4278113?u=22b80b5399eed68ac76cd58b02961b0481f1db11&amp;v=4" width="54" alt="Anees Iqbal"/><br />Anees Iqbal</a></td>
155
+ </tr>
156
+ <tr>
157
+ <td align="center"><a href="https://github.com/piscis?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Alex"><img src="https://avatars.githubusercontent.com/u/326163?u=b245f368bd940cf51d08c0b6bf55f8257f359437&amp;v=4" width="54" alt="Alex"/><br />Alex</a></td>
158
+ </tr>
159
+ </table>
160
+
161
+ ### Past Sponsors
162
+
163
+ <p>
164
+ <a href="https://github.com/MrMaxie?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Maxie"><img src="https://avatars.githubusercontent.com/u/3857836?u=5e6b57973d4385d655663ffdd836e487856f2984&amp;v=4" width="32" height="32" alt="Maxie" /></a>
165
+ <a href="https://github.com/Stijn-Timmer?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Stijn Timmer"><img src="https://avatars.githubusercontent.com/u/100147665?u=106b2c18e9c98a61861b4ee7fc100f5b9906a6c9&amp;v=4" width="32" height="32" alt="Stijn Timmer" /></a>
166
+ <a href="https://github.com/motopods?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="motopods"><img src="https://avatars.githubusercontent.com/u/58200641?u=18833983d65b481ae90a4adec2373064ec58bcf3&amp;v=4" width="32" height="32" alt="motopods" /></a>
167
+ <a href="https://github.com/franciscohermida?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Francisco Hermida"><img src="https://avatars.githubusercontent.com/u/483242?u=bbcbc80eb9d8781ff401f7dafc3b59cd7bea0561&amp;v=4" width="32" height="32" alt="Francisco Hermida" /></a>
168
+ <a href="https://github.com/theoludwig?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Théo LUDWIG"><img src="https://avatars.githubusercontent.com/u/25207499?u=a6a9653725a2f574c07893748806668e0598cdbe&amp;v=4" width="32" height="32" alt="Théo LUDWIG" /></a>
169
+ <a href="https://github.com/abhay-ramesh?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Abhay Ramesh"><img src="https://avatars.githubusercontent.com/u/66196314?u=c5c2b0327b26606c2efcfaf17046ab18c3d25c57&amp;v=4" width="32" height="32" alt="Abhay Ramesh" /></a>
170
+ <a href="https://github.com/shr-ink?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="shr.ink oü"><img src="https://avatars.githubusercontent.com/u/139700438?v=4" width="32" height="32" alt="shr.ink oü" /></a>
171
+ <a href="https://github.com/johngerome?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="0x4e32"><img src="https://avatars.githubusercontent.com/u/2002000?u=24e8dd943cfc862aa284d858a023532c75071ade&amp;v=4" width="32" height="32" alt="0x4e32" /></a>
172
+ <a href="https://github.com/yzuyr?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Ryuz"><img src="https://avatars.githubusercontent.com/u/196539378?u=d38374588d219b6748b16406982f6559411466d4&amp;v=4" width="32" height="32" alt="Ryuz" /></a>
173
+ <a href="https://github.com/YiCChi?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="yicchi"><img src="https://avatars.githubusercontent.com/u/86967274?u=6c2756f09fe15dd94d572f560e979cd157982852&amp;v=4" width="32" height="32" alt="yicchi" /></a>
174
+ <a href="https://github.com/cloudycotton?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Saksham"><img src="https://avatars.githubusercontent.com/u/168998965?u=9b9634a5aed66a51c1b880663272725b00b92b14&amp;v=4" width="32" height="32" alt="Saksham" /></a>
175
+ <a href="https://github.com/hrynevychroman?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Roman Hrynevych"><img src="https://avatars.githubusercontent.com/u/82209198?u=1a1d111ab3d589855b9cc8a7fefb1b5c6a4fbbaf&amp;v=4" width="32" height="32" alt="Roman Hrynevych" /></a>
176
+ <a href="https://github.com/rokitgg?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="rokitg"><img src="https://avatars.githubusercontent.com/u/125133357?u=06c74aefaa2236b06a2e5fba5a5c612339f45912&amp;v=4" width="32" height="32" alt="rokitg" /></a>
177
+ <a href="https://github.com/omarkhatibgg?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Omar Khatib"><img src="https://avatars.githubusercontent.com/u/9054278?u=afbba7331b85c51b8eee4130f5fd31b1017dc919&amp;v=4" width="32" height="32" alt="Omar Khatib" /></a>
178
+ <a href="https://github.com/YuSabo90002?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Yu-Sabo"><img src="https://avatars.githubusercontent.com/u/13120582?v=4" width="32" height="32" alt="Yu-Sabo" /></a>
179
+ <a href="https://github.com/bapspatil?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Bapusaheb Patil"><img src="https://avatars.githubusercontent.com/u/16699418?v=4" width="32" height="32" alt="Bapusaheb Patil" /></a>
180
+ <a href="https://github.com/ripgrim?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="grim"><img src="https://avatars.githubusercontent.com/u/75869731?u=b17c42ec2309552fdb822a86b25a2f99146a4d72&amp;v=4" width="32" height="32" alt="grim" /></a>
181
+ <a href="https://github.com/nelsonlaidev?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Nelson Lai"><img src="https://avatars.githubusercontent.com/u/75498339?u=2fc0e0b95dd184c5ffb744df977cb15a18b60672&amp;v=4" width="32" height="32" alt="Nelson Lai" /></a>
182
+ <a href="https://github.com/nguyenlc1993?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Lê Cao Nguyên"><img src="https://avatars.githubusercontent.com/u/13871971?u=83c8b69d9e35b589c4e1f066cc113b1d9461386f&amp;v=4" width="32" height="32" alt="Lê Cao Nguyên" /></a>
183
+ <a href="https://github.com/wobsoriano?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Robert Soriano"><img src="https://avatars.githubusercontent.com/u/13049130?u=6d72104182e7c9ed25934815313fb69107332111&amp;v=4" width="32" height="32" alt="Robert Soriano" /></a>
184
+ <a href="https://github.com/SKostyukovich?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="SKostyukovich"><img src="https://avatars.githubusercontent.com/u/10700067?v=4" width="32" height="32" alt="SKostyukovich" /></a>
185
+ <a href="https://github.com/FabworksHQ?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Fabworks"><img src="https://avatars.githubusercontent.com/u/160179500?v=4" width="32" height="32" alt="Fabworks" /></a>
186
+ <a href="https://github.com/NovakAnton?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Novak Antonijevic"><img src="https://avatars.githubusercontent.com/u/157126729?u=ae49fa22292d55c0434ff0ca008206155b18663b&amp;v=4" width="32" height="32" alt="Novak Antonijevic" /></a>
187
+ <a href="https://github.com/laduniestu?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Laduni Estu Syalwa"><img src="https://avatars.githubusercontent.com/u/44757637?u=a2fc1ea8f7d827a96721176f79d30592d1c48059&amp;v=4" width="32" height="32" alt="Laduni Estu Syalwa" /></a>
188
+ <a href="https://github.com/illarionvk?ref=orpc" target="_blank" rel="sponsored noopener noreferrer" title="Illarion Koperski"><img src="https://avatars.githubusercontent.com/u/5012724?u=7cfa13652f7ac5fb3c56d880e3eb3fbe40c3ea34&amp;v=4" width="32" height="32" alt="Illarion Koperski" /></a>
74
189
  </p>
75
190
 
76
191
  ## License
77
192
 
78
- Distributed under the MIT License. See [LICENSE](https://github.com/unnoq/orpc/blob/main/LICENSE) for more information.
193
+ Distributed under the MIT License. See [LICENSE](https://github.com/middleapi/orpc/blob/main/LICENSE) for more information.
@@ -39,9 +39,15 @@ interface DurableIteratorLinkPluginOptions<T extends ClientContext> extends Omit
39
39
  * @default NaN (disabled)
40
40
  */
41
41
  refreshTokenBeforeExpireInSeconds?: Value<Promisable<number>, [tokenPayload: DurableIteratorTokenPayload, options: StandardLinkInterceptorOptions<T>]>;
42
+ /**
43
+ * Minimum delay between token refresh attempts.
44
+ *
45
+ * @default 2 (seconds)
46
+ */
47
+ refreshTokenDelayInSeconds?: Value<Promisable<number>, [tokenPayload: DurableIteratorTokenPayload, options: StandardLinkInterceptorOptions<T>]>;
42
48
  }
43
49
  /**
44
- * @see {@link https://orpc.unnoq.com/docs/integrations/durable-iterator Durable Iterator Integration}
50
+ * @see {@link https://orpc.dev/docs/integrations/durable-iterator Durable Iterator Integration}
45
51
  */
46
52
  declare class DurableIteratorLinkPlugin<T extends ClientContext> implements StandardLinkPlugin<T> {
47
53
  readonly CONTEXT_SYMBOL: symbol;
@@ -52,8 +58,9 @@ declare class DurableIteratorLinkPlugin<T extends ClientContext> implements Stan
52
58
  private readonly url;
53
59
  private readonly createId;
54
60
  private readonly refreshTokenBeforeExpireInSeconds;
61
+ private readonly refreshTokenDelayInSeconds;
55
62
  private readonly linkOptions;
56
- constructor({ url, refreshTokenBeforeExpireInSeconds, ...options }: DurableIteratorLinkPluginOptions<T>);
63
+ constructor({ url, refreshTokenBeforeExpireInSeconds, refreshTokenDelayInSeconds, ...options }: DurableIteratorLinkPluginOptions<T>);
57
64
  init(options: StandardLinkOptions<T>): void;
58
65
  private validateToken;
59
66
  }
@@ -39,9 +39,15 @@ interface DurableIteratorLinkPluginOptions<T extends ClientContext> extends Omit
39
39
  * @default NaN (disabled)
40
40
  */
41
41
  refreshTokenBeforeExpireInSeconds?: Value<Promisable<number>, [tokenPayload: DurableIteratorTokenPayload, options: StandardLinkInterceptorOptions<T>]>;
42
+ /**
43
+ * Minimum delay between token refresh attempts.
44
+ *
45
+ * @default 2 (seconds)
46
+ */
47
+ refreshTokenDelayInSeconds?: Value<Promisable<number>, [tokenPayload: DurableIteratorTokenPayload, options: StandardLinkInterceptorOptions<T>]>;
42
48
  }
43
49
  /**
44
- * @see {@link https://orpc.unnoq.com/docs/integrations/durable-iterator Durable Iterator Integration}
50
+ * @see {@link https://orpc.dev/docs/integrations/durable-iterator Durable Iterator Integration}
45
51
  */
46
52
  declare class DurableIteratorLinkPlugin<T extends ClientContext> implements StandardLinkPlugin<T> {
47
53
  readonly CONTEXT_SYMBOL: symbol;
@@ -52,8 +58,9 @@ declare class DurableIteratorLinkPlugin<T extends ClientContext> implements Stan
52
58
  private readonly url;
53
59
  private readonly createId;
54
60
  private readonly refreshTokenBeforeExpireInSeconds;
61
+ private readonly refreshTokenDelayInSeconds;
55
62
  private readonly linkOptions;
56
- constructor({ url, refreshTokenBeforeExpireInSeconds, ...options }: DurableIteratorLinkPluginOptions<T>);
63
+ constructor({ url, refreshTokenBeforeExpireInSeconds, refreshTokenDelayInSeconds, ...options }: DurableIteratorLinkPluginOptions<T>);
57
64
  init(options: StandardLinkOptions<T>): void;
58
65
  private validateToken;
59
66
  }
@@ -1,11 +1,11 @@
1
- import { c as createClientDurableIterator } from '../shared/experimental-durable-iterator.B3M42lLK.mjs';
2
- export { g as getClientDurableIteratorToken } from '../shared/experimental-durable-iterator.B3M42lLK.mjs';
1
+ import { c as createClientDurableIterator } from '../shared/experimental-durable-iterator.sCul6zQj.mjs';
2
+ export { g as getClientDurableIteratorToken } from '../shared/experimental-durable-iterator.sCul6zQj.mjs';
3
3
  import { createORPCClient } from '@orpc/client';
4
4
  import { ClientRetryPlugin } from '@orpc/client/plugins';
5
5
  import { RPCLink } from '@orpc/client/websocket';
6
6
  import { fallback, value, toArray, AsyncIteratorClass, retry, stringifyJSON } from '@orpc/shared';
7
7
  import { WebSocket } from 'partysocket';
8
- import { d as DURABLE_ITERATOR_ID_PARAM, c as DURABLE_ITERATOR_TOKEN_PARAM, D as DurableIteratorError, b as DURABLE_ITERATOR_PLUGIN_HEADER_KEY, a as DURABLE_ITERATOR_PLUGIN_HEADER_VALUE, p as parseDurableIteratorToken } from '../shared/experimental-durable-iterator.DZOLL3sf.mjs';
8
+ import { d as DURABLE_ITERATOR_ID_PARAM, c as DURABLE_ITERATOR_TOKEN_PARAM, D as DurableIteratorError, b as DURABLE_ITERATOR_PLUGIN_HEADER_KEY, a as DURABLE_ITERATOR_PLUGIN_HEADER_VALUE, p as parseDurableIteratorToken } from '../shared/experimental-durable-iterator.C144gAzf.mjs';
9
9
  import '@orpc/server/helpers';
10
10
  import 'valibot';
11
11
 
@@ -18,11 +18,13 @@ class DurableIteratorLinkPlugin {
18
18
  url;
19
19
  createId;
20
20
  refreshTokenBeforeExpireInSeconds;
21
+ refreshTokenDelayInSeconds;
21
22
  linkOptions;
22
- constructor({ url, refreshTokenBeforeExpireInSeconds, ...options }) {
23
+ constructor({ url, refreshTokenBeforeExpireInSeconds, refreshTokenDelayInSeconds, ...options }) {
23
24
  this.url = url;
24
25
  this.createId = fallback(options.createId, () => crypto.randomUUID());
25
26
  this.refreshTokenBeforeExpireInSeconds = fallback(refreshTokenBeforeExpireInSeconds, Number.NaN);
27
+ this.refreshTokenDelayInSeconds = fallback(refreshTokenDelayInSeconds, 2);
26
28
  this.linkOptions = options;
27
29
  }
28
30
  init(options) {
@@ -62,31 +64,37 @@ class DurableIteratorLinkPlugin {
62
64
  let refreshTokenBeforeExpireTimeoutId;
63
65
  const refreshTokenBeforeExpire = async () => {
64
66
  const beforeSeconds = await value(this.refreshTokenBeforeExpireInSeconds, tokenAndPayload.payload, options2);
67
+ const delayMilliseconds = await value(this.refreshTokenDelayInSeconds, tokenAndPayload.payload, options2) * 1e3;
65
68
  if (isFinished || !Number.isFinite(beforeSeconds)) {
66
69
  return;
67
70
  }
68
- const nowInSeconds = Math.floor(Date.now() / 1e3);
69
- refreshTokenBeforeExpireTimeoutId = setTimeout(async () => {
70
- const newTokenAndPayload = await retry({ times: Number.POSITIVE_INFINITY, delay: 2e3 }, async (exit) => {
71
- try {
72
- const output2 = await next();
73
- return this.validateToken(output2, options2.path);
74
- } catch (err) {
75
- if (isFinished) {
76
- exit(err);
71
+ refreshTokenBeforeExpireTimeoutId = setTimeout(
72
+ async () => {
73
+ const newTokenAndPayload = await retry({ times: Number.POSITIVE_INFINITY, delay: delayMilliseconds }, async (exit) => {
74
+ try {
75
+ const output2 = await next();
76
+ return this.validateToken(output2, options2.path);
77
+ } catch (err) {
78
+ if (isFinished) {
79
+ exit(err);
80
+ }
81
+ throw err;
77
82
  }
78
- throw err;
83
+ });
84
+ const canProactivelyUpdateToken = newTokenAndPayload.payload.chn === tokenAndPayload.payload.chn && stringifyJSON(newTokenAndPayload.payload.tags) === stringifyJSON(tokenAndPayload.payload.tags);
85
+ tokenAndPayload = newTokenAndPayload;
86
+ await refreshTokenBeforeExpire();
87
+ if (canProactivelyUpdateToken) {
88
+ await durableClient.updateToken({ token: tokenAndPayload.token });
89
+ } else {
90
+ websocket.reconnect();
79
91
  }
80
- });
81
- const canProactivelyUpdateToken = newTokenAndPayload.payload.chn === tokenAndPayload.payload.chn && stringifyJSON(newTokenAndPayload.payload.tags) === stringifyJSON(tokenAndPayload.payload.tags);
82
- tokenAndPayload = newTokenAndPayload;
83
- await refreshTokenBeforeExpire();
84
- if (canProactivelyUpdateToken) {
85
- await durableClient.updateToken({ token: tokenAndPayload.token });
86
- } else {
87
- websocket.reconnect();
88
- }
89
- }, (tokenAndPayload.payload.exp - nowInSeconds - beforeSeconds) * 1e3);
92
+ },
93
+ Math.max(
94
+ refreshTokenBeforeExpireTimeoutId === void 0 ? 0 : delayMilliseconds,
95
+ (tokenAndPayload.payload.exp - beforeSeconds) * 1e3 - Date.now()
96
+ )
97
+ );
90
98
  };
91
99
  refreshTokenBeforeExpire();
92
100
  const closeConnection = () => {
@@ -96,6 +96,9 @@ interface EventResumeStorageOptions extends StandardRPCJsonSerializerOptions {
96
96
  *
97
97
  * @remarks
98
98
  * - Use infinite values to disable
99
+ * - Note that for performance, expired event cleanup is deferred. This means
100
+ * expired events may remain in storage for a short period beyond their
101
+ * retention time.
99
102
  *
100
103
  * @default NaN (disabled)
101
104
  */
@@ -135,6 +138,7 @@ declare class EventResumeStorage<T extends object> {
135
138
  get(websocket: DurableIteratorWebsocket, lastEventId: string): T[];
136
139
  private initSchema;
137
140
  private resetSchema;
141
+ private lastCleanupTime;
138
142
  private cleanupExpiredEvents;
139
143
  private serializeEventPayload;
140
144
  private deserializeEventPayload;
@@ -96,6 +96,9 @@ interface EventResumeStorageOptions extends StandardRPCJsonSerializerOptions {
96
96
  *
97
97
  * @remarks
98
98
  * - Use infinite values to disable
99
+ * - Note that for performance, expired event cleanup is deferred. This means
100
+ * expired events may remain in storage for a short period beyond their
101
+ * retention time.
99
102
  *
100
103
  * @default NaN (disabled)
101
104
  */
@@ -135,6 +138,7 @@ declare class EventResumeStorage<T extends object> {
135
138
  get(websocket: DurableIteratorWebsocket, lastEventId: string): T[];
136
139
  private initSchema;
137
140
  private resetSchema;
141
+ private lastCleanupTime;
138
142
  private cleanupExpiredEvents;
139
143
  private serializeEventPayload;
140
144
  private deserializeEventPayload;
@@ -3,7 +3,7 @@ export { withEventMeta } from '@orpc/server';
3
3
  import { HibernationEventIterator, encodeHibernationRPCEvent, HibernationPlugin } from '@orpc/server/hibernation';
4
4
  import { RPCHandler } from '@orpc/server/websocket';
5
5
  import { fallback, parseEmptyableJSON, stringifyJSON, get, toArray, intercept } from '@orpc/shared';
6
- import { D as DurableIteratorError, v as verifyDurableIteratorToken, c as DURABLE_ITERATOR_TOKEN_PARAM, d as DURABLE_ITERATOR_ID_PARAM } from '../shared/experimental-durable-iterator.DZOLL3sf.mjs';
6
+ import { D as DurableIteratorError, v as verifyDurableIteratorToken, c as DURABLE_ITERATOR_TOKEN_PARAM, d as DURABLE_ITERATOR_ID_PARAM } from '../shared/experimental-durable-iterator.C144gAzf.mjs';
7
7
  import { d as durableIteratorContract } from '../shared/experimental-durable-iterator.BRB0hiXN.mjs';
8
8
  import { StandardRPCJsonSerializer } from '@orpc/client/standard';
9
9
  import { DurableObject } from 'cloudflare:workers';
@@ -241,7 +241,13 @@ class EventResumeStorage {
241
241
  `);
242
242
  this.initSchema();
243
243
  }
244
+ lastCleanupTime;
244
245
  cleanupExpiredEvents() {
246
+ const now = Date.now();
247
+ if (this.lastCleanupTime && this.lastCleanupTime + this.retentionSeconds * 1e3 > now) {
248
+ return;
249
+ }
250
+ this.lastCleanupTime = now;
245
251
  this.durableState.storage.sql.exec(`
246
252
  DELETE FROM "${this.schemaPrefix}events" WHERE stored_at < unixepoch() - ?
247
253
  `, this.retentionSeconds);
package/dist/index.d.mts CHANGED
@@ -11,7 +11,7 @@ import '@orpc/client/plugins';
11
11
 
12
12
  declare const DURABLE_ITERATOR_TOKEN_PARAM: "token";
13
13
  declare const DURABLE_ITERATOR_ID_PARAM: "id";
14
- declare const DURABLE_ITERATOR_PLUGIN_HEADER_KEY: "x-orpc-dei";
14
+ declare const DURABLE_ITERATOR_PLUGIN_HEADER_KEY: "x-orpc-durable-iterator";
15
15
  declare const DURABLE_ITERATOR_PLUGIN_HEADER_VALUE: "1";
16
16
 
17
17
  declare const durableIteratorContract: {
@@ -52,8 +52,6 @@ interface DurableIteratorOptions<T extends DurableIteratorObject<any>, RPC exten
52
52
  * The methods that are allowed to be called remotely.
53
53
  *
54
54
  * @warning Please use .rpc method to set this field in case ts complains about value you pass
55
- *
56
- * @default []
57
55
  */
58
56
  rpc?: readonly RPC[];
59
57
  }
@@ -72,7 +70,7 @@ interface DurableIteratorHandlerPluginContext {
72
70
  isClientDurableIteratorOutput?: boolean;
73
71
  }
74
72
  /**
75
- * @see {@link https://orpc.unnoq.com/docs/integrations/durable-iterator Durable Iterator Integration}
73
+ * @see {@link https://orpc.dev/docs/integrations/durable-iterator Durable Iterator Integration}
76
74
  */
77
75
  declare class DurableIteratorHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
78
76
  readonly CONTEXT_SYMBOL: symbol;
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ import '@orpc/client/plugins';
11
11
 
12
12
  declare const DURABLE_ITERATOR_TOKEN_PARAM: "token";
13
13
  declare const DURABLE_ITERATOR_ID_PARAM: "id";
14
- declare const DURABLE_ITERATOR_PLUGIN_HEADER_KEY: "x-orpc-dei";
14
+ declare const DURABLE_ITERATOR_PLUGIN_HEADER_KEY: "x-orpc-durable-iterator";
15
15
  declare const DURABLE_ITERATOR_PLUGIN_HEADER_VALUE: "1";
16
16
 
17
17
  declare const durableIteratorContract: {
@@ -52,8 +52,6 @@ interface DurableIteratorOptions<T extends DurableIteratorObject<any>, RPC exten
52
52
  * The methods that are allowed to be called remotely.
53
53
  *
54
54
  * @warning Please use .rpc method to set this field in case ts complains about value you pass
55
- *
56
- * @default []
57
55
  */
58
56
  rpc?: readonly RPC[];
59
57
  }
@@ -72,7 +70,7 @@ interface DurableIteratorHandlerPluginContext {
72
70
  isClientDurableIteratorOutput?: boolean;
73
71
  }
74
72
  /**
75
- * @see {@link https://orpc.unnoq.com/docs/integrations/durable-iterator Durable Iterator Integration}
73
+ * @see {@link https://orpc.dev/docs/integrations/durable-iterator Durable Iterator Integration}
76
74
  */
77
75
  declare class DurableIteratorHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
78
76
  readonly CONTEXT_SYMBOL: symbol;
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import { s as signDurableIteratorToken, D as DurableIteratorError, a as DURABLE_ITERATOR_PLUGIN_HEADER_VALUE, b as DURABLE_ITERATOR_PLUGIN_HEADER_KEY } from './shared/experimental-durable-iterator.DZOLL3sf.mjs';
2
- export { d as DURABLE_ITERATOR_ID_PARAM, c as DURABLE_ITERATOR_TOKEN_PARAM, p as parseDurableIteratorToken, v as verifyDurableIteratorToken } from './shared/experimental-durable-iterator.DZOLL3sf.mjs';
1
+ import { s as signDurableIteratorToken, D as DurableIteratorError, a as DURABLE_ITERATOR_PLUGIN_HEADER_VALUE, b as DURABLE_ITERATOR_PLUGIN_HEADER_KEY } from './shared/experimental-durable-iterator.C144gAzf.mjs';
2
+ export { d as DURABLE_ITERATOR_ID_PARAM, c as DURABLE_ITERATOR_TOKEN_PARAM, p as parseDurableIteratorToken, v as verifyDurableIteratorToken } from './shared/experimental-durable-iterator.C144gAzf.mjs';
3
3
  export { d as durableIteratorContract } from './shared/experimental-durable-iterator.BRB0hiXN.mjs';
4
4
  import { AsyncIteratorClass } from '@orpc/shared';
5
- import { c as createClientDurableIterator, g as getClientDurableIteratorToken } from './shared/experimental-durable-iterator.B3M42lLK.mjs';
5
+ import { c as createClientDurableIterator, g as getClientDurableIteratorToken } from './shared/experimental-durable-iterator.sCul6zQj.mjs';
6
6
  import '@orpc/client';
7
7
  import '@orpc/client/plugins';
8
8
  import '@orpc/client/websocket';
@@ -4,7 +4,7 @@ import * as v from 'valibot';
4
4
 
5
5
  const DURABLE_ITERATOR_TOKEN_PARAM = "token";
6
6
  const DURABLE_ITERATOR_ID_PARAM = "id";
7
- const DURABLE_ITERATOR_PLUGIN_HEADER_KEY = "x-orpc-dei";
7
+ const DURABLE_ITERATOR_PLUGIN_HEADER_KEY = "x-orpc-durable-iterator";
8
8
  const DURABLE_ITERATOR_PLUGIN_HEADER_VALUE = "1";
9
9
 
10
10
  class DurableIteratorError extends Error {
@@ -1,6 +1,6 @@
1
1
  import { createORPCClient } from '@orpc/client';
2
2
  import { isAsyncIteratorObject } from '@orpc/shared';
3
- import { p as parseDurableIteratorToken } from './experimental-durable-iterator.DZOLL3sf.mjs';
3
+ import { p as parseDurableIteratorToken } from './experimental-durable-iterator.C144gAzf.mjs';
4
4
 
5
5
  const CLIENT_DURABLE_ITERATOR_TOKEN_SYMBOL = Symbol("ORPC_CLIENT_DURABLE_ITERATOR_TOKEN");
6
6
  function createClientDurableIterator(iterator, link, options) {
package/package.json CHANGED
@@ -1,16 +1,15 @@
1
1
  {
2
2
  "name": "@orpc/experimental-durable-iterator",
3
3
  "type": "module",
4
- "version": "0.0.0-next.2f529b8",
4
+ "version": "0.0.0-next.325aa5d",
5
5
  "license": "MIT",
6
- "homepage": "https://orpc.unnoq.com",
6
+ "homepage": "https://orpc.dev",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/unnoq/orpc.git",
9
+ "url": "git+https://github.com/middleapi/orpc.git",
10
10
  "directory": "packages/durable-iterator"
11
11
  },
12
12
  "keywords": [
13
- "unnoq",
14
13
  "orpc"
15
14
  ],
16
15
  "exports": {
@@ -34,17 +33,17 @@
34
33
  "dist"
35
34
  ],
36
35
  "dependencies": {
37
- "partysocket": "^1.1.5",
38
- "valibot": "^1.1.0",
39
- "@orpc/client": "0.0.0-next.2f529b8",
40
- "@orpc/contract": "0.0.0-next.2f529b8",
41
- "@orpc/server": "0.0.0-next.2f529b8",
42
- "@orpc/shared": "0.0.0-next.2f529b8"
36
+ "partysocket": "^1.1.16",
37
+ "valibot": "^1.2.0",
38
+ "@orpc/client": "0.0.0-next.325aa5d",
39
+ "@orpc/contract": "0.0.0-next.325aa5d",
40
+ "@orpc/shared": "0.0.0-next.325aa5d",
41
+ "@orpc/server": "0.0.0-next.325aa5d"
43
42
  },
44
43
  "devDependencies": {
45
- "@cloudflare/workers-types": "^4.20250923.0",
46
- "@types/node": "^22.15.30",
47
- "@orpc/standard-server-peer": "0.0.0-next.2f529b8"
44
+ "@cloudflare/workers-types": "^4.20260313.1",
45
+ "@types/node": "^22.19.3",
46
+ "@orpc/standard-server-peer": "0.0.0-next.325aa5d"
48
47
  },
49
48
  "scripts": {
50
49
  "build": "unbuild",