@formspec/core 0.1.0-alpha.2 → 0.1.0-alpha.21

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 (49) hide show
  1. package/README.md +85 -0
  2. package/dist/__tests__/constraint-definitions.test.d.ts +2 -0
  3. package/dist/__tests__/constraint-definitions.test.d.ts.map +1 -0
  4. package/dist/__tests__/guards.test.d.ts +2 -0
  5. package/dist/__tests__/guards.test.d.ts.map +1 -0
  6. package/dist/core.d.ts +1459 -0
  7. package/dist/extensions/index.d.ts +252 -0
  8. package/dist/extensions/index.d.ts.map +1 -0
  9. package/dist/guards.d.ts +73 -0
  10. package/dist/guards.d.ts.map +1 -0
  11. package/dist/index.cjs +159 -0
  12. package/dist/index.cjs.map +1 -0
  13. package/dist/index.d.ts +6 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +111 -12
  16. package/dist/index.js.map +1 -1
  17. package/dist/types/constraint-definitions.d.ts +64 -0
  18. package/dist/types/constraint-definitions.d.ts.map +1 -0
  19. package/dist/types/data-source.d.ts +8 -0
  20. package/dist/types/data-source.d.ts.map +1 -1
  21. package/dist/types/elements.d.ts +40 -0
  22. package/dist/types/elements.d.ts.map +1 -1
  23. package/dist/types/field-state.d.ts +4 -0
  24. package/dist/types/field-state.d.ts.map +1 -1
  25. package/dist/types/form-state.d.ts +2 -0
  26. package/dist/types/form-state.d.ts.map +1 -1
  27. package/dist/types/index.d.ts +4 -0
  28. package/dist/types/index.d.ts.map +1 -1
  29. package/dist/types/ir.d.ts +578 -0
  30. package/dist/types/ir.d.ts.map +1 -0
  31. package/dist/types/predicate.d.ts +4 -0
  32. package/dist/types/predicate.d.ts.map +1 -1
  33. package/dist/types/validity.d.ts +2 -0
  34. package/dist/types/validity.d.ts.map +1 -1
  35. package/package.json +17 -5
  36. package/dist/types/data-source.js +0 -2
  37. package/dist/types/data-source.js.map +0 -1
  38. package/dist/types/elements.js +0 -8
  39. package/dist/types/elements.js.map +0 -1
  40. package/dist/types/field-state.js +0 -17
  41. package/dist/types/field-state.js.map +0 -1
  42. package/dist/types/form-state.js +0 -2
  43. package/dist/types/form-state.js.map +0 -1
  44. package/dist/types/index.js +0 -3
  45. package/dist/types/index.js.map +0 -1
  46. package/dist/types/predicate.js +0 -7
  47. package/dist/types/predicate.js.map +0 -1
  48. package/dist/types/validity.js +0 -2
  49. package/dist/types/validity.js.map +0 -1
