@vessel-dsp/compiler 0.4.0 → 0.6.0

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.
Files changed (80) hide show
  1. package/README.md +4 -2
  2. package/dist/bbd-clock.d.ts.map +1 -1
  3. package/dist/bbd-clock.js +5 -0
  4. package/dist/bbd-clock.js.map +1 -1
  5. package/dist/compile.d.ts.map +1 -1
  6. package/dist/compile.js +305 -12
  7. package/dist/compile.js.map +1 -1
  8. package/dist/device-laws.d.ts.map +1 -1
  9. package/dist/device-laws.js +552 -97
  10. package/dist/device-laws.js.map +1 -1
  11. package/dist/fixtures/circuits.d.ts +23 -2
  12. package/dist/fixtures/circuits.d.ts.map +1 -1
  13. package/dist/fixtures/circuits.js +205 -2
  14. package/dist/fixtures/circuits.js.map +1 -1
  15. package/dist/index.d.ts +2 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/lower.d.ts.map +1 -1
  20. package/dist/lower.js +4 -0
  21. package/dist/lower.js.map +1 -1
  22. package/dist/netlist.d.ts +52 -0
  23. package/dist/netlist.d.ts.map +1 -1
  24. package/dist/netlist.js +585 -13
  25. package/dist/netlist.js.map +1 -1
  26. package/dist/part-catalog.d.ts +35 -6
  27. package/dist/part-catalog.d.ts.map +1 -1
  28. package/dist/part-catalog.js +2544 -443
  29. package/dist/part-catalog.js.map +1 -1
  30. package/dist/registry-data/bjt.d.ts +3 -0
  31. package/dist/registry-data/bjt.d.ts.map +1 -0
  32. package/dist/registry-data/bjt.js +1350 -0
  33. package/dist/registry-data/bjt.js.map +1 -0
  34. package/dist/registry-data/charge-pump.d.ts +3 -0
  35. package/dist/registry-data/charge-pump.d.ts.map +1 -0
  36. package/dist/registry-data/charge-pump.js +204 -0
  37. package/dist/registry-data/charge-pump.js.map +1 -0
  38. package/dist/registry-data/diode.d.ts +3 -0
  39. package/dist/registry-data/diode.d.ts.map +1 -0
  40. package/dist/registry-data/diode.js +683 -0
  41. package/dist/registry-data/diode.js.map +1 -0
  42. package/dist/registry-data/index.d.ts +20 -0
  43. package/dist/registry-data/index.d.ts.map +1 -0
  44. package/dist/registry-data/index.js +100 -0
  45. package/dist/registry-data/index.js.map +1 -0
  46. package/dist/registry-data/jfet.d.ts +3 -0
  47. package/dist/registry-data/jfet.d.ts.map +1 -0
  48. package/dist/registry-data/jfet.js +605 -0
  49. package/dist/registry-data/jfet.js.map +1 -0
  50. package/dist/registry-data/loader.d.ts +137 -0
  51. package/dist/registry-data/loader.d.ts.map +1 -0
  52. package/dist/registry-data/loader.js +350 -0
  53. package/dist/registry-data/loader.js.map +1 -0
  54. package/dist/registry-data/mosfet.d.ts +3 -0
  55. package/dist/registry-data/mosfet.d.ts.map +1 -0
  56. package/dist/registry-data/mosfet.js +63 -0
  57. package/dist/registry-data/mosfet.js.map +1 -0
  58. package/dist/registry-data/opamp.d.ts +37 -0
  59. package/dist/registry-data/opamp.d.ts.map +1 -0
  60. package/dist/registry-data/opamp.js +669 -0
  61. package/dist/registry-data/opamp.js.map +1 -0
  62. package/dist/registry-data/regulator.d.ts +3 -0
  63. package/dist/registry-data/regulator.d.ts.map +1 -0
  64. package/dist/registry-data/regulator.js +189 -0
  65. package/dist/registry-data/regulator.js.map +1 -0
  66. package/dist/registry-data/schema.d.ts +56 -0
  67. package/dist/registry-data/schema.d.ts.map +1 -0
  68. package/dist/registry-data/schema.js +142 -0
  69. package/dist/registry-data/schema.js.map +1 -0
  70. package/dist/registry-data/zener.d.ts +3 -0
  71. package/dist/registry-data/zener.d.ts.map +1 -0
  72. package/dist/registry-data/zener.js +547 -0
  73. package/dist/registry-data/zener.js.map +1 -0
  74. package/dist/registry.d.ts +72 -5
  75. package/dist/registry.d.ts.map +1 -1
  76. package/dist/registry.js +65 -6
  77. package/dist/registry.js.map +1 -1
  78. package/dist/types.d.ts +255 -19
  79. package/dist/types.d.ts.map +1 -1
  80. package/package.json +1 -1
