edfcore 0.6.259 → 0.6.261
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/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +31 -0
- package/dist/options.js.map +1 -1
- package/docs/CHANGELOG.md +32 -0
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/options.ts +35 -0
package/dist/constants.d.ts
CHANGED
|
@@ -109,5 +109,5 @@ export declare const SIGNAL_FIELD_BLOCK_OFFSETS: {
|
|
|
109
109
|
readonly reserved: 224;
|
|
110
110
|
};
|
|
111
111
|
/** Published package version. Kept in sync with package.json by a test. */
|
|
112
|
-
export declare const VERSION = "0.6.
|
|
112
|
+
export declare const VERSION = "0.6.261";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/dist/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAqBR;AAED;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAqBR;AAED;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAiC7E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA6ClF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAQ5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAOzF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA4BjF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ1E"}
|
package/dist/options.js
CHANGED
|
@@ -101,6 +101,23 @@ export function assertMaterializeOptions(options, call) {
|
|
|
101
101
|
'than an entry in a list, so this call took the default budget. Next: pass it on an ' +
|
|
102
102
|
'options object.');
|
|
103
103
|
}
|
|
104
|
+
/*
|
|
105
|
+
* A PENDING PROMISE, the other object the check below lets through — and in this family the one
|
|
106
|
+
* field is the whole of the argument, so there is nothing left on it to look wrong.
|
|
107
|
+
*
|
|
108
|
+
* 0.6.248 added this guard because `MaterializeOptions` "carries that field and nothing else, so
|
|
109
|
+
* the number is the WHOLE of what a caller holds". A Promise is that sentence again: the budget
|
|
110
|
+
* read as `undefined`, `resolveMaterializeBudget` returned the 256 MiB default, and the allocation
|
|
111
|
+
* went ahead — on the option whose entire job is to "refuse before allocating rather than dying
|
|
112
|
+
* inside it".
|
|
113
|
+
*
|
|
114
|
+
* A property read, never a call.
|
|
115
|
+
*/
|
|
116
|
+
if (typeof options?.then === 'function') {
|
|
117
|
+
throw new RangeError(`${call}(): the options are a pending Promise, and maxMaterializeBytes is read off the ` +
|
|
118
|
+
'object rather than awaited — so this call took the default budget and allocated. Next: ' +
|
|
119
|
+
'await them before passing them.');
|
|
120
|
+
}
|
|
104
121
|
if (options === undefined || options === null || typeof options === 'object')
|
|
105
122
|
return;
|
|
106
123
|
throw new RangeError(`${call}(): the options are ${describeValue(options)}, not an object — maxMaterializeBytes ` +
|
|
@@ -128,6 +145,20 @@ export function assertOptions(options, call, listed) {
|
|
|
128
145
|
'options rather than entries in a list — so nothing was redacted and every ' +
|
|
129
146
|
`${listed} was listed. Next: pass them on an object.`);
|
|
130
147
|
}
|
|
148
|
+
/*
|
|
149
|
+
* A PENDING PROMISE, the other object the check below lets through. 0.6.258 and 0.6.259 closed the
|
|
150
|
+
* read and parse halves; this is the family where the dropped option is `redactFields`, and
|
|
151
|
+
* `format.ts` says what that costs: it is "the one option in this package whose silent failure
|
|
152
|
+
* sends a person's name somewhere it should not go".
|
|
153
|
+
*
|
|
154
|
+
* Both options go at once, so a listing asked for twenty rows printed fifty thousand with the
|
|
155
|
+
* identification bytes in them. A property read, never a call.
|
|
156
|
+
*/
|
|
157
|
+
if (typeof options?.then === 'function') {
|
|
158
|
+
throw new RangeError(`${call}(): the options are a pending Promise, and maxItems and redactFields are read off ` +
|
|
159
|
+
`the object rather than awaited — so nothing was redacted and every ${listed} was ` +
|
|
160
|
+
'listed. Next: await them before passing them.');
|
|
161
|
+
}
|
|
131
162
|
if (options === undefined || typeof options === 'object')
|
|
132
163
|
return;
|
|
133
164
|
throw new RangeError(`${call}(): the options are ${describeValue(options)}, not an object — maxItems is a field ` +
|
package/dist/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAyB,EACzB,IAAY,EACZ,QAAgB;IAEhB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC;;;;;;;;;;;;OAYG;IACH,MAAM,IAAI,UAAU,CAClB,WAAW,IAAI,qCAAqC,aAAa,CAAC,KAAK,CAAC,oBAAoB;QAC1F,kFAAkF;QAClF,qCAAqC,CACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAgB,EAAE,IAAY;IACrE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAClB,GAAG,IAAI,kFAAkF;YACvF,qFAAqF;YACrF,iBAAiB,CACpB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO;IACrF,MAAM,IAAI,UAAU,CAClB,GAAG,IAAI,uBAAuB,aAAa,CAAC,OAAO,CAAC,wCAAwC;QAC1F,yFAAyF;QACzF,gDAAgD,CACnD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,IAAY,EAAE,MAAc;IAC1E;;;;;;;;;;;;;;OAcG;IACH,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAClB,GAAG,IAAI,gFAAgF;YACrF,4EAA4E;YAC5E,GAAG,MAAM,4CAA4C,CACxD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO;IACjE,MAAM,IAAI,UAAU,CAClB,GAAG,IAAI,uBAAuB,aAAa,CAAC,OAAO,CAAC,wCAAwC;QAC1F,gDAAgD,MAAM,0BAA0B;QAChF,2CAA2C,CAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,IAAY,EAAE,WAAmB;IACpF,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO;IAC9D,MAAM,IAAI,UAAU,CAClB,WAAW,IAAI,mCAAmC,aAAa,CAAC,KAAK,CAAC,mBAAmB;QACvF,4FAA4F;QAC5F,GAAG,WAAW,0EAA0E;QACxF,mDAAmD,CACtD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc,EAAE,IAAY,EAAE,OAAe;IACjF,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO;IAC/D,MAAM,IAAI,UAAU,CAClB,WAAW,IAAI,gCAAgC,aAAa,CAAC,KAAK,CAAC,kBAAkB,OAAO,IAAI;QAC9F,4FAA4F;QAC5F,kFAAkF,CACrF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAyB,EAAE,KAAa;IACvE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC;;;;;;;;;;OAUG;IACH,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,UAAU,CAClB,oDAAoD,aAAa,CAAC,KAAK,CAAC,mBAAmB;YACzF,0FAA0F;YAC1F,mDAAmD,CACtD,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAClB,2FAA2F;YACzF,wFAAwF;YACxF,gCAAgC,CACnC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAyB;IAChE,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,EAAE,6BAA6B,CAAC,CAAC;IAChG,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/B,MAAM,IAAI,UAAU,CAClB,6DAA6D,MAAM,0BAA0B;QAC3F,0DAA0D;QAC1D,GAAG,6BAA6B,gBAAgB,CACnD,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,38 @@ alone does not tell you whether you were affected.
|
|
|
6
6
|
edfcore is pre-1.0. Patch releases have carried behaviour changes where the old behaviour was a
|
|
7
7
|
defect; those are called out below.
|
|
8
8
|
|
|
9
|
+
## 0.6.261
|
|
10
|
+
|
|
11
|
+
- **Fixed** `MaterializeOptions` accepted as the Promise that will produce it. 0.6.248 gave this family
|
|
12
|
+
its first guard and gave the reason: it "carries that field and nothing else, so the number is the
|
|
13
|
+
WHOLE of what a caller holds". A pending Promise is that sentence from the other side — there is no
|
|
14
|
+
second field left on the object that could make the call look wrong.
|
|
15
|
+
- `maxMaterializeBytes` read as `undefined`, `resolveMaterializeBudget` returned the 256 MiB default,
|
|
16
|
+
and the allocation went ahead — on the option whose entire job is to "refuse before allocating rather
|
|
17
|
+
than dying inside it". A caller who capped a browser tab at four megabytes got that cap on no call.
|
|
18
|
+
- Covers `toPhysical`, `clampToDigitalRange` and `decodeDigital`, the three calls that resolve it. The
|
|
19
|
+
read half went in 0.6.258, the parse half in 0.6.259 and the listing half in 0.6.260.
|
|
20
|
+
- A property read, never a call: a Promise that never settles is refused rather than awaited. The array
|
|
21
|
+
and bare-value branches keep their own sentences.
|
|
22
|
+
|
|
23
|
+
## 0.6.260
|
|
24
|
+
|
|
25
|
+
- **Fixed** the three listing formatters accepting their options as the Promise that will produce them.
|
|
26
|
+
`maxItems` and `redactFields` are both read off the object rather than awaited, so both took their
|
|
27
|
+
defaults at once: a call asking for twenty rows with the identification withheld printed every row it
|
|
28
|
+
had, with the identification in them, and no `... and N more` line to show the truncation — because
|
|
29
|
+
there was none.
|
|
30
|
+
- This is the family where the dropped option costs the most. `format.ts` calls `redactFields` "the one
|
|
31
|
+
option in this package whose silent failure sends a person's name somewhere it should not go", and a
|
|
32
|
+
redaction policy out of a config file, a session record or a per-user setting is exactly the kind of
|
|
33
|
+
thing that sits behind an async helper.
|
|
34
|
+
- `assertRedactableFields` exists so a name outside the vocabulary "is refused rather than ignored". A
|
|
35
|
+
pending Promise has no names on it at all, so that guard saw an empty list and had nothing to refuse.
|
|
36
|
+
- Covers `formatDiagnostics`, `formatAnnotations` and `formatValidationReport`, which resolve these
|
|
37
|
+
options through one guard. The read half went in 0.6.258 and the parse half in 0.6.259.
|
|
38
|
+
- A property read, never a call: a Promise that never settles is refused rather than awaited. The array
|
|
39
|
+
and bare-value branches keep their own sentences.
|
|
40
|
+
|
|
9
41
|
## 0.6.259
|
|
10
42
|
|
|
11
43
|
- **Fixed** parse options handed over as the Promise that will produce them, which 0.6.258 named as
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED
package/src/options.ts
CHANGED
|
@@ -110,6 +110,25 @@ export function assertMaterializeOptions(options: unknown, call: string): void {
|
|
|
110
110
|
'options object.',
|
|
111
111
|
);
|
|
112
112
|
}
|
|
113
|
+
/*
|
|
114
|
+
* A PENDING PROMISE, the other object the check below lets through — and in this family the one
|
|
115
|
+
* field is the whole of the argument, so there is nothing left on it to look wrong.
|
|
116
|
+
*
|
|
117
|
+
* 0.6.248 added this guard because `MaterializeOptions` "carries that field and nothing else, so
|
|
118
|
+
* the number is the WHOLE of what a caller holds". A Promise is that sentence again: the budget
|
|
119
|
+
* read as `undefined`, `resolveMaterializeBudget` returned the 256 MiB default, and the allocation
|
|
120
|
+
* went ahead — on the option whose entire job is to "refuse before allocating rather than dying
|
|
121
|
+
* inside it".
|
|
122
|
+
*
|
|
123
|
+
* A property read, never a call.
|
|
124
|
+
*/
|
|
125
|
+
if (typeof (options as { then?: unknown } | null | undefined)?.then === 'function') {
|
|
126
|
+
throw new RangeError(
|
|
127
|
+
`${call}(): the options are a pending Promise, and maxMaterializeBytes is read off the ` +
|
|
128
|
+
'object rather than awaited — so this call took the default budget and allocated. Next: ' +
|
|
129
|
+
'await them before passing them.',
|
|
130
|
+
);
|
|
131
|
+
}
|
|
113
132
|
if (options === undefined || options === null || typeof options === 'object') return;
|
|
114
133
|
throw new RangeError(
|
|
115
134
|
`${call}(): the options are ${describeValue(options)}, not an object — maxMaterializeBytes ` +
|
|
@@ -141,6 +160,22 @@ export function assertOptions(options: unknown, call: string, listed: string): v
|
|
|
141
160
|
`${listed} was listed. Next: pass them on an object.`,
|
|
142
161
|
);
|
|
143
162
|
}
|
|
163
|
+
/*
|
|
164
|
+
* A PENDING PROMISE, the other object the check below lets through. 0.6.258 and 0.6.259 closed the
|
|
165
|
+
* read and parse halves; this is the family where the dropped option is `redactFields`, and
|
|
166
|
+
* `format.ts` says what that costs: it is "the one option in this package whose silent failure
|
|
167
|
+
* sends a person's name somewhere it should not go".
|
|
168
|
+
*
|
|
169
|
+
* Both options go at once, so a listing asked for twenty rows printed fifty thousand with the
|
|
170
|
+
* identification bytes in them. A property read, never a call.
|
|
171
|
+
*/
|
|
172
|
+
if (typeof (options as { then?: unknown } | null | undefined)?.then === 'function') {
|
|
173
|
+
throw new RangeError(
|
|
174
|
+
`${call}(): the options are a pending Promise, and maxItems and redactFields are read off ` +
|
|
175
|
+
`the object rather than awaited — so nothing was redacted and every ${listed} was ` +
|
|
176
|
+
'listed. Next: await them before passing them.',
|
|
177
|
+
);
|
|
178
|
+
}
|
|
144
179
|
if (options === undefined || typeof options === 'object') return;
|
|
145
180
|
throw new RangeError(
|
|
146
181
|
`${call}(): the options are ${describeValue(options)}, not an object — maxItems is a field ` +
|