@@ -0,0 +1,578 @@
1
+ /**
2
+ * Canonical Intermediate Representation (IR) types for FormSpec.
3
+ *
4
+ * The IR is the shared intermediate structure that both authoring surfaces
5
+ * (chain DSL and TSDoc-annotated types) compile to. All downstream operations
6
+ * — JSON Schema generation, UI Schema generation, constraint validation,
7
+ * diagnostics — consume the IR exclusively.
8
+ *
9
+ * All types are plain, serializable objects (no live compiler references).
10
+ *
11
+ * @see {@link https://github.com/stripe/formspec-workspace/blob/main/scratch/design/001-canonical-ir.md}
12
+ */
13
+ /**
14
+ * The current IR format version. Centralized here so all canonicalizers
15
+ * and consumers reference a single source of truth.
16
+ *
17
+ * @public
18
+ */
19
+ export declare const IR_VERSION: "0.1.0";
20
+ /**
21
+ * A JSON-serializable value. All IR nodes must be representable as JSON.
22
+ *
23
+ * @public
24
+ */
25
+ export type JsonValue = null | boolean | number | string | readonly JsonValue[] | {
26
+ readonly [key: string]: JsonValue;
27
+ };
28
+ /**
29
+ * Describes the origin of an IR node.
30
+ * Enables diagnostics that point to the source of a contradiction or error.
31
+ *
32
+ * @public
33
+ */
34
+ export interface Provenance {
35
+ /** The authoring surface that produced this node. */
36
+ readonly surface: "tsdoc" | "chain-dsl" | "extension" | "inferred";
37
+ /** Absolute path to the source file. */
38
+ readonly file: string;
39
+ /** 1-based line number in the source file. */
40
+ readonly line: number;
41
+ /** 0-based column number in the source file. */
42
+ readonly column: number;
43
+ /** Length of the source span in characters (for IDE underline ranges). */
44
+ readonly length?: number;
45
+ /**
46
+ * The specific tag, call, or construct that produced this node.
47
+ * Examples: `@minimum`, `field.number({ min: 0 })`, `optional`
48
+ */
49
+ readonly tagName?: string;
50
+ }
51
+ /**
52
+ * A path targeting a sub-field within a complex type.
53
+ * Used by constraints and annotations to target nested properties.
54
+ *
55
+ * @public
56
+ */
57
+ export interface PathTarget {
58
+ /**
59
+ * Sequence of property names forming a path from the annotated field's type
60
+ * to the target sub-field.
61
+ * e.g., `["value"]` or `["address", "zip"]`
62
+ */
63
+ readonly segments: readonly string[];
64
+ }
65
+ /**
66
+ * Discriminated union of all type representations in the IR.
67
+ *
68
+ * @public
69
+ */
70
+ export type TypeNode = PrimitiveTypeNode | EnumTypeNode | ArrayTypeNode | ObjectTypeNode | RecordTypeNode | UnionTypeNode | ReferenceTypeNode | DynamicTypeNode | CustomTypeNode;
71
+ /**
72
+ * Primitive types mapping directly to JSON Schema primitives.
73
+ *
74
+ * Note: integer is NOT a primitive kind — integer semantics are expressed
75
+ * via a `multipleOf: 1` constraint on a number type.
76
+ *
77
+ * @public
78
+ */
79
+ export interface PrimitiveTypeNode {
80
+ readonly kind: "primitive";
81
+ readonly primitiveKind: "string" | "number" | "integer" | "bigint" | "boolean" | "null";
82
+ }
83
+ /**
84
+ * A member of a static enum type.
85
+ *
86
+ * @public
87
+ */
88
+ export interface EnumMember {
89
+ /** The serialized value stored in data. */
90
+ readonly value: string | number;
91
+ /** Optional per-member display name. */
92
+ readonly displayName?: string;
93
+ }
94
+ /**
95
+ * Static enum type with members known at build time.
96
+ *
97
+ * @public
98
+ */
99
+ export interface EnumTypeNode {
100
+ readonly kind: "enum";
101
+ readonly members: readonly EnumMember[];
102
+ }
103
+ /**
104
+ * Array type with a single items type.
105
+ *
106
+ * @public
107
+ */
108
+ export interface ArrayTypeNode {
109
+ readonly kind: "array";
110
+ readonly items: TypeNode;
111
+ }
112
+ /**
113
+ * A named property within an object type.
114
+ *
115
+ * @public
116
+ */
117
+ export interface ObjectProperty {
118
+ readonly name: string;
119
+ readonly type: TypeNode;
120
+ readonly optional: boolean;
121
+ /**
122
+ * Use-site constraints on this property.
123
+ * Distinct from constraints on the property's type — these are
124
+ * use-site constraints (e.g., `@minimum :amount 0` targets the
125
+ * `amount` property of a `MonetaryAmount` field).
126
+ */
127
+ readonly constraints: readonly ConstraintNode[];
128
+ /** Use-site annotations on this property. */
129
+ readonly annotations: readonly AnnotationNode[];
130
+ readonly provenance: Provenance;
131
+ }
132
+ /**
133
+ * Object type with named properties.
134
+ *
135
+ * @public
136
+ */
137
+ export interface ObjectTypeNode {
138
+ readonly kind: "object";
139
+ /**
140
+ * Named properties of this object. Order is preserved from the source
141
+ * declaration for deterministic output.
142
+ */
143
+ readonly properties: readonly ObjectProperty[];
144
+ /**
145
+ * Whether additional properties beyond those listed are permitted.
146
+ * Ordinary static object types default to true under the current spec.
147
+ * Explicitly closed-object modes may still set this to false.
148
+ */
149
+ readonly additionalProperties: boolean;
150
+ }
151
+ /**
152
+ * Record (dictionary) type — an object with a string index signature and no
153
+ * named properties. Corresponds to `Record<string, T>` or `{ [k: string]: T }`.
154
+ *
155
+ * Emitted as `{ "type": "object", "additionalProperties": <value schema> }` in
156
+ * JSON Schema per spec 003 §2.5.
157
+ *
158
+ * @public
159
+ */
160
+ export interface RecordTypeNode {
161
+ readonly kind: "record";
162
+ /** The type of each value in the dictionary. */
163
+ readonly valueType: TypeNode;
164
+ }
165
+ /**
166
+ * Union type for non-enum unions. Nullable types are represented as `T | null`.
167
+ *
168
+ * @public
169
+ */
170
+ export interface UnionTypeNode {
171
+ readonly kind: "union";
172
+ readonly members: readonly TypeNode[];
173
+ }
174
+ /**
175
+ * Named type reference preserved for `$defs` and `$ref` emission.
176
+ *
177
+ * @public
178
+ */
179
+ export interface ReferenceTypeNode {
180
+ readonly kind: "reference";
181
+ /**
182
+ * The fully-qualified name of the referenced type.
183
+ * For TypeScript interfaces/type aliases: `"<module>#<TypeName>"`.
184
+ * For built-in types: the primitive kind string.
185
+ */
186
+ readonly name: string;
187
+ /**
188
+ * Type arguments if this is a generic instantiation.
189
+ * e.g., `Array<string>` → `{ name: "Array", typeArguments: [PrimitiveTypeNode("string")] }`
190
+ */
191
+ readonly typeArguments: readonly TypeNode[];
192
+ }
193
+ /**
194
+ * Dynamic type whose schema is resolved at runtime from a named data source.
195
+ *
196
+ * @public
197
+ */
198
+ export interface DynamicTypeNode {
199
+ readonly kind: "dynamic";
200
+ readonly dynamicKind: "enum" | "schema";
201
+ /** Key identifying the runtime data source or schema provider. */
202
+ readonly sourceKey: string;
203
+ /**
204
+ * For dynamic enums: field names whose current values are passed as
205
+ * parameters to the data source resolver.
206
+ */
207
+ readonly parameterFields: readonly string[];
208
+ }
209
+ /**
210
+ * Custom type registered by an extension.
211
+ *
212
+ * @public
213
+ */
214
+ export interface CustomTypeNode {
215
+ readonly kind: "custom";
216
+ /**
217
+ * The extension-qualified type identifier.
218
+ * Format: `"<vendor-prefix>/<extension-name>/<type-name>"`
219
+ * e.g., `"x-stripe/monetary/MonetaryAmount"`
220
+ */
221
+ readonly typeId: string;
222
+ /**
223
+ * Opaque payload serialized by the extension that registered this type.
224
+ * Must be JSON-serializable.
225
+ */
226
+ readonly payload: JsonValue;
227
+ }
228
+ /**
229
+ * Discriminated union of all constraint types.
230
+ * Constraints are set-influencing: they narrow the set of valid values.
231
+ *
232
+ * @public
233
+ */
234
+ export type ConstraintNode = NumericConstraintNode | LengthConstraintNode | PatternConstraintNode | ArrayCardinalityConstraintNode | EnumMemberConstraintNode | ConstConstraintNode | CustomConstraintNode;
235
+ /**
236
+ * Numeric constraints: bounds and multipleOf.
237
+ *
238
+ * `minimum` and `maximum` are inclusive; `exclusiveMinimum` and
239
+ * `exclusiveMaximum` are exclusive bounds (matching JSON Schema 2020-12
240
+ * semantics).
241
+ *
242
+ * Type applicability: may only attach to fields with `PrimitiveTypeNode("number")`
243
+ * or a `ReferenceTypeNode` that resolves to one.
244
+ *
245
+ * @public
246
+ */
247
+ export interface NumericConstraintNode {
248
+ readonly kind: "constraint";
249
+ readonly constraintKind: "minimum" | "maximum" | "exclusiveMinimum" | "exclusiveMaximum" | "multipleOf";
250
+ readonly value: number;
251
+ /** If present, targets a nested sub-field rather than the field itself. */
252
+ readonly path?: PathTarget;
253
+ readonly provenance: Provenance;
254
+ }
255
+ /**
256
+ * String length and array item count constraints.
257
+ *
258
+ * `minLength`/`maxLength` apply to strings; `minItems`/`maxItems` apply to
259
+ * arrays. They share the same node shape because the composition rules are
260
+ * identical.
261
+ *
262
+ * Type applicability: `minLength`/`maxLength` require `PrimitiveTypeNode("string")`;
263
+ * `minItems`/`maxItems` require `ArrayTypeNode`.
264
+ *
265
+ * @public
266
+ */
267
+ export interface LengthConstraintNode {
268
+ readonly kind: "constraint";
269
+ readonly constraintKind: "minLength" | "maxLength" | "minItems" | "maxItems";
270
+ readonly value: number;
271
+ readonly path?: PathTarget;
272
+ readonly provenance: Provenance;
273
+ }
274
+ /**
275
+ * String pattern constraint (ECMA-262 regex without delimiters).
276
+ *
277
+ * Multiple `pattern` constraints on the same field compose via intersection:
278
+ * all patterns must match simultaneously.
279
+ *
280
+ * Type applicability: requires `PrimitiveTypeNode("string")`.
281
+ *
282
+ * @public
283
+ */
284
+ export interface PatternConstraintNode {
285
+ readonly kind: "constraint";
286
+ readonly constraintKind: "pattern";
287
+ /** ECMA-262 regular expression, without delimiters. */
288
+ readonly pattern: string;
289
+ readonly path?: PathTarget;
290
+ readonly provenance: Provenance;
291
+ }
292
+ /**
293
+ * Array uniqueness constraint.
294
+ *
295
+ * @public
296
+ */
297
+ export interface ArrayCardinalityConstraintNode {
298
+ readonly kind: "constraint";
299
+ readonly constraintKind: "uniqueItems";
300
+ readonly value: true;
301
+ readonly path?: PathTarget;
302
+ readonly provenance: Provenance;
303
+ }
304
+ /**
305
+ * Enum member subset constraint that only narrows the allowed member set.
306
+ *
307
+ * @public
308
+ */
309
+ export interface EnumMemberConstraintNode {
310
+ readonly kind: "constraint";
311
+ readonly constraintKind: "allowedMembers";
312
+ readonly members: readonly (string | number)[];
313
+ readonly path?: PathTarget;
314
+ readonly provenance: Provenance;
315
+ }
316
+ /**
317
+ * Literal-value equality constraint.
318
+ *
319
+ * @public
320
+ */
321
+ export interface ConstConstraintNode {
322
+ readonly kind: "constraint";
323
+ readonly constraintKind: "const";
324
+ readonly value: JsonValue;
325
+ readonly path?: PathTarget;
326
+ readonly provenance: Provenance;
327
+ }
328
+ /**
329
+ * Extension-registered custom constraint.
330
+ *
331
+ * @public
332
+ */
333
+ export interface CustomConstraintNode {
334
+ readonly kind: "constraint";
335
+ readonly constraintKind: "custom";
336
+ /** Extension-qualified ID: `"<vendor-prefix>/<extension-name>/<constraint-name>"` */
337
+ readonly constraintId: string;
338
+ /** JSON-serializable payload defined by the extension. */
339
+ readonly payload: JsonValue;
340
+ /** How this constraint composes with others of the same `constraintId`. */
341
+ readonly compositionRule: "intersect" | "override";
342
+ readonly path?: PathTarget;
343
+ readonly provenance: Provenance;
344
+ }
345
+ /**
346
+ * Discriminated union of all annotation types.
347
+ * Annotations are value-influencing: they describe or present a field
348
+ * but do not affect which values are valid.
349
+ *
350
+ * @public
351
+ */
352
+ export type AnnotationNode = DisplayNameAnnotationNode | DescriptionAnnotationNode | RemarksAnnotationNode | FormatAnnotationNode | PlaceholderAnnotationNode | DefaultValueAnnotationNode | DeprecatedAnnotationNode | FormatHintAnnotationNode | CustomAnnotationNode;
353
+ /**
354
+ * Display-name annotation.
355
+ *
356
+ * @public
357
+ */
358
+ export interface DisplayNameAnnotationNode {
359
+ readonly kind: "annotation";
360
+ readonly annotationKind: "displayName";
361
+ readonly value: string;
362
+ readonly provenance: Provenance;
363
+ }
364
+ /**
365
+ * Description annotation.
366
+ *
367
+ * @public
368
+ */
369
+ export interface DescriptionAnnotationNode {
370
+ readonly kind: "annotation";
371
+ readonly annotationKind: "description";
372
+ readonly value: string;
373
+ readonly provenance: Provenance;
374
+ }
375
+ /**
376
+ * Remarks annotation — programmatic-persona documentation carried via
377
+ * the `x-<vendor>-remarks` JSON Schema extension keyword.
378
+ *
379
+ * Populated from `@remarks` TSDoc tag content. SDK codegen can include
380
+ * this in doc comments; API Documenter renders the source `@remarks`
381
+ * natively in a dedicated Remarks section.
382
+ *
383
+ * @public
384
+ */
385
+ export interface RemarksAnnotationNode {
386
+ readonly kind: "annotation";
387
+ readonly annotationKind: "remarks";
388
+ readonly value: string;
389
+ readonly provenance: Provenance;
390
+ }
391
+ /**
392
+ * Schema format annotation, for example `email`, `date`, or `uri`.
393
+ *
394
+ * @public
395
+ */
396
+ export interface FormatAnnotationNode {
397
+ readonly kind: "annotation";
398
+ readonly annotationKind: "format";
399
+ readonly value: string;
400
+ readonly provenance: Provenance;
401
+ }
402
+ /**
403
+ * Placeholder annotation.
404
+ *
405
+ * @public
406
+ */
407
+ export interface PlaceholderAnnotationNode {
408
+ readonly kind: "annotation";
409
+ readonly annotationKind: "placeholder";
410
+ readonly value: string;
411
+ readonly provenance: Provenance;
412
+ }
413
+ /**
414
+ * Default-value annotation.
415
+ *
416
+ * @public
417
+ */
418
+ export interface DefaultValueAnnotationNode {
419
+ readonly kind: "annotation";
420
+ readonly annotationKind: "defaultValue";
421
+ /** Must be JSON-serializable and type-compatible (verified during Validate phase). */
422
+ readonly value: JsonValue;
423
+ readonly provenance: Provenance;
424
+ }
425
+ /**
426
+ * Deprecated annotation.
427
+ *
428
+ * @public
429
+ */
430
+ export interface DeprecatedAnnotationNode {
431
+ readonly kind: "annotation";
432
+ readonly annotationKind: "deprecated";
433
+ /** Optional deprecation message. */
434
+ readonly message?: string;
435
+ readonly provenance: Provenance;
436
+ }
437
+ /**
438
+ * UI rendering hint — does not affect schema validation.
439
+ * Unlike FormatAnnotationNode, this never emits a JSON Schema `format`.
440
+ *
441
+ * @public
442
+ */
443
+ export interface FormatHintAnnotationNode {
444
+ readonly kind: "annotation";
445
+ readonly annotationKind: "formatHint";
446
+ /** Renderer-specific format identifier: "textarea", "radio", "date", "color", etc. */
447
+ readonly format: string;
448
+ readonly provenance: Provenance;
449
+ }
450
+ /**
451
+ * Extension-registered custom annotation.
452
+ *
453
+ * @public
454
+ */
455
+ export interface CustomAnnotationNode {
456
+ readonly kind: "annotation";
457
+ readonly annotationKind: "custom";
458
+ /** Extension-qualified ID: `"<vendor-prefix>/<extension-name>/<annotation-name>"` */
459
+ readonly annotationId: string;
460
+ readonly value: JsonValue;
461
+ readonly provenance: Provenance;
462
+ }
463
+ /**
464
+ * A single form field after canonicalization.
465
+ *
466
+ * @public
467
+ */
468
+ export interface FieldNode {
469
+ readonly kind: "field";
470
+ /** The field's key in the data schema. */
471
+ readonly name: string;
472
+ /** The resolved type of this field. */
473
+ readonly type: TypeNode;
474
+ /** Whether this field is required in the data schema. */
475
+ readonly required: boolean;
476
+ /** Set-influencing constraints, after merging. */
477
+ readonly constraints: readonly ConstraintNode[];
478
+ /** Value-influencing annotations, after merging. */
479
+ readonly annotations: readonly AnnotationNode[];
480
+ /** Where this field was declared. */
481
+ readonly provenance: Provenance;
482
+ /**
483
+ * Debug only — ordered list of constraint/annotation nodes that participated
484
+ * in merging, including dominated ones.
485
+ */
486
+ readonly mergeHistory?: readonly {
487
+ readonly node: ConstraintNode | AnnotationNode;
488
+ readonly dominated: boolean;
489
+ }[];
490
+ }
491
+ /**
492
+ * Union of layout node types.
493
+ *
494
+ * @public
495
+ */
496
+ export type LayoutNode = GroupLayoutNode | ConditionalLayoutNode;
497
+ /**
498
+ * A visual grouping of form elements.
499
+ *
500
+ * @public
501
+ */
502
+ export interface GroupLayoutNode {
503
+ readonly kind: "group";
504
+ readonly label: string;
505
+ /** Elements contained in this group — may be fields or nested groups. */
506
+ readonly elements: readonly FormIRElement[];
507
+ readonly provenance: Provenance;
508
+ }
509
+ /**
510
+ * Conditional visibility based on another field's value.
511
+ *
512
+ * @public
513
+ */
514
+ export interface ConditionalLayoutNode {
515
+ readonly kind: "conditional";
516
+ /** The field whose value triggers visibility. */
517
+ readonly fieldName: string;
518
+ /** The value that makes the condition true (SHOW). */
519
+ readonly value: JsonValue;
520
+ /** Elements shown when the condition is met. */
521
+ readonly elements: readonly FormIRElement[];
522
+ readonly provenance: Provenance;
523
+ }
524
+ /**
525
+ * Union of all IR element types.
526
+ *
527
+ * @public
528
+ */
529
+ export type FormIRElement = FieldNode | LayoutNode;
530
+ /**
531
+ * A named type definition stored in the type registry.
532
+ *
533
+ * @public
534
+ */
535
+ export interface TypeDefinition {
536
+ /** The fully-qualified reference name (key in the registry). */
537
+ readonly name: string;
538
+ /** The resolved type node. */
539
+ readonly type: TypeNode;
540
+ /** Constraints declared on the named type itself. */
541
+ readonly constraints?: readonly ConstraintNode[];
542
+ /** Root-level value metadata for a named type definition. */
543
+ readonly annotations?: readonly AnnotationNode[];
544
+ /** Where this type was declared. */
545
+ readonly provenance: Provenance;
546
+ }
547
+ /**
548
+ * The complete Canonical Intermediate Representation for a form.
549
+ *
550
+ * Output of the Canonicalize phase; input to Validate, Generate (JSON Schema),
551
+ * and Generate (UI Schema) phases.
552
+ *
553
+ * Serializable to JSON — no live compiler objects.
554
+ *
555
+ * @public
556
+ */
557
+ export interface FormIR {
558
+ readonly kind: "form-ir";
559
+ /**
560
+ * Schema version for the IR format itself.
561
+ * Should equal `IR_VERSION`.
562
+ */
563
+ readonly irVersion: string;
564
+ /** Top-level elements of the form: fields and layout nodes. */
565
+ readonly elements: readonly FormIRElement[];
566
+ /** Root-level annotations derived from the source declaration itself. */
567
+ readonly rootAnnotations?: readonly AnnotationNode[];
568
+ /**
569
+ * Registry of named types referenced by fields in this form.
570
+ * Keys are fully-qualified type names matching `ReferenceTypeNode.name`.
571
+ */
572
+ readonly typeRegistry: Readonly<Record<string, TypeDefinition>>;
573
+ /** Root-level metadata for the form itself. */
574
+ readonly annotations?: readonly AnnotationNode[];
575
+ /** Provenance of the form definition itself. */
576
+ readonly provenance: Provenance;
577
+ }
578
+ //# sourceMappingURL=ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/types/ir.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@
8
8
  *
