@texaryn/core 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/index.d.ts +4 -4
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/ir/index.d.ts +1 -1
  7. package/dist/ir/index.d.ts.map +1 -1
  8. package/dist/ir/index.js.map +1 -1
  9. package/dist/ir/types.d.ts +50 -4
  10. package/dist/ir/types.d.ts.map +1 -1
  11. package/dist/renderer/registry.d.ts +2 -1
  12. package/dist/renderer/registry.d.ts.map +1 -1
  13. package/dist/renderer/registry.js.map +1 -1
  14. package/dist/renderer/types.d.ts +7 -7
  15. package/dist/renderer/types.d.ts.map +1 -1
  16. package/dist/runtime/document-limits.d.ts +19 -0
  17. package/dist/runtime/document-limits.d.ts.map +1 -0
  18. package/dist/runtime/document-limits.js +170 -0
  19. package/dist/runtime/document-limits.js.map +1 -0
  20. package/dist/runtime/document-runtime-control.d.ts +18 -0
  21. package/dist/runtime/document-runtime-control.d.ts.map +1 -0
  22. package/dist/runtime/document-runtime-control.js +11 -0
  23. package/dist/runtime/document-runtime-control.js.map +1 -0
  24. package/dist/runtime/document-runtime.d.ts +7 -0
  25. package/dist/runtime/document-runtime.d.ts.map +1 -0
  26. package/dist/runtime/document-runtime.js +574 -0
  27. package/dist/runtime/document-runtime.js.map +1 -0
  28. package/dist/runtime/document-update-session.d.ts +3 -0
  29. package/dist/runtime/document-update-session.d.ts.map +1 -0
  30. package/dist/runtime/document-update-session.js +320 -0
  31. package/dist/runtime/document-update-session.js.map +1 -0
  32. package/dist/runtime/index.d.ts +4 -2
  33. package/dist/runtime/index.d.ts.map +1 -1
  34. package/dist/runtime/index.js +3 -1
  35. package/dist/runtime/index.js.map +1 -1
  36. package/dist/runtime/runtime.d.ts +4 -0
  37. package/dist/runtime/runtime.d.ts.map +1 -1
  38. package/dist/runtime/runtime.js +395 -21
  39. package/dist/runtime/runtime.js.map +1 -1
  40. package/dist/runtime/types.d.ts +86 -4
  41. package/dist/runtime/types.d.ts.map +1 -1
  42. package/dist/state/signal.d.ts +1 -0
  43. package/dist/state/signal.d.ts.map +1 -1
  44. package/dist/state/signal.js +47 -10
  45. package/dist/state/signal.js.map +1 -1
  46. package/dist/types.d.ts +4 -0
  47. package/dist/types.d.ts.map +1 -1
  48. package/package.json +1 -1
@@ -1,12 +1,70 @@
1
1
  import type { Store } from '../state/store.js';
2
- import type { UIDocument } from '../ir/types.js';
2
+ import type { AnyUIDocument, UIDocument, UIDocumentV2 } from '../ir/types.js';
3
3
  import type { UIHints } from '../hints/types.js';
4
4
  import type { Command } from '../commands/types.js';
5
5
  import type { SubmissionState } from '../ir/runtime-state.js';
6
- import type { NodeId, MaybePromise, ValidationError, VisibleError } from '../types.js';
6
+ import type { JsonScalar, JsonValue, NodeId, StableItemId, MaybePromise, ValidationError, VisibleError } from '../types.js';
7
7
  import type { DefaultConflict, DefaultRefusal } from '../initialization/index.js';
8
8
  /** Which initialization policy consumes the schema's `default` annotations. */
9
9
  export type InitializationPolicy = 'none' | 'schema-defaults';
