@lunora/seed 1.0.0-alpha.2 → 1.0.0-alpha.200
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/LICENSE.md +6 -0
- package/README.md +5 -3
- package/__assets__/package-og.svg +1 -1
- package/dist/index.d.mts +36 -28
- package/dist/index.d.ts +36 -28
- package/dist/index.mjs +1 -2
- package/dist/packem_shared/createSeedClient-DhUqTKW6.mjs +1 -0
- package/dist/packem_shared/plan-DDkqfb3s.mjs +1 -0
- package/dist/packem_shared/plan.d-CDkBhI-1.d.mts +88 -0
- package/dist/packem_shared/plan.d-CDkBhI-1.d.ts +88 -0
- package/dist/packem_shared/seedPlan-DM1i_Ugp.mjs +1 -0
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.mjs +1 -53
- package/package.json +7 -5
- package/dist/packem_shared/createSeedClient-CI9LRLTi.mjs +0 -92
- package/dist/packem_shared/plan-DirmkctQ.mjs +0 -497
- package/dist/packem_shared/plan.d-BQ6LiWIk.d.mts +0 -78
- package/dist/packem_shared/plan.d-BQ6LiWIk.d.ts +0 -78
- package/dist/packem_shared/seedPlan-CDSmSgjY.mjs +0 -1
package/LICENSE.md
CHANGED
|
@@ -103,3 +103,9 @@ Unless required by applicable law or agreed to in writing, software distributed
|
|
|
103
103
|
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
104
104
|
CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
105
105
|
specific language governing permissions and limitations under the License.
|
|
106
|
+
|
|
107
|
+
<!-- DEPENDENCIES -->
|
|
108
|
+
<!-- /DEPENDENCIES -->
|
|
109
|
+
|
|
110
|
+
<!-- TYPE_DEPENDENCIES -->
|
|
111
|
+
<!-- /TYPE_DEPENDENCIES -->
|
package/README.md
CHANGED
|
@@ -36,7 +36,9 @@
|
|
|
36
36
|
|
|
37
37
|
`@lunora/seed` populates a Lunora database with realistic, production-like fake data derived from your `defineSchema`. It introspects every table, maps each field to a generator (field-name aware — a `string` column called `email` becomes an email address, `firstName` a first name, and so on), resolves foreign keys by inserting parent tables before their children, and lets you override any value.
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
Generated addresses always sit on the RFC 2606 reserved domain `example.com`, which accepts no mail — a seeded row can never turn into real email to a real stranger when a welcome job, a digest or an auth verification runs over it. Override the column when you need a domain of your own.
|
|
40
|
+
|
|
41
|
+
Generation is **deterministic**: it is built on a vendored, input-hashed generator (a rebuilt [`copycat`](https://github.com/supabase-community/copycat)) layered over [`@faker-js/faker`](https://fakerjs.dev). Generation is deterministic in `seed` alone for every column except the time-valued ones: a `number` column named like a timestamp (`createdAt`, `expiresAt`, …) is generated relative to the wall clock, so two runs with the same `seed` differ unless you also pin `now` (`--now` on the CLI). Ids are unaffected. Pin the `(seed, now)` pair and a plan is byte-identical across runs and machines.
|
|
40
42
|
|
|
41
43
|
Part of the [Lunora](https://github.com/anolilab/lunora) framework — a type-safe, real-time backend on Cloudflare Workers + Durable Objects with a Vite-first DX.
|
|
42
44
|
|
|
@@ -121,7 +123,7 @@ Supply a `persist` hook (`SeedClientOptions.persist`) to write each batch as it
|
|
|
121
123
|
```bash
|
|
122
124
|
lunora seed --count 25 # 25 rows per table (default 10)
|
|
123
125
|
lunora seed --table posts --count 100 # one table (FK parents seeded automatically)
|
|
124
|
-
lunora seed --seed 42
|
|
126
|
+
lunora seed --seed 42 --now 1750000000000 # byte-identical run (pin both)
|
|
125
127
|
lunora seed --reset # wipe local .wrangler/state first (local dev only)
|
|
126
128
|
lunora seed --dry-run # print NDJSON, write nothing
|
|
127
129
|
```
|
|
@@ -130,7 +132,7 @@ Also: `--batch-size` (rows per HTTP request, default 500), `--url` (worker URL,
|
|
|
130
132
|
|
|
131
133
|
## Limitations
|
|
132
134
|
|
|
133
|
-
- **`.unique()` columns are
|
|
135
|
+
- **`.unique()` columns are dealt distinct values by construction.** Each value is a function of the row's absolute index, not a hash of the row, so two rows in the same run never collide — including across the several calls `indexOffset` exists to support. A column whose domain is too small to cover the requested count (a boolean, a three-literal `v.union()`) is refused at plan time, with the column named, before anything is inserted.
|
|
134
136
|
- **Seeding is deterministic by design.** Re-running with the same `--seed` regenerates identical `_id`s, which the import path skips as conflicts. Use a different `--seed` for fresh rows, or `--reset` to wipe local state first.
|
|
135
137
|
|
|
136
138
|
> This README covers the basics. For the full API, options, and guides, see the **[documentation](https://lunora.sh/docs/packages/seed)**.
|