@ggts-sh/spec 0.43.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/LICENSE +21 -0
- package/README.md +75 -0
- package/dist/artifact.d.ts +11 -0
- package/dist/artifact.d.ts.map +1 -0
- package/dist/artifact.js +71 -0
- package/dist/artifact.js.map +1 -0
- package/dist/builder-core.d.ts +100 -0
- package/dist/builder-core.d.ts.map +1 -0
- package/dist/builder-core.js +176 -0
- package/dist/builder-core.js.map +1 -0
- package/dist/builder-data.d.ts +36 -0
- package/dist/builder-data.d.ts.map +1 -0
- package/dist/builder-data.js +123 -0
- package/dist/builder-data.js.map +1 -0
- package/dist/builder-geoms.d.ts +128 -0
- package/dist/builder-geoms.d.ts.map +1 -0
- package/dist/builder-geoms.js +221 -0
- package/dist/builder-geoms.js.map +1 -0
- package/dist/builder-options.d.ts +323 -0
- package/dist/builder-options.d.ts.map +1 -0
- package/dist/builder-options.js +2 -0
- package/dist/builder-options.js.map +1 -0
- package/dist/builder-scales.d.ts +160 -0
- package/dist/builder-scales.d.ts.map +1 -0
- package/dist/builder-scales.js +322 -0
- package/dist/builder-scales.js.map +1 -0
- package/dist/builder.d.ts +242 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +42 -0
- package/dist/builder.js.map +1 -0
- package/dist/capabilities-data.d.ts +72 -0
- package/dist/capabilities-data.d.ts.map +1 -0
- package/dist/capabilities-data.js +337 -0
- package/dist/capabilities-data.js.map +1 -0
- package/dist/capabilities-helpers.d.ts +31 -0
- package/dist/capabilities-helpers.d.ts.map +1 -0
- package/dist/capabilities-helpers.js +41 -0
- package/dist/capabilities-helpers.js.map +1 -0
- package/dist/capabilities.d.ts +22 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +154 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/coord-helpers.d.ts +102 -0
- package/dist/coord-helpers.d.ts.map +1 -0
- package/dist/coord-helpers.js +90 -0
- package/dist/coord-helpers.js.map +1 -0
- package/dist/coord-reference-build.d.ts +50 -0
- package/dist/coord-reference-build.d.ts.map +1 -0
- package/dist/coord-reference-build.js +211 -0
- package/dist/coord-reference-build.js.map +1 -0
- package/dist/coord-reference.d.ts +52 -0
- package/dist/coord-reference.d.ts.map +1 -0
- package/dist/coord-reference.js +27 -0
- package/dist/coord-reference.js.map +1 -0
- package/dist/error-catalog.d.ts +258 -0
- package/dist/error-catalog.d.ts.map +1 -0
- package/dist/error-catalog.js +235 -0
- package/dist/error-catalog.js.map +1 -0
- package/dist/error-prose-shared.d.ts +100 -0
- package/dist/error-prose-shared.d.ts.map +1 -0
- package/dist/error-prose-shared.js +95 -0
- package/dist/error-prose-shared.js.map +1 -0
- package/dist/errors.d.ts +39 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +52 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/coord-reference-data.d.ts +189 -0
- package/dist/generated/coord-reference-data.d.ts.map +1 -0
- package/dist/generated/coord-reference-data.js +212 -0
- package/dist/generated/coord-reference-data.js.map +1 -0
- package/dist/generated/geom-param-keys.d.ts +58 -0
- package/dist/generated/geom-param-keys.d.ts.map +1 -0
- package/dist/generated/geom-param-keys.js +223 -0
- package/dist/generated/geom-param-keys.js.map +1 -0
- package/dist/generated/geom-reference-data.d.ts +2377 -0
- package/dist/generated/geom-reference-data.d.ts.map +1 -0
- package/dist/generated/geom-reference-data.js +2790 -0
- package/dist/generated/geom-reference-data.js.map +1 -0
- package/dist/generated/guide-reference-data.d.ts +219 -0
- package/dist/generated/guide-reference-data.d.ts.map +1 -0
- package/dist/generated/guide-reference-data.js +253 -0
- package/dist/generated/guide-reference-data.js.map +1 -0
- package/dist/generated/plot-spec-validator.d.ts +2 -0
- package/dist/generated/plot-spec-validator.d.ts.map +1 -0
- package/dist/generated/plot-spec-validator.js +6274 -0
- package/dist/generated/plot-spec-validator.js.map +1 -0
- package/dist/generated/position-reference-data.d.ts +82 -0
- package/dist/generated/position-reference-data.d.ts.map +1 -0
- package/dist/generated/position-reference-data.js +181 -0
- package/dist/generated/position-reference-data.js.map +1 -0
- package/dist/generated/scale-reference-data.d.ts +8366 -0
- package/dist/generated/scale-reference-data.d.ts.map +1 -0
- package/dist/generated/scale-reference-data.js +9821 -0
- package/dist/generated/scale-reference-data.js.map +1 -0
- package/dist/generated/stat-reference-data.d.ts +241 -0
- package/dist/generated/stat-reference-data.d.ts.map +1 -0
- package/dist/generated/stat-reference-data.js +311 -0
- package/dist/generated/stat-reference-data.js.map +1 -0
- package/dist/geom-params-build.d.ts +3 -0
- package/dist/geom-params-build.d.ts.map +1 -0
- package/dist/geom-params-build.js +80 -0
- package/dist/geom-params-build.js.map +1 -0
- package/dist/geom-params.d.ts +13 -0
- package/dist/geom-params.d.ts.map +1 -0
- package/dist/geom-params.js +7 -0
- package/dist/geom-params.js.map +1 -0
- package/dist/geom-reference-build.d.ts +29 -0
- package/dist/geom-reference-build.d.ts.map +1 -0
- package/dist/geom-reference-build.js +221 -0
- package/dist/geom-reference-build.js.map +1 -0
- package/dist/geom-reference.d.ts +52 -0
- package/dist/geom-reference.d.ts.map +1 -0
- package/dist/geom-reference.js +72 -0
- package/dist/geom-reference.js.map +1 -0
- package/dist/guide-helpers.d.ts +20 -0
- package/dist/guide-helpers.d.ts.map +1 -0
- package/dist/guide-helpers.js +25 -0
- package/dist/guide-helpers.js.map +1 -0
- package/dist/guide-reference-build.d.ts +42 -0
- package/dist/guide-reference-build.d.ts.map +1 -0
- package/dist/guide-reference-build.js +180 -0
- package/dist/guide-reference-build.js.map +1 -0
- package/dist/guide-reference.d.ts +48 -0
- package/dist/guide-reference.d.ts.map +1 -0
- package/dist/guide-reference.js +32 -0
- package/dist/guide-reference.js.map +1 -0
- package/dist/hue-grey-palettes.d.ts +15 -0
- package/dist/hue-grey-palettes.d.ts.map +1 -0
- package/dist/hue-grey-palettes.js +77 -0
- package/dist/hue-grey-palettes.js.map +1 -0
- package/dist/index.d.ts +364 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +225 -0
- package/dist/index.js.map +1 -0
- package/dist/lint-catalog.d.ts +47 -0
- package/dist/lint-catalog.d.ts.map +1 -0
- package/dist/lint-catalog.js +39 -0
- package/dist/lint-catalog.js.map +1 -0
- package/dist/lint-layer-rules.d.ts +18 -0
- package/dist/lint-layer-rules.d.ts.map +1 -0
- package/dist/lint-layer-rules.js +145 -0
- package/dist/lint-layer-rules.js.map +1 -0
- package/dist/lint-scale-rules.d.ts +8 -0
- package/dist/lint-scale-rules.d.ts.map +1 -0
- package/dist/lint-scale-rules.js +254 -0
- package/dist/lint-scale-rules.js.map +1 -0
- package/dist/lint.d.ts +62 -0
- package/dist/lint.d.ts.map +1 -0
- package/dist/lint.js +57 -0
- package/dist/lint.js.map +1 -0
- package/dist/normalize-coord.d.ts +8 -0
- package/dist/normalize-coord.d.ts.map +1 -0
- package/dist/normalize-coord.js +123 -0
- package/dist/normalize-coord.js.map +1 -0
- package/dist/normalize-input-layers-marks.d.ts +208 -0
- package/dist/normalize-input-layers-marks.d.ts.map +1 -0
- package/dist/normalize-input-layers-marks.js +2 -0
- package/dist/normalize-input-layers-marks.js.map +1 -0
- package/dist/normalize-input-layers-special.d.ts +131 -0
- package/dist/normalize-input-layers-special.d.ts.map +1 -0
- package/dist/normalize-input-layers-special.js +2 -0
- package/dist/normalize-input-layers-special.js.map +1 -0
- package/dist/normalize-input.d.ts +81 -0
- package/dist/normalize-input.d.ts.map +1 -0
- package/dist/normalize-input.js +2 -0
- package/dist/normalize-input.js.map +1 -0
- package/dist/normalize-paint.d.ts +8 -0
- package/dist/normalize-paint.d.ts.map +1 -0
- package/dist/normalize-paint.js +83 -0
- package/dist/normalize-paint.js.map +1 -0
- package/dist/normalize-scales.d.ts +7 -0
- package/dist/normalize-scales.d.ts.map +1 -0
- package/dist/normalize-scales.js +90 -0
- package/dist/normalize-scales.js.map +1 -0
- package/dist/normalize.d.ts +46 -0
- package/dist/normalize.d.ts.map +1 -0
- package/dist/normalize.js +279 -0
- package/dist/normalize.js.map +1 -0
- package/dist/paint-helpers.d.ts +45 -0
- package/dist/paint-helpers.d.ts.map +1 -0
- package/dist/paint-helpers.js +48 -0
- package/dist/paint-helpers.js.map +1 -0
- package/dist/pipeline-error-catalog.d.ts +319 -0
- package/dist/pipeline-error-catalog.d.ts.map +1 -0
- package/dist/pipeline-error-catalog.js +260 -0
- package/dist/pipeline-error-catalog.js.map +1 -0
- package/dist/portability-check.d.ts +35 -0
- package/dist/portability-check.d.ts.map +1 -0
- package/dist/portability-check.js +121 -0
- package/dist/portability-check.js.map +1 -0
- package/dist/portability-lossy.d.ts +19 -0
- package/dist/portability-lossy.d.ts.map +1 -0
- package/dist/portability-lossy.js +65 -0
- package/dist/portability-lossy.js.map +1 -0
- package/dist/portability.d.ts +23 -0
- package/dist/portability.d.ts.map +1 -0
- package/dist/portability.js +23 -0
- package/dist/portability.js.map +1 -0
- package/dist/portable-builder.d.ts +215 -0
- package/dist/portable-builder.d.ts.map +1 -0
- package/dist/portable-builder.js +27 -0
- package/dist/portable-builder.js.map +1 -0
- package/dist/portable-entry.d.ts +16 -0
- package/dist/portable-entry.d.ts.map +1 -0
- package/dist/portable-entry.js +14 -0
- package/dist/portable-entry.js.map +1 -0
- package/dist/position-reference-build.d.ts +29 -0
- package/dist/position-reference-build.d.ts.map +1 -0
- package/dist/position-reference-build.js +115 -0
- package/dist/position-reference-build.js.map +1 -0
- package/dist/position-reference.d.ts +34 -0
- package/dist/position-reference.d.ts.map +1 -0
- package/dist/position-reference.js +19 -0
- package/dist/position-reference.js.map +1 -0
- package/dist/runtime.d.ts +139 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +2 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scale-color-helpers.d.ts +121 -0
- package/dist/scale-color-helpers.d.ts.map +1 -0
- package/dist/scale-color-helpers.js +188 -0
- package/dist/scale-color-helpers.js.map +1 -0
- package/dist/scale-color-hue-grey.d.ts +52 -0
- package/dist/scale-color-hue-grey.d.ts.map +1 -0
- package/dist/scale-color-hue-grey.js +60 -0
- package/dist/scale-color-hue-grey.js.map +1 -0
- package/dist/scale-color-stops.d.ts +85 -0
- package/dist/scale-color-stops.d.ts.map +1 -0
- package/dist/scale-color-stops.js +87 -0
- package/dist/scale-color-stops.js.map +1 -0
- package/dist/scale-color-viridis.d.ts +52 -0
- package/dist/scale-color-viridis.d.ts.map +1 -0
- package/dist/scale-color-viridis.js +68 -0
- package/dist/scale-color-viridis.js.map +1 -0
- package/dist/scale-helpers.d.ts +20 -0
- package/dist/scale-helpers.d.ts.map +1 -0
- package/dist/scale-helpers.js +20 -0
- package/dist/scale-helpers.js.map +1 -0
- package/dist/scale-multi-helpers.d.ts +61 -0
- package/dist/scale-multi-helpers.d.ts.map +1 -0
- package/dist/scale-multi-helpers.js +147 -0
- package/dist/scale-multi-helpers.js.map +1 -0
- package/dist/scale-position-helpers.d.ts +81 -0
- package/dist/scale-position-helpers.d.ts.map +1 -0
- package/dist/scale-position-helpers.js +133 -0
- package/dist/scale-position-helpers.js.map +1 -0
- package/dist/scale-reference-build.d.ts +50 -0
- package/dist/scale-reference-build.d.ts.map +1 -0
- package/dist/scale-reference-build.js +147 -0
- package/dist/scale-reference-build.js.map +1 -0
- package/dist/scale-reference-classify-color.d.ts +11 -0
- package/dist/scale-reference-classify-color.d.ts.map +1 -0
- package/dist/scale-reference-classify-color.js +292 -0
- package/dist/scale-reference-classify-color.js.map +1 -0
- package/dist/scale-reference-classify-position.d.ts +10 -0
- package/dist/scale-reference-classify-position.d.ts.map +1 -0
- package/dist/scale-reference-classify-position.js +137 -0
- package/dist/scale-reference-classify-position.js.map +1 -0
- package/dist/scale-reference-classify-style.d.ts +10 -0
- package/dist/scale-reference-classify-style.d.ts.map +1 -0
- package/dist/scale-reference-classify-style.js +194 -0
- package/dist/scale-reference-classify-style.js.map +1 -0
- package/dist/scale-reference-classify-support.d.ts +37 -0
- package/dist/scale-reference-classify-support.d.ts.map +1 -0
- package/dist/scale-reference-classify-support.js +206 -0
- package/dist/scale-reference-classify-support.js.map +1 -0
- package/dist/scale-reference.d.ts +80 -0
- package/dist/scale-reference.d.ts.map +1 -0
- package/dist/scale-reference.js +85 -0
- package/dist/scale-reference.js.map +1 -0
- package/dist/scale-style-helpers.d.ts +158 -0
- package/dist/scale-style-helpers.d.ts.map +1 -0
- package/dist/scale-style-helpers.js +197 -0
- package/dist/scale-style-helpers.js.map +1 -0
- package/dist/schema-catalog.d.ts +62 -0
- package/dist/schema-catalog.d.ts.map +1 -0
- package/dist/schema-catalog.js +208 -0
- package/dist/schema-catalog.js.map +1 -0
- package/dist/schema-declarations.d.ts +1585 -0
- package/dist/schema-declarations.d.ts.map +1 -0
- package/dist/schema-declarations.js +51 -0
- package/dist/schema-declarations.js.map +1 -0
- package/dist/schema-decls-data.d.ts +58 -0
- package/dist/schema-decls-data.d.ts.map +1 -0
- package/dist/schema-decls-data.js +151 -0
- package/dist/schema-decls-data.js.map +1 -0
- package/dist/schema-decls-guides-theme.d.ts +166 -0
- package/dist/schema-decls-guides-theme.d.ts.map +1 -0
- package/dist/schema-decls-guides-theme.js +251 -0
- package/dist/schema-decls-guides-theme.js.map +1 -0
- package/dist/schema-decls-layers-col-boxplot.d.ts +118 -0
- package/dist/schema-decls-layers-col-boxplot.d.ts.map +1 -0
- package/dist/schema-decls-layers-col-boxplot.js +239 -0
- package/dist/schema-decls-layers-col-boxplot.js.map +1 -0
- package/dist/schema-decls-layers-count-pointrange.d.ts +89 -0
- package/dist/schema-decls-layers-count-pointrange.d.ts.map +1 -0
- package/dist/schema-decls-layers-count-pointrange.js +190 -0
- package/dist/schema-decls-layers-count-pointrange.js.map +1 -0
- package/dist/schema-decls-layers-crossbar-jitter.d.ts +129 -0
- package/dist/schema-decls-layers-crossbar-jitter.d.ts.map +1 -0
- package/dist/schema-decls-layers-crossbar-jitter.js +255 -0
- package/dist/schema-decls-layers-crossbar-jitter.js.map +1 -0
- package/dist/schema-decls-layers-point-path.d.ts +49 -0
- package/dist/schema-decls-layers-point-path.d.ts.map +1 -0
- package/dist/schema-decls-layers-point-path.js +156 -0
- package/dist/schema-decls-layers-point-path.js.map +1 -0
- package/dist/schema-decls-layers-sf-blank.d.ts +89 -0
- package/dist/schema-decls-layers-sf-blank.d.ts.map +1 -0
- package/dist/schema-decls-layers-sf-blank.js +254 -0
- package/dist/schema-decls-layers-sf-blank.js.map +1 -0
- package/dist/schema-decls-layers-text-map.d.ts +80 -0
- package/dist/schema-decls-layers-text-map.d.ts.map +1 -0
- package/dist/schema-decls-layers-text-map.js +151 -0
- package/dist/schema-decls-layers-text-map.js.map +1 -0
- package/dist/schema-decls-paint.d.ts +39 -0
- package/dist/schema-decls-paint.d.ts.map +1 -0
- package/dist/schema-decls-paint.js +95 -0
- package/dist/schema-decls-paint.js.map +1 -0
- package/dist/schema-decls-params-area-abline.d.ts +85 -0
- package/dist/schema-decls-params-area-abline.d.ts.map +1 -0
- package/dist/schema-decls-params-area-abline.js +259 -0
- package/dist/schema-decls-params-area-abline.js.map +1 -0
- package/dist/schema-decls-params-col-contour.d.ts +61 -0
- package/dist/schema-decls-params-col-contour.d.ts.map +1 -0
- package/dist/schema-decls-params-col-contour.js +202 -0
- package/dist/schema-decls-params-col-contour.js.map +1 -0
- package/dist/schema-decls-params-curve-label.d.ts +64 -0
- package/dist/schema-decls-params-curve-label.d.ts.map +1 -0
- package/dist/schema-decls-params-curve-label.js +204 -0
- package/dist/schema-decls-params-curve-label.js.map +1 -0
- package/dist/schema-decls-params-errorbar-position.d.ts +83 -0
- package/dist/schema-decls-params-errorbar-position.d.ts.map +1 -0
- package/dist/schema-decls-params-errorbar-position.js +264 -0
- package/dist/schema-decls-params-errorbar-position.js.map +1 -0
- package/dist/schema-decls-params-point-path.d.ts +61 -0
- package/dist/schema-decls-params-point-path.d.ts.map +1 -0
- package/dist/schema-decls-params-point-path.js +240 -0
- package/dist/schema-decls-params-point-path.js.map +1 -0
- package/dist/schema-decls-params-violin-summary.d.ts +78 -0
- package/dist/schema-decls-params-violin-summary.d.ts.map +1 -0
- package/dist/schema-decls-params-violin-summary.js +272 -0
- package/dist/schema-decls-params-violin-summary.js.map +1 -0
- package/dist/schema-decls-plot.d.ts +80 -0
- package/dist/schema-decls-plot.d.ts.map +1 -0
- package/dist/schema-decls-plot.js +222 -0
- package/dist/schema-decls-plot.js.map +1 -0
- package/dist/schema-decls-scales-guides.d.ts +291 -0
- package/dist/schema-decls-scales-guides.d.ts.map +1 -0
- package/dist/schema-decls-scales-guides.js +189 -0
- package/dist/schema-decls-scales-guides.js.map +1 -0
- package/dist/schema-decls-scales.d.ts +124 -0
- package/dist/schema-decls-scales.d.ts.map +1 -0
- package/dist/schema-decls-scales.js +279 -0
- package/dist/schema-decls-scales.js.map +1 -0
- package/dist/schema-imports.d.ts +1679 -0
- package/dist/schema-imports.d.ts.map +1 -0
- package/dist/schema-imports.js +104 -0
- package/dist/schema-imports.js.map +1 -0
- package/dist/schema-name-schemas.d.ts +18 -0
- package/dist/schema-name-schemas.d.ts.map +1 -0
- package/dist/schema-name-schemas.js +13 -0
- package/dist/schema-name-schemas.js.map +1 -0
- package/dist/schema-names.d.ts +53 -0
- package/dist/schema-names.d.ts.map +1 -0
- package/dist/schema-names.js +229 -0
- package/dist/schema-names.js.map +1 -0
- package/dist/schema-types.d.ts +336 -0
- package/dist/schema-types.d.ts.map +1 -0
- package/dist/schema-types.js +10 -0
- package/dist/schema-types.js.map +1 -0
- package/dist/schema.d.ts +38 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +34 -0
- package/dist/schema.js.map +1 -0
- package/dist/stat-reference-build.d.ts +24 -0
- package/dist/stat-reference-build.d.ts.map +1 -0
- package/dist/stat-reference-build.js +86 -0
- package/dist/stat-reference-build.js.map +1 -0
- package/dist/stat-reference.d.ts +33 -0
- package/dist/stat-reference.d.ts.map +1 -0
- package/dist/stat-reference.js +19 -0
- package/dist/stat-reference.js.map +1 -0
- package/dist/structural-gate.d.ts +15 -0
- package/dist/structural-gate.d.ts.map +1 -0
- package/dist/structural-gate.js +34 -0
- package/dist/structural-gate.js.map +1 -0
- package/dist/temporal-column.d.ts +33 -0
- package/dist/temporal-column.d.ts.map +1 -0
- package/dist/temporal-column.js +247 -0
- package/dist/temporal-column.js.map +1 -0
- package/dist/temporal-guides.d.ts +11 -0
- package/dist/temporal-guides.d.ts.map +1 -0
- package/dist/temporal-guides.js +11 -0
- package/dist/temporal-guides.js.map +1 -0
- package/dist/temporal-interval-schema.d.ts +9 -0
- package/dist/temporal-interval-schema.d.ts.map +1 -0
- package/dist/temporal-interval-schema.js +25 -0
- package/dist/temporal-interval-schema.js.map +1 -0
- package/dist/temporal-interval.d.ts +29 -0
- package/dist/temporal-interval.d.ts.map +1 -0
- package/dist/temporal-interval.js +122 -0
- package/dist/temporal-interval.js.map +1 -0
- package/dist/temporal-parse-core.d.ts +96 -0
- package/dist/temporal-parse-core.d.ts.map +1 -0
- package/dist/temporal-parse-core.js +235 -0
- package/dist/temporal-parse-core.js.map +1 -0
- package/dist/temporal-parse-format.d.ts +13 -0
- package/dist/temporal-parse-format.d.ts.map +1 -0
- package/dist/temporal-parse-format.js +180 -0
- package/dist/temporal-parse-format.js.map +1 -0
- package/dist/temporal-parse-schema.d.ts +11 -0
- package/dist/temporal-parse-schema.d.ts.map +1 -0
- package/dist/temporal-parse-schema.js +23 -0
- package/dist/temporal-parse-schema.js.map +1 -0
- package/dist/temporal-parse.d.ts +18 -0
- package/dist/temporal-parse.d.ts.map +1 -0
- package/dist/temporal-parse.js +183 -0
- package/dist/temporal-parse.js.map +1 -0
- package/dist/temporal-polyfill.d.ts +3 -0
- package/dist/temporal-polyfill.d.ts.map +1 -0
- package/dist/temporal-polyfill.js +25 -0
- package/dist/temporal-polyfill.js.map +1 -0
- package/dist/temporal-ticks.d.ts +20 -0
- package/dist/temporal-ticks.d.ts.map +1 -0
- package/dist/temporal-ticks.js +246 -0
- package/dist/temporal-ticks.js.map +1 -0
- package/dist/temporal.d.ts +109 -0
- package/dist/temporal.d.ts.map +1 -0
- package/dist/temporal.js +73 -0
- package/dist/temporal.js.map +1 -0
- package/dist/validate-data-checks-color-temporal.d.ts +58 -0
- package/dist/validate-data-checks-color-temporal.d.ts.map +1 -0
- package/dist/validate-data-checks-color-temporal.js +168 -0
- package/dist/validate-data-checks-color-temporal.js.map +1 -0
- package/dist/validate-data-checks-color.d.ts +28 -0
- package/dist/validate-data-checks-color.d.ts.map +1 -0
- package/dist/validate-data-checks-color.js +296 -0
- package/dist/validate-data-checks-color.js.map +1 -0
- package/dist/validate-data-checks-layer.d.ts +37 -0
- package/dist/validate-data-checks-layer.d.ts.map +1 -0
- package/dist/validate-data-checks-layer.js +343 -0
- package/dist/validate-data-checks-layer.js.map +1 -0
- package/dist/validate-data-checks-position.d.ts +45 -0
- package/dist/validate-data-checks-position.d.ts.map +1 -0
- package/dist/validate-data-checks-position.js +204 -0
- package/dist/validate-data-checks-position.js.map +1 -0
- package/dist/validate-data-checks-style-finite.d.ts +24 -0
- package/dist/validate-data-checks-style-finite.d.ts.map +1 -0
- package/dist/validate-data-checks-style-finite.js +40 -0
- package/dist/validate-data-checks-style-finite.js.map +1 -0
- package/dist/validate-data-checks-style-numeric.d.ts +26 -0
- package/dist/validate-data-checks-style-numeric.d.ts.map +1 -0
- package/dist/validate-data-checks-style-numeric.js +327 -0
- package/dist/validate-data-checks-style-numeric.js.map +1 -0
- package/dist/validate-data-checks-style.d.ts +14 -0
- package/dist/validate-data-checks-style.d.ts.map +1 -0
- package/dist/validate-data-checks-style.js +14 -0
- package/dist/validate-data-checks-style.js.map +1 -0
- package/dist/validate-data-checks-temporal.d.ts +57 -0
- package/dist/validate-data-checks-temporal.d.ts.map +1 -0
- package/dist/validate-data-checks-temporal.js +83 -0
- package/dist/validate-data-checks-temporal.js.map +1 -0
- package/dist/validate-data-checks.d.ts +31 -0
- package/dist/validate-data-checks.d.ts.map +1 -0
- package/dist/validate-data-checks.js +110 -0
- package/dist/validate-data-checks.js.map +1 -0
- package/dist/validate-data-evidence.d.ts +69 -0
- package/dist/validate-data-evidence.d.ts.map +1 -0
- package/dist/validate-data-evidence.js +329 -0
- package/dist/validate-data-evidence.js.map +1 -0
- package/dist/validate-data.d.ts +73 -0
- package/dist/validate-data.d.ts.map +1 -0
- package/dist/validate-data.js +30 -0
- package/dist/validate-data.js.map +1 -0
- package/dist/validate-map-errors.d.ts +32 -0
- package/dist/validate-map-errors.d.ts.map +1 -0
- package/dist/validate-map-errors.js +76 -0
- package/dist/validate-map-errors.js.map +1 -0
- package/dist/validate-map-forms.d.ts +43 -0
- package/dist/validate-map-forms.d.ts.map +1 -0
- package/dist/validate-map-forms.js +125 -0
- package/dist/validate-map-forms.js.map +1 -0
- package/dist/validate-map-path-keywords.d.ts +11 -0
- package/dist/validate-map-path-keywords.d.ts.map +1 -0
- package/dist/validate-map-path-keywords.js +95 -0
- package/dist/validate-map-path-keywords.js.map +1 -0
- package/dist/validate-map-path-unions.d.ts +27 -0
- package/dist/validate-map-path-unions.d.ts.map +1 -0
- package/dist/validate-map-path-unions.js +200 -0
- package/dist/validate-map-path-unions.js.map +1 -0
- package/dist/validate-schema-shape.d.ts +69 -0
- package/dist/validate-schema-shape.d.ts.map +1 -0
- package/dist/validate-schema-shape.js +156 -0
- package/dist/validate-schema-shape.js.map +1 -0
- package/dist/validate-schema-walk.d.ts +34 -0
- package/dist/validate-schema-walk.d.ts.map +1 -0
- package/dist/validate-schema-walk.js +216 -0
- package/dist/validate-schema-walk.js.map +1 -0
- package/dist/validate-structure-facet.d.ts +8 -0
- package/dist/validate-structure-facet.d.ts.map +1 -0
- package/dist/validate-structure-facet.js +67 -0
- package/dist/validate-structure-facet.js.map +1 -0
- package/dist/validate-structure-layer-computed-y.d.ts +14 -0
- package/dist/validate-structure-layer-computed-y.d.ts.map +1 -0
- package/dist/validate-structure-layer-computed-y.js +70 -0
- package/dist/validate-structure-layer-computed-y.js.map +1 -0
- package/dist/validate-structure-layer-ribbon.d.ts +8 -0
- package/dist/validate-structure-layer-ribbon.d.ts.map +1 -0
- package/dist/validate-structure-layer-ribbon.js +36 -0
- package/dist/validate-structure-layer-ribbon.js.map +1 -0
- package/dist/validate-structure-layer-rule.d.ts +14 -0
- package/dist/validate-structure-layer-rule.d.ts.map +1 -0
- package/dist/validate-structure-layer-rule.js +90 -0
- package/dist/validate-structure-layer-rule.js.map +1 -0
- package/dist/validate-structure-layer-shared.d.ts +12 -0
- package/dist/validate-structure-layer-shared.d.ts.map +1 -0
- package/dist/validate-structure-layer-shared.js +17 -0
- package/dist/validate-structure-layer-shared.js.map +1 -0
- package/dist/validate-structure-layers.d.ts +12 -0
- package/dist/validate-structure-layers.d.ts.map +1 -0
- package/dist/validate-structure-layers.js +292 -0
- package/dist/validate-structure-layers.js.map +1 -0
- package/dist/validate-structure-paint.d.ts +12 -0
- package/dist/validate-structure-paint.d.ts.map +1 -0
- package/dist/validate-structure-paint.js +87 -0
- package/dist/validate-structure-paint.js.map +1 -0
- package/dist/validate-structure-scales.d.ts +10 -0
- package/dist/validate-structure-scales.d.ts.map +1 -0
- package/dist/validate-structure-scales.js +242 -0
- package/dist/validate-structure-scales.js.map +1 -0
- package/dist/validate-structure-style-bins.d.ts +17 -0
- package/dist/validate-structure-style-bins.d.ts.map +1 -0
- package/dist/validate-structure-style-bins.js +150 -0
- package/dist/validate-structure-style-bins.js.map +1 -0
- package/dist/validate-structure.d.ts +16 -0
- package/dist/validate-structure.d.ts.map +1 -0
- package/dist/validate-structure.js +16 -0
- package/dist/validate-structure.js.map +1 -0
- package/dist/validate.d.ts +24 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +178 -0
- package/dist/validate.js.map +1 -0
- package/package.json +59 -0
- package/schema/v0.json +9618 -0
- package/src/artifact.ts +81 -0
- package/src/builder-core.ts +276 -0
- package/src/builder-data.ts +156 -0
- package/src/builder-geoms.ts +290 -0
- package/src/builder-options.ts +428 -0
- package/src/builder-scales.ts +443 -0
- package/src/builder.ts +125 -0
- package/src/capabilities-data.ts +336 -0
- package/src/capabilities-helpers.ts +54 -0
- package/src/capabilities.ts +159 -0
- package/src/coord-helpers.ts +177 -0
- package/src/coord-reference-build.ts +283 -0
- package/src/coord-reference.ts +75 -0
- package/src/error-catalog.ts +253 -0
- package/src/error-prose-shared.ts +106 -0
- package/src/errors.ts +87 -0
- package/src/generated/coord-reference-data.ts +235 -0
- package/src/generated/geom-param-keys.ts +222 -0
- package/src/generated/geom-reference-data.ts +3024 -0
- package/src/generated/guide-reference-data.ts +284 -0
- package/src/generated/plot-spec-validator.ts +7335 -0
- package/src/generated/position-reference-data.ts +191 -0
- package/src/generated/scale-reference-data.ts +10665 -0
- package/src/generated/stat-reference-data.ts +339 -0
- package/src/geom-params-build.ts +92 -0
- package/src/geom-params.ts +14 -0
- package/src/geom-reference-build.ts +292 -0
- package/src/geom-reference.ts +127 -0
- package/src/guide-helpers.ts +44 -0
- package/src/guide-reference-build.ts +249 -0
- package/src/guide-reference.ts +76 -0
- package/src/hue-grey-palettes.ts +82 -0
- package/src/index.ts +400 -0
- package/src/lint-catalog.ts +57 -0
- package/src/lint-layer-rules.ts +175 -0
- package/src/lint-scale-rules.ts +285 -0
- package/src/lint.ts +126 -0
- package/src/normalize-coord.ts +126 -0
- package/src/normalize-input-layers-marks.ts +276 -0
- package/src/normalize-input-layers-special.ts +252 -0
- package/src/normalize-input.ts +154 -0
- package/src/normalize-paint.ts +98 -0
- package/src/normalize-scales.ts +108 -0
- package/src/normalize.ts +403 -0
- package/src/paint-helpers.ts +98 -0
- package/src/pipeline-error-catalog.ts +278 -0
- package/src/portability-check.ts +155 -0
- package/src/portability-lossy.ts +81 -0
- package/src/portability.ts +31 -0
- package/src/portable-builder.ts +35 -0
- package/src/portable-entry.ts +37 -0
- package/src/position-reference-build.ts +164 -0
- package/src/position-reference.ts +41 -0
- package/src/runtime.ts +198 -0
- package/src/scale-color-helpers.ts +263 -0
- package/src/scale-color-hue-grey.ts +95 -0
- package/src/scale-color-stops.ts +177 -0
- package/src/scale-color-viridis.ts +99 -0
- package/src/scale-helpers.ts +264 -0
- package/src/scale-multi-helpers.ts +220 -0
- package/src/scale-position-helpers.ts +231 -0
- package/src/scale-reference-build.ts +222 -0
- package/src/scale-reference-classify-color.ts +334 -0
- package/src/scale-reference-classify-position.ts +164 -0
- package/src/scale-reference-classify-style.ts +229 -0
- package/src/scale-reference-classify-support.ts +298 -0
- package/src/scale-reference.ts +165 -0
- package/src/scale-style-helpers.ts +316 -0
- package/src/schema-catalog.ts +222 -0
- package/src/schema-declarations.ts +51 -0
- package/src/schema-decls-data.ts +272 -0
- package/src/schema-decls-guides-theme.ts +395 -0
- package/src/schema-decls-layers-col-boxplot.ts +410 -0
- package/src/schema-decls-layers-count-pointrange.ts +321 -0
- package/src/schema-decls-layers-crossbar-jitter.ts +443 -0
- package/src/schema-decls-layers-point-path.ts +246 -0
- package/src/schema-decls-layers-sf-blank.ts +408 -0
- package/src/schema-decls-layers-text-map.ts +259 -0
- package/src/schema-decls-paint.ts +124 -0
- package/src/schema-decls-params-area-abline.ts +440 -0
- package/src/schema-decls-params-col-contour.ts +333 -0
- package/src/schema-decls-params-curve-label.ts +343 -0
- package/src/schema-decls-params-errorbar-position.ts +446 -0
- package/src/schema-decls-params-point-path.ts +394 -0
- package/src/schema-decls-params-violin-summary.ts +447 -0
- package/src/schema-decls-plot.ts +385 -0
- package/src/schema-decls-scales-guides.ts +233 -0
- package/src/schema-decls-scales.ts +432 -0
- package/src/schema-imports.ts +116 -0
- package/src/schema-name-schemas.ts +37 -0
- package/src/schema-names.ts +243 -0
- package/src/schema-types.ts +400 -0
- package/src/schema.ts +287 -0
- package/src/stat-reference-build.ts +145 -0
- package/src/stat-reference.ts +38 -0
- package/src/structural-gate.ts +42 -0
- package/src/temporal-column.ts +323 -0
- package/src/temporal-guides.ts +32 -0
- package/src/temporal-interval-schema.ts +40 -0
- package/src/temporal-interval.ts +151 -0
- package/src/temporal-parse-core.ts +331 -0
- package/src/temporal-parse-format.ts +222 -0
- package/src/temporal-parse-schema.ts +38 -0
- package/src/temporal-parse.ts +259 -0
- package/src/temporal-polyfill.ts +27 -0
- package/src/temporal-ticks.ts +312 -0
- package/src/temporal.ts +112 -0
- package/src/validate-data-checks-color-temporal.ts +261 -0
- package/src/validate-data-checks-color.ts +395 -0
- package/src/validate-data-checks-layer.ts +492 -0
- package/src/validate-data-checks-position.ts +275 -0
- package/src/validate-data-checks-style-finite.ts +55 -0
- package/src/validate-data-checks-style-numeric.ts +455 -0
- package/src/validate-data-checks-style.ts +13 -0
- package/src/validate-data-checks-temporal.ts +129 -0
- package/src/validate-data-checks.ts +157 -0
- package/src/validate-data-evidence.ts +419 -0
- package/src/validate-data.ts +114 -0
- package/src/validate-map-errors.ts +126 -0
- package/src/validate-map-forms.ts +148 -0
- package/src/validate-map-path-keywords.ts +129 -0
- package/src/validate-map-path-unions.ts +281 -0
- package/src/validate-schema-shape.ts +232 -0
- package/src/validate-schema-walk.ts +219 -0
- package/src/validate-structure-facet.ts +76 -0
- package/src/validate-structure-layer-computed-y.ts +94 -0
- package/src/validate-structure-layer-ribbon.ts +61 -0
- package/src/validate-structure-layer-rule.ts +98 -0
- package/src/validate-structure-layer-shared.ts +29 -0
- package/src/validate-structure-layers.ts +395 -0
- package/src/validate-structure-paint.ts +101 -0
- package/src/validate-structure-scales.ts +278 -0
- package/src/validate-structure-style-bins.ts +167 -0
- package/src/validate-structure.ts +16 -0
- package/src/validate.ts +212 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stat-reference.d.ts","sourceRoot":"","sources":["../src/stat-reference.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAe,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGhF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,iDAAiD;IACjD,QAAQ,CAAC,eAAe,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,eAAe,EAAE,SAAS,QAAQ,EAAE,CAAC;CAC/C;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAuB,CAAC;AAElG,8EAA8E;AAC9E,wBAAgB,iBAAiB,IAAI,SAAS,kBAAkB,EAAE,CAEjE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* STAT_REFERENCE — per-stat API docs for the docs site.
|
|
3
|
+
*
|
|
4
|
+
* Catalog data is precomputed (`scripts/gen-reference-catalogs.ts`) so
|
|
5
|
+
* reference pages never load TypeBox or the validate data-checks path.
|
|
6
|
+
* Stats are not Svelte components: set `stat` on a `<Geom*>` shell or JSON layer.
|
|
7
|
+
*/
|
|
8
|
+
import { KNOWN_STATS } from "./schema-catalog.js";
|
|
9
|
+
import { STAT_REFERENCE_DATA } from "./generated/stat-reference-data.js";
|
|
10
|
+
/**
|
|
11
|
+
* Complete per-stat API reference. Keys are exactly KNOWN_STATS.
|
|
12
|
+
* Precomputed at gen time from GEOM_REFERENCE + STAT_COLUMNS.
|
|
13
|
+
*/
|
|
14
|
+
export const STAT_REFERENCE = STAT_REFERENCE_DATA;
|
|
15
|
+
/** Stable list order matching KNOWN_STATS (docs index, search, inventory). */
|
|
16
|
+
export function statReferenceList() {
|
|
17
|
+
return KNOWN_STATS.map((stat) => STAT_REFERENCE[stat]);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=stat-reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stat-reference.js","sourceRoot":"","sources":["../src/stat-reference.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,WAAW,EAAgC,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAoBzE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAmD,mBAAmB,CAAC;AAElG,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeBox-free structural gates that always ran after schema shape success in
|
|
3
|
+
* validate(). Kept on the render path so pipeline/assemble drop only the
|
|
4
|
+
* Compile(PlotSpecSchema) tier, not color-scheme / binned-style / guide /
|
|
5
|
+
* coord-facet checks.
|
|
6
|
+
*/
|
|
7
|
+
import { type SpecError } from "./errors.js";
|
|
8
|
+
/**
|
|
9
|
+
* Unconditional structural diagnostics from validate() (pre tier-2 options).
|
|
10
|
+
* Safe to call without TypeBox / schema-declarations.
|
|
11
|
+
*/
|
|
12
|
+
export declare function structuralGateErrors(input: unknown): SpecError[];
|
|
13
|
+
/** Throw SpecValidationError when structuralGateErrors is non-empty. */
|
|
14
|
+
export declare function assertStructuralGate(input: unknown): void;
|
|
15
|
+
//# sourceMappingURL=structural-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structural-gate.d.ts","sourceRoot":"","sources":["../src/structural-gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAYlE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,CAahE;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAGzD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeBox-free structural gates that always ran after schema shape success in
|
|
3
|
+
* validate(). Kept on the render path so pipeline/assemble drop only the
|
|
4
|
+
* Compile(PlotSpecSchema) tier, not color-scheme / binned-style / guide /
|
|
5
|
+
* coord-facet checks.
|
|
6
|
+
*/
|
|
7
|
+
import { SpecValidationError } from "./errors.js";
|
|
8
|
+
import { binnedStyleScaleStructuralErrors, colorScaleStructuralErrors, coordFacetStructuralErrors, guideStructuralErrors, } from "./validate-structure.js";
|
|
9
|
+
function isRecord(v) {
|
|
10
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Unconditional structural diagnostics from validate() (pre tier-2 options).
|
|
14
|
+
* Safe to call without TypeBox / schema-declarations.
|
|
15
|
+
*/
|
|
16
|
+
export function structuralGateErrors(input) {
|
|
17
|
+
if (!isRecord(input))
|
|
18
|
+
return [];
|
|
19
|
+
const errors = [];
|
|
20
|
+
if (isRecord(input["scales"])) {
|
|
21
|
+
errors.push(...colorScaleStructuralErrors(input["scales"]), ...binnedStyleScaleStructuralErrors(input["scales"]));
|
|
22
|
+
}
|
|
23
|
+
const guides = isRecord(input["guides"]) ? input["guides"] : {};
|
|
24
|
+
const scales = isRecord(input["scales"]) ? input["scales"] : undefined;
|
|
25
|
+
errors.push(...guideStructuralErrors(guides, scales), ...coordFacetStructuralErrors(input));
|
|
26
|
+
return errors;
|
|
27
|
+
}
|
|
28
|
+
/** Throw SpecValidationError when structuralGateErrors is non-empty. */
|
|
29
|
+
export function assertStructuralGate(input) {
|
|
30
|
+
const errors = structuralGateErrors(input);
|
|
31
|
+
if (errors.length > 0)
|
|
32
|
+
throw new SpecValidationError(errors);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=structural-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structural-gate.js","sourceRoot":"","sources":["../src/structural-gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAkB,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CACT,GAAG,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC9C,GAAG,gCAAgC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CACrD,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column-level temporal inference and materialization.
|
|
3
|
+
*
|
|
4
|
+
* Classifies whole columns (auto parser selection + whole-column validation)
|
|
5
|
+
* and builds semantic/valid arrays. Value-level engines live in temporal-parse.ts.
|
|
6
|
+
*/
|
|
7
|
+
import { type TemporalKind, type TemporalParseOptions, type TemporalParserSpec, type TemporalPrecision } from "./temporal-parse.js";
|
|
8
|
+
export interface TemporalFailure {
|
|
9
|
+
index: number;
|
|
10
|
+
value: string | number | boolean | null;
|
|
11
|
+
reason: string;
|
|
12
|
+
}
|
|
13
|
+
export interface TemporalDecision {
|
|
14
|
+
status: "temporal" | "nominal" | "ambiguous" | "invalid";
|
|
15
|
+
parser: string | null;
|
|
16
|
+
parserKey: string;
|
|
17
|
+
kind: TemporalKind | null;
|
|
18
|
+
precision: TemporalPrecision | null;
|
|
19
|
+
evidence: readonly (string | number | boolean | null)[];
|
|
20
|
+
nonNullCount: number;
|
|
21
|
+
validatedCount: number;
|
|
22
|
+
failedCount: number;
|
|
23
|
+
candidates: readonly string[];
|
|
24
|
+
failures?: readonly TemporalFailure[];
|
|
25
|
+
}
|
|
26
|
+
export interface ParsedTemporalColumn {
|
|
27
|
+
decision: TemporalDecision;
|
|
28
|
+
semantic: Float64Array;
|
|
29
|
+
valid: Uint8Array;
|
|
30
|
+
}
|
|
31
|
+
export declare function inferTemporalColumn(values: readonly unknown[], options?: TemporalParseOptions): TemporalDecision;
|
|
32
|
+
export declare function parseTemporalColumn(values: readonly unknown[], parser?: TemporalParserSpec | "auto", options?: TemporalParseOptions): ParsedTemporalColumn;
|
|
33
|
+
//# sourceMappingURL=temporal-column.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-column.d.ts","sourceRoot":"","sources":["../src/temporal-column.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAEzB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IACzD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;CACnB;AAiND,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,OAAO,GAAE,oBAAyB,GACjC,gBAAgB,CAElB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,MAAM,GAAE,kBAAkB,GAAG,MAAe,EAC5C,OAAO,GAAE,oBAAyB,GACjC,oBAAoB,CA0DtB"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column-level temporal inference and materialization.
|
|
3
|
+
*
|
|
4
|
+
* Classifies whole columns (auto parser selection + whole-column validation)
|
|
5
|
+
* and builds semantic/valid arrays. Value-level engines live in temporal-parse.ts.
|
|
6
|
+
*/
|
|
7
|
+
import { DATE_ORDERS, TEMPORAL_PARSER_NAMES, canonicalTemporalParserKey, parseTemporal, temporalParseFailure, } from "./temporal-parse.js";
|
|
8
|
+
const PRECISION_RANK = {
|
|
9
|
+
year: 0,
|
|
10
|
+
quarter: 1,
|
|
11
|
+
month: 2,
|
|
12
|
+
date: 3,
|
|
13
|
+
minute: 4,
|
|
14
|
+
second: 5,
|
|
15
|
+
millisecond: 6,
|
|
16
|
+
};
|
|
17
|
+
function finestPrecision(current, candidate) {
|
|
18
|
+
return current === null || PRECISION_RANK[candidate] > PRECISION_RANK[current]
|
|
19
|
+
? candidate
|
|
20
|
+
: current;
|
|
21
|
+
}
|
|
22
|
+
function evidenceValue(value) {
|
|
23
|
+
if (value instanceof Date)
|
|
24
|
+
return Number.isFinite(value.getTime()) ? value.toISOString() : "Invalid Date";
|
|
25
|
+
if (typeof value === "string" ||
|
|
26
|
+
typeof value === "number" ||
|
|
27
|
+
typeof value === "boolean" ||
|
|
28
|
+
value === null) {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
if (typeof value === "bigint")
|
|
32
|
+
return value.toString();
|
|
33
|
+
return JSON.stringify(value) ?? "unsupported value";
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* One full-column pass: non-null count, full-column number/boolean detection
|
|
37
|
+
* (not sample-relative), and a representative sample of at most 64 non-null
|
|
38
|
+
* values (all when ≤64; otherwise first 32 + last 32). Avoids allocating an
|
|
39
|
+
* O(n) non-null array just to take a bounded sample.
|
|
40
|
+
*/
|
|
41
|
+
function analyzeNonNull(values) {
|
|
42
|
+
let nonNullCount = 0;
|
|
43
|
+
let sawNumberOrBoolean = false;
|
|
44
|
+
const head = [];
|
|
45
|
+
const ring = Array.from({ length: 32 });
|
|
46
|
+
let ringWrite = 0;
|
|
47
|
+
let ringLen = 0;
|
|
48
|
+
for (const value of values) {
|
|
49
|
+
if (value === null || value === undefined)
|
|
50
|
+
continue;
|
|
51
|
+
nonNullCount++;
|
|
52
|
+
if (typeof value === "number" || typeof value === "boolean")
|
|
53
|
+
sawNumberOrBoolean = true;
|
|
54
|
+
if (head.length < 64)
|
|
55
|
+
head.push(value);
|
|
56
|
+
ring[ringWrite] = value;
|
|
57
|
+
ringWrite = (ringWrite + 1) % 32;
|
|
58
|
+
if (ringLen < 32)
|
|
59
|
+
ringLen++;
|
|
60
|
+
}
|
|
61
|
+
if (nonNullCount <= 64) {
|
|
62
|
+
return { sample: head, nonNullCount, sawNumberOrBoolean };
|
|
63
|
+
}
|
|
64
|
+
const first = head.slice(0, 32);
|
|
65
|
+
const last = [];
|
|
66
|
+
// When full, ringWrite points at the oldest slot.
|
|
67
|
+
for (let i = 0; i < 32; i++)
|
|
68
|
+
last.push(ring[(ringWrite + i) % 32]);
|
|
69
|
+
return { sample: [...first, ...last], nonNullCount, sawNumberOrBoolean };
|
|
70
|
+
}
|
|
71
|
+
const AUTO_ORDERED_PARSERS = TEMPORAL_PARSER_NAMES.filter((parser) => DATE_ORDERS.has(parser.split("_")[0]));
|
|
72
|
+
function candidateParsers(sample, options) {
|
|
73
|
+
const strings = sample.filter((value) => typeof value === "string");
|
|
74
|
+
const nonDates = sample.filter((value) => !(value instanceof Date));
|
|
75
|
+
const mixedWithDates = strings.length > 0 && sample.some((value) => value instanceof Date);
|
|
76
|
+
if (strings.length === 0 && sample.every((value) => value instanceof Date))
|
|
77
|
+
return [];
|
|
78
|
+
if (strings.length !== nonDates.length)
|
|
79
|
+
return [];
|
|
80
|
+
if (strings.every((value) => parseTemporal(value, "iso", options).ok))
|
|
81
|
+
return ["iso"];
|
|
82
|
+
// Native Date values are instants. Mixing them with lower-precision year,
|
|
83
|
+
// month, quarter, or ordered-date strings has no coherent parser identity.
|
|
84
|
+
if (mixedWithDates)
|
|
85
|
+
return [];
|
|
86
|
+
for (const parser of ["year", "ym", "my", "yq"]) {
|
|
87
|
+
if (strings.every((value) => parseTemporal(value, parser, options).ok))
|
|
88
|
+
return [parser];
|
|
89
|
+
}
|
|
90
|
+
// Explicit ordered parsers may accept compact years, but automatic
|
|
91
|
+
// inference never assigns meaning to a two-digit year.
|
|
92
|
+
if (strings.some((value) => !/(?:^|[-/.])\d{4}(?:[-/.]|[T ]|$)/.test(value)))
|
|
93
|
+
return [];
|
|
94
|
+
return AUTO_ORDERED_PARSERS.filter((parser) => strings.every((value) => {
|
|
95
|
+
if (value.includes("-") && /^\d{4}-\d{2}-\d{2}/.test(value))
|
|
96
|
+
return false;
|
|
97
|
+
return parseTemporal(value, parser, options).ok;
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
function nominalDecision(status, values, candidates = [], analyzed) {
|
|
101
|
+
const { sample, nonNullCount } = analyzed ?? analyzeNonNull(values);
|
|
102
|
+
return {
|
|
103
|
+
status,
|
|
104
|
+
parser: null,
|
|
105
|
+
parserKey: `auto:${status}`,
|
|
106
|
+
kind: null,
|
|
107
|
+
precision: null,
|
|
108
|
+
evidence: sample.slice(0, 8).map((value) => evidenceValue(value)),
|
|
109
|
+
nonNullCount,
|
|
110
|
+
validatedCount: 0,
|
|
111
|
+
failedCount: 0,
|
|
112
|
+
candidates,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function inferTemporalColumnInternal(values, options = {}, onSuccess) {
|
|
116
|
+
const analyzed = analyzeNonNull(values);
|
|
117
|
+
if (analyzed.nonNullCount === 0)
|
|
118
|
+
return nominalDecision("nominal", values, [], analyzed);
|
|
119
|
+
// Full-column fact (not sample-relative): any number/boolean forces nominal.
|
|
120
|
+
if (analyzed.sawNumberOrBoolean)
|
|
121
|
+
return nominalDecision("nominal", values, [], analyzed);
|
|
122
|
+
const { sample, nonNullCount } = analyzed;
|
|
123
|
+
if (sample.some((value) => !(value instanceof Date) && typeof value !== "string")) {
|
|
124
|
+
return nominalDecision("nominal", values, [], analyzed);
|
|
125
|
+
}
|
|
126
|
+
const candidates = candidateParsers(sample, options);
|
|
127
|
+
const allDates = sample.every((value) => value instanceof Date);
|
|
128
|
+
if (!allDates && candidates.length === 0)
|
|
129
|
+
return nominalDecision("nominal", values, [], analyzed);
|
|
130
|
+
if (candidates.length > 1)
|
|
131
|
+
return nominalDecision("ambiguous", values, candidates, analyzed);
|
|
132
|
+
const parser = allDates ? null : candidates[0];
|
|
133
|
+
const scan = scanTemporalValues(values, parser, options, onSuccess);
|
|
134
|
+
const failedCount = nonNullCount - scan.validatedCount;
|
|
135
|
+
if (failedCount > 0) {
|
|
136
|
+
return {
|
|
137
|
+
...nominalDecision("invalid", values, parser === null ? ["native-date"] : [parser], analyzed),
|
|
138
|
+
parser,
|
|
139
|
+
parserKey: `auto:${parser ?? "native-date"}:invalid`,
|
|
140
|
+
validatedCount: scan.validatedCount,
|
|
141
|
+
failedCount,
|
|
142
|
+
failures: scan.failures,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
status: "temporal",
|
|
147
|
+
parser: parser ?? "native-date",
|
|
148
|
+
parserKey: `auto:${parser ?? "native-date"}`,
|
|
149
|
+
kind: scan.kind ?? "datetime",
|
|
150
|
+
precision: scan.precision ?? "millisecond",
|
|
151
|
+
evidence: sample.slice(0, 8).map((value) => evidenceValue(value)),
|
|
152
|
+
nonNullCount,
|
|
153
|
+
validatedCount: scan.validatedCount,
|
|
154
|
+
failedCount: 0,
|
|
155
|
+
candidates: parser === null ? ["native-date"] : [parser],
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function scanTemporalValues(values, parser, options, onSuccess) {
|
|
159
|
+
let validatedCount = 0;
|
|
160
|
+
const failures = [];
|
|
161
|
+
let kind = null;
|
|
162
|
+
let precision = null;
|
|
163
|
+
for (let index = 0; index < values.length; index++) {
|
|
164
|
+
const value = values[index];
|
|
165
|
+
if (value === null || value === undefined)
|
|
166
|
+
continue;
|
|
167
|
+
const parsed = value instanceof Date
|
|
168
|
+
? parseTemporal(value, "iso", options)
|
|
169
|
+
: parser === null
|
|
170
|
+
? temporalParseFailure("mixed non-Date value in native Date column")
|
|
171
|
+
: parseTemporal(value, parser, options);
|
|
172
|
+
if (!parsed.ok) {
|
|
173
|
+
if (failures.length < 5)
|
|
174
|
+
failures.push({ index, value: evidenceValue(value), reason: parsed.reason });
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
validatedCount++;
|
|
178
|
+
onSuccess?.(index, parsed.epochMs);
|
|
179
|
+
kind = kind === "datetime" || parsed.kind === "datetime" ? "datetime" : "date";
|
|
180
|
+
precision = finestPrecision(precision, parsed.precision);
|
|
181
|
+
}
|
|
182
|
+
return { validatedCount, failures, kind, precision };
|
|
183
|
+
}
|
|
184
|
+
export function inferTemporalColumn(values, options = {}) {
|
|
185
|
+
return inferTemporalColumnInternal(values, options);
|
|
186
|
+
}
|
|
187
|
+
export function parseTemporalColumn(values, parser = "auto", options = {}) {
|
|
188
|
+
const semantic = new Float64Array(values.length);
|
|
189
|
+
semantic.fill(Number.NaN);
|
|
190
|
+
const valid = new Uint8Array(values.length);
|
|
191
|
+
if (parser === "auto") {
|
|
192
|
+
const decision = inferTemporalColumnInternal(values, options, (index, epochMs) => {
|
|
193
|
+
semantic[index] = epochMs;
|
|
194
|
+
valid[index] = 1;
|
|
195
|
+
});
|
|
196
|
+
if (decision.status !== "temporal") {
|
|
197
|
+
semantic.fill(Number.NaN);
|
|
198
|
+
valid.fill(0);
|
|
199
|
+
}
|
|
200
|
+
return { decision, semantic, valid };
|
|
201
|
+
}
|
|
202
|
+
let validatedCount = 0;
|
|
203
|
+
let nonNullCount = 0;
|
|
204
|
+
let kind = null;
|
|
205
|
+
let precision = null;
|
|
206
|
+
const failures = [];
|
|
207
|
+
const evidence = [];
|
|
208
|
+
for (let index = 0; index < values.length; index++) {
|
|
209
|
+
const value = values[index];
|
|
210
|
+
if (value === null || value === undefined)
|
|
211
|
+
continue;
|
|
212
|
+
nonNullCount++;
|
|
213
|
+
if (evidence.length < 8)
|
|
214
|
+
evidence.push(evidenceValue(value));
|
|
215
|
+
const result = parseTemporal(value, parser, options);
|
|
216
|
+
if (!result.ok) {
|
|
217
|
+
if (failures.length < 5)
|
|
218
|
+
failures.push({ index, value: evidenceValue(value), reason: result.reason });
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
semantic[index] = result.epochMs;
|
|
222
|
+
valid[index] = 1;
|
|
223
|
+
validatedCount++;
|
|
224
|
+
kind = kind === "datetime" || result.kind === "datetime" ? "datetime" : "date";
|
|
225
|
+
precision = finestPrecision(precision, result.precision);
|
|
226
|
+
}
|
|
227
|
+
const failedCount = nonNullCount - validatedCount;
|
|
228
|
+
const parserKey = canonicalTemporalParserKey(parser);
|
|
229
|
+
return {
|
|
230
|
+
semantic,
|
|
231
|
+
valid,
|
|
232
|
+
decision: {
|
|
233
|
+
status: failedCount === 0 ? "temporal" : "invalid",
|
|
234
|
+
parser: typeof parser === "string" ? parser : parserKey,
|
|
235
|
+
parserKey,
|
|
236
|
+
kind: kind ?? null,
|
|
237
|
+
precision: precision ?? null,
|
|
238
|
+
evidence,
|
|
239
|
+
nonNullCount,
|
|
240
|
+
validatedCount,
|
|
241
|
+
failedCount,
|
|
242
|
+
candidates: [parserKey],
|
|
243
|
+
...(failures.length > 0 && { failures }),
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=temporal-column.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-column.js","sourceRoot":"","sources":["../src/temporal-column.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Temporal guides facade — portable intervals/labels and tick generation.
|
|
3
|
+
*
|
|
4
|
+
* Implementation:
|
|
5
|
+
* - temporal-interval.ts — units, parse, label tokens, locale checks
|
|
6
|
+
* - temporal-ticks.ts — calendar-aligned interval ticks
|
|
7
|
+
*/
|
|
8
|
+
export { MAX_TEMPORAL_CANDIDATES, MAX_TEMPORAL_MAJOR_TICKS, MAX_TEMPORAL_MINOR_TICKS, MIN_TEMPORAL_LABEL_GAP_PX, parseTemporalInterval, TEMPORAL_INTERVAL_UNITS, TEMPORAL_LABEL_TOKENS, TEMPORAL_WEEKDAYS, TemporalIntervalError, temporalLabelConfigurationError, temporalLocaleConfigurationError, type TemporalInterval, type TemporalIntervalSpec, type TemporalIntervalUnit, type TemporalWeekStart, } from "./temporal-interval.js";
|
|
9
|
+
export { TemporalIntervalSpecSchema, TemporalLabelSpecSchema, TemporalWeekStartSchema, } from "./temporal-interval-schema.js";
|
|
10
|
+
export { temporalIntervalTicks } from "./temporal-ticks.js";
|
|
11
|
+
//# sourceMappingURL=temporal-guides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-guides.d.ts","sourceRoot":"","sources":["../src/temporal-guides.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,+BAA+B,EAC/B,gCAAgC,EAChC,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Temporal guides facade — portable intervals/labels and tick generation.
|
|
3
|
+
*
|
|
4
|
+
* Implementation:
|
|
5
|
+
* - temporal-interval.ts — units, parse, label tokens, locale checks
|
|
6
|
+
* - temporal-ticks.ts — calendar-aligned interval ticks
|
|
7
|
+
*/
|
|
8
|
+
export { MAX_TEMPORAL_CANDIDATES, MAX_TEMPORAL_MAJOR_TICKS, MAX_TEMPORAL_MINOR_TICKS, MIN_TEMPORAL_LABEL_GAP_PX, parseTemporalInterval, TEMPORAL_INTERVAL_UNITS, TEMPORAL_LABEL_TOKENS, TEMPORAL_WEEKDAYS, TemporalIntervalError, temporalLabelConfigurationError, temporalLocaleConfigurationError, } from "./temporal-interval.js";
|
|
9
|
+
export { TemporalIntervalSpecSchema, TemporalLabelSpecSchema, TemporalWeekStartSchema, } from "./temporal-interval-schema.js";
|
|
10
|
+
export { temporalIntervalTicks } from "./temporal-ticks.js";
|
|
11
|
+
//# sourceMappingURL=temporal-guides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-guides.js","sourceRoot":"","sources":["../src/temporal-guides.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,+BAA+B,EAC/B,gCAAgC,GAKjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeBox schemas for temporal intervals and labels (schema graph / validate only).
|
|
3
|
+
* Runtime parse + label checks live in temporal-interval.ts without typebox.
|
|
4
|
+
*/
|
|
5
|
+
import Type from "typebox";
|
|
6
|
+
export declare const TemporalIntervalSpecSchema: Type.TString;
|
|
7
|
+
export declare const TemporalWeekStartSchema: Type.TUnion<[Type.TLiteral<"monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday">, ...Type.TLiteral<"monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday">[]]>;
|
|
8
|
+
export declare const TemporalLabelSpecSchema: Type.TString;
|
|
9
|
+
//# sourceMappingURL=temporal-interval-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-interval-schema.d.ts","sourceRoot":"","sources":["../src/temporal-interval-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,IAAuB,MAAM,SAAS,CAAC;AAe9C,eAAO,MAAM,0BAA0B,cAMrC,CAAC;AAEH,eAAO,MAAM,uBAAuB,0NAElC,CAAC;AAIH,eAAO,MAAM,uBAAuB,cAMlC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeBox schemas for temporal intervals and labels (schema graph / validate only).
|
|
3
|
+
* Runtime parse + label checks live in temporal-interval.ts without typebox.
|
|
4
|
+
*/
|
|
5
|
+
import Type, {} from "typebox";
|
|
6
|
+
import { TEMPORAL_LABEL_TOKENS, TEMPORAL_WEEKDAYS, } from "./temporal-interval.js";
|
|
7
|
+
const WEEKDAY_SCHEMAS = TEMPORAL_WEEKDAYS.map((weekday) => Type.Literal(weekday));
|
|
8
|
+
const TEMPORAL_INTERVAL_STEP_PATTERN = "(?:[1-9][0-9]{0,5}|1000000)";
|
|
9
|
+
export const TemporalIntervalSpecSchema = Type.String({
|
|
10
|
+
minLength: 1,
|
|
11
|
+
maxLength: 128,
|
|
12
|
+
pattern: `^[ ]*${TEMPORAL_INTERVAL_STEP_PATTERN}[ ]+(?:millisecond|second|minute|hour|day|week|month|quarter|year)s?[ ]*$`,
|
|
13
|
+
description: 'A positive integer calendar interval such as "2 weeks", "3 months", or "10 years". Canonical units are millisecond, second, minute, hour, day, week, month, quarter, and year.',
|
|
14
|
+
});
|
|
15
|
+
export const TemporalWeekStartSchema = Type.Union(WEEKDAY_SCHEMAS, {
|
|
16
|
+
description: 'Week boundary used by temporal interval breaks. Default "monday".',
|
|
17
|
+
});
|
|
18
|
+
const TEMPORAL_LABEL_PATTERN = `^(?:[^%]|%(?:${TEMPORAL_LABEL_TOKENS.join("|")}))+$`;
|
|
19
|
+
export const TemporalLabelSpecSchema = Type.String({
|
|
20
|
+
minLength: 1,
|
|
21
|
+
maxLength: 128,
|
|
22
|
+
pattern: TEMPORAL_LABEL_PATTERN,
|
|
23
|
+
description: "Strict temporal label format. Supported tokens: %Y %y %m %b %B %d %e %a %A %H %I %M %S %L %p %q %z %Z %%.",
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=temporal-interval-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-interval-schema.js","sourceRoot":"","sources":["../src/temporal-interval-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,IAAI,EAAE,EAAiB,MAAM,SAAS,CAAC;AAE9C,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,eAAe,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAG/E,CAAC;AAEF,MAAM,8BAA8B,GAAG,6BAA6B,CAAC;AAErE,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,MAAM,CAAC;IACpD,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,QAAQ,8BAA8B,2EAA2E;IAC1H,WAAW,EACT,gLAAgL;CACnL,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;IACjE,WAAW,EAAE,mEAAmE;CACjF,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,gBAAgB,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAErF,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EACT,2GAA2G;CAC9G,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portable temporal interval grammar, label token contract, and locale checks.
|
|
3
|
+
* Tick generation lives in temporal-ticks.ts; facade re-exports in temporal-guides.ts.
|
|
4
|
+
*/
|
|
5
|
+
import type { TemporalScaleKind } from "./temporal-parse-core.js";
|
|
6
|
+
export declare const TEMPORAL_INTERVAL_UNITS: readonly ["millisecond", "second", "minute", "hour", "day", "week", "month", "quarter", "year"];
|
|
7
|
+
export type TemporalIntervalUnit = (typeof TEMPORAL_INTERVAL_UNITS)[number];
|
|
8
|
+
export declare const TEMPORAL_WEEKDAYS: readonly ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];
|
|
9
|
+
export type TemporalWeekStart = (typeof TEMPORAL_WEEKDAYS)[number];
|
|
10
|
+
/** Portable interval string (schema-validated by TypeBox on the agent path). */
|
|
11
|
+
export type TemporalIntervalSpec = string;
|
|
12
|
+
export interface TemporalInterval {
|
|
13
|
+
unit: TemporalIntervalUnit;
|
|
14
|
+
step: number;
|
|
15
|
+
key: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const MAX_TEMPORAL_CANDIDATES = 128;
|
|
18
|
+
export declare const MAX_TEMPORAL_MAJOR_TICKS = 64;
|
|
19
|
+
export declare const MAX_TEMPORAL_MINOR_TICKS = 256;
|
|
20
|
+
export declare const MIN_TEMPORAL_LABEL_GAP_PX = 6;
|
|
21
|
+
export declare class TemporalIntervalError extends Error {
|
|
22
|
+
readonly value: string;
|
|
23
|
+
constructor(value: string, reason: string);
|
|
24
|
+
}
|
|
25
|
+
export declare function parseTemporalInterval(value: string): TemporalInterval;
|
|
26
|
+
export declare const TEMPORAL_LABEL_TOKENS: readonly ["Y", "y", "m", "b", "B", "d", "e", "a", "A", "H", "I", "M", "S", "L", "p", "q", "z", "Z", "%"];
|
|
27
|
+
export declare function temporalLabelConfigurationError(pattern: string, kind?: TemporalScaleKind): string | null;
|
|
28
|
+
export declare function temporalLocaleConfigurationError(locale: string): string | null;
|
|
29
|
+
//# sourceMappingURL=temporal-interval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-interval.d.ts","sourceRoot":"","sources":["../src/temporal-interval.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,uBAAuB,iGAU1B,CAAC;AACX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,eAAO,MAAM,iBAAiB,yFAQpB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAInE,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK1C;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC;AAoBvE,eAAO,MAAM,qBAAqB,0GAoBxB,CAAC;AAWX,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,iBAAiB,GACvB,MAAM,GAAG,IAAI,CAef;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB9E"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portable temporal interval grammar, label token contract, and locale checks.
|
|
3
|
+
* Tick generation lives in temporal-ticks.ts; facade re-exports in temporal-guides.ts.
|
|
4
|
+
*/
|
|
5
|
+
export const TEMPORAL_INTERVAL_UNITS = [
|
|
6
|
+
"millisecond",
|
|
7
|
+
"second",
|
|
8
|
+
"minute",
|
|
9
|
+
"hour",
|
|
10
|
+
"day",
|
|
11
|
+
"week",
|
|
12
|
+
"month",
|
|
13
|
+
"quarter",
|
|
14
|
+
"year",
|
|
15
|
+
];
|
|
16
|
+
export const TEMPORAL_WEEKDAYS = [
|
|
17
|
+
"monday",
|
|
18
|
+
"tuesday",
|
|
19
|
+
"wednesday",
|
|
20
|
+
"thursday",
|
|
21
|
+
"friday",
|
|
22
|
+
"saturday",
|
|
23
|
+
"sunday",
|
|
24
|
+
];
|
|
25
|
+
const TEMPORAL_INTERVAL_STEP_PATTERN = "(?:[1-9][0-9]{0,5}|1000000)";
|
|
26
|
+
export const MAX_TEMPORAL_CANDIDATES = 128;
|
|
27
|
+
export const MAX_TEMPORAL_MAJOR_TICKS = 64;
|
|
28
|
+
export const MAX_TEMPORAL_MINOR_TICKS = 256;
|
|
29
|
+
export const MIN_TEMPORAL_LABEL_GAP_PX = 6;
|
|
30
|
+
export class TemporalIntervalError extends Error {
|
|
31
|
+
value;
|
|
32
|
+
constructor(value, reason) {
|
|
33
|
+
super(`Invalid temporal interval ${JSON.stringify(value)}: ${reason}.`);
|
|
34
|
+
this.name = "TemporalIntervalError";
|
|
35
|
+
this.value = value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const INTERVAL_RE = new RegExp(`^(${TEMPORAL_INTERVAL_STEP_PATTERN}) +(millisecond|second|minute|hour|day|week|month|quarter|year)(s?)$`);
|
|
39
|
+
export function parseTemporalInterval(value) {
|
|
40
|
+
if (typeof value !== "string" || value.length > 128) {
|
|
41
|
+
throw new TemporalIntervalError(String(value), "expected a string of at most 128 characters");
|
|
42
|
+
}
|
|
43
|
+
const match = INTERVAL_RE.exec(value.replaceAll(/^ +| +$/g, ""));
|
|
44
|
+
if (match === null) {
|
|
45
|
+
throw new TemporalIntervalError(value, 'expected "<positive integer> <unit>" using a canonical calendar unit');
|
|
46
|
+
}
|
|
47
|
+
const step = Number(match[1]);
|
|
48
|
+
if (!Number.isSafeInteger(step) || step < 1 || step > 1_000_000) {
|
|
49
|
+
throw new TemporalIntervalError(value, "step must be an integer from 1 through 1,000,000");
|
|
50
|
+
}
|
|
51
|
+
const unit = match[2];
|
|
52
|
+
return { unit, step, key: `${step} ${unit}${step === 1 ? "" : "s"}` };
|
|
53
|
+
}
|
|
54
|
+
export const TEMPORAL_LABEL_TOKENS = [
|
|
55
|
+
"Y",
|
|
56
|
+
"y",
|
|
57
|
+
"m",
|
|
58
|
+
"b",
|
|
59
|
+
"B",
|
|
60
|
+
"d",
|
|
61
|
+
"e",
|
|
62
|
+
"a",
|
|
63
|
+
"A",
|
|
64
|
+
"H",
|
|
65
|
+
"I",
|
|
66
|
+
"M",
|
|
67
|
+
"S",
|
|
68
|
+
"L",
|
|
69
|
+
"p",
|
|
70
|
+
"q",
|
|
71
|
+
"z",
|
|
72
|
+
"Z",
|
|
73
|
+
"%",
|
|
74
|
+
];
|
|
75
|
+
const LABEL_TOKEN_SET = new Set(TEMPORAL_LABEL_TOKENS);
|
|
76
|
+
/**
|
|
77
|
+
* Tokens a month-day axis can fill truthfully: those the month and the day
|
|
78
|
+
* determine. A year is absent by construction; the clock and zone would print
|
|
79
|
+
* the same midnight-UTC zeros for every tick; and the weekday belongs to the
|
|
80
|
+
* reference year, not to the observation — 1 April fell on different weekdays
|
|
81
|
+
* in 812 and 2001, so printing one would invent a fact.
|
|
82
|
+
*/
|
|
83
|
+
const MONTH_DAY_LABEL_TOKENS = new Set(["m", "b", "B", "d", "e", "q", "%"]);
|
|
84
|
+
export function temporalLabelConfigurationError(pattern, kind) {
|
|
85
|
+
if (pattern.length === 0 || pattern.length > 128) {
|
|
86
|
+
return "dateLabels must contain 1 through 128 characters";
|
|
87
|
+
}
|
|
88
|
+
for (let index = 0; index < pattern.length; index++) {
|
|
89
|
+
if (pattern[index] !== "%")
|
|
90
|
+
continue;
|
|
91
|
+
const token = pattern[++index];
|
|
92
|
+
if (token === undefined || !LABEL_TOKEN_SET.has(token)) {
|
|
93
|
+
return `unsupported dateLabels token %${token ?? ""}`;
|
|
94
|
+
}
|
|
95
|
+
if (kind === "monthDay" && !MONTH_DAY_LABEL_TOKENS.has(token)) {
|
|
96
|
+
return `dateLabels token %${token} has no meaning on a monthDay axis, which knows only a month and a day; use one of %m %b %B %d %e %q`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
export function temporalLocaleConfigurationError(locale) {
|
|
102
|
+
if (locale.length === 0 || locale.length > 128) {
|
|
103
|
+
return "locale must contain 1 through 128 characters";
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
const canonical = Intl.getCanonicalLocales(locale);
|
|
107
|
+
if (canonical.length !== 1)
|
|
108
|
+
return `invalid or unsupported locale ${JSON.stringify(locale)}`;
|
|
109
|
+
const supported = Intl.DateTimeFormat.supportedLocalesOf(canonical, {
|
|
110
|
+
localeMatcher: "lookup",
|
|
111
|
+
});
|
|
112
|
+
if (supported.length !== 1) {
|
|
113
|
+
return `invalid or unsupported locale ${JSON.stringify(locale)}`;
|
|
114
|
+
}
|
|
115
|
+
new Intl.DateTimeFormat(canonical[0], { timeZone: "UTC", year: "numeric" }).format(0);
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return `invalid or unsupported locale ${JSON.stringify(locale)}`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=temporal-interval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-interval.js","sourceRoot":"","sources":["../src/temporal-interval.ts"],"names":[],"mappings":"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"}
|