10
+ export interface UIDocumentRuntime<Document extends AnyUIDocument = AnyUIDocument, Data = unknown> {
11
+ readonly document: Store<Document>;
12
+ readonly data: Store<Data>;
13
+ destroy(): void;
14
+ }
15
+ export interface DocumentCollectionRow {
16
+ readonly id: StableItemId;
17
+ readonly value: JsonScalar;
18
+ readonly cells: readonly JsonScalar[];
19
+ }
20
+ export interface DocumentActionContext {
21
+ readonly nodeId: NodeId;
22
+ readonly document: UIDocumentV2;
23
+ readonly data: JsonValue;
24
+ }
25
+ export type DocumentActionHandler = (args: JsonValue | undefined, context: DocumentActionContext) => MaybePromise<void>;
26
+ export type DocumentActionArgumentValidator = (args: JsonValue | undefined) => JsonValue | undefined;
27
+ export interface DocumentActionRegistration {
28
+ handler: DocumentActionHandler;
29
+ validateArgs?: DocumentActionArgumentValidator;
30
+ }
31
+ export type DocumentAction = DocumentActionHandler | DocumentActionRegistration;
32
+ export interface DocumentRuntimeLimits {
33
+ maxJsonDepth: number;
34
+ maxJsonValues: number;
35
+ maxArrayItems: number;
36
+ maxStringLength: number;
37
+ maxTotalStringLength: number;
38
+ maxDocumentNodes: number;
39
+ maxDocumentTreeDepth: number;
40
+ maxRowsPerCollection: number;
41
+ maxCollectionRows: number;
42
+ maxTableCells: number;
43
+ }
44
+ export interface DocumentRuntimeOptions {
45
+ initialData?: unknown;
46
+ actions?: Readonly<Record<string, DocumentAction>>;
47
+ limits?: Partial<DocumentRuntimeLimits>;
48
+ }
49
+ export interface DocumentRuntime extends UIDocumentRuntime<UIDocumentV2, JsonValue> {
50
+ replaceDocument(document: unknown): void;
51
+ setData(data: unknown): void;
52
+ replaceSnapshot(document: unknown, data: unknown): void;
53
+ getCollection(nodeId: NodeId): Store<readonly DocumentCollectionRow[]> | undefined;
54
+ hasActionHandler(actionType: string): boolean;
55
+ invokeAction(nodeId: NodeId): Promise<void>;
56
+ }
57
+ export interface DocumentUpdateSessionOptions {
58
+ maxMessagesPerSecond?: number;
59
+ maxPatchOperations?: number;
60
+ now?: () => number;
61
+ onNotificationError: (error: unknown) => void;
62
+ }
63
+ export interface DocumentUpdateSession {
64
+ apply(message: unknown): void;
65
+ getRevision(): number | undefined;
66
+ destroy(): void;
67
+ }
10
68
  /**
11
69
  * What one run of ADR-003's initialization pass did, without the data, which
12
70
  * the runtime publishes on `data` like any other.
@@ -60,6 +118,23 @@ export interface FormRuntimeOptions {
60
118
  */
61
119
  initialization?: InitializationPolicy;
62
120
  }
