@orpc/experimental-durable-iterator 0.0.0-next.f7af1c4 → 0.0.0-next.f8670e3

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,122 @@ 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="noopener" title="ScreenshotOne.com"><img src="https://avatars.githubusercontent.com/u/97035603?v=4" width="279" 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="noopener" title="Zuplo"><img src="https://avatars.githubusercontent.com/u/85497839?v=4" width="209" 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="noopener" title="村上さん"><img src="https://avatars.githubusercontent.com/u/37681609?u=0dd4c7e4ba937cbb52b068c55914b1d8164dc0c7&amp;v=4" width="167" alt="村上さん"/><br />村上さん</a></td>
96
+ <td align="center"><a href="https://github.com/christ12938?ref=orpc" target="_blank" rel="noopener" title="christ12938"><img src="https://avatars.githubusercontent.com/u/25758598?v=4" width="167" alt="christ12938"/><br />christ12938</a></td>
97
+ </tr>
98
+ </table>
99
+
100
+ ### Generous Sponsors
101
+
102
+ <table>
103
+ <tr>
104
+ <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="139" alt="LN Markets"/><br />LN Markets</a></td>
105
+ </tr>
106
+ </table>
107
+
108
+ ### Sponsors
109
+
110
+ <table>
111
+ <tr>
112
+ <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="119" alt="Reece McDonald"/><br />Reece McDonald</a></td>
113
+ <td align="center"><a href="https://github.com/u1-liquid?ref=orpc" target="_blank" rel="noopener" title="あわわわとーにゅ"><img src="https://avatars.githubusercontent.com/u/17376330?u=de3353804be889f009f7e0a1582daf04d0ab292d&amp;v=4" width="119" alt="あわわわとーにゅ"/><br />あわわわとーにゅ</a></td>
114
+ <td align="center"><a href="https://github.com/nicognaW?ref=orpc" target="_blank" rel="noopener" title="nk"><img src="https://avatars.githubusercontent.com/u/66731869?u=4699bda3a9092d3ec34fbd959450767bcc8b8b6d&amp;v=4" width="119" alt="nk"/><br />nk</a></td>
115
+ <td align="center"><a href="https://github.com/supastarter?ref=orpc" target="_blank" rel="noopener" title="supastarter"><img src="https://avatars.githubusercontent.com/u/110960143?v=4" width="119" alt="supastarter"/><br />supastarter</a></td>
116
+ <td align="center"><a href="https://github.com/divmgl?ref=orpc" target="_blank" rel="noopener" title="Dexter Miguel"><img src="https://avatars.githubusercontent.com/u/5452298?u=645993204be8696c085ecf0d228c3062efe2ed65&amp;v=4" width="119" alt="Dexter Miguel"/><br />Dexter Miguel</a></td>
117
+ <td align="center"><a href="https://github.com/herrfugbaum?ref=orpc" target="_blank" rel="noopener" title="herrfugbaum"><img src="https://avatars.githubusercontent.com/u/12859776?u=644dc1666d0220bc0468eb0de3c56b919f635b16&amp;v=4" width="119" alt="herrfugbaum"/><br />herrfugbaum</a></td>
118
+ <td align="center"><a href="https://github.com/ryota-murakami?ref=orpc" target="_blank" rel="noopener" title="Ryota Murakami"><img src="https://avatars.githubusercontent.com/u/5501268?u=599389e03340734325726ca3f8f423c021d47d7f&amp;v=4" width="119" alt="Ryota Murakami"/><br />Ryota Murakami</a></td>
119
+ </tr>
120
+ <tr>
121
+ <td align="center"><a href="https://github.com/dcramer?ref=orpc" target="_blank" rel="noopener" title="David Cramer"><img src="https://avatars.githubusercontent.com/u/23610?v=4" width="119" alt="David Cramer"/><br />David Cramer</a></td>
122
+ <td align="center"><a href="https://github.com/valerii15298?ref=orpc" target="_blank" rel="noopener" title="Valerii Petryniak"><img src="https://avatars.githubusercontent.com/u/44531564?u=88ac74d9bacd20401518441907acad21063cd397&amp;v=4" width="119" alt="Valerii Petryniak"/><br />Valerii Petryniak</a></td>
123
+ <td align="center"><a href="https://github.com/happyboy2022?ref=orpc" target="_blank" rel="noopener" title="happyboy"><img src="https://avatars.githubusercontent.com/u/103669586?u=65b49c4b893ed3703909fbb3a7a22313f3f9c121&amp;v=4" width="119" alt="happyboy"/><br />happyboy</a></td>
124
+ <td align="center"><a href="https://github.com/letstri?ref=orpc" target="_blank" rel="noopener" title="Valerii Strilets"><img src="https://avatars.githubusercontent.com/u/13253748?u=c7b10399ccc8f8081e24db94ec32cd9858e86ac3&amp;v=4" width="119" alt="Valerii Strilets"/><br />Valerii Strilets</a></td>
125
+ <td align="center"><a href="https://github.com/K-Mistele?ref=orpc" target="_blank" rel="noopener" title="Kyle Mistele"><img src="https://avatars.githubusercontent.com/u/18430555?u=3afebeb81de666e35aaac3ed46f14159d7603ffb&amp;v=4" width="119" alt="Kyle Mistele"/><br />Kyle Mistele</a></td>
126
+ <td align="center"><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="119" alt="Andrew Peters"/><br />Andrew Peters</a></td>
127
+ <td align="center"><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&amp;v=4" width="119" alt="Ryan Vogel"/><br />Ryan Vogel</a></td>
128
+ </tr>
129
+ <tr>
130
+ <td align="center"><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&amp;v=4" width="119" alt="Peter Adam"/><br />Peter Adam</a></td>
131
+ <td align="center"><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&amp;v=4" width="119" alt="Chen, Zhi-Yuan"/><br />Chen, Zhi-Yuan</a></td>
132
+ <td align="center"><a href="https://github.com/Ryanjso?ref=orpc" target="_blank" rel="noopener" title="Ryan Soderberg"><img src="https://avatars.githubusercontent.com/u/39172778?u=5ed913c31d57e7221b75784abcad48c7ebddde27&amp;v=4" width="119" alt="Ryan Soderberg"/><br />Ryan Soderberg</a></td>
133
+ </tr>
134
+ </table>
135
+
136
+ ### Backers
137
+
138
+ <table>
139
+ <tr>
140
+ <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&amp;v=4" width="104" alt="David Walsh"/><br />David Walsh</a></td>
141
+ <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&amp;v=4" width="104" alt="Robbe Vaes"/><br />Robbe Vaes</a></td>
142
+ <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="104" alt="Aidan Sunbury"/><br />Aidan Sunbury</a></td>
143
+ <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&amp;v=4" width="104" alt="soonoo"/><br />soonoo</a></td>
144
+ <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&amp;v=4" width="104" alt="Kevin Porten"/><br />Kevin Porten</a></td>
145
+ <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&amp;v=4" width="104" alt="Denis"/><br />Denis</a></td>
146
+ <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?v=4" width="104" alt="Christopher Kapic"/><br />Christopher Kapic</a></td>
147
+ <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&amp;v=4" width="104" alt="Tom Ballinger"/><br />Tom Ballinger</a></td>
148
+ </tr>
149
+ <tr>
150
+ <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&amp;v=4" width="104" alt="Sam"/><br />Sam</a></td>
151
+ <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&amp;v=4" width="104" alt="Titoine"/><br />Titoine</a></td>
152
+ <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&amp;v=4" width="104" alt="Igor Makowski"/><br />Igor Makowski</a></td>
153
+ <td align="center"><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&amp;v=4" width="104" alt="Anees Iqbal"/><br />Anees Iqbal</a></td>
154
+ <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&amp;v=4" width="104" alt="Alex"/><br />Alex</a></td>
155
+ </tr>
156
+ </table>
157
+
158
+ ### Past Sponsors
159
+
160
+ <p>
161
+ <a href="https://github.com/MrMaxie?ref=orpc" target="_blank" rel="noopener" title="Maxie"><img src="https://avatars.githubusercontent.com/u/3857836?u=5e6b57973d4385d655663ffdd836e487856f2984&amp;v=4" width="32" height="32" alt="Maxie" /></a>
162
+ <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&amp;v=4" width="32" height="32" alt="Stijn Timmer" /></a>
163
+ <a href="https://github.com/motopods?ref=orpc" target="_blank" rel="noopener" title="motopods"><img src="https://avatars.githubusercontent.com/u/58200641?u=18833983d65b481ae90a4adec2373064ec58bcf3&amp;v=4" width="32" height="32" alt="motopods" /></a>
164
+ <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&amp;v=4" width="32" height="32" alt="Francisco Hermida" /></a>
165
+ <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&amp;v=4" width="32" height="32" alt="Théo LUDWIG" /></a>
166
+ <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&amp;v=4" width="32" height="32" alt="Abhay Ramesh" /></a>
167
+ <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>
168
+ <a href="https://github.com/johngerome?ref=orpc" target="_blank" rel="noopener" title="0x4e32"><img src="https://avatars.githubusercontent.com/u/2002000?u=24e8dd943cfc862aa284d858a023532c75071ade&amp;v=4" width="32" height="32" alt="0x4e32" /></a>
169
+ <a href="https://github.com/yzuyr?ref=orpc" target="_blank" rel="noopener" title="Ryuz"><img src="https://avatars.githubusercontent.com/u/196539378?u=d38374588d219b6748b16406982f6559411466d4&amp;v=4" width="32" height="32" alt="Ryuz" /></a>
170
+ <a href="https://github.com/YiCChi?ref=orpc" target="_blank" rel="noopener" title="yicchi"><img src="https://avatars.githubusercontent.com/u/86967274?u=6c2756f09fe15dd94d572f560e979cd157982852&amp;v=4" width="32" height="32" alt="yicchi" /></a>
171
+ <a href="https://github.com/cloudycotton?ref=orpc" target="_blank" rel="noopener" title="Saksham"><img src="https://avatars.githubusercontent.com/u/168998965?u=9b9634a5aed66a51c1b880663272725b00b92b14&amp;v=4" width="32" height="32" alt="Saksham" /></a>
172
+ <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&amp;v=4" width="32" height="32" alt="Roman Hrynevych" /></a>
173
+ <a href="https://github.com/rokitgg?ref=orpc" target="_blank" rel="noopener" title="rokitg"><img src="https://avatars.githubusercontent.com/u/125133357?u=06c74aefaa2236b06a2e5fba5a5c612339f45912&amp;v=4" width="32" height="32" alt="rokitg" /></a>
174
+ <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&amp;v=4" width="32" height="32" alt="Omar Khatib" /></a>
175
+ <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>
176
+ <a href="https://github.com/bapspatil?ref=orpc" target="_blank" rel="noopener" title="Bapusaheb Patil"><img src="https://avatars.githubusercontent.com/u/16699418?v=4" width="32" height="32" alt="Bapusaheb Patil" /></a>
177
+ <a href="https://github.com/ripgrim?ref=orpc" target="_blank" rel="noopener" title="grim"><img src="https://avatars.githubusercontent.com/u/75869731?u=b17c42ec2309552fdb822a86b25a2f99146a4d72&amp;v=4" width="32" height="32" alt="grim" /></a>
178
+ <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&amp;v=4" width="32" height="32" alt="Nelson Lai" /></a>
179
+ <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&amp;v=4" width="32" height="32" alt="Lê Cao Nguyên" /></a>
180
+ <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&amp;v=4" width="32" height="32" alt="Robert Soriano" /></a>
181
+ <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>
182
+ <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>
183
+ <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&amp;v=4" width="32" height="32" alt="Novak Antonijevic" /></a>
184
+ <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&amp;v=4" width="32" height="32" alt="Laduni Estu Syalwa" /></a>
185
+ <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&amp;v=4" width="32" height="32" alt="Illarion Koperski" /></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&amp;v=4" width="32" height="32" alt="Sefa Eyeoglu" /></a>
74
187
  </p>
75
188
 
76
189
  ## License
77
190
 
78
- Distributed under the MIT License. See [LICENSE](https://github.com/unnoq/orpc/blob/main/LICENSE) for more information.
191
+ 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.f7af1c4",
4
+ "version": "0.0.0-next.f8670e3",
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.f7af1c4",
40
- "@orpc/contract": "0.0.0-next.f7af1c4",
41
- "@orpc/shared": "0.0.0-next.f7af1c4",
42
- "@orpc/server": "0.0.0-next.f7af1c4"
36
+ "partysocket": "^1.1.16",
37
+ "valibot": "^1.2.0",
38
+ "@orpc/client": "0.0.0-next.f8670e3",
39
+ "@orpc/shared": "0.0.0-next.f8670e3",
40
+ "@orpc/contract": "0.0.0-next.f8670e3",
41
+ "@orpc/server": "0.0.0-next.f8670e3"
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.f7af1c4"
44
+ "@cloudflare/workers-types": "^4.20260313.1",
45
+ "@types/node": "^22.19.3",
46
+ "@orpc/standard-server-peer": "0.0.0-next.f8670e3"
48
47
  },
49
48
  "scripts": {
50
49
  "build": "unbuild",