@supatype/types 0.1.0-alpha.9

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.
@@ -0,0 +1,4 @@
1
+
2
+ > @supatype/types@0.1.0-alpha.9 build /home/runner/work/supatype/supatype/packages/types
3
+ > tsc --project tsconfig.json
4
+
@@ -0,0 +1,16 @@
1
+
2
+ > @supatype/types@0.1.0-alpha.9 test /home/runner/work/supatype/supatype/packages/types
3
+ > vitest run
4
+
5
+
6
+  RUN  v4.0.18 /home/runner/work/supatype/supatype/packages/types
7
+
8
+ ✓ tests/primitives.test.js (3 tests) 6ms
9
+ ✓ tests/optional-model-spread.test.ts (5 tests) 15ms
10
+ ✓ tests/primitives.test.ts (15 tests) 19ms
11
+
12
+  Test Files  3 passed (3)
13
+  Tests  23 passed (23)
14
+  Start at  15:41:44
15
+  Duration  692ms (transform 165ms, setup 0ms, import 266ms, tests 40ms, environment 1ms)
16
+
@@ -0,0 +1,4 @@
1
+
2
+ > @supatype/types@0.1.0-alpha.9 typecheck /home/runner/work/supatype/supatype/packages/types
3
+ > tsc --project tsconfig.json --noEmit
4
+
@@ -0,0 +1,380 @@
1
+ import type { SerializedEditorState } from "./lexical.js";
2
+ declare const SUPATYPE_TYPE: unique symbol;
3
+ declare const SUPATYPE_MODEL: unique symbol;
4
+ type Brand<TShape, TTag extends string> = TShape & {
5
+ readonly [SUPATYPE_TYPE]?: {
6
+ readonly tag: TTag;
7
+ };
8
+ };
9
+ type Primitive<TName extends string, TShape> = Brand<TShape, `primitive:${TName}`>;
10
+ type Modifier<TName extends string, TInner> = Brand<TInner, `modifier:${TName}`>;
11
+ type Relation<TName extends string, TInner> = Brand<TInner, `relation:${TName}`>;
12
+ type Access<TName extends string, TShape = {
13
+ readonly kind: TName;
14
+ }> = Brand<TShape, `access:${TName}`>;
15
+ export type UUID = Primitive<"UUID", string>;
16
+ export type Email = Primitive<"Email", string>;
17
+ export type URL = Primitive<"URL", string>;
18
+ /**
19
+ * URL-safe slug stored as text. Optional type argument names the source field used
20
+ * for auto-generation (DB trigger + Studio). Defaults to `"title"`.
21
+ */
22
+ export type Slug<TSource extends string = "title"> = Primitive<`Slug:${TSource}`, string>;
23
+ export type PhoneNumber = Primitive<"PhoneNumber", string>;
24
+ export type Markdown = Primitive<"Markdown", string>;
25
+ export type Color = Primitive<"Color", string>;
26
+ export type Int = Primitive<"Int", number>;
27
+ export type SmallInt = Primitive<"SmallInt", number>;
28
+ export type BigInt = Primitive<"BigInt", bigint>;
29
+ export type Float = Primitive<"Float", number>;
30
+ export type Decimal<P extends number, S extends number> = Primitive<`Decimal:${P}:${S}`, string>;
31
+ export type Money = Primitive<"Money", string>;
32
+ export type Vector<N extends number> = Primitive<`Vector:${N}`, number[]>;
33
+ export type JSON<T> = Primitive<"JSON", T>;
34
+ export type IPAddress = Primitive<"IPAddress", string>;
35
+ export type CIDR = Primitive<"CIDR", string>;
36
+ export type MacAddress = Primitive<"MacAddress", string>;
37
+ export type Bytea = Primitive<"Bytea", string>;
38
+ export type XML = Primitive<"XML", string>;
39
+ export type TSQuery = Primitive<"TSQuery", string>;
40
+ export type TSVector = Primitive<"TSVector", string>;
41
+ export type DateOnly = Primitive<"DateOnly", Date>;
42
+ export type DateTime = Primitive<"DateTime", Date>;
43
+ export type Timestamp = Primitive<"Timestamp", Date>;
44
+ export type Geo = Primitive<"Geo", {
45
+ type: "point" | "polygon" | "linestring";
46
+ coordinates: unknown;
47
+ }>;
48
+ export type Code<Lang extends string = string> = Primitive<"Code", {
49
+ lang: Lang;
50
+ source: string;
51
+ }>;
52
+ export type Duration = Primitive<"Duration", {
53
+ ms: number;
54
+ }>;
55
+ export type GeoPoint = Primitive<"GeoPoint", {
56
+ lat: number;
57
+ lng: number;
58
+ }>;
59
+ export type Currency<Code extends string = string> = Primitive<"Currency", {
60
+ amount: bigint;
61
+ code: Code;
62
+ }>;
63
+ /** Link target for {@link Button}. */
64
+ export type ButtonTarget = "_self" | "_blank";
65
+ /** CMS button / CTA — label, href, optional aria-label and target (stored as JSONB). */
66
+ export type ButtonValue = {
67
+ label: string;
68
+ href: string;
69
+ ariaLabel?: string;
70
+ target?: ButtonTarget;
71
+ };
72
+ export type Button = Primitive<"Button", ButtonValue>;
73
+ /**
74
+ * Lexical JSON in DB/UI.
75
+ * **`string`** is allowed in TS for defaults, seeds, and incremental adoption (plain text or Lexical JSON string — not HTML).
76
+ *
77
+ * Schema defaults:
78
+ * - `RichText<"Your sentence">` — plain-text default (sugar)
79
+ * - `Default<RichText, "Your sentence">` — same, composes with modifiers
80
+ * - Lexical document: pass a JSON string literal or use `Default<RichText, '{"root":…}'>`
81
+ */
82
+ export type RichText<D extends string = never> = Primitive<D extends never ? "RichText" : `RichText:${D}`, SerializedEditorState | string>;
83
+ /** Visibility / S3 coupling for a storage bucket (`storage.buckets` + optional `PutBucketPolicy`). */
84
+ export type BucketAccessMode = "public" | "private" | "custom";
85
+ export type BucketPublic = Access<"BucketPublic">;
86
+ export type BucketPrivate = Access<"BucketPrivate">;
87
+ export type BucketLoggedIn = Access<"BucketLoggedIn">;
88
+ export type BucketOwner = Access<"BucketOwner">;
89
+ export type BucketRole<R extends string = string> = Access<"BucketRole", {
90
+ readonly kind: "BucketRole";
91
+ readonly role: R;
92
+ }>;
93
+ /**
94
+ * Storage RLS subset: same primitives as {@link ModelMeta.access} (`read`, `create`, …) but typically
95
+ * only `read` / `create` / `delete` are used for `storage.objects` policies when set on the bucket.
96
+ */
97
+ export type BucketStorageAccess = {
98
+ read?: BucketPublic | BucketPrivate | BucketLoggedIn | BucketOwner | BucketRole<string>;
99
+ create?: BucketPublic | BucketPrivate | BucketLoggedIn | BucketOwner | BucketRole<string>;
100
+ delete?: BucketPublic | BucketPrivate | BucketLoggedIn | BucketOwner | BucketRole<string>;
101
+ };
102
+ /**
103
+ * Second generic on {@link Bucket}. Parsed by `@supatype/cli` into `storage.buckets` rows and optional
104
+ * bucket-scoped storage RLS. String sizes (`maxSize`) use CLI parsing (e.g. `"50MB"`).
105
+ */
106
+ export type BucketConfig<_TAccess extends BucketAccessMode | undefined = undefined, _TMax extends string | undefined = undefined> = {
107
+ accessMode?: BucketAccessMode;
108
+ maxSize?: string;
109
+ accept?: readonly string[];
110
+ /** When set with `access`, drives `storage.objects` RLS for this bucket instead of model `access`. */
111
+ access?: BucketStorageAccess;
112
+ /** Raw AWS S3 / MinIO bucket policy JSON string; when set, overrides the default policy for public/custom flows. */
113
+ s3BucketPolicy?: string;
114
+ };
115
+ /**
116
+ * Names a logical storage bucket. Export `type AvatarBucket = Bucket<"avatars", { … }>` and pass
117
+ * {@link ImageAsset}<AvatarBucket> / {@link FileAsset}<AvatarBucket> on models.
118
+ *
119
+ * Config is erased at runtime — only `@supatype/cli` reads it via the TypeScript type checker shape.
120
+ */
121
+ export type Bucket<TName extends string = string, TConfig extends BucketConfig | Record<string, unknown> = BucketConfig> = Primitive<`Bucket:${TName}`, {
122
+ name: TName;
123
+ config?: TConfig;
124
+ }>;
125
+ export type Asset<TBucket extends Bucket = Bucket> = Primitive<"Asset", {
126
+ bucket: TBucket;
127
+ path: string;
128
+ mimeType?: string;
129
+ size?: number;
130
+ }>;
131
+ /** Second generic on {@link ImageAsset} / {@link FileAsset} — parsed by CLI only. */
132
+ export type AssetFieldOptions = {
133
+ /** When true, stored as JSONB locale map of storage refs. Default false. */
134
+ localized?: boolean;
135
+ };
136
+ export type ImageAsset<TBucket extends Bucket = Bucket, TOptions extends AssetFieldOptions = {}> = Primitive<"ImageAsset", Asset<TBucket> & {
137
+ width?: number;
138
+ height?: number;
139
+ config?: TOptions;
140
+ }>;
141
+ export type FileAsset<TBucket extends Bucket = Bucket, TOptions extends AssetFieldOptions = {}> = Primitive<"FileAsset", Asset<TBucket> & {
142
+ config?: TOptions;
143
+ }>;
144
+ export type LocaleConfig<TLocales extends readonly string[] = readonly string[], TDefault extends TLocales[number] = TLocales[number]> = Primitive<"LocaleConfig", {
145
+ locales: TLocales;
146
+ defaultLocale: TDefault;
147
+ }>;
148
+ /**
149
+ * Translatable field — stored as JSONB with locale keys in Postgres,
150
+ * e.g. `{ "en": "Hello", "de": "Hallo" }`. Configure locales with {@link LocaleConfig}.
151
+ *
152
+ * Use `Optional<Localized<string>>` when the field may be null.
153
+ */
154
+ export type Localized<T> = Modifier<"Localized", Record<string, T>>;
155
+ /** Opt out of {@link LocalizedModel} auto-localization for a copy-like field. */
156
+ export type NotLocalized<T> = Modifier<"NotLocalized", T>;
157
+ export type Block<TName extends string = string, TFields extends Record<string, unknown> = Record<string, unknown>, TMeta extends {
158
+ label?: string;
159
+ icon?: string;
160
+ } = {}> = Primitive<`Block:${TName}`, {
161
+ type: TName;
162
+ meta?: TMeta;
163
+ } & TFields>;
164
+ export type Blocks<TBlock extends Block = Block> = Primitive<"Blocks", TBlock[]>;
165
+ /**
166
+ * Nullable column (`T | null` in Postgres). **`Model`** flattens this to an optional property
167
+ * **`key?: T | null`** on the inferred row shape so literals and seeds omit `coverImage`-style keys
168
+ * without casts.
169
+ */
170
+ export type Optional<T> = Modifier<"Optional", T | null>;
171
+ export type Unique<T> = Modifier<"Unique", T>;
172
+ export type Indexed<T> = Modifier<"Indexed", T>;
173
+ export type Searchable<T> = Modifier<"Searchable", T>;
174
+ export type EditorReadOnly<T> = Modifier<"EditorReadOnly", T>;
175
+ /**
176
+ * DB / trigger maintained only: Studio treats as read-only + server-generated on insert.
177
+ * There is **no** live preview or “follow title until edited” UX — declare dependencies with
178
+ * {@link ComputedFrom} instead if you want slug-like preview in Studio.
179
+ */
180
+ export type Computed<T> = Modifier<"Computed", T>;
181
+ /**
182
+ * Plain-text column with Studio preview built from `sources` until the author edits the field
183
+ * on create (same UX as {@link Slug}). Database column is ordinary TEXT; optional overrides are persisted.
184
+ *
185
+ * Use `Optional<ComputedFrom<…>>` when the field may be null.
186
+ *
187
+ * **Second type argument — three shapes:**
188
+ * - **One field** (concat preview): `ComputedFrom<string, "title">`
189
+ * - **Several fields** (join with spaces, then truncate): `ComputedFrom<string, readonly ["title", "subtitle"]>`
190
+ * - **Template string** (placeholders + optional `truncate`): a string literal containing `{fieldName}` and/or
191
+ * `{truncate(fieldName, maxChars)}`. Dependencies are inferred for validation and Studio.
192
+ *
193
+ * Template examples (single string literal type; use real `\n` in the string when you want a newline):
194
+ * - `ComputedFrom<string, "Author: {authorProfile} | {created_at}">`
195
+ * - `ComputedFrom<string, "{truncate(body, 100)}">`
196
+ * - `ComputedFrom<string, "Author: {authorProfile} | Date: {created_at}\n{truncate(body, 100)}">`
197
+ */
198
+ export type ComputedFrom<TValue, TSources extends string | readonly string[] = "title"> = Modifier<"ComputedFrom", TValue>;
199
+ export type PrimaryKey<T> = Modifier<"PrimaryKey", T>;
200
+ export type AutoIncrement<T extends number | bigint> = Modifier<"AutoIncrement", T>;
201
+ /**
202
+ * Column value is assigned by the database (trigger, `DEFAULT`, sequence, etc.).
203
+ * Inserts may omit this field; generated client `Insert` types mark it optional.
204
+ */
205
+ export type ServerDefault<T> = Modifier<"ServerDefault", T>;
206
+ export type Default<T, V> = Modifier<`Default:${Extract<V, string | number | boolean | bigint | null>}`, T>;
207
+ export type MaxLength<T, N extends number> = Modifier<`MaxLength:${N}`, T>;
208
+ export type MinLength<T, N extends number> = Modifier<`MinLength:${N}`, T>;
209
+ export type Between<T, Min extends number, Max extends number> = Modifier<`Between:${Min}:${Max}`, T>;
210
+ /**
211
+ * Built-in audit pair: expands to columns with DB `DEFAULT NOW()` and Studio prefill on create.
212
+ *
213
+ * Equivalent manual fields: naming columns `created_at` / `updated_at` plus `Timestamp` / `ServerDefault<DateTime>`
214
+ * wires the same defaults in the extractor; you don’t need this mixin unless you prefer the shorthand.
215
+ *
216
+ * Arbitrary timestamps use `ServerDefault<DateTime>` (or `@default`/`Expression` via engine fixtures) —
217
+ * those are configurable; only the **names** above get the convention treatment without extra wrappers.
218
+ */
219
+ export type Timestamps = {
220
+ created_at: ServerDefault<Date>;
221
+ updated_at: ServerDefault<Date>;
222
+ };
223
+ export type SoftDelete = {
224
+ deleted_at: Optional<Date>;
225
+ };
226
+ export type Publishable = {
227
+ published_at: Optional<Date>;
228
+ };
229
+ export type WithTimestamps<T extends Record<string, unknown>> = T & Timestamps;
230
+ export type WithSoftDelete<T extends Record<string, unknown>> = T & SoftDelete;
231
+ export type WithPublishable<T extends Record<string, unknown>> = T & Publishable;
232
+ export type OnDelete = "cascade" | "setNull" | "restrict" | "noAction";
233
+ export type RelationOptions = {
234
+ required?: boolean;
235
+ onDelete?: OnDelete;
236
+ inverse?: string;
237
+ };
238
+ export type RelatedTo<T, TOptions extends RelationOptions = {}> = Relation<"RelatedTo", T> & {
239
+ readonly __relationOptions?: TOptions;
240
+ readonly __relationKind: "relatedTo";
241
+ };
242
+ export type HasMany<T, TOptions extends RelationOptions = {}> = Relation<"HasMany", T[]> & {
243
+ readonly __relationOptions?: TOptions;
244
+ readonly __relationKind: "hasMany";
245
+ };
246
+ export type HasOne<T, TOptions extends RelationOptions = {}> = Relation<"HasOne", T | null> & {
247
+ readonly __relationOptions?: TOptions;
248
+ readonly __relationKind: "hasOne";
249
+ };
250
+ export type ManyToMany<T, TOptions extends RelationOptions = {}> = Relation<"ManyToMany", T[]> & {
251
+ readonly __relationOptions?: TOptions;
252
+ readonly __relationKind: "manyToMany";
253
+ };
254
+ export type Public = Access<"Public">;
255
+ export type Private = Access<"Private">;
256
+ export type LoggedIn = Access<"LoggedIn">;
257
+ export type SupatypeAuthUser = Primitive<"SupatypeAuthUser", {
258
+ readonly system: "supatype:user";
259
+ }>;
260
+ export type SupatypeAuthUserId = Primitive<"SupatypeAuthUserId", string>;
261
+ type RelationFieldKeys<TFields extends Record<string, unknown>> = Extract<{
262
+ [K in keyof TFields]-?: K extends string ? TFields[K] extends {
263
+ readonly __relationKind: "relatedTo";
264
+ } ? K : never : never;
265
+ }[keyof TFields], string>;
266
+ type RelationOwnerKeys<TFields extends Record<string, unknown>> = Extract<{
267
+ [K in keyof TFields]-?: K extends string ? TFields[K] extends {
268
+ readonly __relationKind: "relatedTo";
269
+ } ? `${K}_id` : never : never;
270
+ }[keyof TFields], string>;
271
+ type SelfOwnerKey<TFields extends Record<string, unknown>> = "id" extends keyof TFields ? TFields["id"] extends SupatypeAuthUserId ? "id" : never : never;
272
+ type OwnerEligibleFieldKeys<TFields extends Record<string, unknown>> = RelationOwnerKeys<TFields> | SelfOwnerKey<TFields>;
273
+ type ModelRelationFieldKeys<TModel> = TModel extends {
274
+ readonly [SUPATYPE_MODEL]?: {
275
+ readonly fields: infer TFields;
276
+ };
277
+ } ? TFields extends Record<string, unknown> ? OwnerEligibleFieldKeys<TFields> : never : never;
278
+ type AnySupatypeModel = {
279
+ readonly [SUPATYPE_MODEL]?: {
280
+ readonly fields: Record<string, unknown>;
281
+ readonly meta: unknown;
282
+ };
283
+ };
284
+ /**
285
+ * Ownership access rule.
286
+ *
287
+ * Backward-compatible form:
288
+ * Owner<"author_id">
289
+ *
290
+ * Typed model form (preferred, autocomplete + validation):
291
+ * Owner<Post, "author_id">
292
+ */
293
+ export type Owner<TModelOrKey extends string | AnySupatypeModel, TKey extends TModelOrKey extends string ? string : ModelRelationFieldKeys<TModelOrKey> = TModelOrKey extends string ? TModelOrKey : never> = Access<"Owner", {
294
+ readonly kind: "Owner";
295
+ readonly key: TKey;
296
+ readonly __ownerModel?: TModelOrKey extends string ? never : TModelOrKey;
297
+ }>;
298
+ export type OwnerKey<TModel extends AnySupatypeModel> = ModelRelationFieldKeys<TModel>;
299
+ export type OwnerOf<TModel extends AnySupatypeModel, TKey extends OwnerKey<TModel>> = Owner<TModel, TKey>;
300
+ export type OwnerFrom<TRelationField extends string> = Access<"OwnerFrom", {
301
+ readonly kind: "OwnerFrom";
302
+ readonly relation: TRelationField;
303
+ }>;
304
+ export type Role<R extends string = string> = Access<"Role", {
305
+ readonly kind: "Role";
306
+ readonly role: R;
307
+ }>;
308
+ type BoundOwnerForFields<TFields extends Record<string, unknown>> = Access<"Owner", {
309
+ readonly kind: "Owner";
310
+ readonly key: OwnerEligibleFieldKeys<TFields>;
311
+ readonly __ownerModel?: Model<TFields, any>;
312
+ }>;
313
+ type BoundOwnerFromForFields<TFields extends Record<string, unknown>> = Access<"OwnerFrom", {
314
+ readonly kind: "OwnerFrom";
315
+ readonly relation: RelationFieldKeys<TFields>;
316
+ }>;
317
+ /** `Optional<…>` wraps `Modifier<"Optional", …>` (detect structurally — do not inspect `[SUPATYPE_TYPE]`; primitives under `Optional` add their own tags and tag intersections are unreliable). */
318
+ type IsModifierOptional<V> = [V] extends [Modifier<"Optional", infer _>] ? true : false;
319
+ type InferOptionalInner<V> = V extends Modifier<"Optional", infer Inner> ? Inner : never;
320
+ type IsModifierLocalized<V> = [V] extends [Modifier<"Localized", infer _>] ? true : false;
321
+ type InferLocalizedInner<V> = V extends Modifier<"Localized", infer Inner> ? Inner : never;
322
+ type IsModifierNotLocalized<V> = [V] extends [Modifier<"NotLocalized", infer _>] ? true : false;
323
+ type InferNotLocalizedInner<V> = V extends Modifier<"NotLocalized", infer Inner> ? Inner : never;
324
+ type ImageAssetLocalizedOption<V> = V extends ImageAsset<infer _B, infer O> ? (O extends {
325
+ localized: true;
326
+ } ? true : false) : false;
327
+ type FileAssetLocalizedOption<V> = V extends FileAsset<infer _B, infer O> ? (O extends {
328
+ localized: true;
329
+ } ? true : false) : false;
330
+ /** Apply default localization to copy-like fields (used by {@link LocalizedModel}). */
331
+ type ApplyAutoLocalizedField<V> = IsModifierOptional<V> extends true ? Optional<ApplyAutoLocalizedField<InferOptionalInner<V>>> : IsModifierNotLocalized<V> extends true ? InferNotLocalizedInner<V> : IsModifierLocalized<V> extends true ? V : V extends string ? Localized<string> : V extends RichText ? Localized<RichText> : V extends Markdown ? Localized<Markdown> : V extends Button ? Localized<Button> : ImageAssetLocalizedOption<V> extends true ? Localized<V> : FileAssetLocalizedOption<V> extends true ? Localized<V> : V;
332
+ type ApplyAutoLocalizedFields<TFields extends Record<string, unknown>> = {
333
+ [K in keyof TFields]: ApplyAutoLocalizedField<TFields[K]>;
334
+ };
335
+ /** Strip `Optional` / `Localized` / `NotLocalized` wrappers for inferred row shapes. */
336
+ type UnwrapModelFieldType<V> = IsModifierOptional<V> extends true ? UnwrapModelFieldType<InferOptionalInner<V>> : IsModifierNotLocalized<V> extends true ? UnwrapModelFieldType<InferNotLocalizedInner<V>> : IsModifierLocalized<V> extends true ? InferLocalizedInner<V> : V;
337
+ /** Row shape from `TFields`: `Optional<…>` → `key?: Inner` (`Inner` includes `null`). */
338
+ export type SpreadOptionalModelFields<TFields extends Record<string, unknown>> = keyof TFields extends never ? {} : {
339
+ [K in keyof TFields as IsModifierOptional<TFields[K]> extends true ? never : K]: UnwrapModelFieldType<TFields[K]>;
340
+ } & {
341
+ [K in keyof TFields as IsModifierOptional<TFields[K]> extends true ? K extends keyof TFields & (string | number) ? K : never : never]?: UnwrapModelFieldType<TFields[K]>;
342
+ };
343
+ export type ModelMeta<TFields extends Record<string, unknown>> = {
344
+ access?: {
345
+ read?: Public | Private | LoggedIn | Owner<OwnerEligibleFieldKeys<TFields>> | OwnerFrom<RelationFieldKeys<TFields>> | BoundOwnerForFields<TFields> | BoundOwnerFromForFields<TFields> | Role<string>;
346
+ create?: Public | Private | LoggedIn | Owner<OwnerEligibleFieldKeys<TFields>> | OwnerFrom<RelationFieldKeys<TFields>> | BoundOwnerForFields<TFields> | BoundOwnerFromForFields<TFields> | Role<string>;
347
+ update?: Public | Private | LoggedIn | Owner<OwnerEligibleFieldKeys<TFields>> | OwnerFrom<RelationFieldKeys<TFields>> | BoundOwnerForFields<TFields> | BoundOwnerFromForFields<TFields> | Role<string>;
348
+ delete?: Public | Private | LoggedIn | Owner<OwnerEligibleFieldKeys<TFields>> | OwnerFrom<RelationFieldKeys<TFields>> | BoundOwnerForFields<TFields> | BoundOwnerFromForFields<TFields> | Role<string>;
349
+ };
350
+ tableName?: string;
351
+ searchable?: readonly string[];
352
+ /** Exactly one row — Studio Globals, singleton partial unique index in Postgres. */
353
+ singleton?: true;
354
+ /** When omitted, the CLI infers from `WithTimestamps` or `created_at` / `updated_at` fields. */
355
+ timestamps?: boolean;
356
+ /** When omitted, the CLI infers from `WithSoftDelete` or `deleted_at`. */
357
+ softDelete?: boolean;
358
+ /** When true, copy-like fields default to localized (same as {@link LocalizedModel}). */
359
+ autoLocalize?: true;
360
+ };
361
+ /** Shorthand for singleton globals — `Model<Fields, GlobalMeta<Fields>>`. */
362
+ export type GlobalMeta<TFields extends Record<string, unknown>> = ModelMeta<TFields> & {
363
+ singleton: true;
364
+ };
365
+ export type LocalizedModelMeta<TFields extends Record<string, unknown>> = ModelMeta<ApplyAutoLocalizedFields<TFields>> & {
366
+ autoLocalize?: true;
367
+ };
368
+ export type Model<TFields extends Record<string, unknown>, TMeta extends ModelMeta<TFields> = {}> = SpreadOptionalModelFields<TFields> & {
369
+ readonly [SUPATYPE_MODEL]?: {
370
+ readonly fields: TFields;
371
+ readonly meta: TMeta;
372
+ };
373
+ };
374
+ /**
375
+ * CMS-oriented model: plain `string` / `RichText` fields become localized automatically.
376
+ * Use {@link NotLocalized} to opt out; {@link ImageAsset}<Bucket, { localized: true }> to opt in for images.
377
+ */
378
+ export type LocalizedModel<TFields extends Record<string, unknown>, TMeta extends LocalizedModelMeta<TFields> = {}> = Model<ApplyAutoLocalizedFields<TFields>, TMeta>;
379
+ export {};
380
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export interface SerializedLexicalNode {
2
+ type: string;
3
+ version: number;
4
+ children?: SerializedLexicalNode[];
5
+ [key: string]: unknown;
6
+ }
7
+ export interface SerializedEditorState {
8
+ root: SerializedLexicalNode;
9
+ }
10
+ //# sourceMappingURL=lexical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexical.d.ts","sourceRoot":"","sources":["../src/lexical.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAA;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,qBAAqB,CAAA;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lexical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexical.js","sourceRoot":"","sources":["../src/lexical.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@supatype/types",
3
+ "version": "0.1.0-alpha.9",
4
+ "description": "Pure type primitives for Supatype RFC v2",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./lexical": {
16
+ "import": "./dist/lexical.js",
17
+ "default": "./dist/lexical.js",
18
+ "types": "./dist/lexical.d.ts"
19
+ }
20
+ },
21
+ "devDependencies": {
22
+ "typescript": "^5",
23
+ "vitest": "^4.0.18"
24
+ },
25
+ "scripts": {
26
+ "build": "tsc --project tsconfig.json",
27
+ "dev": "tsc --project tsconfig.json --watch",
28
+ "typecheck": "tsc --project tsconfig.json --noEmit",
29
+ "test": "vitest run",
30
+ "clean": "rm -rf dist *.tsbuildinfo"
31
+ }
32
+ }