9
9
  * @typeParam K - The field name to check
10
10
  * @typeParam V - The value to compare against
11
+ *
12
+ * @public
11
13
  */
12
14
  export interface EqualsPredicate<K extends string, V> {
13
15
  /** Predicate type discriminator */
@@ -24,6 +26,8 @@ export interface EqualsPredicate<K extends string, V> {
24
26
  * - `OneOfPredicate` - field value is one of several options
25
27
  * - `NotPredicate` - negation of another predicate
26
28
  * - `AndPredicate` / `OrPredicate` - logical combinations
29
+ *
30
+ * @public
27
31
  */
28
32
  export type Predicate<K extends string = string, V = unknown> = EqualsPredicate<K, V>;
29
33
  //# sourceMappingURL=predicate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"predicate.d.ts","sourceRoot":"","sources":["../../src/types/predicate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IAClD,mCAAmC;IACnC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC9B,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"predicate.d.ts","sourceRoot":"","sources":["../../src/types/predicate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IAClD,mCAAmC;IACnC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC9B,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -4,6 +4,8 @@
4
4
  * - `"valid"` - All validations pass
5
5
  * - `"invalid"` - One or more validations failed
6
6
  * - `"unknown"` - Validation state not yet determined (e.g., async validation pending)
7
+ *
8
+ * @public
7
9
  */
8
10
  export type Validity = "valid" | "invalid" | "unknown";
9
11
  //# sourceMappingURL=validity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validity.d.ts","sourceRoot":"","sources":["../../src/types/validity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"validity.d.ts","sourceRoot":"","sources":["../../src/types/validity.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,28 +1,40 @@
1
1
  {
2
2
  "name": "@formspec/core",
3
- "version": "0.1.0-alpha.2",
3
+ "version": "0.1.0-alpha.21",
4
4
  "description": "Core utilities for formspec",
5
5
  "type": "module",
6
- "main": "./dist/index.js",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
7
8
  "types": "./dist/core.d.ts",
8
9
  "exports": {
9
10
  ".": {
10
11
  "types": "./dist/core.d.ts",
11
- "import": "./dist/index.js"
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.cjs"
12
14
  }
13
15
  },
14
16
  "files": [
15
- "dist"
17
+ "dist",
18
+ "README.md"
16
19
  ],
20
+ "devDependencies": {
21
+ "tsd": "^0.31.0",
22
+ "vitest": "^3.2.4"
23
+ },
24
+ "tsd": {
25
+ "directory": "src/__tests__"
26
+ },
17
27
  "publishConfig": {
18
28
  "access": "public"
19
29
  },
20
30
  "keywords": [],
21
31
  "license": "UNLICENSED",
22
32
  "scripts": {
23
- "build": "tsc",
33
+ "build": "tsup && tsc --emitDeclarationOnly && api-extractor run --local",
24
34
  "clean": "rm -rf dist temp",
25
35
  "typecheck": "tsc --noEmit",
36
+ "test": "vitest run && tsd",
37
+ "test:types": "tsd",
26
38
  "api-extractor": "api-extractor run",
27
39
  "api-extractor:local": "api-extractor run --local",
28
40
  "api-documenter": "api-documenter markdown -i temp -o docs"
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data-source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-source.js","sourceRoot":"","sources":["../../src/types/data-source.ts"],"names":[],"mappings":""}