@sparqjs/schema-core 0.1.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/dist/action/action-runtime.d.ts +91 -0
- package/dist/action/action-runtime.d.ts.map +1 -0
- package/dist/action/action-runtime.js +172 -0
- package/dist/action/action-runtime.js.map +1 -0
- package/dist/action/builtin-actions.d.ts +35 -0
- package/dist/action/builtin-actions.d.ts.map +1 -0
- package/dist/action/builtin-actions.js +200 -0
- package/dist/action/builtin-actions.js.map +1 -0
- package/dist/action/index.d.ts +6 -0
- package/dist/action/index.d.ts.map +1 -0
- package/dist/action/index.js +6 -0
- package/dist/action/index.js.map +1 -0
- package/dist/action/merge-action.d.ts +9 -0
- package/dist/action/merge-action.d.ts.map +1 -0
- package/dist/action/merge-action.js +51 -0
- package/dist/action/merge-action.js.map +1 -0
- package/dist/action/resolve-action.d.ts +14 -0
- package/dist/action/resolve-action.d.ts.map +1 -0
- package/dist/action/resolve-action.js +81 -0
- package/dist/action/resolve-action.js.map +1 -0
- package/dist/action/types.d.ts +97 -0
- package/dist/action/types.d.ts.map +1 -0
- package/dist/action/types.js +2 -0
- package/dist/action/types.js.map +1 -0
- package/dist/component-keys.d.ts +49 -0
- package/dist/component-keys.d.ts.map +1 -0
- package/dist/component-keys.js +48 -0
- package/dist/component-keys.js.map +1 -0
- package/dist/data/index.d.ts +3 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +3 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/options.d.ts +33 -0
- package/dist/data/options.d.ts.map +1 -0
- package/dist/data/options.js +147 -0
- package/dist/data/options.js.map +1 -0
- package/dist/data/types.d.ts +303 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/data/types.js +2 -0
- package/dist/data/types.js.map +1 -0
- package/dist/diagnostics/create-diagnostic.d.ts +8 -0
- package/dist/diagnostics/create-diagnostic.d.ts.map +1 -0
- package/dist/diagnostics/create-diagnostic.js +13 -0
- package/dist/diagnostics/create-diagnostic.js.map +1 -0
- package/dist/diagnostics/diagnostic-collector.d.ts +27 -0
- package/dist/diagnostics/diagnostic-collector.d.ts.map +1 -0
- package/dist/diagnostics/diagnostic-collector.js +30 -0
- package/dist/diagnostics/diagnostic-collector.js.map +1 -0
- package/dist/diagnostics/index.d.ts +4 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +4 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/diagnostics/types.d.ts +51 -0
- package/dist/diagnostics/types.d.ts.map +1 -0
- package/dist/diagnostics/types.js +2 -0
- package/dist/diagnostics/types.js.map +1 -0
- package/dist/expression/condition.d.ts +9 -0
- package/dist/expression/condition.d.ts.map +1 -0
- package/dist/expression/condition.js +82 -0
- package/dist/expression/condition.js.map +1 -0
- package/dist/expression/index.d.ts +6 -0
- package/dist/expression/index.d.ts.map +1 -0
- package/dist/expression/index.js +6 -0
- package/dist/expression/index.js.map +1 -0
- package/dist/expression/path.d.ts +8 -0
- package/dist/expression/path.d.ts.map +1 -0
- package/dist/expression/path.js +30 -0
- package/dist/expression/path.js.map +1 -0
- package/dist/expression/template.d.ts +8 -0
- package/dist/expression/template.d.ts.map +1 -0
- package/dist/expression/template.js +23 -0
- package/dist/expression/template.js.map +1 -0
- package/dist/expression/types.d.ts +27 -0
- package/dist/expression/types.d.ts.map +1 -0
- package/dist/expression/types.js +2 -0
- package/dist/expression/types.js.map +1 -0
- package/dist/expression/value.d.ts +12 -0
- package/dist/expression/value.d.ts.map +1 -0
- package/dist/expression/value.js +88 -0
- package/dist/expression/value.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/types.d.ts +131 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +2 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/icon-keys.d.ts +46 -0
- package/dist/icon-keys.d.ts.map +1 -0
- package/dist/icon-keys.js +100 -0
- package/dist/icon-keys.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/inference/display-components.d.ts +14 -0
- package/dist/inference/display-components.d.ts.map +1 -0
- package/dist/inference/display-components.js +52 -0
- package/dist/inference/display-components.js.map +1 -0
- package/dist/inference/index.d.ts +4 -0
- package/dist/inference/index.d.ts.map +1 -0
- package/dist/inference/index.js +4 -0
- package/dist/inference/index.js.map +1 -0
- package/dist/inference/search-components.d.ts +9 -0
- package/dist/inference/search-components.d.ts.map +1 -0
- package/dist/inference/search-components.js +46 -0
- package/dist/inference/search-components.js.map +1 -0
- package/dist/inference/search-operators.d.ts +9 -0
- package/dist/inference/search-operators.d.ts.map +1 -0
- package/dist/inference/search-operators.js +42 -0
- package/dist/inference/search-operators.js.map +1 -0
- package/dist/normalizer/index.d.ts +12 -0
- package/dist/normalizer/index.d.ts.map +1 -0
- package/dist/normalizer/index.js +12 -0
- package/dist/normalizer/index.js.map +1 -0
- package/dist/normalizer/infer-detail.d.ts +8 -0
- package/dist/normalizer/infer-detail.d.ts.map +1 -0
- package/dist/normalizer/infer-detail.js +19 -0
- package/dist/normalizer/infer-detail.js.map +1 -0
- package/dist/normalizer/infer-form.d.ts +8 -0
- package/dist/normalizer/infer-form.d.ts.map +1 -0
- package/dist/normalizer/infer-form.js +16 -0
- package/dist/normalizer/infer-form.js.map +1 -0
- package/dist/normalizer/infer-search.d.ts +18 -0
- package/dist/normalizer/infer-search.d.ts.map +1 -0
- package/dist/normalizer/infer-search.js +53 -0
- package/dist/normalizer/infer-search.js.map +1 -0
- package/dist/normalizer/infer-table.d.ts +16 -0
- package/dist/normalizer/infer-table.d.ts.map +1 -0
- package/dist/normalizer/infer-table.js +41 -0
- package/dist/normalizer/infer-table.js.map +1 -0
- package/dist/normalizer/normalize-resource.d.ts +10 -0
- package/dist/normalizer/normalize-resource.d.ts.map +1 -0
- package/dist/normalizer/normalize-resource.js +84 -0
- package/dist/normalizer/normalize-resource.js.map +1 -0
- package/dist/normalizer/normalize-views.d.ts +32 -0
- package/dist/normalizer/normalize-views.d.ts.map +1 -0
- package/dist/normalizer/normalize-views.js +194 -0
- package/dist/normalizer/normalize-views.js.map +1 -0
- package/dist/normalizer/types.d.ts +36 -0
- package/dist/normalizer/types.d.ts.map +1 -0
- package/dist/normalizer/types.js +2 -0
- package/dist/normalizer/types.js.map +1 -0
- package/dist/normalizer/validate-nodes.d.ts +9 -0
- package/dist/normalizer/validate-nodes.d.ts.map +1 -0
- package/dist/normalizer/validate-nodes.js +91 -0
- package/dist/normalizer/validate-nodes.js.map +1 -0
- package/dist/normalizer/validate-search.d.ts +9 -0
- package/dist/normalizer/validate-search.d.ts.map +1 -0
- package/dist/normalizer/validate-search.js +20 -0
- package/dist/normalizer/validate-search.js.map +1 -0
- package/dist/normalizer/validate-table.d.ts +9 -0
- package/dist/normalizer/validate-table.d.ts.map +1 -0
- package/dist/normalizer/validate-table.js +52 -0
- package/dist/normalizer/validate-table.js.map +1 -0
- package/dist/normalizer/validate-value-expression.d.ts +4 -0
- package/dist/normalizer/validate-value-expression.d.ts.map +1 -0
- package/dist/normalizer/validate-value-expression.js +43 -0
- package/dist/normalizer/validate-value-expression.js.map +1 -0
- package/dist/registry/action-executor-registry.d.ts +6 -0
- package/dist/registry/action-executor-registry.d.ts.map +1 -0
- package/dist/registry/action-executor-registry.js +6 -0
- package/dist/registry/action-executor-registry.js.map +1 -0
- package/dist/registry/action-handler-registry.d.ts +19 -0
- package/dist/registry/action-handler-registry.d.ts.map +1 -0
- package/dist/registry/action-handler-registry.js +15 -0
- package/dist/registry/action-handler-registry.js.map +1 -0
- package/dist/registry/component-registry.d.ts +17 -0
- package/dist/registry/component-registry.d.ts.map +1 -0
- package/dist/registry/component-registry.js +11 -0
- package/dist/registry/component-registry.js.map +1 -0
- package/dist/registry/effect-handler-registry.d.ts +19 -0
- package/dist/registry/effect-handler-registry.d.ts.map +1 -0
- package/dist/registry/effect-handler-registry.js +15 -0
- package/dist/registry/effect-handler-registry.js.map +1 -0
- package/dist/registry/index.d.ts +6 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +6 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/runtime-registries.d.ts +20 -0
- package/dist/registry/runtime-registries.d.ts.map +1 -0
- package/dist/registry/runtime-registries.js +46 -0
- package/dist/registry/runtime-registries.js.map +1 -0
- package/dist/relation-list/index.d.ts +3 -0
- package/dist/relation-list/index.d.ts.map +1 -0
- package/dist/relation-list/index.js +3 -0
- package/dist/relation-list/index.js.map +1 -0
- package/dist/relation-list/runtime.d.ts +19 -0
- package/dist/relation-list/runtime.d.ts.map +1 -0
- package/dist/relation-list/runtime.js +279 -0
- package/dist/relation-list/runtime.js.map +1 -0
- package/dist/relation-list/types.d.ts +32 -0
- package/dist/relation-list/types.d.ts.map +1 -0
- package/dist/relation-list/types.js +2 -0
- package/dist/relation-list/types.js.map +1 -0
- package/dist/render/index.d.ts +3 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +3 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/resolve-render-view.d.ts +3 -0
- package/dist/render/resolve-render-view.d.ts.map +1 -0
- package/dist/render/resolve-render-view.js +93 -0
- package/dist/render/resolve-render-view.js.map +1 -0
- package/dist/render/types.d.ts +21 -0
- package/dist/render/types.d.ts.map +1 -0
- package/dist/render/types.js +2 -0
- package/dist/render/types.js.map +1 -0
- package/dist/runtime.d.ts +34 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +31 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scope/index.d.ts +4 -0
- package/dist/scope/index.d.ts.map +1 -0
- package/dist/scope/index.js +4 -0
- package/dist/scope/index.js.map +1 -0
- package/dist/scope/resolve-target.d.ts +9 -0
- package/dist/scope/resolve-target.d.ts.map +1 -0
- package/dist/scope/resolve-target.js +40 -0
- package/dist/scope/resolve-target.js.map +1 -0
- package/dist/scope/scope-tree.d.ts +27 -0
- package/dist/scope/scope-tree.d.ts.map +1 -0
- package/dist/scope/scope-tree.js +55 -0
- package/dist/scope/scope-tree.js.map +1 -0
- package/dist/scope/types.d.ts +63 -0
- package/dist/scope/types.d.ts.map +1 -0
- package/dist/scope/types.js +2 -0
- package/dist/scope/types.js.map +1 -0
- package/dist/session/action-execution.d.ts +16 -0
- package/dist/session/action-execution.d.ts.map +1 -0
- package/dist/session/action-execution.js +349 -0
- package/dist/session/action-execution.js.map +1 -0
- package/dist/session/actions/default-action-handlers.d.ts +21 -0
- package/dist/session/actions/default-action-handlers.d.ts.map +1 -0
- package/dist/session/actions/default-action-handlers.js +446 -0
- package/dist/session/actions/default-action-handlers.js.map +1 -0
- package/dist/session/actions/index.d.ts +4 -0
- package/dist/session/actions/index.d.ts.map +1 -0
- package/dist/session/actions/index.js +26 -0
- package/dist/session/actions/index.js.map +1 -0
- package/dist/session/audit-state.d.ts +16 -0
- package/dist/session/audit-state.d.ts.map +1 -0
- package/dist/session/audit-state.js +130 -0
- package/dist/session/audit-state.js.map +1 -0
- package/dist/session/controller-action-state.d.ts +11 -0
- package/dist/session/controller-action-state.d.ts.map +1 -0
- package/dist/session/controller-action-state.js +89 -0
- package/dist/session/controller-action-state.js.map +1 -0
- package/dist/session/controller.d.ts +20 -0
- package/dist/session/controller.d.ts.map +1 -0
- package/dist/session/controller.js +467 -0
- package/dist/session/controller.js.map +1 -0
- package/dist/session/default-values.d.ts +13 -0
- package/dist/session/default-values.d.ts.map +1 -0
- package/dist/session/default-values.js +64 -0
- package/dist/session/default-values.js.map +1 -0
- package/dist/session/defaults.d.ts +3 -0
- package/dist/session/defaults.d.ts.map +1 -0
- package/dist/session/defaults.js +12 -0
- package/dist/session/defaults.js.map +1 -0
- package/dist/session/effects/default-effect-handlers.d.ts +15 -0
- package/dist/session/effects/default-effect-handlers.d.ts.map +1 -0
- package/dist/session/effects/default-effect-handlers.js +84 -0
- package/dist/session/effects/default-effect-handlers.js.map +1 -0
- package/dist/session/effects/effect-types.d.ts +21 -0
- package/dist/session/effects/effect-types.d.ts.map +1 -0
- package/dist/session/effects/effect-types.js +24 -0
- package/dist/session/effects/effect-types.js.map +1 -0
- package/dist/session/effects/index.d.ts +5 -0
- package/dist/session/effects/index.d.ts.map +1 -0
- package/dist/session/effects/index.js +20 -0
- package/dist/session/effects/index.js.map +1 -0
- package/dist/session/executors/default-action-executors.d.ts +10 -0
- package/dist/session/executors/default-action-executors.d.ts.map +1 -0
- package/dist/session/executors/default-action-executors.js +159 -0
- package/dist/session/executors/default-action-executors.js.map +1 -0
- package/dist/session/executors/executor-keys.d.ts +38 -0
- package/dist/session/executors/executor-keys.d.ts.map +1 -0
- package/dist/session/executors/executor-keys.js +19 -0
- package/dist/session/executors/executor-keys.js.map +1 -0
- package/dist/session/executors/index.d.ts +5 -0
- package/dist/session/executors/index.d.ts.map +1 -0
- package/dist/session/executors/index.js +15 -0
- package/dist/session/executors/index.js.map +1 -0
- package/dist/session/form-state.d.ts +23 -0
- package/dist/session/form-state.d.ts.map +1 -0
- package/dist/session/form-state.js +44 -0
- package/dist/session/form-state.js.map +1 -0
- package/dist/session/index.d.ts +12 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +12 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/page-state.d.ts +36 -0
- package/dist/session/page-state.d.ts.map +1 -0
- package/dist/session/page-state.js +125 -0
- package/dist/session/page-state.js.map +1 -0
- package/dist/session/preset/default-session-preset.d.ts +2 -0
- package/dist/session/preset/default-session-preset.d.ts.map +1 -0
- package/dist/session/preset/default-session-preset.js +12 -0
- package/dist/session/preset/default-session-preset.js.map +1 -0
- package/dist/session/preset/index.d.ts +4 -0
- package/dist/session/preset/index.d.ts.map +1 -0
- package/dist/session/preset/index.js +4 -0
- package/dist/session/preset/index.js.map +1 -0
- package/dist/session/preset/preset.d.ts +6 -0
- package/dist/session/preset/preset.d.ts.map +1 -0
- package/dist/session/preset/preset.js +40 -0
- package/dist/session/preset/preset.js.map +1 -0
- package/dist/session/preset/types.d.ts +7 -0
- package/dist/session/preset/types.d.ts.map +1 -0
- package/dist/session/preset/types.js +2 -0
- package/dist/session/preset/types.js.map +1 -0
- package/dist/session/table-state.d.ts +34 -0
- package/dist/session/table-state.d.ts.map +1 -0
- package/dist/session/table-state.js +211 -0
- package/dist/session/table-state.js.map +1 -0
- package/dist/session/tree-state.d.ts +16 -0
- package/dist/session/tree-state.d.ts.map +1 -0
- package/dist/session/tree-state.js +170 -0
- package/dist/session/tree-state.js.map +1 -0
- package/dist/session/types.d.ts +364 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +2 -0
- package/dist/session/types.js.map +1 -0
- package/dist/ui-keys.d.ts +45 -0
- package/dist/ui-keys.d.ts.map +1 -0
- package/dist/ui-keys.js +45 -0
- package/dist/ui-keys.js.map +1 -0
- package/dist/utils/condition.d.ts +10 -0
- package/dist/utils/condition.d.ts.map +1 -0
- package/dist/utils/condition.js +32 -0
- package/dist/utils/condition.js.map +1 -0
- package/dist/utils/errors.d.ts +8 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +30 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/field-generator.d.ts +3 -0
- package/dist/utils/field-generator.d.ts.map +1 -0
- package/dist/utils/field-generator.js +16 -0
- package/dist/utils/field-generator.js.map +1 -0
- package/dist/utils/field-options.d.ts +7 -0
- package/dist/utils/field-options.d.ts.map +1 -0
- package/dist/utils/field-options.js +65 -0
- package/dist/utils/field-options.js.map +1 -0
- package/dist/utils/field-validation.d.ts +5 -0
- package/dist/utils/field-validation.d.ts.map +1 -0
- package/dist/utils/field-validation.js +206 -0
- package/dist/utils/field-validation.js.map +1 -0
- package/dist/utils/fields.d.ts +71 -0
- package/dist/utils/fields.d.ts.map +1 -0
- package/dist/utils/fields.js +111 -0
- package/dist/utils/fields.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/range-validation.d.ts +32 -0
- package/dist/utils/range-validation.d.ts.map +1 -0
- package/dist/utils/range-validation.js +156 -0
- package/dist/utils/range-validation.js.map +1 -0
- package/dist/utils/validation-format.d.ts +7 -0
- package/dist/utils/validation-format.d.ts.map +1 -0
- package/dist/utils/validation-format.js +105 -0
- package/dist/utils/validation-format.js.map +1 -0
- package/dist/utils/value-expression.d.ts +22 -0
- package/dist/utils/value-expression.d.ts.map +1 -0
- package/dist/utils/value-expression.js +190 -0
- package/dist/utils/value-expression.js.map +1 -0
- package/dist/utils/views.d.ts +9 -0
- package/dist/utils/views.d.ts.map +1 -0
- package/dist/utils/views.js +11 -0
- package/dist/utils/views.js.map +1 -0
- package/dist/view-model/build-detail-view-model.d.ts +7 -0
- package/dist/view-model/build-detail-view-model.d.ts.map +1 -0
- package/dist/view-model/build-detail-view-model.js +17 -0
- package/dist/view-model/build-detail-view-model.js.map +1 -0
- package/dist/view-model/build-form-view-model.d.ts +20 -0
- package/dist/view-model/build-form-view-model.d.ts.map +1 -0
- package/dist/view-model/build-form-view-model.js +74 -0
- package/dist/view-model/build-form-view-model.js.map +1 -0
- package/dist/view-model/build-nodes.d.ts +13 -0
- package/dist/view-model/build-nodes.d.ts.map +1 -0
- package/dist/view-model/build-nodes.js +123 -0
- package/dist/view-model/build-nodes.js.map +1 -0
- package/dist/view-model/build-page-view-model.d.ts +22 -0
- package/dist/view-model/build-page-view-model.d.ts.map +1 -0
- package/dist/view-model/build-page-view-model.js +73 -0
- package/dist/view-model/build-page-view-model.js.map +1 -0
- package/dist/view-model/build-resource-view-model.d.ts +9 -0
- package/dist/view-model/build-resource-view-model.d.ts.map +1 -0
- package/dist/view-model/build-resource-view-model.js +72 -0
- package/dist/view-model/build-resource-view-model.js.map +1 -0
- package/dist/view-model/build-search-view-model.d.ts +7 -0
- package/dist/view-model/build-search-view-model.d.ts.map +1 -0
- package/dist/view-model/build-search-view-model.js +101 -0
- package/dist/view-model/build-search-view-model.js.map +1 -0
- package/dist/view-model/build-table-view-model.d.ts +19 -0
- package/dist/view-model/build-table-view-model.d.ts.map +1 -0
- package/dist/view-model/build-table-view-model.js +443 -0
- package/dist/view-model/build-table-view-model.js.map +1 -0
- package/dist/view-model/index.d.ts +10 -0
- package/dist/view-model/index.d.ts.map +1 -0
- package/dist/view-model/index.js +10 -0
- package/dist/view-model/index.js.map +1 -0
- package/dist/view-model/placeholder.d.ts +6 -0
- package/dist/view-model/placeholder.d.ts.map +1 -0
- package/dist/view-model/placeholder.js +35 -0
- package/dist/view-model/placeholder.js.map +1 -0
- package/dist/view-model/types.d.ts +423 -0
- package/dist/view-model/types.d.ts.map +1 -0
- package/dist/view-model/types.js +2 -0
- package/dist/view-model/types.js.map +1 -0
- package/dist/view-state/index.d.ts +5 -0
- package/dist/view-state/index.d.ts.map +1 -0
- package/dist/view-state/index.js +5 -0
- package/dist/view-state/index.js.map +1 -0
- package/dist/view-state/resolve-action-state.d.ts +8 -0
- package/dist/view-state/resolve-action-state.d.ts.map +1 -0
- package/dist/view-state/resolve-action-state.js +71 -0
- package/dist/view-state/resolve-action-state.js.map +1 -0
- package/dist/view-state/resolve-field-runtime-state.d.ts +30 -0
- package/dist/view-state/resolve-field-runtime-state.d.ts.map +1 -0
- package/dist/view-state/resolve-field-runtime-state.js +85 -0
- package/dist/view-state/resolve-field-runtime-state.js.map +1 -0
- package/dist/view-state/resolve-node-state.d.ts +8 -0
- package/dist/view-state/resolve-node-state.d.ts.map +1 -0
- package/dist/view-state/resolve-node-state.js +14 -0
- package/dist/view-state/resolve-node-state.js.map +1 -0
- package/dist/view-state/types.d.ts +42 -0
- package/dist/view-state/types.d.ts.map +1 -0
- package/dist/view-state/types.js +2 -0
- package/dist/view-state/types.js.map +1 -0
- package/package.json +23 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 按字段 sort 升序排列。
|
|
3
|
+
*
|
|
4
|
+
* sort 缺失时按 0 处理,保持默认视图推导的排序规则集中在一个地方。
|
|
5
|
+
*/
|
|
6
|
+
export function sortFields(fields) {
|
|
7
|
+
return [...fields].sort((a, b) => (a.sort ?? 0) - (b.sort ?? 0));
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 根据字段名构建字段索引。
|
|
11
|
+
*
|
|
12
|
+
* 如果存在重名字段,后出现的字段会覆盖先出现的字段。调用方如需报错,应在构建前单独检查。
|
|
13
|
+
*/
|
|
14
|
+
export function buildFieldsByName(fields) {
|
|
15
|
+
return new Map(fields.map((field) => [field.name, field]));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 找出重复的字段名。
|
|
19
|
+
*
|
|
20
|
+
* 返回值只包含重复名称本身,不包含每次重复出现的位置。调用方可以据此生成协议诊断信息。
|
|
21
|
+
*/
|
|
22
|
+
export function findDuplicateFieldNames(fields) {
|
|
23
|
+
const seen = new Set();
|
|
24
|
+
const duplicates = new Set();
|
|
25
|
+
for (const field of fields) {
|
|
26
|
+
if (seen.has(field.name)) {
|
|
27
|
+
duplicates.add(field.name);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
seen.add(field.name);
|
|
31
|
+
}
|
|
32
|
+
return [...duplicates];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 判断字段是否属于默认不展示的敏感字段。
|
|
36
|
+
*
|
|
37
|
+
* password 和 secret 默认不进入 table、search、detail 的自动推导。
|
|
38
|
+
*/
|
|
39
|
+
export function isSensitiveField(field) {
|
|
40
|
+
return field.type === 'password' || field.type === 'secret';
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 判断字段是否声明了候选项来源。
|
|
44
|
+
*
|
|
45
|
+
* 选项能力来自字段扩展,而不是字段 type。字段 type 属于后端存储语义,前端组件推导不能把
|
|
46
|
+
* radio、select、checkbox 等字符串当作唯一依据。
|
|
47
|
+
*/
|
|
48
|
+
export function hasFieldOptions(field) {
|
|
49
|
+
return field.options !== undefined;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 判断字段是否声明了可同步读取的静态选项。
|
|
53
|
+
*/
|
|
54
|
+
export function hasFieldStaticOptions(field) {
|
|
55
|
+
return field.options?.mode === 'static' && Array.isArray(field.options.items);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 判断字段是否支持多值。
|
|
59
|
+
*
|
|
60
|
+
* 多选组件推导只依赖字段能力开关,不依赖后端字段 type 的命名。
|
|
61
|
+
*/
|
|
62
|
+
export function isMultipleField(field) {
|
|
63
|
+
return field.multiple === true;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 判断字段是否声明了正式 relation 选项配置。
|
|
67
|
+
*/
|
|
68
|
+
export function hasFieldRelation(field) {
|
|
69
|
+
return (typeof field.reference === 'object' &&
|
|
70
|
+
field.reference !== null &&
|
|
71
|
+
typeof field.reference.resource === 'string' &&
|
|
72
|
+
typeof field.reference.value_field === 'string' &&
|
|
73
|
+
typeof field.reference.label_field === 'string');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 判断字段是否是数值存储类型。
|
|
77
|
+
*/
|
|
78
|
+
export function isNumericField(field) {
|
|
79
|
+
return ['number', 'integer', 'decimal', 'float', 'double'].includes(field.type);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 判断字段是否是布尔存储类型。
|
|
83
|
+
*/
|
|
84
|
+
export function isBooleanField(field) {
|
|
85
|
+
return ['boolean', 'bool'].includes(field.type);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 判断字段是否是日期时间存储类型。
|
|
89
|
+
*/
|
|
90
|
+
export function isDateTimeField(field) {
|
|
91
|
+
return field.type === 'datetime' || field.type === 'timestamp';
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 判断字段是否是日期存储类型。
|
|
95
|
+
*/
|
|
96
|
+
export function isDateField(field) {
|
|
97
|
+
return field.type === 'date';
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 判断字段是否是时间存储类型。
|
|
101
|
+
*/
|
|
102
|
+
export function isTimeField(field) {
|
|
103
|
+
return field.type === 'time';
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 判断字段是否是默认不适合搜索的复杂存储类型。
|
|
107
|
+
*/
|
|
108
|
+
export function isComplexField(field) {
|
|
109
|
+
return ['json', 'file', 'files', 'image', 'images'].includes(field.type);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/utils/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './condition';
|
|
2
|
+
export * from './errors';
|
|
3
|
+
export * from './fields';
|
|
4
|
+
export * from './field-options';
|
|
5
|
+
export * from './field-generator';
|
|
6
|
+
export * from './field-validation';
|
|
7
|
+
export * from './views';
|
|
8
|
+
export * from './value-expression';
|
|
9
|
+
export * from './validation-format';
|
|
10
|
+
export * from './range-validation';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,SAAS,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './condition';
|
|
2
|
+
export * from './errors';
|
|
3
|
+
export * from './fields';
|
|
4
|
+
export * from './field-options';
|
|
5
|
+
export * from './field-generator';
|
|
6
|
+
export * from './field-validation';
|
|
7
|
+
export * from './views';
|
|
8
|
+
export * from './value-expression';
|
|
9
|
+
export * from './validation-format';
|
|
10
|
+
export * from './range-validation';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,SAAS,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RangeValidationSpanUnit } from '@sparqjs/schema-protocol';
|
|
2
|
+
export interface ResolvedRangeValidationParams {
|
|
3
|
+
min?: number;
|
|
4
|
+
max?: number;
|
|
5
|
+
ordered: true;
|
|
6
|
+
maxSpan?: number;
|
|
7
|
+
spanUnit: RangeValidationSpanUnit;
|
|
8
|
+
}
|
|
9
|
+
export interface RangeValidationParamIssue {
|
|
10
|
+
key: string;
|
|
11
|
+
message: string;
|
|
12
|
+
}
|
|
13
|
+
export type RangeValidationValueIssueCode = 'params' | 'shape' | 'endpoint_format' | 'ordered' | 'min' | 'max' | 'max_span';
|
|
14
|
+
export interface RangeValidationValueIssue {
|
|
15
|
+
code: RangeValidationValueIssueCode;
|
|
16
|
+
spanUnit?: RangeValidationSpanUnit;
|
|
17
|
+
maxSpan?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface RangeValidationParamsResult {
|
|
20
|
+
value?: ResolvedRangeValidationParams;
|
|
21
|
+
issues: RangeValidationParamIssue[];
|
|
22
|
+
}
|
|
23
|
+
/** 严格解析 range 规则参数,供提交校验、UI 约束和 Designer 共用。 */
|
|
24
|
+
export declare function resolveRangeValidationParams(params: unknown): RangeValidationParamsResult;
|
|
25
|
+
/** 校验非空 JSON 二元范围值;null 和空数组继续由 required 规则决定。 */
|
|
26
|
+
export declare function validateRangeValue(value: unknown, params: unknown): RangeValidationValueIssue | undefined;
|
|
27
|
+
/** 将严格格式端点转换为毫秒差比较值。 */
|
|
28
|
+
export declare function parseRangeValidationEndpoint(value: unknown, spanUnit: RangeValidationSpanUnit): number | undefined;
|
|
29
|
+
export declare function rangeEndpointFormat(spanUnit: RangeValidationSpanUnit): 'YYYY-MM-DD' | 'HH:mm:ss';
|
|
30
|
+
/** 将已解析端点恢复为 Element Plus 等消费端需要的协议字符串。 */
|
|
31
|
+
export declare function formatRangeValidationEndpoint(value: number, spanUnit: RangeValidationSpanUnit): string;
|
|
32
|
+
//# sourceMappingURL=range-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-validation.d.ts","sourceRoot":"","sources":["../../src/utils/range-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAEvE,MAAM,WAAW,6BAA6B;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,IAAI,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,uBAAuB,CAAA;CACpC;AAED,MAAM,WAAW,yBAAyB;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,6BAA6B,GACnC,QAAQ,GACR,OAAO,GACP,iBAAiB,GACjB,SAAS,GACT,KAAK,GACL,KAAK,GACL,UAAU,CAAA;AAEhB,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,6BAA6B,CAAA;IACnC,QAAQ,CAAC,EAAE,uBAAuB,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,2BAA2B;IACxC,KAAK,CAAC,EAAE,6BAA6B,CAAA;IACrC,MAAM,EAAE,yBAAyB,EAAE,CAAA;CACtC;AAID,gDAAgD;AAChD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,GAAG,2BAA2B,CA4DzF;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,yBAAyB,GAAG,SAAS,CAsCzG;AAED,wBAAwB;AACxB,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,GAAG,MAAM,GAAG,SAAS,CAgClH;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,YAAY,GAAG,UAAU,CAEhG;AAED,2CAA2C;AAC3C,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAUtG"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
const rangeParamKeys = new Set(['min', 'max', 'ordered', 'max_span', 'span_unit']);
|
|
2
|
+
/** 严格解析 range 规则参数,供提交校验、UI 约束和 Designer 共用。 */
|
|
3
|
+
export function resolveRangeValidationParams(params) {
|
|
4
|
+
if (!isRecord(params)) {
|
|
5
|
+
return {
|
|
6
|
+
issues: [{ key: 'params', message: 'range params 必须是对象。' }],
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
const issues = [];
|
|
10
|
+
for (const key of Object.keys(params)) {
|
|
11
|
+
if (!rangeParamKeys.has(key)) {
|
|
12
|
+
issues.push({ key, message: `不支持 range 参数 ${key}。` });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const spanUnit = params.span_unit;
|
|
16
|
+
if (spanUnit !== 'day' && spanUnit !== 'minute') {
|
|
17
|
+
issues.push({ key: 'span_unit', message: '跨度单位必须是 day 或 minute。' });
|
|
18
|
+
}
|
|
19
|
+
if (params.ordered !== true) {
|
|
20
|
+
issues.push({ key: 'ordered', message: '起止顺序必须固定启用。' });
|
|
21
|
+
}
|
|
22
|
+
const maxSpan = params.max_span;
|
|
23
|
+
if (maxSpan !== undefined && (typeof maxSpan !== 'number' || !Number.isSafeInteger(maxSpan) || maxSpan < 0)) {
|
|
24
|
+
issues.push({ key: 'max_span', message: '最大跨度必须是非负整数。' });
|
|
25
|
+
}
|
|
26
|
+
let min;
|
|
27
|
+
let max;
|
|
28
|
+
if (spanUnit === 'day' || spanUnit === 'minute') {
|
|
29
|
+
if (params.min !== undefined) {
|
|
30
|
+
min = parseRangeValidationEndpoint(params.min, spanUnit);
|
|
31
|
+
if (min === undefined) {
|
|
32
|
+
issues.push({ key: 'min', message: `最小边界必须使用 ${rangeEndpointFormat(spanUnit)} 格式。` });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (params.max !== undefined) {
|
|
36
|
+
max = parseRangeValidationEndpoint(params.max, spanUnit);
|
|
37
|
+
if (max === undefined) {
|
|
38
|
+
issues.push({ key: 'max', message: `最大边界必须使用 ${rangeEndpointFormat(spanUnit)} 格式。` });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (min !== undefined && max !== undefined && min > max) {
|
|
42
|
+
issues.push({ key: 'max', message: '最大边界不能早于最小边界。' });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (issues.length || (spanUnit !== 'day' && spanUnit !== 'minute') || params.ordered !== true) {
|
|
46
|
+
return { issues };
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
value: {
|
|
50
|
+
min,
|
|
51
|
+
max,
|
|
52
|
+
ordered: true,
|
|
53
|
+
maxSpan: typeof maxSpan === 'number' ? maxSpan : undefined,
|
|
54
|
+
spanUnit,
|
|
55
|
+
},
|
|
56
|
+
issues: [],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** 校验非空 JSON 二元范围值;null 和空数组继续由 required 规则决定。 */
|
|
60
|
+
export function validateRangeValue(value, params) {
|
|
61
|
+
if (value === null || value === undefined || (Array.isArray(value) && value.length === 0)) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
const resolved = resolveRangeValidationParams(params);
|
|
65
|
+
if (!resolved.value) {
|
|
66
|
+
return { code: 'params' };
|
|
67
|
+
}
|
|
68
|
+
if (!Array.isArray(value) || value.length !== 2 || isEmptyEndpoint(value[0]) || isEmptyEndpoint(value[1])) {
|
|
69
|
+
return { code: 'shape', spanUnit: resolved.value.spanUnit };
|
|
70
|
+
}
|
|
71
|
+
const start = parseRangeValidationEndpoint(value[0], resolved.value.spanUnit);
|
|
72
|
+
const end = parseRangeValidationEndpoint(value[1], resolved.value.spanUnit);
|
|
73
|
+
if (start === undefined || end === undefined) {
|
|
74
|
+
return { code: 'endpoint_format', spanUnit: resolved.value.spanUnit };
|
|
75
|
+
}
|
|
76
|
+
if (resolved.value.ordered && start > end) {
|
|
77
|
+
return { code: 'ordered', spanUnit: resolved.value.spanUnit };
|
|
78
|
+
}
|
|
79
|
+
if (resolved.value.min !== undefined && (start < resolved.value.min || end < resolved.value.min)) {
|
|
80
|
+
return { code: 'min', spanUnit: resolved.value.spanUnit };
|
|
81
|
+
}
|
|
82
|
+
if (resolved.value.max !== undefined && (start > resolved.value.max || end > resolved.value.max)) {
|
|
83
|
+
return { code: 'max', spanUnit: resolved.value.spanUnit };
|
|
84
|
+
}
|
|
85
|
+
if (resolved.value.maxSpan !== undefined &&
|
|
86
|
+
end >= start &&
|
|
87
|
+
end - start > resolved.value.maxSpan * rangeSpanMilliseconds(resolved.value.spanUnit)) {
|
|
88
|
+
return {
|
|
89
|
+
code: 'max_span',
|
|
90
|
+
spanUnit: resolved.value.spanUnit,
|
|
91
|
+
maxSpan: resolved.value.maxSpan,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
/** 将严格格式端点转换为毫秒差比较值。 */
|
|
97
|
+
export function parseRangeValidationEndpoint(value, spanUnit) {
|
|
98
|
+
if (typeof value !== 'string') {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
if (spanUnit === 'day') {
|
|
102
|
+
const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
|
|
103
|
+
if (!match) {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
const year = Number(match[1]);
|
|
107
|
+
const month = Number(match[2]);
|
|
108
|
+
const day = Number(match[3]);
|
|
109
|
+
const parsed = new Date(0);
|
|
110
|
+
parsed.setUTCHours(0, 0, 0, 0);
|
|
111
|
+
parsed.setUTCFullYear(year, month - 1, day);
|
|
112
|
+
if (parsed.getUTCFullYear() !== year || parsed.getUTCMonth() !== month - 1 || parsed.getUTCDate() !== day) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
return parsed.getTime();
|
|
116
|
+
}
|
|
117
|
+
const match = /^(\d{2}):(\d{2}):(\d{2})$/.exec(value);
|
|
118
|
+
if (!match) {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
const hour = Number(match[1]);
|
|
122
|
+
const minute = Number(match[2]);
|
|
123
|
+
const second = Number(match[3]);
|
|
124
|
+
if (hour > 23 || minute > 59 || second > 59) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
return (hour * 3600 + minute * 60 + second) * 1000;
|
|
128
|
+
}
|
|
129
|
+
export function rangeEndpointFormat(spanUnit) {
|
|
130
|
+
return spanUnit === 'day' ? 'YYYY-MM-DD' : 'HH:mm:ss';
|
|
131
|
+
}
|
|
132
|
+
/** 将已解析端点恢复为 Element Plus 等消费端需要的协议字符串。 */
|
|
133
|
+
export function formatRangeValidationEndpoint(value, spanUnit) {
|
|
134
|
+
if (spanUnit === 'day') {
|
|
135
|
+
const date = new Date(value);
|
|
136
|
+
return [date.getUTCFullYear(), pad(date.getUTCMonth() + 1), pad(date.getUTCDate())].join('-');
|
|
137
|
+
}
|
|
138
|
+
const totalSeconds = Math.floor(value / 1000);
|
|
139
|
+
const hour = Math.floor(totalSeconds / 3600);
|
|
140
|
+
const minute = Math.floor((totalSeconds % 3600) / 60);
|
|
141
|
+
const second = totalSeconds % 60;
|
|
142
|
+
return [pad(hour), pad(minute), pad(second)].join(':');
|
|
143
|
+
}
|
|
144
|
+
function rangeSpanMilliseconds(spanUnit) {
|
|
145
|
+
return spanUnit === 'day' ? 24 * 60 * 60 * 1000 : 60 * 1000;
|
|
146
|
+
}
|
|
147
|
+
function isEmptyEndpoint(value) {
|
|
148
|
+
return value === null || value === undefined || (typeof value === 'string' && value.trim() === '');
|
|
149
|
+
}
|
|
150
|
+
function isRecord(value) {
|
|
151
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
152
|
+
}
|
|
153
|
+
function pad(value) {
|
|
154
|
+
return String(value).padStart(2, '0');
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=range-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-validation.js","sourceRoot":"","sources":["../../src/utils/range-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-format.d.ts","sourceRoot":"","sources":["../../src/utils/validation-format.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAiB9E"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
const simpleFormatPatterns = {
|
|
2
|
+
email: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
|
|
3
|
+
phone: /^\+?[0-9][0-9\s-]{5,}$/,
|
|
4
|
+
cn_mobile: /^1[3-9][0-9]{9}$/,
|
|
5
|
+
url: /^[a-zA-Z][a-zA-Z\d+.-]*:\/\/[^\s/$.?#].[^\s]*$/,
|
|
6
|
+
uuid: /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,
|
|
7
|
+
lower_alpha: /^[a-z]+$/,
|
|
8
|
+
alpha: /^[A-Za-z]+$/,
|
|
9
|
+
alpha_num: /^[A-Za-z0-9]+$/,
|
|
10
|
+
slug: /^[A-Za-z0-9_-]+$/,
|
|
11
|
+
identifier: /^[A-Za-z_][A-Za-z0-9_]*$/,
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* 判断字段值是否命中 schema 内置 format。
|
|
15
|
+
*
|
|
16
|
+
* 前端只做即时反馈,后端仍是最终校验边界;这里集中维护名称和大部分规则,避免 core 与 UI adapter 漂移。
|
|
17
|
+
*/
|
|
18
|
+
export function matchesValidationFormat(format, value) {
|
|
19
|
+
switch (format.trim().toLowerCase()) {
|
|
20
|
+
case 'cn_id_card':
|
|
21
|
+
return matchesCNIDCard(value);
|
|
22
|
+
case 'ip':
|
|
23
|
+
return matchesIPv4(value) || matchesIPv6(value);
|
|
24
|
+
case 'ipv4':
|
|
25
|
+
return matchesIPv4(value);
|
|
26
|
+
case 'ipv6':
|
|
27
|
+
return matchesIPv6(value);
|
|
28
|
+
case 'color':
|
|
29
|
+
return matchesColor(value);
|
|
30
|
+
default: {
|
|
31
|
+
const pattern = simpleFormatPatterns[format.trim().toLowerCase()];
|
|
32
|
+
return pattern ? pattern.test(value) : true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function matchesColor(value) {
|
|
37
|
+
if (/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value)) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
const matched = /^(rgb|rgba)\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})(?:\s*,\s*(0|1|0?\.\d+))?\s*\)$/.exec(value);
|
|
41
|
+
if (matched) {
|
|
42
|
+
if ((matched[1] === 'rgb' && matched[5] !== undefined) || (matched[1] === 'rgba' && matched[5] === undefined)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
if (matched.slice(2, 5).some((channel) => Number(channel) > 255)) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return matched[5] === undefined || Number(matched[5]) <= 1;
|
|
49
|
+
}
|
|
50
|
+
const functional = /^(hsl|hsla|hsv|hsva)\(\s*(\d{1,3}(?:\.\d+)?)\s*,\s*(\d{1,3}(?:\.\d+)?)%\s*,\s*(\d{1,3}(?:\.\d+)?)%(?:\s*,\s*(0|1|0?\.\d+))?\s*\)$/.exec(value);
|
|
51
|
+
if (!functional) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const hasAlphaName = functional[1] === 'hsla' || functional[1] === 'hsva';
|
|
55
|
+
if (hasAlphaName !== (functional[5] !== undefined)) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
if (Number(functional[2]) > 360 || Number(functional[3]) > 100 || Number(functional[4]) > 100) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return functional[5] === undefined || Number(functional[5]) <= 1;
|
|
62
|
+
}
|
|
63
|
+
function matchesCNIDCard(value) {
|
|
64
|
+
if (!/^[0-9]{17}[0-9Xx]$/.test(value)) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
|
|
68
|
+
const checks = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
|
|
69
|
+
const sum = weights.reduce((total, weight, index) => total + Number(value[index]) * weight, 0);
|
|
70
|
+
return value[17].toUpperCase() === checks[sum % 11];
|
|
71
|
+
}
|
|
72
|
+
function matchesIPv4(value) {
|
|
73
|
+
const parts = value.split('.');
|
|
74
|
+
if (parts.length !== 4) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return parts.every((part) => {
|
|
78
|
+
if (!/^\d{1,3}$/.test(part)) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const numberValue = Number(part);
|
|
82
|
+
return numberValue >= 0 && numberValue <= 255;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function matchesIPv6(value) {
|
|
86
|
+
if (!/^[0-9a-fA-F:]+$/.test(value) || !value.includes(':')) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
if (value.includes(':::')) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
const doubleColonCount = value.split('::').length - 1;
|
|
93
|
+
if (doubleColonCount > 1) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
const groups = value.split(':').filter((part) => part !== '');
|
|
97
|
+
if (doubleColonCount === 0 && groups.length !== 8) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
if (doubleColonCount === 1 && groups.length >= 8) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
return groups.every((group) => /^[0-9a-fA-F]{1,4}$/.test(group));
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=validation-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-format.js","sourceRoot":"","sources":["../../src/utils/validation-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { FieldValueExpression, ResourceField } from '@sparqjs/schema-protocol';
|
|
2
|
+
export interface FieldValueExpressionContext {
|
|
3
|
+
field?: ResourceField;
|
|
4
|
+
now?: Date;
|
|
5
|
+
}
|
|
6
|
+
export interface ValidationRuleValueLike {
|
|
7
|
+
value?: unknown;
|
|
8
|
+
value_expr?: FieldValueExpression;
|
|
9
|
+
}
|
|
10
|
+
export declare function evaluateFieldValueExpression(expression: FieldValueExpression | undefined, context?: FieldValueExpressionContext): unknown;
|
|
11
|
+
export declare function resolveValidationRuleValue(rule: ValidationRuleValueLike, field?: ResourceField): unknown;
|
|
12
|
+
export declare function resolveValidationIntegerRuleValue(rule: ValidationRuleValueLike | undefined): number | undefined;
|
|
13
|
+
export declare function resolveValidationNumberRuleValue(rule: ValidationRuleValueLike | undefined, field?: ResourceField): number | undefined;
|
|
14
|
+
export declare function resolveValidationDateTimeRuleValue(rule: ValidationRuleValueLike | undefined, field?: ResourceField): number | undefined;
|
|
15
|
+
export declare function resolveValidationTimeStringRuleValue(rule: ValidationRuleValueLike | undefined, field?: ResourceField): string | undefined;
|
|
16
|
+
export declare function compareValidationRuleValue(value: unknown, boundary: unknown): number | undefined;
|
|
17
|
+
export declare function normalizeValidationIntegerValue(value: unknown): number | undefined;
|
|
18
|
+
export declare function normalizeValidationNumberValue(value: unknown): number | undefined;
|
|
19
|
+
export declare function normalizeValidationDateTimeValue(value: unknown): number | undefined;
|
|
20
|
+
export declare function normalizeValidationTimeValue(value: unknown): number | undefined;
|
|
21
|
+
export declare function normalizeValidationTimeString(value: unknown): string | undefined;
|
|
22
|
+
//# sourceMappingURL=value-expression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-expression.d.ts","sourceRoot":"","sources":["../../src/utils/value-expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAEnF,MAAM,WAAW,2BAA2B;IACxC,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,GAAG,CAAC,EAAE,IAAI,CAAA;CACb;AAED,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,oBAAoB,CAAA;CACpC;AAED,wBAAgB,4BAA4B,CACxC,UAAU,EAAE,oBAAoB,GAAG,SAAS,EAC5C,OAAO,GAAE,2BAAgC,GAC1C,OAAO,CAaT;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,OAAO,CAKxG;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK/G;AAED,wBAAgB,gCAAgC,CAC5C,IAAI,EAAE,uBAAuB,GAAG,SAAS,EACzC,KAAK,CAAC,EAAE,aAAa,GACtB,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,kCAAkC,CAC9C,IAAI,EAAE,uBAAuB,GAAG,SAAS,EACzC,KAAK,CAAC,EAAE,aAAa,GACtB,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,oCAAoC,CAChD,IAAI,EAAE,uBAAuB,GAAG,SAAS,EACzC,KAAK,CAAC,EAAE,aAAa,GACtB,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAoBhG;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGlF;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CASjF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAmBnF;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAU/E;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAWhF"}
|