safeseed 0.2.0 → 0.2.1

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,5 +1,7 @@
1
1
  # SafeSeed
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/safeseed)](https://www.npmjs.com/package/safeseed) [![license: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)
4
+
3
5
  **Confirmably-synthetic test data by construction.** Generate stand-in data for test, CI, and demo environments from ranges that published standards have reserved as *permanently not real*, bind a tamper-evident record to the output, verify a file stays in range, and scan data you already have for real PII that slipped in.
4
6
 
5
7
  No model, no training data, no backend, no accounts, no telemetry, zero runtime dependencies. It runs entirely on your machine. MIT licensed.
@@ -21,7 +23,7 @@ SafeSeed takes the other path: **never let real data into the process at all.**
21
23
  1. **Generate** safe-by-construction test data from the cited reserved ranges (deterministic from a seed, so the output is a committable fixture).
22
24
  2. **Attest** with a tamper-evident run record that binds to the file's content hash and states the honesty tier of every field.
23
25
  3. **Verify** that a file is still byte-for-byte the generated one *and* that every value is still in range — wire it into CI to fail the build on drift. Strict by default; opt into **column-scoped verify** (`--allow-added-columns`) to attest only the synthetic columns you generated, so a team can add its own business columns (job title, industry) without breaking attestation — added columns are reported as *unattested*, never a silent pass.
24
- 4. **Scan** an *existing* CSV / seed file and flag values that are not in reserved ranges as candidate real PII. Column-scoped verify pairs with scan: verify vouches for the synthetic columns, scan checks the columns you added.
26
+ 4. **Scan** an *existing* CSV / seed file and flag values that are not in reserved ranges as candidate real PII. Column-scoped verify pairs with scan: verify vouches for the synthetic columns, scan checks the columns you added. **Know the limit:** scan flags real data *outside* the reserved ranges; real data that happens to look reserved (a real mailbox at `example.com`, a real `555-01xx` line — or, under the old 0.2.0 ranges, a genuine ITIN) will **not** be flagged. A clean scan means "nothing provably-unreserved found," not "no real PII."
25
27
 
26
28
  `verify` and `scan` are **generator-agnostic**: they work on any data file, however it was produced, so you can keep the generator you already use and wrap it.
27
29
 
@@ -32,6 +34,9 @@ There is also a self-serve **generator page** (browser, zero network): pick fiel
32
34
  ### CLI
33
35
 
34
36
  ```bash
37
+ # Install the CLI (or prefix any command with `npx`, no install needed)
38
+ npm install -g safeseed
39
+
35
40
  # Generate 100 rows of safe data + a run record
36
41
  safeseed generate \
37
42
  --fields email:email,name:fullName,phone:phone,ssn:ssn,card:creditCard \
@@ -51,10 +56,12 @@ safeseed scan --in legacy.csv --fields email:email,phone:phone,ssn:ssn
51
56
  safeseed catalog
52
57
  ```
53
58
 
59
+ `--seed` defaults to `0`, so a run without it is fully deterministic — identical output every time, on purpose (the output is a committable fixture). Pass `--seed` to vary the dataset.
60
+
54
61
  ### As a CI gate (GitHub Action)
55
62
 
56
63
  ```yaml
57
- - uses: <org>/safeseed@v0 # the verify Action
64
+ - uses: advokat-frida/safeseed@v0.2.1 # the verify Action
58
65
  with:
59
66
  data: fixtures/seed.csv
60
67
  record: fixtures/seed.record.json
@@ -94,12 +101,14 @@ Honesty is the credibility here, so the claim has tiers, and every field is labe
94
101
  | Tier | What it means | Examples | The claim |
95
102
  |---|---|---|---|
96
103
  | **provably-non-real** | Reserved by a published standard/protocol; the standard itself makes them non-routable/non-registrable. | RFC 2606 email domains, RFC 5737 / 3849 documentation IPs | "Cannot correspond to a real person or system." |
97
- | **reserved-not-issued** | Reserved by the *issuing authority* and never assigned — strong, but administrative policy, not protocol. | NANPA `555-01xx` phones, never-issued SSN ranges | "Never assigned, so no real holder has one; non-real by policy, not protocol." |
104
+ | **reserved-not-issued** | Reserved by the *issuing authority* and never assigned — strong, but administrative policy, not protocol. | NANPA `555-01xx` phones; SSN components no authority issues (area `000`/`666`, group `00`, serial `0000`) | "Never assigned, so no real holder has one; non-real by policy, not protocol." |
98
105
  | **designated-test-only** | A valid-looking value processors/sandboxes *designate* for testing. It passes validation. | Card test PANs (`4242…`) | "Non-real by designation, **not** by impossibility." |
99
106
  | **structurally-fake** | No standard reserves it, so it is made *self-evidently* fake instead of plausible. | `TEST_Lastname_000142`, `123 Example Way` | "Synthetic token; not derived from any real record." |
100
107
 
101
108
  Stating which tier each field sits in is not a weakness to bury. It is the thing that separates a practitioner from a datasheet.
102
109
 
110
+ > **The 0.2.1 SSN correction.** SafeSeed 0.2.0 generated SSNs from the `900-999` area range on the theory that the SSA never assigns it — but that range is the IRS ITIN space (`9XX-XX-XXXX`), real issued identifiers, so the "no real holder has one" claim was false for those values. 0.2.1 generates only from components neither the SSA nor the IRS ever issues, narrows the reserved definition to match, and — by design — old 0.2.0 datasets and run records now **fail** `verify` and their `9xx` SSNs are **flagged** by `scan`. Details in [CHANGELOG.md](CHANGELOG.md). One nuance stated plainly: these values are format-*shaped* (`NNN-NN-NNNN`); a strict SSN validator that encodes issuance rules will reject them, and that rejection is exactly the safety property.
111
+
103
112
  ## What this does **not** prove
104
113
 
105
114
  The fastest way to lose a security reviewer is to claim more than you can defend. So, on purpose:
@@ -121,7 +130,7 @@ Off-the-shelf fake-data libraries already emit reserved-range values. What is mi
121
130
  - **RFC 5737** — IPv4 documentation blocks (`192.0.2.0/24`, `198.51.100.0/24`, `203.0.113.0/24`).
122
131
  - **RFC 3849** — IPv6 documentation prefix (`2001:db8::/32`).
123
132
  - **NANPA / ATIS** — fictitious telephone numbers (`555-0100` through `555-0199`).
124
- - **SSA SSN randomization** (effective 2011-06-25) — never-assigned ranges (area `000`/`666`/`900-999`, group `00`, serial `0000`), confirmed against the [SSA randomization rules](https://www.ssa.gov/employer/randomization.html).
133
+ - **SSA SSN randomization** (effective 2011-06-25) — never-assigned components (area `000`/`666`, group `00`, serial `0000`), confirmed against the [SSA randomization rules](https://www.ssa.gov/employer/randomization.html). The `900-999` areas the SSA also excludes are **deliberately not used**: that space is the [IRS ITIN range](https://www.irs.gov/individuals/individual-taxpayer-identification-number) (`9XX-XX-XXXX`) — real, issued identifiers, with group ranges the IRS has expanded over time.
125
134
  - Card numbers are **published processor/sandbox test PANs** (e.g. Stripe testing docs), in the `designated-test-only` tier (they pass Luhn, authorize nowhere).
126
135
 
127
136
  ## Development
@@ -137,7 +146,7 @@ The catalog in [`src/catalog.ts`](src/catalog.ts) is the reusable core: it maps
137
146
 
138
147
  ## Status
139
148
 
140
- Core library, CLI, the `verify` Action, and an interactive browser demo are built and tested (64 tests; CI green). SafeSeed 0.2.0 adds per-column hashes and opt-in **column-scoped verify**, a self-serve **generator page**, and a four-tier honesty taxonomy that separates protocol-reserved values from authority-reserved (never-issued) ones. The demo lives in [`demo/`](demo/); both the showcase and the generator ship as committed, offline single files at [`demo/safeseed-demo.html`](demo/safeseed-demo.html) and [`demo/safeseed-generator.html`](demo/safeseed-generator.html). npm publication is the remaining step. The design record is in [SPEC.md](SPEC.md); the v2 feature spec is in [docs/generator-and-column-scoped-verify.md](docs/generator-and-column-scoped-verify.md).
149
+ Core library, CLI, the `verify` Action, and an interactive browser demo are built and tested (74 tests; CI green). SafeSeed 0.2.0 added per-column hashes and opt-in **column-scoped verify**, a self-serve **generator page**, and a four-tier honesty taxonomy that separates protocol-reserved values from authority-reserved (never-issued) ones; 0.2.1 corrects the SSN reserved range (the ITIN collision — see [CHANGELOG.md](CHANGELOG.md)). The demo lives in [`demo/`](demo/); both the showcase and the generator ship as committed, offline single files at [`demo/safeseed-demo.html`](demo/safeseed-demo.html) and [`demo/safeseed-generator.html`](demo/safeseed-generator.html). Published on npm as [`safeseed`](https://www.npmjs.com/package/safeseed), with the interactive demo live at [advokatfrida.com/safeseed](https://advokatfrida.com/safeseed/). The design record is in [SPEC.md](SPEC.md); the v2 feature spec is in [docs/generator-and-column-scoped-verify.md](docs/generator-and-column-scoped-verify.md).
141
150
 
142
151
  ## Support
143
152
 
package/dist/catalog.d.ts CHANGED
@@ -7,13 +7,17 @@
7
7
  * this one table, which is what makes the promise auditable: review these few
8
8
  * hundred cited lines once, and every output inherits the guarantee.
9
9
  *
10
- * Sourcing: the RFC 2606 / 5737 / 3849 reservations and the SSA SSN randomization
11
- * exclusions (area 000/666/900-999, group 00, serial 0000) are confirmed against
12
- * primary sources. The NANPA 555-0100..0199 fictitious block is well-established;
13
- * its shipped citation link is the NANPA homepage rather than a deep rule page.
10
+ * Sourcing: the RFC 2606 / 5737 / 3849 reservations are confirmed against primary
11
+ * sources. The SSN space (catalog 2.0.0) uses only components that BOTH the SSA
12
+ * scheme and the IRS ITIN scheme never issue: area 000, area 666, group 00, serial
13
+ * 0000. The 900-999 area range the SSA excludes is deliberately NOT treated as
14
+ * reserved — it is the IRS ITIN space (9XX-XX-XXXX), which contains real, issued
15
+ * taxpayer identifiers, and the IRS has expanded its ITIN group ranges over time.
16
+ * The NANPA 555-0100..0199 fictitious block is well-established; its shipped
17
+ * citation link is the NANPA homepage rather than a deep rule page.
14
18
  */
15
19
  import type { FieldType, Tier } from "./types.js";
16
- export declare const CATALOG_VERSION = "1.0.0";
20
+ export declare const CATALOG_VERSION = "2.0.0";
17
21
  /** Inspectable, structured definition of a reserved space. Drives generation,
18
22
  * verification, and scanning, and lets tests assert the ranges match standards. */
19
23
  export type ReservedSpec = {
@@ -37,9 +41,8 @@ export type ReservedSpec = {
37
41
  subscriberEnd: number;
38
42
  } | {
39
43
  kind: "ssnInvalid";
44
+ /** Areas never issued by the SSA and structurally outside the IRS ITIN space (000, 666). */
40
45
  invalidAreas: readonly string[];
41
- invalidAreaMin: number;
42
- invalidAreaMax: number;
43
46
  invalidGroup: string;
44
47
  invalidSerial: string;
45
48
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGlD,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;mFACmF;AACnF,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACjG;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,CAAC;CACxB;AAiCD,eAAO,MAAM,OAAO,EAAE,SAAS,YAAY,EAwG1C,CAAC;AAIF,kFAAkF;AAClF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAIvD;AAUD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAwCtE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAOlD,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;mFACmF;AACnF,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACjG;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,4FAA4F;IAC5F,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,CAAC;CACxB;AAiCD,eAAO,MAAM,OAAO,EAAE,SAAS,YAAY,EAwG1C,CAAC;AAIF,kFAAkF;AAClF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAIvD;AAUD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAwCtE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D"}
package/dist/catalog.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { ipv4InCidr, ipv6InPrefix } from "./net.js";
2
- export const CATALOG_VERSION = "1.0.0";
2
+ // 2.0.0: the ssn reserved range narrowed to exclude areas 900-999 (the IRS ITIN
3
+ // space — real identifiers). Run records made under catalog 1.0.0 with 9xx-area
4
+ // SSNs now fail verify BY DESIGN; verify emits a catalog-version warning so the
5
+ // failure is explained rather than mysterious.
6
+ export const CATALOG_VERSION = "2.0.0";
3
7
  // Tier-appropriate claim language. The strong wording ("cannot correspond to a
4
8
  // real person") lives ONLY on the protocol-provable tier; every weaker tier
5
9
  // deliberately avoids "proof", "impossible", "guarantee", "cannot be real".
@@ -68,14 +72,12 @@ export const CATALOG = [
68
72
  {
69
73
  field: "ssn",
70
74
  tier: "reserved-not-issued",
71
- citation: "SSA SSN randomization (effective 2011-06-25): never-assigned area numbers 000 / 666 / 900-999, plus group 00 and serial 0000 (ssa.gov/employer/randomization.html)",
72
- description: "US SSNs whose area, group, or serial falls in a range the SSA never issues reserved by the issuing authority's own rules rather than by protocol.",
75
+ citation: "SSA SSN randomization (effective 2011-06-25): never-assigned area 000 / 666, group 00, serial 0000 (ssa.gov/employer/randomization.html). Areas 900-999 are deliberately excluded: that is the IRS ITIN space (9XX-XX-XXXX), which contains real, issued identifiers.",
76
+ description: "US SSN-shaped values containing a component that neither the SSA (for SSNs) nor the IRS (for ITINs) ever issues: area 000 or 666, group 00, or serial 0000. The values are format-shaped (NNN-NN-NNNN); a strict SSN validator that encodes the SSA issuance rules will reject them that rejection is exactly what makes them provably never-issued.",
73
77
  claim: CLAIM_RESERVED_NOT_ISSUED,
74
78
  reserved: {
75
79
  kind: "ssnInvalid",
76
80
  invalidAreas: ["000", "666"],
77
- invalidAreaMin: 900,
78
- invalidAreaMax: 999,
79
81
  invalidGroup: "00",
80
82
  invalidSerial: "0000",
81
83
  },
@@ -175,15 +177,16 @@ export function isReserved(entry, value) {
175
177
  return nxx === r.centralOfficeCode && line >= r.subscriberStart && line <= r.subscriberEnd;
176
178
  }
177
179
  case "ssnInvalid": {
180
+ // Reserved = contains a component that is never issued under BOTH the SSA
181
+ // scheme and the IRS ITIN scheme. Deliberately NOT reserved: areas 900-999
182
+ // (ITIN space — real, issued identifiers; catalog 2.0.0 removed them).
178
183
  const digits = value.replace(/\D/g, "");
179
184
  if (digits.length !== 9)
180
185
  return false;
181
186
  const area = digits.slice(0, 3);
182
187
  const group = digits.slice(3, 5);
183
188
  const serial = digits.slice(5);
184
- const areaNum = Number(area);
185
- const areaInvalid = r.invalidAreas.includes(area) || (areaNum >= r.invalidAreaMin && areaNum <= r.invalidAreaMax);
186
- return areaInvalid || group === r.invalidGroup || serial === r.invalidSerial;
189
+ return r.invalidAreas.includes(area) || group === r.invalidGroup || serial === r.invalidSerial;
187
190
  }
188
191
  case "cardTestNumbers": {
189
192
  const digits = value.replace(/\D/g, "");
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -69,6 +69,8 @@ function parseFields(spec) {
69
69
  function cmdGenerate(p) {
70
70
  let schema = [];
71
71
  let rows = 0;
72
+ // Deliberate: --seed defaults to 0, so a no-seed run is a repeatable run, not a
73
+ // random one — determinism is the product. Documented in --help and the README.
72
74
  let seed = 0;
73
75
  let formatValid = true;
74
76
  if (typeof p.flags.config === "string") {
@@ -157,6 +159,9 @@ function cmdScan(p) {
157
159
  const result = scan({ csv, columns });
158
160
  if (result.ok) {
159
161
  process.stdout.write(`safeseed scan: clean — ${result.scannedRows} rows, no candidate PII\n`);
162
+ process.stdout.write(" note: scan flags real data OUTSIDE the reserved ranges; real data that happens to look reserved " +
163
+ "(a real mailbox at example.com, a real 555-01xx line) is NOT flagged. " +
164
+ 'Clean means "nothing provably-unreserved found," not "no real PII."\n');
160
165
  }
161
166
  else {
162
167
  process.stdout.write(`safeseed scan: ${result.findings.length} candidate(s) across ${result.scannedRows} rows\n`);
@@ -185,6 +190,13 @@ function printUsage() {
185
190
  " safeseed version",
186
191
  "",
187
192
  "Field types: " + [...VALID_TYPES].join(", "),
193
+ "",
194
+ "Notes:",
195
+ " --seed defaults to 0, so runs without it are fully deterministic (identical",
196
+ " output every time); pass --seed to vary the dataset.",
197
+ " scan flags values OUTSIDE the reserved ranges; real data that happens to look",
198
+ ' reserved is not flagged — clean means "nothing provably-unreserved found."',
199
+ "",
188
200
  "Exit codes: 0 clean · 1 drift/findings · 2 usage/IO error",
189
201
  ].join("\n") + "\n");
190
202
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,12 @@ export interface GenerateOptions {
11
11
  /** Seed for deterministic output. Same seed + schema => identical dataset. */
12
12
  seed: number;
13
13
  /**
14
- * Format-valid mode (default true): render values that pass common validators
15
- * while staying in range (10-digit phones, NNN-NN-NNNN SSNs). When false,
16
- * values are rendered in a looser, even-more-obviously-test form.
14
+ * Format-valid mode (default true): render values in the common wire shape while
15
+ * staying in range (10-digit phones, NNN-NN-NNNN SSNs). "Format-valid" means the
16
+ * SHAPE passes a strict validator that encodes issuance rules (e.g. an SSN
17
+ * checker that rejects group 00 / serial 0000) will still reject the value, and
18
+ * that is by design: never-issued is the safety property. When false, values are
19
+ * rendered in a looser, even-more-obviously-test form.
17
20
  */
18
21
  formatValid?: boolean;
19
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AA2ED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAmBhE"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AAyFD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAmBhE"}
package/dist/generate.js CHANGED
@@ -14,7 +14,12 @@ const IPV4_BLOCKS = [
14
14
  [198, 51, 100],
15
15
  [203, 0, 113],
16
16
  ];
17
- const SSN_INVALID_AREAS = ["900", "901", "902", "910", "987", "999", "000", "666"];
17
+ // Which never-issued SSN component to force on a row: group "00" or serial "0000".
18
+ // Both are structurally excluded by the SSA's own issuance rules AND absent from the
19
+ // IRS ITIN format, so they are never-issued under both schemes. Areas are drawn from
20
+ // 001-899 (skipping 666), which keeps every generated value entirely outside the
21
+ // 9XX ITIN space — robust even if the IRS expands its ITIN group ranges again.
22
+ const SSN_NEVER_ISSUED_MARKERS = ["group", "serial"];
18
23
  const STREET_SUFFIX = ["Way", "St", "Ave", "Rd", "Blvd"];
19
24
  const CARD_TEST_NUMBERS = [
20
25
  "4242424242424242",
@@ -59,10 +64,19 @@ function generateValue(type, rng, row, formatValid) {
59
64
  return `555-${line}`;
60
65
  }
61
66
  case "ssn": {
62
- const area = pick(rng, SSN_INVALID_AREAS);
63
- const group = pad(intBetween(rng, 1, 99), 2);
64
- const serial = pad(intBetween(rng, 1, 9999), 4);
65
- return `${area}-${group}-${serial}`;
67
+ // Never-issued under BOTH the SSA scheme and the IRS ITIN scheme (see catalog):
68
+ // a plausible-looking area in 001-899 (never 666, never the 9XX ITIN space),
69
+ // with group forced to "00" or serial forced to "0000" components neither
70
+ // authority ever issues. Exactly three RNG draws, same as every prior release,
71
+ // so the shared seeded stream stays aligned and all other columns are
72
+ // byte-identical for a given seed.
73
+ const areaDraw = intBetween(rng, 1, 898);
74
+ const area = pad(areaDraw >= 666 ? areaDraw + 1 : areaDraw, 3);
75
+ const marker = pick(rng, SSN_NEVER_ISSUED_MARKERS);
76
+ if (marker === "group") {
77
+ return `${area}-00-${pad(intBetween(rng, 1, 9999), 4)}`;
78
+ }
79
+ return `${area}-${pad(intBetween(rng, 1, 99), 2)}-0000`;
66
80
  }
67
81
  case "creditCard":
68
82
  return pick(rng, CARD_TEST_NUMBERS);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAiCxD,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAU,CAAC;AAC7E,MAAM,WAAW,GAAG;IAClB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACd,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;CACL,CAAC;AACX,mFAAmF;AACnF,qFAAqF;AACrF,qFAAqF;AACrF,iFAAiF;AACjF,+EAA+E;AAC/E,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAC;AAC9D,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAU,CAAC;AAClE,MAAM,iBAAiB,GAAG;IACxB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;CACV,CAAC;AAEX,SAAS,GAAG,CAAC,CAAS,EAAE,KAAa;IACnC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,IAAe,EAAE,GAAiB,EAAE,GAAW,EAAE,WAAoB;IAC1F,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,WAAW;gBAChB,CAAC,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE;gBAC1C,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,kBAAkB,CAAC;QAC5C,KAAK,QAAQ;YACX,OAAO,OAAO,GAAG,UAAU,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACrC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC1E,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,6EAA6E;YAC7E,qFAAqF;YACrF,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;YACjC,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC;YACxB,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACjG,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACtC,OAAO,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;YAChC,CAAC;YACD,OAAO,OAAO,IAAI,EAAE,CAAC;QACvB,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,gFAAgF;YAChF,6EAA6E;YAC7E,4EAA4E;YAC5E,+EAA+E;YAC/E,sEAAsE;YACtE,mCAAmC;YACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;YACnD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1D,CAAC;YACD,OAAO,GAAG,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;QAC1D,CAAC;QACD,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACtC,KAAK,WAAW;YACd,OAAO,kBAAkB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,UAAU;YACb,OAAO,iBAAiB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QACxC,KAAK,UAAU;YACb,OAAO,eAAe,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QACtC,KAAK,eAAe;YAClB,OAAO,GAAG,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC;QACtD,KAAK,UAAU;YACb,OAAO,aAAa,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACtC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAqB;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAC7C,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO;QACL,OAAO;QACP,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,cAAc,EAAE,eAAe;KAChC,CAAC;AACJ,CAAC"}
package/dist/record.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { GeneratedDataset } from "./generate.js";
2
2
  import type { FieldType, Tier } from "./types.js";
3
- export declare const SAFESEED_VERSION = "0.2.0";
3
+ export declare const SAFESEED_VERSION = "0.2.1";
4
4
  export interface FieldRecord {
5
5
  name: string;
6
6
  type: FieldType;
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKlD,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,QASb,CAAC;AAEZ,wBAAsB,aAAa,CACjC,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,SAAS,CAAC,CA2BpB"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAQlD,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,QASb,CAAC;AAEZ,wBAAsB,aAAa,CACjC,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,SAAS,CAAC,CA2BpB"}
package/dist/record.js CHANGED
@@ -13,7 +13,10 @@ import { canonicalColumn } from "./csv.js";
13
13
  // 0.2.0 adds a per-column `sha256` to every FieldRecord (the basis for opt-in
14
14
  // column-scoped verify). It is purely additive — strict whole-file verify is
15
15
  // unchanged, and a 0.1.0 record without per-column hashes still verifies strictly.
16
- export const SAFESEED_VERSION = "0.2.0";
16
+ // 0.2.1 ships catalog 2.0.0: the ssn reserved range no longer includes areas
17
+ // 900-999 (the IRS ITIN space — real identifiers), so 0.2.0-era records with 9xx
18
+ // SSNs fail verify by design; verify explains this with a catalog-version warning.
19
+ export const SAFESEED_VERSION = "0.2.1";
17
20
  export const ATTESTATION = [
18
21
  "This run record attests that the named dataset was generated by SafeSeed from",
19
22
  "standards-reserved ranges, with no real input data. It is a tamper-evident",
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI3C,8EAA8E;AAC9E,6EAA6E;AAC7E,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAgCxC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,+EAA+E;IAC/E,4EAA4E;IAC5E,+EAA+E;IAC/E,8EAA8E;IAC9E,oCAAoC;IACpC,kFAAkF;IAClF,iFAAiF;IACjF,qEAAqE;CACtE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAyB,EACzB,GAAW,EACX,IAA+B;IAE/B,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAkB,MAAM,OAAO,CAAC,GAAG,CAC7C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SACjD,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,OAAO;QACL,eAAe,EAAE,gBAAgB;QACjC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,eAAe;QACzD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM;QACN,aAAa;QACb,WAAW,EAAE,WAAW;QACxB,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI3C,8EAA8E;AAC9E,6EAA6E;AAC7E,mFAAmF;AACnF,6EAA6E;AAC7E,iFAAiF;AACjF,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAgCxC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,+EAA+E;IAC/E,4EAA4E;IAC5E,+EAA+E;IAC/E,8EAA8E;IAC9E,oCAAoC;IACpC,kFAAkF;IAClF,iFAAiF;IACjF,qEAAqE;CACtE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAyB,EACzB,GAAW,EACX,IAA+B;IAE/B,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAkB,MAAM,OAAO,CAAC,GAAG,CAC7C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SACjD,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,OAAO;QACL,eAAe,EAAE,gBAAgB;QACjC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,eAAe;QACzD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM;QACN,aAAa;QACb,WAAW,EAAE,WAAW;QACxB,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC"}
package/dist/verify.d.ts CHANGED
@@ -16,7 +16,11 @@ export interface VerifyResult {
16
16
  };
17
17
  /** Columns present in the file but not declared in the record (column-scoped mode). */
18
18
  unattestedColumns: string[];
19
- /** Non-fatal notes, e.g. a 0.1.0 record with no per-column hash → range-only fallback. */
19
+ /**
20
+ * Non-fatal notes, e.g. a 0.1.0 record with no per-column hash → range-only
21
+ * fallback, or a record made under an older catalog whose reserved ranges have
22
+ * since changed (in which case range failures are expected and by design).
23
+ */
20
24
  warnings: string[];
21
25
  }
22
26
  export interface VerifyOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GACzB,uBAAuB,GACvB,oBAAoB,GACpB,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAsB,MAAM,CAC1B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,YAAY,CAAC,CAEvB;AA0KD,+CAA+C;AAC/C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAErD"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoB7C,MAAM,MAAM,iBAAiB,GACzB,uBAAuB,GACvB,oBAAoB,GACpB,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAsB,MAAM,CAC1B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,YAAY,CAAC,CAEvB;AAkLD,+CAA+C;AAC/C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAErD"}
package/dist/verify.js CHANGED
@@ -16,14 +16,34 @@
16
16
  * verify vouches for the synthetic columns; the columns a team adds are out of
17
17
  * scope here and must be checked with `scan`.
18
18
  */
19
- import { getEntry, isReserved } from "./catalog.js";
19
+ import { CATALOG_VERSION, getEntry, isReserved } from "./catalog.js";
20
20
  import { sha256Hex } from "./hash.js";
21
21
  import { parseCsv, canonicalColumn } from "./csv.js";
22
+ /**
23
+ * When a record was made under a different catalog, the reserved ranges it was
24
+ * generated against may not be the ranges enforced now — most notably catalog
25
+ * 2.0.0 removed SSN areas 900-999 (the IRS ITIN space, which contains real
26
+ * identifiers), so ssn values from catalog-1.0.0 records fail the range check BY
27
+ * DESIGN. There is deliberately no compatibility mode that re-blesses an old
28
+ * range; this warning exists so the failure is explained, not mysterious.
29
+ */
30
+ function catalogVersionWarning(record) {
31
+ if (record.catalogVersion === undefined || record.catalogVersion === CATALOG_VERSION)
32
+ return null;
33
+ return (`run record was made under catalog ${record.catalogVersion}; this SafeSeed enforces catalog ${CATALOG_VERSION}. ` +
34
+ `Reserved ranges have changed between catalog versions (2.0.0 removed SSN areas 900-999 — the IRS ITIN space, ` +
35
+ `which holds real identifiers), so any out-of-range failures reported may reflect the corrected ranges rather than ` +
36
+ `tampering. Regenerate the dataset and record with the current version.`);
37
+ }
22
38
  export async function verify(csv, record, opts) {
23
39
  return opts?.allowAddedColumns ? verifyColumnScoped(csv, record) : verifyStrict(csv, record);
24
40
  }
25
41
  async function verifyStrict(csv, record) {
26
42
  const failures = [];
43
+ const warnings = [];
44
+ const versionWarning = catalogVersionWarning(record);
45
+ if (versionWarning !== null)
46
+ warnings.push(versionWarning);
27
47
  const actualHash = await sha256Hex(csv);
28
48
  if (actualHash !== record.contentSha256) {
29
49
  failures.push({
@@ -79,12 +99,15 @@ async function verifyStrict(csv, record) {
79
99
  failures,
80
100
  checked: { rows: rows.length, fields: record.fields.length },
81
101
  unattestedColumns: [],
82
- warnings: [],
102
+ warnings,
83
103
  };
84
104
  }
85
105
  async function verifyColumnScoped(csv, record) {
86
106
  const failures = [];
87
107
  const warnings = [];
108
+ const versionWarning = catalogVersionWarning(record);
109
+ if (versionWarning !== null)
110
+ warnings.push(versionWarning);
88
111
  const { columns, rows } = parseCsv(csv);
89
112
  // The file must stay rectangular: every row matches the header width. This closes
90
113
  // the same hole strict mode closes — a trailing unheadered cell can't smuggle in
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGrD;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,MAAiB;IAC9C,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAClG,OAAO,CACL,qCAAqC,MAAM,CAAC,cAAc,oCAAoC,eAAe,IAAI;QACjH,+GAA+G;QAC/G,oHAAoH;QACpH,wEAAwE,CACzE,CAAC;AACJ,CAAC;AAyCD,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,GAAW,EACX,MAAiB,EACjB,IAAoB;IAEpB,OAAO,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC/F,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,MAAiB;IACxD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,cAAc,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,UAAU,KAAK,MAAM,CAAC,aAAa,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,gBAAgB,UAAU,4BAA4B,MAAM,CAAC,aAAa,EAAE;SACtF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAExC,MAAM,YAAY,GAChB,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM;QACxC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;SACtG,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACtB,+EAA+E;QAC/E,iFAAiF;QACjF,sEAAsE;QACtE,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,EAAE,CAAC;gBACN,OAAO,EAAE,OAAO,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE;aACnF,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,oBAAoB;oBAC1B,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,GAAG,EAAE,CAAC;oBACN,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,QAAQ,CAAC,iBAAiB;iBACjD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,oBAAoB;oBAC1B,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,GAAG,EAAE,CAAC;oBACN,KAAK;oBACL,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,sCAAsC,KAAK,CAAC,IAAI,EAAE;iBAC7F,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QACzB,QAAQ;QACR,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC5D,iBAAiB,EAAE,EAAE;QACrB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,MAAiB;IAC9D,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,cAAc,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE3D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAExC,kFAAkF;IAClF,iFAAiF;IACjF,6EAA6E;IAC7E,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,EAAE,CAAC;gBACN,OAAO,EAAE,OAAO,CAAC,cAAc,OAAO,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE;aAC7E,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,qDAAqD;IACrD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,oBAAoB,KAAK,CAAC,IAAI,4BAA4B;aACpE,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,oBAAoB,KAAK,CAAC,IAAI,8BAA8B,KAAK,QAAQ;aACnF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnC,+EAA+E;QAC/E,2DAA2D;QAC3D,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,oBAAoB;oBAC1B,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,GAAG,EAAE,CAAC;oBACN,KAAK;oBACL,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,sCAAsC,KAAK,CAAC,IAAI,EAAE;iBAC7F,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6EAA6E;QAC7E,iFAAiF;QACjF,4DAA4D;QAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CACX,WAAW,KAAK,CAAC,IAAI,kEAAkE,CACxF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YACxD,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,sBAAsB;oBAC5B,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,OAAO,EAAE,WAAW,KAAK,CAAC,IAAI,UAAU,MAAM,4BAA4B,KAAK,CAAC,MAAM,EAAE;iBACzF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,yFAAyF;IACzF,sFAAsF;IACtF,+FAA+F;IAC/F,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACnD,QAAQ,CAAC,IAAI,CACX,gFAAgF,CACjF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QACzB,QAAQ;QACR,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC5D,iBAAiB;QACjB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,QAAQ,CAAC,MAAoB;IAC3C,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "safeseed",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Confirmably-synthetic test data by construction. Generate, attest, verify, and scan non-production data using standards-reserved \"never-real\" ranges. Zero backend, zero runtime dependencies, MIT.",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "git+https://github.com/tanjaminben/safeseed.git"
8
+ "url": "git+https://github.com/advokat-frida/safeseed.git"
9
9
  },
10
- "homepage": "https://github.com/tanjaminben/safeseed#readme",
10
+ "homepage": "https://github.com/advokat-frida/safeseed#readme",
11
11
  "bugs": {
12
- "url": "https://github.com/tanjaminben/safeseed/issues"
12
+ "url": "https://github.com/advokat-frida/safeseed/issues"
13
13
  },
14
14
  "type": "module",
15
15
  "main": "./dist/index.js",
@@ -52,7 +52,7 @@
52
52
  "devDependencies": {
53
53
  "@types/node": "^22.20.0",
54
54
  "typescript": "^5.7.3",
55
- "vitest": "^2.1.9"
55
+ "vitest": "^4.1.9"
56
56
  },
57
57
  "allowScripts": {
58
58
  "esbuild@0.21.5": true