@durable-streams/client-conformance-tests 0.1.3 → 0.1.5

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/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@durable-streams/client-conformance-tests",
3
3
  "description": "Conformance test suite for Durable Streams client implementations (producer and consumer)",
4
- "version": "0.1.3",
4
+ "version": "0.1.5",
5
5
  "author": "Durable Stream contributors",
6
6
  "bin": {
7
+ "client-conformance-tests": "./dist/cli.js",
7
8
  "durable-streams-client-conformance": "./dist/cli.js"
8
9
  },
9
10
  "bugs": {
@@ -143,3 +143,90 @@ tests:
143
143
  expect:
144
144
  minChunks: 1
145
145
  upToDate: true
146
+
147
+ - id: sse-preserves-nel-character
148
+ name: SSE preserves NEL character (U+0085)
149
+ description: |
150
+ SSE parsers must NOT split on U+0085 (Next Line / NEL).
151
+ Per HTML Living Standard, SSE lines end only with CRLF, LF, or CR.
152
+ Other Unicode line separators must be preserved as data.
153
+ setup:
154
+ - action: create
155
+ as: streamPath
156
+ contentType: text/plain
157
+ - action: append
158
+ path: ${streamPath}
159
+ data: "before\u0085after"
160
+ operations:
161
+ - action: read
162
+ path: ${streamPath}
163
+ live: sse
164
+ waitForUpToDate: true
165
+ expect:
166
+ data: "before\u0085after"
167
+ minChunks: 1
168
+
169
+ - id: sse-preserves-line-separator
170
+ name: SSE preserves Line Separator (U+2028)
171
+ description: |
172
+ SSE parsers must NOT split on U+2028 (Line Separator).
173
+ This character can appear in JSON payloads and AI token streams.
174
+ It must be preserved as ordinary data, not treated as a line break.
175
+ setup:
176
+ - action: create
177
+ as: streamPath
178
+ contentType: text/plain
179
+ - action: append
180
+ path: ${streamPath}
181
+ data: "hello\u2028world"
182
+ operations:
183
+ - action: read
184
+ path: ${streamPath}
185
+ live: sse
186
+ waitForUpToDate: true
187
+ expect:
188
+ data: "hello\u2028world"
189
+ minChunks: 1
190
+
191
+ - id: sse-preserves-paragraph-separator
192
+ name: SSE preserves Paragraph Separator (U+2029)
193
+ description: |
194
+ SSE parsers must NOT split on U+2029 (Paragraph Separator).
195
+ This character can appear in JSON payloads and AI token streams.
196
+ It must be preserved as ordinary data, not treated as a line break.
197
+ setup:
198
+ - action: create
199
+ as: streamPath
200
+ contentType: text/plain
201
+ - action: append
202
+ path: ${streamPath}
203
+ data: "para1\u2029para2"
204
+ operations:
205
+ - action: read
206
+ path: ${streamPath}
207
+ live: sse
208
+ waitForUpToDate: true
209
+ expect:
210
+ data: "para1\u2029para2"
211
+ minChunks: 1
212
+
213
+ - id: sse-preserves-all-unicode-separators
214
+ name: SSE preserves all Unicode line separators together
215
+ description: |
216
+ Combined test ensuring NEL (U+0085), LS (U+2028), and PS (U+2029)
217
+ are all preserved in the same payload without being split.
218
+ setup:
219
+ - action: create
220
+ as: streamPath
221
+ contentType: text/plain
222
+ - action: append
223
+ path: ${streamPath}
224
+ data: "a\u0085b\u2028c\u2029d"
225
+ operations:
226
+ - action: read
227
+ path: ${streamPath}
228
+ live: sse
229
+ waitForUpToDate: true
230
+ expect:
231
+ data: "a\u0085b\u2028c\u2029d"
232
+ minChunks: 1