@texuli/spec 0.8.0 → 0.9.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.
- package/README.md +18 -9
- package/dist/generated/typescript/blueprint.d.ts +4 -3
- package/dist/generated/typescript/blueprint.js +1 -1
- package/dist/generated/typescript/catalog-schema.js +1 -1
- package/dist/generated/typescript/diagnostics.js +1 -1
- package/dist/generated/typescript/manifest.js +1 -1
- package/dist/generated/typescript/vocabulary.d.ts +13 -1
- package/dist/generated/typescript/vocabulary.js +2 -2
- package/dist/generated/typescript/workflow.js +1 -1
- package/dist/migrations/0.8.0-0.9.0.d.ts +8 -0
- package/dist/migrations/0.8.0-0.9.0.js +11 -0
- package/dist/migrations/index.js +2 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,11 +14,17 @@ by Texuli's Kotlin Multiplatform twin. The package is framework-free: no
|
|
|
14
14
|
DOM, no Svelte, no Node APIs and no runtime dependencies.
|
|
15
15
|
|
|
16
16
|
> **Status: 0.x release.** Texuli is in development. The packages are
|
|
17
|
-
> published to npm as `0.
|
|
18
|
-
> stable release). Under 0.x, a new minor (`0.
|
|
19
|
-
> changes, so pin the exact version or use `^0.
|
|
17
|
+
> published to npm as `0.9.0`, a pre-1.0 release (1.0.0 will be the first
|
|
18
|
+
> stable release). Under 0.x, a new minor (`0.10.0`) may contain breaking
|
|
19
|
+
> changes, so pin the exact version or use `^0.9.0`, which accepts only 0.9.x.
|
|
20
20
|
|
|
21
|
-
> **New in `0.
|
|
21
|
+
> **New in `0.9.0`.** `@texuli/spec@0.9.0` carries **spec 0.9.0**, a
|
|
22
|
+
> stamp-only catalog projection refresh (the Button pending note and the
|
|
23
|
+
> cartesian charts' `xKind` and `locale`, from the Protoyard gaps G94 and
|
|
24
|
+
> G97): the envelope, the `$defs` and the diagnostic codes are unchanged,
|
|
25
|
+
> and every `0.8.0` envelope migrates by stamping `spec`.
|
|
26
|
+
|
|
27
|
+
> **New in `0.8.0`.** `@texuli/spec@0.8.0` carried **spec 0.8.0**, which adds
|
|
22
28
|
> data-source bindings (the `@texuli/spec/source` subpath), the
|
|
23
29
|
> agent-emittable `schema-form`, `canvas`, `spreadsheet`, `data-dashboard`
|
|
24
30
|
> and `data-dashboard-widget` ids with their closed shapes, the closed
|
|
@@ -75,7 +81,7 @@ import {
|
|
|
75
81
|
validateInstance,
|
|
76
82
|
} from '@texuli/spec';
|
|
77
83
|
|
|
78
|
-
SPEC_VERSION; // the spec version: '0.
|
|
84
|
+
SPEC_VERSION; // the spec version: '0.9.0' in @texuli/spec@0.9.0
|
|
79
85
|
SPEC_COMPONENT_IDS.includes('alert'); // true: the closed component vocabulary
|
|
80
86
|
|
|
81
87
|
// The dialect validator: a closed subset of JSON Schema 2020-12.
|
|
@@ -107,7 +113,7 @@ import { type Schema, type SpecCatalog, validateBlueprint } from '@texuli/spec';
|
|
|
107
113
|
import { migrateBlueprint } from '@texuli/spec/migrate';
|
|
108
114
|
import { validateWorkflowGraph } from '@texuli/spec/workflow';
|
|
109
115
|
|
|
110
|
-
const migrated = migrateBlueprint(blueprint); // 0.2.0 → … → 0.
|
|
116
|
+
const migrated = migrateBlueprint(blueprint); // 0.2.0 → … → 0.8.0 → 0.9.0; never throws
|
|
111
117
|
const result = validateBlueprint(migrated.blueprint, {
|
|
112
118
|
blueprintSchema: blueprintSchemaJson as Schema,
|
|
113
119
|
catalog: componentsJson as SpecCatalog,
|
|
@@ -274,9 +280,12 @@ written for (`spec`; omitted means 0.2.0). `migrateBlueprint`
|
|
|
274
280
|
(`@texuli/spec/migrate`) brings an
|
|
275
281
|
envelope up to the current spec with pure, per-version steps
|
|
276
282
|
(`src/migrations/`: `0.2.0 → 0.3.0`, `0.3.0 → 0.4.0`, `0.4.0 → 0.5.0`,
|
|
277
|
-
`0.5.0 → 0.6.0`, `0.6.0 → 0.7.0
|
|
278
|
-
stamps `spec`); a compatible version range is planned,
|
|
279
|
-
`@texuli/spec@0.
|
|
283
|
+
`0.5.0 → 0.6.0`, `0.6.0 → 0.7.0`, `0.7.0 → 0.8.0` and `0.8.0 → 0.9.0`,
|
|
284
|
+
each of which only stamps `spec`); a compatible version range is planned,
|
|
285
|
+
not built. `@texuli/spec@0.9.0` carries spec `0.9.0` (digest
|
|
286
|
+
`497df4d3b0c67d53483163ebd9bd73733b52caf5f8e2966478f1cf860e6f9d9d`), an
|
|
287
|
+
additive catalog projection refresh (PLAN_011 T-gaps-87-95 and
|
|
288
|
+
T-gaps-96-98); `@texuli/spec@0.8.0` carried spec `0.8.0` (digest
|
|
280
289
|
`f6b6388280d247eb9c3106a925111f35b90d1ec3b59c23652542f06a9f103daf`), which
|
|
281
290
|
adds data-source bindings, forms, canvases, dashboards and spreadsheets;
|
|
282
291
|
`@texuli/spec@0.7.0` carried spec `0.7.0` (digest
|
|
@@ -562,8 +562,9 @@ export interface BlueprintSourceBinding {
|
|
|
562
562
|
* ({"$source": name, "query": {...}}), with a closed query, and forms as data: the closed form
|
|
563
563
|
* schema a `schema-form` node carries ($defs.formSchema) with conditions and cross-field rules in
|
|
564
564
|
* the closed expression AST of @texuli/core/expression ($defs.expression). Spec 0.8.0 (ADR-012)
|
|
565
|
-
* adds the canvas shape a `canvas` node carries ($defs.canvas).
|
|
566
|
-
*
|
|
565
|
+
* adds the canvas shape a `canvas` node carries ($defs.canvas). Spec 0.9.0 refreshes the catalog
|
|
566
|
+
* projection only (an additive minor; the envelope shape is unchanged). Planned minor additions:
|
|
567
|
+
* the native profile and several roots.
|
|
567
568
|
*/
|
|
568
569
|
export interface BlueprintEnvelope {
|
|
569
570
|
format: 'texuli-blueprint';
|
|
@@ -587,7 +588,7 @@ export interface BlueprintEnvelope {
|
|
|
587
588
|
/**
|
|
588
589
|
* The spec version the envelope was written for. Omitted means 0.2.0; migrateBlueprint stamps it.
|
|
589
590
|
*/
|
|
590
|
-
spec?: '0.3.0' | '0.4.0' | '0.5.0' | '0.6.0' | '0.7.0' | '0.8.0';
|
|
591
|
+
spec?: '0.3.0' | '0.4.0' | '0.5.0' | '0.6.0' | '0.7.0' | '0.8.0' | '0.9.0';
|
|
591
592
|
/**
|
|
592
593
|
* Local state declarations (ADR-008), at most 64. Names, counts and per-type rules are checked by
|
|
593
594
|
* the validator.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/blueprint.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.9.0, digest 497df4d3b0c67d53483163ebd9bd73733b52caf5f8e2966478f1cf860e6f9d9d
|
|
3
3
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/catalog.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.9.0, digest 497df4d3b0c67d53483163ebd9bd73733b52caf5f8e2966478f1cf860e6f9d9d
|
|
3
3
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/diagnostics.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.9.0, digest 497df4d3b0c67d53483163ebd9bd73733b52caf5f8e2966478f1cf860e6f9d9d
|
|
3
3
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/manifest.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.9.0, digest 497df4d3b0c67d53483163ebd9bd73733b52caf5f8e2966478f1cf860e6f9d9d
|
|
3
3
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** The built catalog this vocabulary was projected from. */
|
|
2
|
-
export declare const SPEC_CATALOG_HASH = "
|
|
2
|
+
export declare const SPEC_CATALOG_HASH = "8e72aaa2c94dba6b4245a9778fdd21fd86c6398e5a0fca410da0aa51a3190b72";
|
|
3
3
|
/** Every closed component id, sorted. */
|
|
4
4
|
export declare const SPEC_COMPONENT_IDS: readonly ["action-form", "alert", "alert-dialog", "analytics-grid", "app-nav", "badge", "banner", "blocks-code", "blocks-data", "blocks-diagram", "blocks-embed", "blocks-interactive", "blocks-map", "blocks-media", "blocks-structure", "blocks-text", "breadcrumb", "button", "button-group", "callout", "canvas", "card", "charts-area", "charts-bar", "charts-bubble", "charts-bullet", "charts-canvas-renderer", "charts-cartesian", "charts-combo", "charts-donut", "charts-funnel", "charts-gauge", "charts-geo-map", "charts-geo-point-map", "charts-heatmap", "charts-line", "charts-network", "charts-pie", "charts-progress-ring", "charts-sankey", "charts-scatter", "charts-sparkline", "charts-stacked-bar", "charts-sunburst", "charts-treemap", "chat-message", "chat-thread", "checkbox", "chip", "code", "combobox", "command-palette", "content-layout", "context-menu", "context-menu-trigger", "control-choice", "control-filter", "control-slider", "control-toggle", "data-board", "data-calendar", "data-cohort-table", "data-dashboard", "data-dashboard-widget", "data-files", "data-filter-builder", "data-grid", "data-map", "data-notification-inbox", "data-timeline", "data-tree-view", "deck-slide", "description", "detail-panel", "dialog", "document", "drawer", "dropdown-menu", "dropdown-menu-content", "dropdown-menu-item", "dropdown-menu-trigger", "empty-state", "error-state", "field", "field-error", "flow-action", "flow-view", "form", "form-field", "form-submit", "host-region", "hover-card", "hover-card-content", "icon-button", "inline-text", "input", "input-group", "kbd", "kpi", "label", "layout-auth-split", "layout-blog", "layout-card", "layout-chrome", "layout-dashboard-grid", "layout-deck", "layout-doc", "layout-docs", "layout-drawer", "layout-dual-sidebar", "layout-editorial", "layout-grid", "layout-host", "layout-landing", "layout-marketing", "layout-page", "layout-pricing", "layout-row", "layout-settings", "layout-sidebar", "layout-split", "layout-stack", "layout-tile", "layout-top-nav", "layout-wizard", "media-composition-canvas", "media-composition-svg", "media-image", "menubar", "menubar-trigger", "multi-select", "nav-icon", "navigation-menu", "pagination", "popover", "popover-content", "radio", "radio-group", "responsive-modal", "schema-form", "screen-outlet", "select", "select-content", "select-group", "select-item", "select-label", "select-portal", "select-separator", "select-trigger", "select-value", "select-viewport", "sheet", "sidebar", "sortable-list", "split-view", "spreadsheet", "stat", "stepper", "switch", "table", "tag", "text-counter", "textarea", "time-field", "timeline", "toaster", "tooltip", "workflow-graph"];
|
|
5
5
|
export type SpecComponentId = (typeof SPEC_COMPONENT_IDS)[number];
|
|
@@ -154,20 +154,24 @@ export interface SpecComponentProps {
|
|
|
154
154
|
description: string;
|
|
155
155
|
fullDomain?: string;
|
|
156
156
|
interactive?: string;
|
|
157
|
+
locale?: string;
|
|
157
158
|
mode?: 'light' | 'dark';
|
|
158
159
|
series: readonly unknown[];
|
|
159
160
|
title: string;
|
|
160
161
|
visibleDomain?: string;
|
|
162
|
+
xKind?: 'linear' | 'category' | 'time';
|
|
161
163
|
};
|
|
162
164
|
'charts-bar': {
|
|
163
165
|
annotations?: string;
|
|
164
166
|
description: string;
|
|
165
167
|
fullDomain?: string;
|
|
166
168
|
interactive?: string;
|
|
169
|
+
locale?: string;
|
|
167
170
|
mode?: 'light' | 'dark';
|
|
168
171
|
series: readonly unknown[];
|
|
169
172
|
title: string;
|
|
170
173
|
visibleDomain?: string;
|
|
174
|
+
xKind?: 'linear' | 'category' | 'time';
|
|
171
175
|
};
|
|
172
176
|
'charts-bubble': {
|
|
173
177
|
annotations?: string;
|
|
@@ -202,20 +206,24 @@ export interface SpecComponentProps {
|
|
|
202
206
|
fullDomain?: string;
|
|
203
207
|
interactive?: string;
|
|
204
208
|
kind: 'line' | 'area' | 'bar' | 'stacked-bar' | 'combo';
|
|
209
|
+
locale?: string;
|
|
205
210
|
mode?: 'light' | 'dark';
|
|
206
211
|
series: readonly unknown[];
|
|
207
212
|
title: string;
|
|
208
213
|
visibleDomain?: string;
|
|
214
|
+
xKind?: 'linear' | 'category' | 'time';
|
|
209
215
|
};
|
|
210
216
|
'charts-combo': {
|
|
211
217
|
annotations?: string;
|
|
212
218
|
description: string;
|
|
213
219
|
fullDomain?: string;
|
|
214
220
|
interactive?: string;
|
|
221
|
+
locale?: string;
|
|
215
222
|
mode?: 'light' | 'dark';
|
|
216
223
|
series: readonly unknown[];
|
|
217
224
|
title: string;
|
|
218
225
|
visibleDomain?: string;
|
|
226
|
+
xKind?: 'linear' | 'category' | 'time';
|
|
219
227
|
};
|
|
220
228
|
'charts-donut': {
|
|
221
229
|
data: readonly unknown[];
|
|
@@ -281,10 +289,12 @@ export interface SpecComponentProps {
|
|
|
281
289
|
description: string;
|
|
282
290
|
fullDomain?: string;
|
|
283
291
|
interactive?: string;
|
|
292
|
+
locale?: string;
|
|
284
293
|
mode?: 'light' | 'dark';
|
|
285
294
|
series: readonly unknown[];
|
|
286
295
|
title: string;
|
|
287
296
|
visibleDomain?: string;
|
|
297
|
+
xKind?: 'linear' | 'category' | 'time';
|
|
288
298
|
};
|
|
289
299
|
'charts-network': {
|
|
290
300
|
description?: string;
|
|
@@ -350,10 +360,12 @@ export interface SpecComponentProps {
|
|
|
350
360
|
description: string;
|
|
351
361
|
fullDomain?: string;
|
|
352
362
|
interactive?: string;
|
|
363
|
+
locale?: string;
|
|
353
364
|
mode?: 'light' | 'dark';
|
|
354
365
|
series: readonly unknown[];
|
|
355
366
|
title: string;
|
|
356
367
|
visibleDomain?: string;
|
|
368
|
+
xKind?: 'linear' | 'category' | 'time';
|
|
357
369
|
};
|
|
358
370
|
'charts-sunburst': {
|
|
359
371
|
description: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Generated by @texuli/spec from catalog/components.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.9.0, digest 497df4d3b0c67d53483163ebd9bd73733b52caf5f8e2966478f1cf860e6f9d9d
|
|
3
3
|
/** The built catalog this vocabulary was projected from. */
|
|
4
|
-
export const SPEC_CATALOG_HASH = '
|
|
4
|
+
export const SPEC_CATALOG_HASH = '8e72aaa2c94dba6b4245a9778fdd21fd86c6398e5a0fca410da0aa51a3190b72';
|
|
5
5
|
/** Every closed component id, sorted. */
|
|
6
6
|
export const SPEC_COMPONENT_IDS = [
|
|
7
7
|
'action-form',
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/workflow.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.9.0, digest 497df4d3b0c67d53483163ebd9bd73733b52caf5f8e2966478f1cf860e6f9d9d
|
|
3
3
|
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SpecMigration } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* 0.8.0 → 0.9.0 is additive (PLAN_011 T-gaps-87-95): it refreshes the catalog
|
|
4
|
+
* projection (the button pending note and the gap props that reach the
|
|
5
|
+
* manifests) and removes nothing. Every 0.8.0 envelope is a valid 0.9.0
|
|
6
|
+
* envelope, so the step only stamps `spec`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const migration080to090: SpecMigration;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0.8.0 → 0.9.0 is additive (PLAN_011 T-gaps-87-95): it refreshes the catalog
|
|
3
|
+
* projection (the button pending note and the gap props that reach the
|
|
4
|
+
* manifests) and removes nothing. Every 0.8.0 envelope is a valid 0.9.0
|
|
5
|
+
* envelope, so the step only stamps `spec`.
|
|
6
|
+
*/
|
|
7
|
+
export const migration080to090 = Object.freeze({
|
|
8
|
+
from: '0.8.0',
|
|
9
|
+
to: '0.9.0',
|
|
10
|
+
migrate: (envelope) => ({ ...envelope, spec: '0.9.0' }),
|
|
11
|
+
});
|
package/dist/migrations/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { migration040to050 } from "./0.4.0-0.5.0.js";
|
|
|
6
6
|
import { migration050to060 } from "./0.5.0-0.6.0.js";
|
|
7
7
|
import { migration060to070 } from "./0.6.0-0.7.0.js";
|
|
8
8
|
import { migration070to080 } from "./0.7.0-0.8.0.js";
|
|
9
|
+
import { migration080to090 } from "./0.8.0-0.9.0.js";
|
|
9
10
|
/** The version an envelope without `spec` was written for. */
|
|
10
11
|
export const UNDECLARED_SPEC_VERSION = '0.2.0';
|
|
11
12
|
/** Every step, in order; each `to` is the next step's `from`. */
|
|
@@ -16,6 +17,7 @@ export const SPEC_MIGRATIONS = Object.freeze([
|
|
|
16
17
|
migration050to060,
|
|
17
18
|
migration060to070,
|
|
18
19
|
migration070to080,
|
|
20
|
+
migration080to090,
|
|
19
21
|
]);
|
|
20
22
|
/**
|
|
21
23
|
* Bring a blueprint envelope up to `target` (the current spec by default)
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The semantic version of the spec documents in this package. */
|
|
2
|
-
export declare const SPEC_VERSION = "0.
|
|
2
|
+
export declare const SPEC_VERSION = "0.9.0";
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The semantic version of the spec documents in this package. */
|
|
2
|
-
export const SPEC_VERSION = '0.
|
|
2
|
+
export const SPEC_VERSION = '0.9.0';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@texuli/spec",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "The schema-first blueprint contract: JSON schemas, the catalog vocabulary, deterministic TypeScript and Kotlin projections, and the conformance harness.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"svelte",
|