@@ -0,0 +1,669 @@
1
+ // Op-amp registry data: the datasheet-typical gain-bandwidth product and the printed
2
+ // output-swing pair, by exact part id.
3
+ //
4
+ // **One record per datasheet row, carrying every parameter that row states.** The
5
+ // pre-registry catalog kept two parallel tables (gain-bandwidth rows, output-swing rows)
6
+ // applied by two passes; a part with both figures (OP07, TL06x) appeared in both. Merging
7
+ // them into one record per row keeps the loader's uniqueness scope meaningful -- the same
8
+ // folded id in two records is a table error and throws -- while the two stamping passes in
9
+ // `part-catalog.ts` read the same records and split entries exactly as before.
10
+ //
11
+ // Provenance, per parameter:
12
+ // - `gainBandwidthHz`: the TYP column transcribed ("typical" here is that datasheet's own
13
+ // TYP column for that part, never MIN or MAX, never a graph read by eye, never a registry
14
+ // or curated-record number). Basis `datasheet`; `source` quotes the printed row.
15
+ // - `outputSwingDropHighVolts` / `outputSwingDropLowVolts`: the distance the output stops
16
+ // short of each rail, read off the printed row (a +-VOM row states both sides at once, so
17
+ // the pair is equal by print; the subtraction is documented in each source). Basis
18
+ // `datasheet`: the value is a direct reading of the printed row, not a fit or a choice.
19
+ // The judgment call -- how the pair is carried to a pedal on another supply -- stays
20
+ // exactly where it was, in `outputSwingPrinted.translation`, untouched by this move.
21
+ //
22
+ // A part whose datasheet prints no TYP figure is not in `opampRegistryRecords`; it is
23
+ // listed in the matching `...Absent` list with the reason, and stays `null` at the stamp.
24
+ // Both lists live here (they are data: id lists with reasons, validated non-empty), and
25
+ // `part-catalog.ts` re-exports them under their existing names.
26
+ import { foldPartId } from "../registry.js";
27
+ import { validateCitedParam } from "./loader.js";
28
+ /** Validate op-amp records and freeze them. Throws at module load on any violation. */
29
+ export function defineOpampRecords(records) {
30
+ const seen = new Map();
31
+ for (const record of records) {
32
+ const label = record.partIds.join(",") || "(no part ids)";
33
+ if (record.partIds.length === 0) {
34
+ throw new Error(`${label}: an op-amp record names no part ids`);
35
+ }
36
+ if (record.gainBandwidthHz !== undefined) {
37
+ const cited = validateCitedParam(label, "gainBandwidthHz", record.gainBandwidthHz);
38
+ if (!(cited.value > 0)) {
39
+ throw new Error(`${label}: gainBandwidthHz must be a positive product, not ${String(cited.value)}`);
40
+ }
41
+ }
42
+ const high = record.outputSwingDropHighVolts;
43
+ const low = record.outputSwingDropLowVolts;
44
+ const printed = record.outputSwingPrinted;
45
+ if (high === undefined ||
46
+ low === undefined ||
47
+ printed === undefined) {
48
+ if (high !== undefined || low !== undefined || printed !== undefined) {
49
+ throw new Error(`${label}: an op-amp output swing is a pair with its printed condition, ` +
50
+ `both sides and the condition or none (high ${high === undefined ? "absent" : "present"}, ` +
51
+ `low ${low === undefined ? "absent" : "present"}, ` +
52
+ `printed ${printed === undefined ? "absent" : "present"})`);
53
+ }
54
+ }
55
+ else {
56
+ validateCitedParam(label, "outputSwingDropHighVolts", high);
57
+ validateCitedParam(label, "outputSwingDropLowVolts", low);
58
+ const finitePositive = (value) => typeof value === "number" && Number.isFinite(value) && value > 0;
59
+ if (!finitePositive(high.value) ||
60
+ !finitePositive(low.value) ||
61
+ !finitePositive(printed.supplyVolts) ||
62
+ !finitePositive(printed.loadOhms) ||
63
+ (printed.translation !== "constant" && printed.translation !== "proportional")) {
64
+ throw new Error(`${label}: an op-amp output swing needs finite positive drops, supply and load ` +
65
+ `and a translation of "constant" or "proportional"`);
66
+ }
67
+ if (printed.column.length === 0) {
68
+ throw new Error(`${label}: an op-amp output swing states no printed column`);
69
+ }
70
+ }
71
+ if (record.gainBandwidthHz === undefined &&
72
+ high === undefined) {
73
+ throw new Error(`${label}: an op-amp record states no parameter`);
74
+ }
75
+ for (const id of record.partIds) {
76
+ if (typeof id !== "string" || id.length === 0) {
77
+ throw new Error(`${label}: an op-amp record lists an empty part id`);
78
+ }
79
+ const folded = foldPartId(id);
80
+ const first = seen.get(folded);
81
+ if (first !== undefined) {
82
+ throw new Error(`${label}: duplicate op-amp part id "${id}" (already listed on ${first})`);
83
+ }
84
+ seen.set(folded, label);
85
+ }
86
+ }
87
+ return Object.freeze(records.map((record) => Object.freeze(record)));
88
+ }
89
+ export const opampRegistryRecords = defineOpampRecords([
90
+ {
91
+ partIds: ["NJM4558DD", "NJM4558D", "JRC4558D", "JRC4558", "JRC4558DD", "NJM4558M", "NJM4558E", "NJM4558V", "NJM4558L", "NJM4558"],
92
+ gainBandwidthHz: {
93
+ value: 3e6,
94
+ basis: "datasheet",
95
+ source: "NJM4558/datasheets/nisshinbo-njm4558.pdf (Nisshinbo NJM4558, date code 20250303) p2, ELECTRICAL " +
96
+ "CHARACTERISTICS (V+/V-=+-15V, Ta=25C): 'Gain Bandwidth Product | GB | MIN - | TYP 3 | MAX - | MHz'. " +
97
+ "One column for every suffix; the D rank changes the noise row only. " +
98
+ "JRC4558D is not a printed id in this sheet: it is the NJR/JRC marking of the NJM4558D per " +
99
+ "parts/op-amps/JRC4558D.md ('NJR/JRC version. Same datasheet specs as NJM4558'; GBP 3 M), included per " +
100
+ "owner decision 2026-10-15 because a Boss SD-1 specimen carries a chip marked 'JRC 4558D' and three " +
101
+ "corpus packets name JRC4558D. Secondary only: the 1980s JRC databook scan prints the part as NJM4558D " +
102
+ "under the JRC logo (p2-98). " +
103
+ "JRC and NJM are the same manufacturer's prefixes (Japan Radio Co., later New Japan Radio, Nisshinbo Micro Devices): owner ruling 2026-10-19, supported by secondary references the owner supplied (synthcube.com/jrc4558d-op-amp-hi-perf-njm, diystompboxes.com topic 15743, groupdiy.com thread 13594): a part sold as NJM4558D is often stamped JRC 4558D. Bare JRC4558 and JRC4558DD extend the JRC4558D decision of 2026-10-15; the datasheet column is the NJM4558 one. ",
104
+ },
105
+ },
106
+ {
107
+ partIds: ["RC4558", "RC4558P", "RC4558D"],
108
+ gainBandwidthHz: {
109
+ value: 4e6,
110
+ basis: "datasheet",
111
+ source: "RC4558/datasheets/rc4558-ti.pdf and RC4558P/datasheets/rc4558p-ti.pdf (TI SLOS073H, rev Oct 2024; the " +
112
+ "two are identical through p35) 5.5 p6, VCC+-=+-15V, TA=25C, RL=2k: 'GBW | Gain-bandwidth product | " +
113
+ "f = 10kHz | TYP 4 | MHz'. Rev G printed 3 MHz; this copy (Rev H) changed it to 4.",
114
+ },
115
+ },
116
+ {
117
+ partIds: ["TL061", "TL061CP", "TL061CN", "TL062", "TL062C", "TL062CP", "TL062CN"],
118
+ gainBandwidthHz: {
119
+ value: 1e6,
120
+ basis: "datasheet",
121
+ source: "TL062/datasheets/tl062.pdf (TI SLOS078N, rev Aug 2023) Table 6.7 p8 (the same row and value in Tables " +
122
+ "6.8 p9 and 6.9 p10): 'B1 | Unity-gain bandwidth | RL = 10k, TA = 25C | TYP 1 | MHz' in every grade column.",
123
+ },
124
+ outputSwingDropHighVolts: {
125
+ value: 1.5,
126
+ basis: "datasheet",
127
+ source: "TL062/datasheets/tl062.pdf (TI SLOS078N, rev Aug 2023) Table 6.7 p8, 'VCC+- = +-15 V, RL = 10 kOhm to " +
128
+ "(VCC+ + VCC-)/2 (unless otherwise noted)': 'VOM | Maximum peak output voltage swing | RL = 10 kOhm, TA = 25C " +
129
+ "| MIN +-10 | TYP +-13.5 | V' in both the TL06xC and the TL06xAC column (TA = full range, RL >= 10 kOhm: MIN " +
130
+ "+-10). A +-VOM row states both sides at once: 15 - 13.5 = 1.5 V a side. The ids are the gain-bandwidth " +
131
+ "row's, whose convention this follows. 'constant' is the owner's decision of 2026-10-17 (row 16, D3): the " +
132
+ "sheet prints no figure below +-15 V; Figure 6-1 (VOM against |VCC+-|, RL = 10 kOhm) is a graph, and the " +
133
+ "1.2 V that was read from it by eye (about 3.3 V at +-4.5 V) is retired because it is not printed.",
134
+ },
135
+ outputSwingDropLowVolts: {
136
+ value: 1.5,
137
+ basis: "datasheet",
138
+ source: "TL062/datasheets/tl062.pdf (TI SLOS078N, rev Aug 2023) Table 6.7 p8, 'VCC+- = +-15 V, RL = 10 kOhm to " +
139
+ "(VCC+ + VCC-)/2 (unless otherwise noted)': 'VOM | Maximum peak output voltage swing | RL = 10 kOhm, TA = 25C " +
140
+ "| MIN +-10 | TYP +-13.5 | V' in both the TL06xC and the TL06xAC column (TA = full range, RL >= 10 kOhm: MIN " +
141
+ "+-10). A +-VOM row states both sides at once: 15 - 13.5 = 1.5 V a side. The ids are the gain-bandwidth " +
142
+ "row's, whose convention this follows. 'constant' is the owner's decision of 2026-10-17 (row 16, D3): the " +
143
+ "sheet prints no figure below +-15 V; Figure 6-1 (VOM against |VCC+-|, RL = 10 kOhm) is a graph, and the " +
144
+ "1.2 V that was read from it by eye (about 3.3 V at +-4.5 V) is retired because it is not printed.",
145
+ },
146
+ outputSwingPrinted: {
147
+ supplyVolts: 30,
148
+ loadOhms: 10000,
149
+ translation: "constant",
150
+ column: "TL061C/TL062C and TL061AC/TL062AC, TYP",
151
+ },
152
+ },
153
+ {
154
+ partIds: ["TL071CP", "TL072CP", "TL082CP"],
155
+ gainBandwidthHz: {
156
+ value: 5.25e6,
157
+ basis: "datasheet",
158
+ source: "TL072/datasheets/tl072.pdf and TL071/datasheets/tl071.pdf (byte-identical; TI SLOS080W, rev Jul 2025) " +
159
+ "5.8 p15, VS=+-15V, TA=25C: 'GBW | Gain-bandwidth product | All other devices | TYP 5.25 | MHz' (the row " +
160
+ "'All NS and PS packages; All TL07xM devices' is TYP 3). TL082CP: TL082/datasheets/tl082.pdf (SLOS081O, " +
161
+ "rev Sep 2025) 5.8 p14, the same two rows; its Rev N entry p29: 'Increased gain bandwidth of all " +
162
+ "non-NS/non-PS packages and non-TL08xM devices from 3 MHz to 5.25 MHz'. A -CP part is a PDIP: neither an " +
163
+ "NS/PS package nor an M device, so the 'all other devices' row applies.",
164
+ },
165
+ },
166
+ {
167
+ partIds: ["NE5532", "NE5532P", "NE5532D"],
168
+ gainBandwidthHz: {
169
+ value: 12e6,
170
+ basis: "datasheet",
171
+ source: "NE5532/datasheets/ne5532.pdf (TI SLOS075K, rev Dec 2025) 5.5 p4, VCC+-=+-15V, TA=25C: 'B1 | Unity-gain " +
172
+ "bandwidth | TYP 12 | MHz' (p1 Features: '12MHz Typ'; Rev K p11: 'Changed ... from 10MHz to 12MHz typ'). " +
173
+ "The same document's prose, 6.3.1 p6 and 7.1.2.1 p8, still says 10 MHz; the characteristics table is taken.",
174
+ },
175
+ },
176
+ {
177
+ partIds: ["LM358", "LM358N", "LM358P"],
178
+ gainBandwidthHz: {
179
+ value: 0.7e6,
180
+ basis: "datasheet",
181
+ source: "LM358/datasheets/lm358-ti.pdf (TI SLOS068AB, rev Oct 2024) 5.7 p10 (LM358, LM358A), VS=5V, TA=25C: " +
182
+ "'GBW | Gain bandwidth product | TYP 0.7 | MHz'. The B/BA versions (5.5 p6) are TYP 1.2 and are different " +
183
+ "part ids; the only PDIP orderables printed are LM358P and LM358AP.",
184
+ },
185
+ },
186
+ {
187
+ partIds: ["M5218AL", "M5218AP", "M5218AFP"],
188
+ gainBandwidthHz: {
189
+ value: 7e6,
190
+ basis: "datasheet",
191
+ source: "5218/datasheets/mitsubishi-m5218.pdf (Mitsubishi M5218AL/P/FP, no document number or date; image scan) " +
192
+ "p2 (folio 2-468), Ta=25C, Vcc=+-15V: 'fT | Gain bandwidth product | TYP 7 | MHz' (p1 Features: " +
193
+ "'fT=7MHz(typ.)'). The sheet is the A grade; the plain M5218L, P and FP ids are not on it.",
194
+ },
195
+ },
196
+ {
197
+ partIds: ["TL022", "TL022C", "TL022CP", "TL022CD", "TL022CN"],
198
+ gainBandwidthHz: {
199
+ value: 0.5e6,
200
+ basis: "datasheet",
201
+ source: "TL022/datasheets/ti-tl022.pdf (TI SLOS076, rev Sep 1990) p3, VCC+-=+-15V, TA=25C: 'B1 | Unity-gain " +
202
+ "bandwidth | TL022C TYP 0.5 | TL022M TYP 0.5 | MHz'.",
203
+ },
204
+ },
205
+ {
206
+ partIds: ["OP07CP", "OP07DP", "OP07DN"],
207
+ gainBandwidthHz: {
208
+ value: 0.6e6,
209
+ basis: "datasheet",
210
+ source: "OP07/datasheets/op07-ti.pdf (TI SLOS099H, rev Mar 2023) 6.5 p6, TA=25C, VS=+-15V, RL=2k, FREQUENCY " +
211
+ "RESPONSE: 'Unity gain bandwidth | MIN 0.4 | TYP 0.6 | MHz'; footnote (1): the listed specifications apply " +
212
+ "to OP07C and OP07D. The row has no package split.",
213
+ },
214
+ outputSwingDropHighVolts: {
215
+ value: 2.2,
216
+ basis: "datasheet",
217
+ source: "OP07/datasheets/op07-ti.pdf (TI SLOS099H, rev Mar 2023) 6.5 p6 (continued table), 'at TA = 25C, VS = +-15 V, " +
218
+ "RL = 2 kOhm connected to mid-supply, and VCM = VOUT = mid-supply (unless otherwise noted)': 'OUTPUT | Voltage " +
219
+ "output swing | MIN +-11.5 | TYP +-12.8 | V' (the group's first row, no test condition printed beside it, so " +
220
+ "the table's default RL = 2 kOhm applies; the TA = 0C to 70C row reads +-11 / +-12.6, RL = 10 kOhm +-12 / " +
221
+ "+-13, RL = 1 kOhm +-12 typ); footnote (1): the listed specifications apply to OP07C and OP07D, so the bare " +
222
+ "'OP07' id has no column. A +-VOM row states both sides at once, so the pair is equal by " +
223
+ "print: 15 - 12.8 = 2.2 V a side. 'proportional' is the owner's decision of 2026-10-17 (row 16): the rule " +
224
+ "was written before the RAT pin-6 reading and that reading is its held-out test; the datasheet states " +
225
+ "nothing below +-15 V. At a 9 V pedal it gives 0.66 V a side, with a printed bracket of 2.0 V (TYP, " +
226
+ "RL = 10 kOhm: +-13) to 3.5 V (MIN, RL = 2 kOhm: +-11.5) at 30 V.",
227
+ },
228
+ outputSwingDropLowVolts: {
229
+ value: 2.2,
230
+ basis: "datasheet",
231
+ source: "OP07/datasheets/op07-ti.pdf (TI SLOS099H, rev Mar 2023) 6.5 p6 (continued table), 'at TA = 25C, VS = +-15 V, " +
232
+ "RL = 2 kOhm connected to mid-supply, and VCM = VOUT = mid-supply (unless otherwise noted)': 'OUTPUT | Voltage " +
233
+ "output swing | MIN +-11.5 | TYP +-12.8 | V' (the group's first row, no test condition printed beside it, so " +
234
+ "the table's default RL = 2 kOhm applies; the TA = 0C to 70C row reads +-11 / +-12.6, RL = 10 kOhm +-12 / " +
235
+ "+-13, RL = 1 kOhm +-12 typ); footnote (1): the listed specifications apply to OP07C and OP07D, so the bare " +
236
+ "'OP07' id has no column. A +-VOM row states both sides at once, so the pair is equal by " +
237
+ "print: 15 - 12.8 = 2.2 V a side. 'proportional' is the owner's decision of 2026-10-17 (row 16): the rule " +
238
+ "was written before the RAT pin-6 reading and that reading is its held-out test; the datasheet states " +
239
+ "nothing below +-15 V. At a 9 V pedal it gives 0.66 V a side, with a printed bracket of 2.0 V (TYP, " +
240
+ "RL = 10 kOhm: +-13) to 3.5 V (MIN, RL = 2 kOhm: +-11.5) at 30 V.",
241
+ },
242
+ outputSwingPrinted: {
243
+ supplyVolts: 30,
244
+ loadOhms: 2000,
245
+ translation: "proportional",
246
+ column: "OP07C and OP07D, TYP",
247
+ },
248
+ },
249
+ {
250
+ partIds: ["NE5534", "NJM5534", "NJM5534D", "NJM5534M", "JRC5534"],
251
+ gainBandwidthHz: {
252
+ value: 10e6,
253
+ basis: "datasheet",
254
+ source: "NJM5534D/datasheets/NE5534_TI.pdf (TI SLOS070D, rev Nov 2014) 7.5 p5, VCC+-=+-15V, TA=25C: 'B1 | " +
255
+ "Unity-gain bandwidth | CC = 22 pF, CL = 100 pF | TYP 10 | MHz'; and njrc-njm5534d-page-2.png (New Japan " +
256
+ "Radio NJM5534, folio 4-236): 'Gain Bandwidth Product | GB | CC=22pF, CL=100pF | TYP 10 | MHz'. Both state " +
257
+ "the figure with a 22 pF compensation capacitor.",
258
+ },
259
+ },
260
+ {
261
+ // Wave 1. GBW only: the output-swing pair is deliberately not typed (owner decision
262
+ // D4, 2026-10-17, upheld by the coordinator 2026-10-18 for this wave -- see
263
+ // `opampOutputSwingAbsent`, which this id is intentionally NOT added to).
264
+ // Wave 4: LM833N rides the shared sections entry for open-loop gain (TI LM833-N
265
+ // sheet SNOSBD8E prints LM833N/NOPB as the PDIP orderable of the same die with the
266
+ // same AV 110 dB TYP) but carries its own GBW row below: the LM833-N sheet prints
267
+ // GBW TYP 15 MHz, not this row's 16, so the gain-bandwidth pass splits the entry.
268
+ partIds: ["LM833"],
269
+ gainBandwidthHz: {
270
+ value: 16e6,
271
+ basis: "datasheet",
272
+ source: "LM833/datasheets/lm833-ti.pdf (TI SLOS481B, rev Oct 2014) 7.6 p5, VCC+-=+-15V, TA=25C: " +
273
+ "'GBW | Gain bandwidth product | f = 100 kHz | MIN 10 TYP 16 | MHz'. LM833N: TI " +
274
+ "LM833-N SNOSBD8E Rev. E May 2012 prints LM833N/NOPB (PDIP) orderables; the same " +
275
+ "table prints AV 90/110 dB and GBW 10/15 MHz for the die.",
276
+ },
277
+ },
278
+ {
279
+ // Wave 2 (JED). GBW only (D4 swing freeze stands).
280
+ partIds: ["LF347", "LF347N"],
281
+ gainBandwidthHz: {
282
+ value: 3e6,
283
+ basis: "datasheet",
284
+ source: "Fetched manufacturer sheet (no vendored copy): TI LF347/LF347B Quad JFET-Input " +
285
+ "Operational Amplifiers, SLOS013C (Mar 1987, rev Mar 2016), 6.7 Switching Characteristics " +
286
+ "(VCC+- = +-15 V, TA = 25C): 'B1 | Unity-gain bandwidth | TYP 3 | MHz' (no MIN/MAX; " +
287
+ "the AVD rows that set the sections gain are 6.5 LF347 MIN 25 TYP 100 and 6.6 LF347B " +
288
+ "MIN 50 TYP 100 V/mV at VO = +-10 V, RL = 2 kOhm).",
289
+ },
290
+ },
291
+ {
292
+ // Wave 2 (JED). GBW only (D4 swing freeze stands). LF351N is the DIP orderable of the
293
+ // same die (NS Package N08E; sheet p11 'Order Number LF351M or LF351N').
294
+ partIds: ["LF351", "LF351N"],
295
+ gainBandwidthHz: {
296
+ value: 4e6,
297
+ basis: "datasheet",
298
+ source: "Fetched manufacturer sheet (no vendored copy): National Semiconductor LF351 Wide " +
299
+ "Bandwidth JFET Input Operational Amplifier, DS005648 Rev. 3 (1998), AC Electrical " +
300
+ "Characteristics (VS = +-15 V, TA = 25C): 'GBW | Gain Bandwidth Product | TYP 4 | MHz' " +
301
+ "(no MIN/MAX; the AVOL row that sets the sections gain is MIN 25 TYP 100 V/mV at " +
302
+ "VS = +-15 V, TA = 25C, VO = +-10 V, RL = 2 kOhm). TI publishes no LF351 sheet of its " +
303
+ "own; National is the TI-predecessor original.",
304
+ },
305
+ },
306
+ {
307
+ // Wave 2 (JED). GBW only (D4 swing freeze stands). One family table for all three
308
+ // packages (Powerdip L272, Minidip L272M, SO16 L272D); the B row carries no package split.
309
+ partIds: ["L272", "L272M", "L272D"],
310
+ gainBandwidthHz: {
311
+ value: 350e3,
312
+ basis: "datasheet",
313
+ source: "Fetched manufacturer sheet (no vendored copy): SGS-THOMSON L272 Dual Power Operational " +
314
+ "Amplifiers, Jan 1995, ELECTRICAL CHARACTERISTICS (Vs = 24 V, Tamb = 25C): 'B | " +
315
+ "Gain-bandwidth Product | TYP 350 | kHz' (no MIN/MAX; the Gv rows that set the sections " +
316
+ "gain are f = 100 Hz MIN 60 TYP 70 and f = 1 kHz TYP 50 dB). It is a power amp: the gain " +
317
+ "is specified against frequency, and 70 dB TYP at 100 Hz is the transcribed figure.",
318
+ },
319
+ },
320
+ {
321
+ // Wave 2 (wave-1 re-open). GBW only (D4 swing freeze stands). The C-grade TYP rows cover
322
+ // the PDIP-N (TL074CN) and SOIC-D (TL074CD) orderables, both 'all other devices' for GBW;
323
+ // the I grade prints MIN-only AOL and is not covered. Bare TL074 carries the C TYP.
324
+ partIds: ["TL074", "TL074CN", "TL074CD"],
325
+ gainBandwidthHz: {
326
+ value: 5.25e6,
327
+ basis: "datasheet",
328
+ source: "Fetched manufacturer sheet (no vendored copy): TI TL071/TL072/TL074 JFET-Input " +
329
+ "Operational Amplifiers, SLOS080W (Sep 1978, rev Jul 2025), 5.9 AC (VS = +-15 V, TA = 25C): " +
330
+ "'GBW | Gain-bandwidth product | All other devices | TYP 5.25 | MHz' (TYP-only; NS/PS " +
331
+ "packages and M grades are TYP 3). The AOL row that sets the sections gain is 5.8 DC " +
332
+ "(VS = +-15 V, TA = 25C, VO = 0 V): TL07xC MIN 25 TYP 200 V/mV (full-range row MIN-only 15; " +
333
+ "AC/BC 50/200, M 35/200, I MIN-only 25).",
334
+ },
335
+ },
336
+ {
337
+ // Wave 3. GBW only (D4 swing freeze stands). The sheet prints NJM4580 variants; the
338
+ // JRC ids rest on parts/op-amps/JRC4580.md ('JRC4580D / NJM4580D', primary local
339
+ // datasheet this sheet, aliases JRC4580/NJM4580/NJM4580D) -- the JRC4558D precedent
340
+ // (owner decision 2026-10-15: the NJR/JRC marking rides the NJM sheet). The gain and
341
+ // GBW rows are rank-independent (only the noise row splits by D rank).
342
+ partIds: ["JRC4580D", "JRC4580", "NJM4580D", "NJM4580"],
343
+ gainBandwidthHz: {
344
+ value: 15e6,
345
+ basis: "datasheet",
346
+ source: "JRC4580/datasheets/njm4580d-njr.pdf (NJR NJM4580, Ver. 2012-09-14) p2, ELECTRICAL " +
347
+ "CHARACTERISTICS (V+/V- = +-15 V, Ta = 25C): 'Gain Bandwidth Product GB, f = 10 kHz: " +
348
+ "TYP 15 MHz' (no MIN/MAX; p1 Features: 'Wide GBW 15MHz typ.'). The AVD row that sets " +
349
+ "the sections gain is on the same table: 'Voltage Gain AV, RL >= 2 kOhm, VO = +-10 V: " +
350
+ "MIN 90 TYP 110 dB'.",
351
+ },
352
+ },
353
+ {
354
+ // Wave 3. GBW only (D4 swing freeze stands). OPA2134PA is a printed PDIP-8
355
+ // orderable of the same die (orderable table, marking OPA2134PA); the specs are
356
+ // family-wide with no per-orderable split.
357
+ partIds: ["OPA2134", "OPA2134PA"],
358
+ gainBandwidthHz: {
359
+ value: 8e6,
360
+ basis: "datasheet",
361
+ source: "OPA2134/datasheets/opa2134-ti.pdf (TI OPA2134, SBOS058B, Dec 1997, Rev. B Nov 2024) " +
362
+ "5.7 p7, Electrical Characteristics (TA = 25C, VS = +-15 V): 'GBW Gain bandwidth " +
363
+ "product: TYP 8 MHz' (MIN/MAX blank; p1 Features: 'Bandwidth: 8MHz'). The AOL row " +
364
+ "that sets the sections gain is on the same table: 'AOL Open-loop voltage gain, " +
365
+ "RL = 2 kOhm, -13.8 V <= VO <= 13.5 V: MIN 104 TYP 120 dB' (a second row at " +
366
+ "RL = 10 kOhm reads the same 104/120).",
367
+ },
368
+ },
369
+ {
370
+ // Wave 4. GBW only (D4 swing freeze stands). LM324B prints its own labelled GBW
371
+ // row (also 1.2 MHz) and is NOT aliased: only the plain ids that section 6.7 and
372
+ // the operating conditions cover are listed. The B1 row is a unity-gain bandwidth,
373
+ // which IS the gain-bandwidth product (coordinator ruling 2026-10-19), quoted with
374
+ // the 8.3.1 sentence that states the figure for these devices.
375
+ partIds: ["LM324"],
376
+ gainBandwidthHz: {
377
+ value: 1.2e6,
378
+ basis: "datasheet",
379
+ source: "Fetched manufacturer sheet (no vendored copy): TI LMx24/LMx24x/LM2902 SLOS066AE " +
380
+ "(Aug 1975, rev Sept 2025) 6.10 Operating Conditions (VCC = +-15 V, TA = 25C) p13: " +
381
+ "'B1 | Unity-gain bandwidth | RL = 1 MOhm, CL = 20 pF | TYP 1.2 | MHz'; and 8.3.1 " +
382
+ "Unity-Gain Bandwidth p16: 'To calculate the gain bandwidth product, multiply the " +
383
+ "measured bandwidth of an amplifier by the measured bandwidth gain. These devices " +
384
+ "have a high gain bandwidth of 1.2MHz.' The AVD row that sets the sections gain is " +
385
+ "6.7 p11 (VCC = 15 V, VO = 1 V to 11 V, RL >= 2 kOhm, 25C): MIN 25 TYP 100 V/mV.",
386
+ },
387
+ },
388
+ {
389
+ // Wave 4. GBW only (D4 swing freeze stands). Coordinator standing rule 2026-10-19:
390
+ // the bare id the datasheet names in its description takes the commercial (C)
391
+ // grade column, disclosed; no suffixed grade is aliased. The +-5 V (10 V total)
392
+ // table is quoted as the one closest to a 9 V pedal.
393
+ partIds: ["TLC2262"],
394
+ gainBandwidthHz: {
395
+ value: 0.73e6,
396
+ basis: "datasheet",
397
+ source: "Fetched manufacturer sheet (no vendored copy): TI Advanced LinCMOS Rail-To-Rail " +
398
+ "Op Amps SLOS177D (Feb 1997, rev Mar 2001) TLC2262C operating characteristics " +
399
+ "(VDD+- = +-5 V) p7: 'Gain-bandwidth product, f = 10 kHz, RL = 50 kOhm, CL = 100 pF, " +
400
+ "VO(PP) = 4.6 V, AV = 1: TYP 0.73 MHz' (the VDD = 5 V table prints 0.71 MHz; quoted " +
401
+ "is the 10 V table, closest to 9 V). The AVD row that sets the sections gain is the " +
402
+ "same table: 'Large-signal differential voltage amplification, RL = 50 kOhm, " +
403
+ "VO = +-4 V: MIN 80 TYP 200 V/mV'.",
404
+ },
405
+ },
406
+ {
407
+ // Wave 4. GBW only (D4 swing freeze stands).
408
+ partIds: ["MC33174"],
409
+ gainBandwidthHz: {
410
+ value: 1.8e6,
411
+ basis: "datasheet",
412
+ source: "Fetched manufacturer sheet (no vendored copy): onsemi MC33171/D Rev. 14 Jul 2025, " +
413
+ "AC table (VCC = +15 V, VEE = -15 V, RL to ground, TA = 25C) p4: 'Gain Bandwidth " +
414
+ "Product (f = 100 kHz), GBW MIN 1.4 TYP 1.8 MHz'. The AVOL row that sets the sections " +
415
+ "gain is the DC table p3: 'Large Signal Voltage Gain (VO = +-10 V, RL = 10 k), " +
416
+ "TA = +25C: MIN 50 TYP 500 V/mV'.",
417
+ },
418
+ },
419
+ {
420
+ // Wave 4. GBW only (D4 swing freeze stands). LM833N/NOPB is the PDIP orderable of
421
+ // the LM833 die (TI LM833-N SNOSBD8E Rev. E May 2012) but its sheet prints its own
422
+ // GBW TYP (15 MHz, not the LM833 sheet's 16), so it carries its own row and the
423
+ // gain-bandwidth pass splits the shared sections entry by row.
424
+ partIds: ["LM833N"],
425
+ gainBandwidthHz: {
426
+ value: 15e6,
427
+ basis: "datasheet",
428
+ source: "Fetched manufacturer sheet (no vendored copy): TI LM833-N SNOSBD8E Rev. E May 2012 " +
429
+ "(TA = 25C, VS = +-15 V, RL = 2 kOhm), AC Electrical Characteristics: 'GBW Gain " +
430
+ "Bandwidth Product, f = 100 kHz, MIN 10 TYP 15 MHz'; the sheet's orderables table " +
431
+ "prints LM833N/NOPB (PDIP P|8) and the DC table prints 'AV Voltage Gain, RL = 2 kOhm, " +
432
+ "VO = +-10 V: MIN 90 TYP 110 dB' (same 110 dB as the shared sections entry).",
433
+ },
434
+ },
435
+ {
436
+ // Wave 5. GBW only (D4 swing freeze stands). Bare dual, one family table, no
437
+ // grades and no package split (SOIC/VSSOP/SON share the specs).
438
+ partIds: ["OPA1678"],
439
+ gainBandwidthHz: {
440
+ value: 16e6,
441
+ basis: "datasheet",
442
+ source: "Fetched manufacturer sheet (no vendored copy): TI OPA1677/OPA1678/OPA1679 SBOS855E " +
443
+ "(Jan 2017 - Dec 2022) 6.7 Electrical Characteristics (VS = +-15 V, TA = 25C, " +
444
+ "RL = 2 kOhm, VCM = VOUT = midsupply): 'GBW Gain-bandwidth product, G = 1: TYP 16 MHz' " +
445
+ "(no MIN/MAX; p1 Features: 'Wide gain bandwidth: 16 MHz (G = 1)'). The AOL row that " +
446
+ "sets the sections gain is on the same table: 'AOL Open-loop voltage gain, " +
447
+ "(V-) + 0.8 V <= VO <= (V+) - 0.8 V: MIN 106 TYP 114 dB'.",
448
+ },
449
+ },
450
+ {
451
+ // Wave 5. GBW only (D4 swing freeze stands). OPA134PA is the printed PDIP-8
452
+ // orderable of the single OPA134 (same die, family-wide specs with no
453
+ // per-orderable split; the OPA2134 dual precedent).
454
+ partIds: ["OPA134PA"],
455
+ gainBandwidthHz: {
456
+ value: 8e6,
457
+ basis: "datasheet",
458
+ source: "OPA2134/datasheets/opa2134-ti.pdf (TI OPA134/OPA2134/OPA4134, SBOS058B, Dec 1997, " +
459
+ "Rev. B Nov 2024) 5.7 p7, Electrical Characteristics (TA = 25C, VS = +-15 V): 'GBW Gain " +
460
+ "bandwidth product: TYP 8 MHz' (MIN/MAX blank; p1 Features: 'Bandwidth: 8MHz'). The AOL " +
461
+ "row that sets the sections gain is on the same table: 'AOL Open-loop voltage gain, " +
462
+ "RL = 2 kOhm, -13.8 V <= VO <= 13.5 V: MIN 104 TYP 120 dB' (a second row at RL = 10 kOhm " +
463
+ "reads the same 104/120). The orderable table prints 'OPA134PA | Active | Production | " +
464
+ "PDIP (P) | 8'.",
465
+ },
466
+ },
467
+ {
468
+ // Wave 5. GBW only (D4 swing freeze stands). The row is printed with the G = 100
469
+ // measurement condition; the product is transcribed as printed (20 MHz), quoted
470
+ // with its condition. OPA604AP is named by the specs header ('OPA604AP, AU');
471
+ // the PDIP suffix follows the Burr-Brown AP convention (the addendum lists AU
472
+ // active; AP is the plastic-DIP orderable).
473
+ partIds: ["OPA604AP"],
474
+ gainBandwidthHz: {
475
+ value: 20e6,
476
+ basis: "datasheet",
477
+ source: "Fetched manufacturer sheet (no vendored copy): TI (Burr-Brown) OPA604 SBOS019A " +
478
+ "(Jan 1992 - Sep 2003), ELECTRICAL CHARACTERISTICS (TA = +25C, VS = +-15 V, MIN/TYP/MAX " +
479
+ "columns): 'FREQUENCY RESPONSE | Gain-Bandwidth Product, G = 100: TYP 20 MHz'. The AOL " +
480
+ "row that sets the sections gain is on the same table: 'OPEN-LOOP GAIN | Open-Loop " +
481
+ "Voltage Gain, VO = +-10 V, RL = 1 kOhm: MIN 80 TYP 100 dB'.",
482
+ },
483
+ },
484
+ ]);
485
+ /** Op-amp ids this catalog holds whose datasheet states no TYP gain-bandwidth figure, and why. */
486
+ export const opampGainBandwidthAbsent = [
487
+ {
488
+ partIds: ["uPC4558C", "uPC4558G2", "uPC4558"],
489
+ reason: "UPC4558/datasheets/renesas-upc258-upc4558.pdf (Renesas R03DS0145EJ0200 Rev 2.00) prints no gain-bandwidth " +
490
+ "row: the p3 electrical characteristics list slew rate (1.0 V/us) and no GB/GBW/fT/B1. The p4 'AV vs. f' " +
491
+ "graph reaches 0 dB near 1.5 MHz by eye, which is not a printed figure. The registry's 3 MHz has no " +
492
+ "support in this sheet.",
493
+ },
494
+ {
495
+ partIds: ["RC4558C", "4558"],
496
+ reason: "RC4558C is not an orderable printed in SLOS073H, and '4558' is a generic name no datasheet owns.",
497
+ },
498
+ {
499
+ partIds: ["TL071", "TL071CN", "TL072", "TL072CN", "TL072IP", "TL072D", "TL082"],
500
+ reason: "The TL07x/TL08x GBW row splits on package and grade (TYP 3 MHz for NS/PS packages and M grades, TYP 5.25 " +
501
+ "for all other devices). These ids do not state, or the datasheet does not print for them, which row " +
502
+ "applies.",
503
+ },
504
+ {
505
+ partIds: ["TL072C"],
506
+ reason: "TL072/datasheets/tl072.pdf (TI SLOS080W, Sep 1978, rev Jul 2025) 5.8 DC (VS = +-15 V, TA = 25C, " +
507
+ "VO = 0 V): the AOL row prints 'TL07xC MIN 25 TYP 200 V/mV', so the wave-5 sections entry carries " +
508
+ "openLoopGain 200000; but the GBW row splits 'All NS and PS packages; All TL07xM devices TYP 3 MHz' " +
509
+ "against 'All other devices TYP 5.25 MHz', and the bare TL072C id spans both (the TL072CP PDIP " +
510
+ "orderable takes the 5.25 row; a TL072CPS would take the 3). No single figure applies.",
511
+ },
512
+ {
513
+ partIds: ["LF353", "LF353N", "LF353M", "LM741", "UA741", "uA741", "TA7504S", "TA7504", "MC33178", "MC33178P", "MC33178D", "BA718", "LM741CN"],
514
+ reason: "No vendored datasheet for these ids. LM741CN (wave 5) rests on the fetched TI LM741 SNOSC25D orderable table, which prints no GBW row.",
515
+ },
516
+ {
517
+ partIds: ["CA1458", "CA1458E", "CA1458T"],
518
+ reason: "The datasheet this file cites for open-loop gain (Harris File Number 531.2) is not vendored in the " +
519
+ "artifacts library, so no GBW row can be quoted.",
520
+ },
521
+ {
522
+ partIds: [
523
+ "M5218A", "M5218L", "M5218P", "M5218FP", "M5218",
524
+ "M5216AL", "M5216AP", "M5216AFP", "M5216A", "M5216L", "M5216P", "M5216FP", "M5216",
525
+ "M5281AL", "M5281AP", "M5281AFP", "M5281A", "M5281L", "M5281P", "M5281FP", "M5281",
526
+ ],
527
+ reason: "The vendored Mitsubishi sheet is the M5218AL/P/FP document; the plain M5218 L/P/FP, the bare 'A' and " +
528
+ "'M5218' ids are not printed on it, and M5216/M5281 appear in no vendored datasheet.",
529
+ },
530
+ {
531
+ partIds: ["M5223L", "M5223P", "M5223FP", "M5223"],
532
+ reason: "M5223AL/datasheets/m5223al-page-2.png has no gain-bandwidth row; its 'Voltage Gain vs Frequency Response' " +
533
+ "graph reaches 0 dB near 1 MHz at VCC=15 V and near 2 MHz at VCC=30 V by eye.",
534
+ },
535
+ {
536
+ partIds: ["OP07"],
537
+ reason: "The OP07 sheet's electrical characteristics apply to OP07C and OP07D only; the bare id has no column.",
538
+ },
539
+ {
540
+ partIds: ["AD712"],
541
+ reason: "ADI AD712 Rev. B SPECIFICATIONS (VS = +-15 V @ TA = +25C): the frequency row reads 'Small " +
542
+ "Signal Bandwidth 3.0 MIN 4.0 TYP MHz' (J grade; 3.4/4.0 for the other grades) with no " +
543
+ "closed-loop gain stated and the sheet never uses the term gain-bandwidth. Mapping an " +
544
+ "unstated-gain small-signal bandwidth onto gainBandwidthHz is an interpretation, so no " +
545
+ "figure is transcribed; the sections entry carries the citable AOL TYP 400 V/mV alone.",
546
+ },
547
+ {
548
+ partIds: ["LM1458", "LM1458N"],
549
+ reason: "LM1458/datasheets/lm1458.pdf (TI SNOSBU4D, Apr 1998, Rev. D Mar 2013, ex-National) prints " +
550
+ "no gain-bandwidth, unity-gain-frequency or frequency-response spec row at all " +
551
+ "(full-text search finds only the Features bullet 'No Frequency Compensation Required'). " +
552
+ "Curves must not be read by eye, so no figure is transcribed; the sections entry carries " +
553
+ "the citable AOL TYP 160 V/mV alone (same AOL-only shape as AD712).",
554
+ },
555
+ {
556
+ partIds: ["LM308"],
557
+ reason: "Fetched manufacturer sheet (no vendored copy): TI LM108/LM208/LM308 SNOSBS5A (May 2004, " +
558
+ "rev Sept 2011, OBSOLETE) prints no gain-bandwidth or unity-gain row: only compensation " +
559
+ "values and open-loop response graphs (Fig. 5/6 numbers are the LM101A-boosted application " +
560
+ "circuit's, not the LM308's). The sections entry carries the citable AOL TYP 300 V/mV " +
561
+ "alone (same AOL-only shape as AD712).",
562
+ },
563
+ {
564
+ partIds: ["UA741CP"],
565
+ reason: "Fetched manufacturer sheet (no vendored copy): TI uA741 SLOS094H (Nov 1970, rev Feb 2026) " +
566
+ "prints no gain-bandwidth or unity-gain row for uA741C (the switching tables print only " +
567
+ "rise time 0.3 us TYP, 5% overshoot, SR 0.5 V/us). The sections entry carries the citable " +
568
+ "AOL TYP 200 V/mV alone (same AOL-only shape as AD712).",
569
+ },
570
+ {
571
+ partIds: ["TL022CP2", "AK4552VT", "AK4552", "AK4552VT13", "AK4552VT8"],
572
+ reason: "Not an op-amp datasheet part: a converter or macro shell modelled with an op-amp section.",
573
+ },
574
+ ];
575
+ /** Op-amp ids this catalog holds that state no output-swing pair, and why. */
576
+ export const opampOutputSwingAbsent = [
577
+ {
578
+ partIds: ["OP07"],
579
+ reason: "The OP07 sheet's electrical characteristics apply to OP07C and OP07D only (footnote 1); the bare id has no column.",
580
+ },
581
+ {
582
+ partIds: ["MC33178", "MC33178P", "MC33178D"],
583
+ reason: "No MC33178 datasheet is vendored. The registry's 1.1 V (15 - 13.9, onsemi MC33178-D at +-15 V, RL = 2 kOhm) " +
584
+ "is carried from a citation and was never re-read here, which does not meet the printed-TYP-only rule.",
585
+ },
586
+ {
587
+ partIds: [
588
+ "NJM4558DD", "NJM4558D", "JRC4558D", "JRC4558", "JRC4558DD", "NJM4558M", "NJM4558E", "NJM4558V", "NJM4558L", "NJM4558",
589
+ "RC4558", "RC4558P", "RC4558D",
590
+ "uPC4558C", "uPC4558G2", "uPC4558",
591
+ "TL071", "TL071CN", "TL071CP", "TL072", "TL072CN", "TL072IP", "TL072D", "TL072CP", "TL082", "TL082CP",
592
+ "NE5534", "NJM5534", "NJM5534D", "NJM5534M", "JRC5534",
593
+ "LM358", "LM358N", "LM358P",
594
+ ],
595
+ reason: "A printed swing row exists in the vendored sheet (NJM4558 p2 +-12/+-14 at RL >= 10 kOhm and +-10/+-13 at " +
596
+ "RL >= 2 kOhm; RC4558 SLOS073H 5.5 p6; uPC4558 R03DS0145EJ0200 p3, two tables and the sheet does not say which a " +
597
+ "bare id belongs to; TL07x/TL08x SLOS080W 5.8; NE5534 SLOS070D 7.5 p5, peak-to-peak, constant 2.0 V a side at +-15 " +
598
+ "V and +-18 V; LM358 SLOS068AB 5.7 p10, asymmetric and printed at 5 V and 30 V only) and is deliberately NOT typed: " +
599
+ "owner decision D4, 2026-10-17. Every one is printed at +-15 V or more and almost every pedal runs at 9 V; typing " +
600
+ "them would move about 25 corpus packets on a translation that has one held-out data point.",
601
+ },
602
+ {
603
+ partIds: ["RC4558C", "4558"],
604
+ reason: "RC4558C is not an orderable printed in SLOS073H and '4558' is a generic name no datasheet owns.",
605
+ },
606
+ {
607
+ partIds: ["NE5532", "NE5532P", "NE5532D"],
608
+ reason: "TI SLOS075K (Dec 2025) removed the output-swing row; its revision history says so.",
609
+ },
610
+ {
611
+ partIds: ["TL022", "TL022C", "TL022CP", "TL022CD", "TL022CN"],
612
+ reason: "TI SLOS076 prints VO(PP) as a peak-to-peak figure only (20 min / 26 typ at RL = 10 kOhm, +-15 V): no per-side figure.",
613
+ },
614
+ {
615
+ partIds: ["LF353", "LF353N", "LF353M", "LM741", "UA741", "uA741", "TA7504S", "TA7504", "BA718", "CA1458", "CA1458E", "CA1458T", "LM741CN"],
616
+ reason: "No vendored datasheet for these ids. LM741CN (wave 5) carries the entry's house gain; the swing pair stays absent per the D4 freeze.",
617
+ },
618
+ {
619
+ partIds: ["AD712", "LF347", "LF347N", "LF351", "LF351N", "L272", "L272M", "L272D", "TL074", "TL074CN", "TL074CD"],
620
+ reason: "Wave-2 fills: the sections entries carry the citable AOL TYP and the GBW rows (all but " +
621
+ "AD712) the product; the output-swing pair is deliberately NOT typed (owner decision D4, " +
622
+ "2026-10-17, upheld for this wave). Printed swing rows exist (LF347 VOM +-12/+-13.5 at " +
623
+ "RL = 10 kOhm; LF351 VO +-12/+-13.5; TL074 VOM rows) and are left untyped for the same " +
624
+ "supply-translation reason as the 2026-10-17 list.",
625
+ },
626
+ {
627
+ partIds: ["JRC4580D", "JRC4580", "NJM4580D", "NJM4580", "OPA2134", "OPA2134PA", "LM1458", "LM1458N"],
628
+ reason: "Wave-3 fills: the sections entries carry the citable AOL TYP (NJM4580 110 dB, OPA2134 " +
629
+ "120 dB, LM1458 160 V/mV) and the GBW rows (all but LM1458/N) the product; the " +
630
+ "output-swing pair is deliberately NOT typed (owner decision D4, 2026-10-17, upheld " +
631
+ "for this wave). Printed swing rows exist (NJM4580 VOM +-12/+-14 and +-10/+-13; OPA2134 " +
632
+ "VO -14.5/+13.8 at RL = 10 kOhm and -13.8/+13.5 at RL = 2 kOhm; LM1458 VO +-12/+-13.5) " +
633
+ "and are left untyped for the same supply-translation reason as the 2026-10-17 list.",
634
+ },
635
+ {
636
+ partIds: ["LM308", "LM324", "UA741CP", "TLC2262", "MC33174"],
637
+ reason: "Wave-4 fills: the sections entries carry the citable AOL TYP (LM308 300 V/mV, LM324 " +
638
+ "100 V/mV, UA741CP 200 V/mV, TLC2262 200 V/mV C-grade, MC33174 500 V/mV) and the GBW rows " +
639
+ "(LM324 1.2 MHz, TLC2262 0.73 MHz, MC33174 1.8 MHz; LM308/UA741CP print none) the product; " +
640
+ "the output-swing pair is deliberately NOT typed (owner decision D4, 2026-10-17, upheld " +
641
+ "for this wave). Printed swing rows exist (LM308 VOM +-13/+-14 at RL = 10 kOhm; UA741CP " +
642
+ "VOM +-10/+-14.8 at RL = 2 kOhm; TLC2262C VO 1-4 V at VDD = 5 V; MC33174 VOH/VOL rows) " +
643
+ "and are left untyped for the same supply-translation reason as the 2026-10-17 list.",
644
+ },
645
+ {
646
+ partIds: ["TL072C", "OPA1678", "OPA134PA", "OPA604AP"],
647
+ reason: "Wave-5 fills: the sections entries carry the citable AOL TYP (TL072C 200 V/mV C-grade, " +
648
+ "OPA1678 114 dB, OPA134PA 120 dB, OPA604AP 100 dB) and the GBW rows (OPA1678 16 MHz, " +
649
+ "OPA134PA 8 MHz, OPA604AP 20 MHz at G = 100; TL072C prints no single GBW figure) the " +
650
+ "product; the output-swing pair is deliberately NOT typed (owner decision D4, 2026-10-17, " +
651
+ "upheld for this wave). Printed swing rows exist (TL072C VOM rows; OPA1678 VO (V-)+0.8 to " +
652
+ "(V+)-0.8; OPA134PA VO -13.8/+13.5 at RL = 2 kOhm; OPA604 output rows) and are left untyped " +
653
+ "for the same supply-translation reason as the 2026-10-17 list.",
654
+ },
655
+ {
656
+ partIds: [
657
+ "M5218AL", "M5218AP", "M5218AFP", "M5218A", "M5218L", "M5218P", "M5218FP", "M5218",
658
+ "M5216AL", "M5216AP", "M5216AFP", "M5216A", "M5216L", "M5216P", "M5216FP", "M5216",
659
+ "M5281AL", "M5281AP", "M5281AFP", "M5281A", "M5281L", "M5281P", "M5281FP", "M5281",
660
+ "M5223L", "M5223P", "M5223FP", "M5223",
661
+ ],
662
+ reason: "The vendored Mitsubishi sheets are image-only or package drawings; no swing row was read, and none is claimed.",
663
+ },
664
+ {
665
+ partIds: ["TL022CP2", "AK4552VT", "AK4552", "AK4552VT13", "AK4552VT8"],
666
+ reason: "Not an op-amp datasheet part: a converter or macro shell modelled with an op-amp section.",
667
+ },
668
+ ];
669
+ //# sourceMappingURL=opamp.js.map