121
+ export interface FormMutation {
122
+ readonly command?: Command;
123
+ readonly origin?: unknown;
124
+ readonly beforeData: unknown;
125
+ readonly data: unknown;
126
+ readonly beforeDocument: UIDocument;
127
+ readonly document: UIDocument;
128
+ readonly changedPointers?: readonly string[];
129
+ }
130
+ export interface FormCommandGuardContext {
131
+ readonly document: UIDocument;
132
+ readonly data: unknown;
133
+ }
134
+ export type FormCommandGuard = (command: Command, context: FormCommandGuardContext) => string | undefined;
135
+ export interface RemoteSnapshotOptions {
136
+ readonly origin?: unknown;
137
+ }
63
138
  export interface NodeState {
64
139
  readonly value: Store<unknown>;
65
140
  readonly errors: Store<ValidationError[]>;
@@ -70,7 +145,7 @@ export interface NodeState {
70
145
  readonly validationStatus: Store<'idle' | 'pending' | 'valid' | 'invalid'>;
71
146
  readonly showErrors: Store<boolean>;
72
147
  }
73
- export interface FormRuntime {
148
+ export interface FormRuntime extends UIDocumentRuntime<UIDocument, unknown> {
74
149
  readonly document: Store<UIDocument>;
75
150
  readonly data: Store<unknown>;
76
151
  readonly submission: Store<SubmissionState>;
@@ -95,7 +170,14 @@ export interface FormRuntime {
95
170
  * rather than one run over data.
96
171
  */
97
172
  readonly initialization: Store<InitializationReport | undefined>;
98
- dispatch(command: Command): void;
173
+ readonly initializationPolicy: InitializationPolicy;
174
+ dispatch(command: Command, options?: {
175
+ origin?: unknown;
176
+ }): void;
177
+ subscribeMutations(listener: (mutation: FormMutation) => void, onError: (error: unknown) => void): () => void;
178
+ registerCommandGuard(guard: FormCommandGuard, onRejected?: (reason: string) => void): () => void;
179
+ applyRemoteSnapshot(data: unknown, options?: RemoteSnapshotOptions): void;
180
+ lockArrayStructure(): () => void;
99
181
  getNodeState(nodeId: NodeId): NodeState | undefined;
100
182
  destroy(): void;
101
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEjF,+EAA+E;AAC/E,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,iBAAiB,CAAA;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAA;IAC9C,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,GACD;IAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAErE,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,CAAA;IAChD,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAA;IACnC;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;IAC1E,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IACpC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;IAC3C,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAA;IAC7C;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAA;IAChE,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAChC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;IACnD,OAAO,IAAI,IAAI,CAAA;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export declare function isBatchActive(): boolean;
1
2
  export interface Signal<T> {
2
3
  get(): T;
3
4
  set(value: T): void;
@@ -1 +1 @@
1
- {"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/state/signal.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,IAAI,CAAC,CAAA;IACR,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,GAAG,IAAI,CAAC,CAAA;CACT;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAE1D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAE1D;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAY1C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC/B,QAAQ,EAAE,MAAM,IAAI,GACnB,MAAM,IAAI,CAKZ"}
1
+ {"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/state/signal.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAiBD,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,IAAI,CAAC,CAAA;IACR,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,GAAG,IAAI,CAAC,CAAA;CACT;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAE1D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAE1D;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAgB1C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC/B,QAAQ,EAAE,MAAM,IAAI,GACnB,MAAM,IAAI,CAKZ"}
@@ -1,6 +1,25 @@
1
1
  let currentComputation = null;
2
2
  let batchDepth = 0;
3
3
  const pendingNotifications = new Set();
4
+ export function isBatchActive() {
5
+ return batchDepth > 0;
6
+ }
7
+ function throwNotificationErrors(errors) {
8
+ if (errors.length === 1)
9
+ throw errors[0];
10
+ if (errors.length > 1)
11
+ throw new AggregateError(errors, 'Multiple signal notifications failed');
12
+ }
13
+ function notifyListeners(listeners, errors) {
14
+ for (const listener of listeners) {
15
+ try {
16
+ listener();
17
+ }
18
+ catch (error) {
19
+ errors.push(error);
20
+ }
21
+ }
22
+ }
4
23
  export function createSignal(initialValue) {
5
24
  return new SignalImpl(initialValue);
6
25
  }
@@ -9,18 +28,22 @@ export function createComputed(fn) {
9
28
  }
10
29
  export function batch(fn) {
11
30
  batchDepth++;
31
+ const errors = [];
12
32
  try {
13
33
  fn();
14
34
  }
35
+ catch (error) {
36
+ errors.push(error);
37
+ }
15
38
  finally {
16
39
  batchDepth--;
17
40
  if (batchDepth === 0) {
18
41
  const fns = [...pendingNotifications];
19
42
  pendingNotifications.clear();
20
- for (const f of fns)
21
- f();
43
+ notifyListeners(fns, errors);
22
44
  }
23
45
  }
46
+ throwNotificationErrors(errors);
24
47
  }
25
48
  export function subscribeToSignal(source, listener) {
26
49
  const impl = source;
@@ -50,16 +73,23 @@ class SignalImpl {
50
73
  this.notify();
51
74
  }
52
75
  notify() {
53
- for (const dep of this.dependents)
54
- dep.markDirty();
76
+ const errors = [];
77
+ for (const dep of this.dependents) {
78
+ try {
79
+ dep.markDirty();
80
+ }
81
+ catch (error) {
82
+ errors.push(error);
83
+ }
84
+ }
55
85
  if (batchDepth > 0) {
56
86
  for (const fn of this.subscribers)
57
87
  pendingNotifications.add(fn);
58
88
  }
59
89
  else {
60
- for (const fn of this.subscribers)
61
- fn();
90
+ notifyListeners(this.subscribers, errors);
62
91
  }
92
+ throwNotificationErrors(errors);
63
93
  }
64
94
  }
65
95
  class ComputedImpl {
@@ -85,16 +115,23 @@ class ComputedImpl {
85
115
  if (this.dirty)
86
116
  return;
87
117
  this.dirty = true;
88
- for (const dep of this.dependents)
89
- dep.markDirty();
118
+ const errors = [];
119
+ for (const dep of this.dependents) {
120
+ try {
121
+ dep.markDirty();
122
+ }
123
+ catch (error) {
124
+ errors.push(error);
125
+ }
126
+ }
90
127
  if (batchDepth > 0) {
91
128
  for (const fn of this.subscribers)
92
129
  pendingNotifications.add(fn);
93
130
  }
94
131
  else {
95
- for (const fn of this.subscribers)
96
- fn();
132
+ notifyListeners(this.subscribers, errors);
97
133
  }
134
+ throwNotificationErrors(errors);
98
135
  }
99
136
  recompute() {
100
137
  for (const source of this.sources) {
@@ -1 +1 @@
1
- {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/state/signal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/state/signal.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,6 +7,10 @@ export type StableItemId = string & {
7
7
  export type JsonPointer = string & {
8
8
  __brand: 'JsonPointer';
9
9
  };
10
+ export type JsonScalar = string | number | boolean | null;
11
+ export type JsonValue = JsonScalar | JsonValue[] | {
12
+ [key: string]: JsonValue;
13
+ };
10
14
  export type MaybePromise<T> = T | Promise<T>;
11
15
  export type JsonSchemaType = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'null';
12
16
  export interface ValidationResult {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAA;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,CAAA;AAC/D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAA;AAE7D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAE5C,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,QAAQ,GACR,OAAO,GACP,MAAM,CAAA;AAEV,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,eAAe,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAA;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAA;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,CAAA;AAC/D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAA;AAE7D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AACzD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAE/E,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAE5C,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,QAAQ,GACR,OAAO,GACP,MAAM,CAAA;AAEV,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,eAAe,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAA;CAC1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@texaryn/core",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "Headless runtime for JSON Schema forms and schema-driven UI: a framework-neutral UI IR, compiler, form state and renderer registry, used with @texaryn/schema-json and a React, Vue or Web Components binding",
5
5
  "keywords": [
6
6
  "json-schema",