@flanksource/clicky-ui 0.3.34 → 0.3.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/ai.cjs +3 -0
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +3 -0
- package/dist/ai.js.map +1 -1
- package/dist/comments/CommentCard.d.ts +1 -1
- package/dist/comments/CommentProvider.d.ts +1 -1
- package/dist/comments/CommentThread.d.ts +1 -1
- package/dist/comments/CommentThreadList.d.ts +1 -1
- package/dist/comments/MentionTextarea.d.ts +1 -1
- package/dist/comments/comment-context.d.ts +4 -4
- package/dist/comments/comment-fixtures.d.ts +1 -1
- package/dist/comments/comment-types.d.ts +1 -1
- package/dist/components/AccordionList.d.ts +1 -1
- package/dist/components/ComboboxControl.d.ts +1 -1
- package/dist/components/ComboboxMenu.d.ts +2 -2
- package/dist/components/ComboboxTags.cjs +41 -11
- package/dist/components/ComboboxTags.cjs.map +1 -1
- package/dist/components/ComboboxTags.d.ts +6 -0
- package/dist/components/ComboboxTags.d.ts.map +1 -1
- package/dist/components/ComboboxTags.js +41 -11
- package/dist/components/ComboboxTags.js.map +1 -1
- package/dist/components/DateField.d.ts +3 -3
- package/dist/components/DatePicker.d.ts +3 -3
- package/dist/components/DateTimePicker.d.ts +3 -3
- package/dist/components/ErrorWrapper.d.ts +2 -2
- package/dist/components/Field.d.ts +1 -1
- package/dist/components/FilterBar.d.ts +1 -1
- package/dist/components/FormLookupProvider.d.ts +1 -1
- package/dist/components/FormatOptionsDropdown.d.ts +1 -1
- package/dist/components/IconButton.d.ts +3 -3
- package/dist/components/InputField.d.ts +2 -2
- package/dist/components/ItemActions.d.ts +1 -1
- package/dist/components/JsonSchemaForm.cjs +17 -36
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +17 -36
- package/dist/components/JsonSchemaForm.js.map +1 -1
- package/dist/components/ListMenu.d.ts +1 -1
- package/dist/components/MultiSelect.d.ts +1 -1
- package/dist/components/SearchInput.d.ts +1 -1
- package/dist/components/SegmentedControl.d.ts +1 -1
- package/dist/components/SplitButton.d.ts +1 -1
- package/dist/components/Switch.d.ts +1 -1
- package/dist/components/TreePickerField.cjs +11 -2
- package/dist/components/TreePickerField.cjs.map +1 -1
- package/dist/components/TreePickerField.d.ts +13 -4
- package/dist/components/TreePickerField.d.ts.map +1 -1
- package/dist/components/TreePickerField.js +11 -2
- package/dist/components/TreePickerField.js.map +1 -1
- package/dist/components/UnitStepControls.d.ts +1 -1
- package/dist/components/button.d.ts +3 -3
- package/dist/components/combobox-types.d.ts +1 -1
- package/dist/components/density-switcher.d.ts +1 -1
- package/dist/components/filter-bar-context.d.ts +1 -1
- package/dist/components/filter-bar-field-utils.d.ts +2 -2
- package/dist/components/form-lookup-context.d.ts +1 -1
- package/dist/components/icon-menu-picker.d.ts +1 -1
- package/dist/components/json-schema-form-accordion-array.cjs +44 -21
- package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
- package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-accordion-array.js +47 -24
- package/dist/components/json-schema-form-accordion-array.js.map +1 -1
- package/dist/components/json-schema-form-array.cjs +53 -30
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +54 -31
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-cards-array.cjs +32 -22
- package/dist/components/json-schema-form-cards-array.cjs.map +1 -1
- package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-cards-array.js +33 -23
- package/dist/components/json-schema-form-cards-array.js.map +1 -1
- package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts +44 -0
- package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts.map +1 -0
- package/dist/components/json-schema-form-discriminator.d.ts +1 -1
- package/dist/components/json-schema-form-errors.cjs +5 -1
- package/dist/components/json-schema-form-errors.cjs.map +1 -1
- package/dist/components/json-schema-form-errors.d.ts +2 -1
- package/dist/components/json-schema-form-errors.d.ts.map +1 -1
- package/dist/components/json-schema-form-errors.js +6 -2
- package/dist/components/json-schema-form-errors.js.map +1 -1
- package/dist/components/json-schema-form-extensions.d.ts +1 -1
- package/dist/components/json-schema-form-filter-input.cjs +50 -0
- package/dist/components/json-schema-form-filter-input.cjs.map +1 -0
- package/dist/components/json-schema-form-filter-input.d.ts +5 -0
- package/dist/components/json-schema-form-filter-input.d.ts.map +1 -0
- package/dist/components/json-schema-form-filter-input.js +50 -0
- package/dist/components/json-schema-form-filter-input.js.map +1 -0
- package/dist/components/json-schema-form-filter.cjs +49 -0
- package/dist/components/json-schema-form-filter.cjs.map +1 -0
- package/dist/components/json-schema-form-filter.d.ts +8 -0
- package/dist/components/json-schema-form-filter.d.ts.map +1 -0
- package/dist/components/json-schema-form-filter.js +49 -0
- package/dist/components/json-schema-form-filter.js.map +1 -0
- package/dist/components/json-schema-form-layout.cjs +84 -17
- package/dist/components/json-schema-form-layout.cjs.map +1 -1
- package/dist/components/json-schema-form-layout.d.ts +1 -1
- package/dist/components/json-schema-form-layout.d.ts.map +1 -1
- package/dist/components/json-schema-form-layout.js +84 -17
- package/dist/components/json-schema-form-layout.js.map +1 -1
- package/dist/components/json-schema-form-list-array.cjs +16 -5
- package/dist/components/json-schema-form-list-array.cjs.map +1 -1
- package/dist/components/json-schema-form-list-array.d.ts +2 -1
- package/dist/components/json-schema-form-list-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-list-array.js +16 -5
- package/dist/components/json-schema-form-list-array.js.map +1 -1
- package/dist/components/json-schema-form-object.cjs +239 -85
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts +2 -2
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +241 -87
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-preferences.cjs +1 -1
- package/dist/components/json-schema-form-preferences.cjs.map +1 -1
- package/dist/components/json-schema-form-preferences.d.ts +1 -1
- package/dist/components/json-schema-form-preferences.d.ts.map +1 -1
- package/dist/components/json-schema-form-preferences.js +1 -1
- package/dist/components/json-schema-form-preferences.js.map +1 -1
- package/dist/components/json-schema-form-properties-errors.fixtures.d.ts +14 -0
- package/dist/components/json-schema-form-properties-errors.fixtures.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties-size.cjs +19 -0
- package/dist/components/json-schema-form-properties-size.cjs.map +1 -0
- package/dist/components/json-schema-form-properties-size.d.ts +4 -0
- package/dist/components/json-schema-form-properties-size.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties-size.js +19 -0
- package/dist/components/json-schema-form-properties-size.js.map +1 -0
- package/dist/components/json-schema-form-properties.cjs +305 -0
- package/dist/components/json-schema-form-properties.cjs.map +1 -0
- package/dist/components/json-schema-form-properties.d.ts +20 -0
- package/dist/components/json-schema-form-properties.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties.fixtures.d.ts +157 -0
- package/dist/components/json-schema-form-properties.fixtures.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties.js +305 -0
- package/dist/components/json-schema-form-properties.js.map +1 -0
- package/dist/components/json-schema-form-property-actions-context.cjs +6 -0
- package/dist/components/json-schema-form-property-actions-context.cjs.map +1 -0
- package/dist/components/json-schema-form-property-actions-context.d.ts +2 -0
- package/dist/components/json-schema-form-property-actions-context.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-actions-context.js +6 -0
- package/dist/components/json-schema-form-property-actions-context.js.map +1 -0
- package/dist/components/json-schema-form-property-collection.cjs +31 -0
- package/dist/components/json-schema-form-property-collection.cjs.map +1 -0
- package/dist/components/json-schema-form-property-collection.d.ts +6 -0
- package/dist/components/json-schema-form-property-collection.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-collection.js +31 -0
- package/dist/components/json-schema-form-property-collection.js.map +1 -0
- package/dist/components/json-schema-form-property-draft.cjs +45 -0
- package/dist/components/json-schema-form-property-draft.cjs.map +1 -0
- package/dist/components/json-schema-form-property-draft.d.ts +8 -0
- package/dist/components/json-schema-form-property-draft.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-draft.js +45 -0
- package/dist/components/json-schema-form-property-draft.js.map +1 -0
- package/dist/components/json-schema-form-property-preview.cjs +68 -0
- package/dist/components/json-schema-form-property-preview.cjs.map +1 -0
- package/dist/components/json-schema-form-property-preview.d.ts +7 -0
- package/dist/components/json-schema-form-property-preview.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-preview.js +68 -0
- package/dist/components/json-schema-form-property-preview.js.map +1 -0
- package/dist/components/json-schema-form-property-selection.cjs +89 -0
- package/dist/components/json-schema-form-property-selection.cjs.map +1 -0
- package/dist/components/json-schema-form-property-selection.d.ts +6 -0
- package/dist/components/json-schema-form-property-selection.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-selection.js +89 -0
- package/dist/components/json-schema-form-property-selection.js.map +1 -0
- package/dist/components/json-schema-form-render.cjs +41 -4
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +42 -5
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +2 -0
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +2 -0
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-runtime-types.d.ts +222 -0
- package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -0
- package/dist/components/json-schema-form-table-array.cjs +82 -51
- package/dist/components/json-schema-form-table-array.cjs.map +1 -1
- package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-table-array.js +84 -53
- package/dist/components/json-schema-form-table-array.js.map +1 -1
- package/dist/components/json-schema-form-template-menu.d.ts +1 -1
- package/dist/components/json-schema-form-template.d.ts +1 -1
- package/dist/components/json-schema-form-types.d.ts +7 -179
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.cjs +10 -9
- package/dist/components/json-schema-form-utils.cjs.map +1 -1
- package/dist/components/json-schema-form-utils.d.ts +11 -1
- package/dist/components/json-schema-form-utils.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.js +10 -9
- package/dist/components/json-schema-form-utils.js.map +1 -1
- package/dist/components/loading.d.ts +4 -4
- package/dist/components/mdx-editor-callout.d.ts +1 -1
- package/dist/components/mdx-editor-options.d.ts +1 -1
- package/dist/components/select.d.ts +3 -3
- package/dist/components/theme-switcher.d.ts +1 -1
- package/dist/components/use-list-menu-selection.d.ts +1 -1
- package/dist/components/useComboboxLayout.d.ts +1 -1
- package/dist/components/workload-picker-utils.d.ts +1 -1
- package/dist/data/Avatar.d.ts +1 -1
- package/dist/data/AvatarBadge.d.ts +1 -1
- package/dist/data/Badge.d.ts +1 -1
- package/dist/data/Callout.d.ts +1 -1
- package/dist/data/DataTable.cjs +575 -435
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +21 -13
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.grouping.d.ts +1 -1
- package/dist/data/DataTable.js +575 -435
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/ExecutionTree.d.ts +1 -1
- package/dist/data/FilterPill.d.ts +1 -1
- package/dist/data/FixtureEditor/RawFenceEditor.d.ts +1 -1
- package/dist/data/FixtureEditor/types.d.ts +1 -1
- package/dist/data/Gauge.d.ts +1 -1
- package/dist/data/GaugeHoverCard.d.ts +1 -1
- package/dist/data/Icon.d.ts +1 -1
- package/dist/data/KeyValueList.d.ts +1 -1
- package/dist/data/MarkdownEditor.d.ts +1 -1
- package/dist/data/MatrixTable.d.ts +1 -1
- package/dist/data/ObjectGraph.d.ts +1 -1
- package/dist/data/ProgressBars.d.ts +1 -1
- package/dist/data/Properties.cjs +86 -35
- package/dist/data/Properties.cjs.map +1 -1
- package/dist/data/Properties.d.ts +2 -2
- package/dist/data/Properties.d.ts.map +1 -1
- package/dist/data/Properties.js +87 -36
- package/dist/data/Properties.js.map +1 -1
- package/dist/data/RadialGauge.d.ts +1 -1
- package/dist/data/SchemaViewer.d.ts +1 -1
- package/dist/data/SortableHeader.d.ts +1 -1
- package/dist/data/StatStrip.d.ts +1 -1
- package/dist/data/StatusBreakdown.d.ts +1 -1
- package/dist/data/TabButton.d.ts +1 -1
- package/dist/data/TaskManager.cjs +9 -17
- package/dist/data/TaskManager.cjs.map +1 -1
- package/dist/data/TaskManager.d.ts.map +1 -1
- package/dist/data/TaskManager.js +9 -17
- package/dist/data/TaskManager.js.map +1 -1
- package/dist/data/TaskManagerButton.cjs +17 -34
- package/dist/data/TaskManagerButton.cjs.map +1 -1
- package/dist/data/TaskManagerButton.d.ts.map +1 -1
- package/dist/data/TaskManagerButton.js +18 -35
- package/dist/data/TaskManagerButton.js.map +1 -1
- package/dist/data/TaskProcessDetails.cjs +5 -26
- package/dist/data/TaskProcessDetails.cjs.map +1 -1
- package/dist/data/TaskProcessDetails.d.ts +2 -1
- package/dist/data/TaskProcessDetails.d.ts.map +1 -1
- package/dist/data/TaskProcessDetails.js +5 -26
- package/dist/data/TaskProcessDetails.js.map +1 -1
- package/dist/data/TaskProgress.cjs +24 -15
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts +2 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +24 -15
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskResourceReadings.cjs +42 -0
- package/dist/data/TaskResourceReadings.cjs.map +1 -0
- package/dist/data/TaskResourceReadings.d.ts +6 -0
- package/dist/data/TaskResourceReadings.d.ts.map +1 -0
- package/dist/data/TaskResourceReadings.js +42 -0
- package/dist/data/TaskResourceReadings.js.map +1 -0
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +14 -1
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/Timeline.d.ts +1 -1
- package/dist/data/Tree.d.ts +1 -1
- package/dist/data/TreeGroupHeader.d.ts +1 -1
- package/dist/data/TreeNode.d.ts +1 -1
- package/dist/data/Version.d.ts +3 -3
- package/dist/data/ai/ChatWindow.cjs +22 -12
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +22 -12
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.test-utils.d.ts +4 -2
- package/dist/data/ai/ChatWindow.test-utils.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.types.d.ts +1 -1
- package/dist/data/ai/ChatWindowManager.cjs +2 -0
- package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
- package/dist/data/ai/ChatWindowManager.d.ts +1 -1
- package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
- package/dist/data/ai/ChatWindowManager.js +2 -0
- package/dist/data/ai/ChatWindowManager.js.map +1 -1
- package/dist/data/ai/PolicyTree.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/types.d.ts +1 -1
- package/dist/data/ai/PromptRunEditor/index.cjs +4 -0
- package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts +5 -2
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.js +4 -0
- package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
- package/dist/data/ai/SessionChatComposer.d.ts +1 -1
- package/dist/data/ai/SessionInspector.approvals.cjs +147 -0
- package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.approvals.d.ts +21 -0
- package/dist/data/ai/SessionInspector.approvals.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.approvals.js +147 -0
- package/dist/data/ai/SessionInspector.approvals.js.map +1 -0
- package/dist/data/ai/SessionInspector.cjs +21 -8
- package/dist/data/ai/SessionInspector.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.d.ts +6 -2
- package/dist/data/ai/SessionInspector.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.d.ts +1 -1
- package/dist/data/ai/SessionInspector.js +21 -8
- package/dist/data/ai/SessionInspector.js.map +1 -1
- package/dist/data/ai/SessionInspector.panel-parts.cjs +47 -0
- package/dist/data/ai/SessionInspector.panel-parts.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.panel-parts.d.ts +20 -0
- package/dist/data/ai/SessionInspector.panel-parts.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.panel-parts.js +47 -0
- package/dist/data/ai/SessionInspector.panel-parts.js.map +1 -0
- package/dist/data/ai/SessionInspector.panels.cjs +40 -99
- package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.panels.d.ts +3 -1
- package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.panels.js +12 -71
- package/dist/data/ai/SessionInspector.panels.js.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts +1 -1
- package/dist/data/ai/SessionViewer.tool-details.d.ts +1 -1
- package/dist/data/ai/SessionViewer.unified.d.ts +23 -0
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs +3 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +3 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js +3 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.cjs +3 -1
- package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +5 -2
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js +3 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
- package/dist/data/ai/chat-window-context.cjs +1 -0
- package/dist/data/ai/chat-window-context.cjs.map +1 -1
- package/dist/data/ai/chat-window-context.d.ts +13 -5
- package/dist/data/ai/chat-window-context.d.ts.map +1 -1
- package/dist/data/ai/chat-window-context.js +1 -0
- package/dist/data/ai/chat-window-context.js.map +1 -1
- package/dist/data/ai/index.d.ts +2 -1
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/use-session-scroll.d.ts +1 -1
- package/dist/data/cache-browser/adapter.d.ts +1 -1
- package/dist/data/cells/CellFilterActions.d.ts +1 -1
- package/dist/data/cells/EntityCell.d.ts +1 -1
- package/dist/data/cells/tag-utils.d.ts +1 -1
- package/dist/data/chat/Chat.cjs +42 -46
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts +16 -5
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.js +43 -47
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/ModelSelector.d.ts +1 -1
- package/dist/data/chat/PromptInput.cjs +13 -0
- package/dist/data/chat/PromptInput.cjs.map +1 -1
- package/dist/data/chat/PromptInput.d.ts +8 -2
- package/dist/data/chat/PromptInput.d.ts.map +1 -1
- package/dist/data/chat/PromptInput.js +14 -1
- package/dist/data/chat/PromptInput.js.map +1 -1
- package/dist/data/chat/tool-render/ToolArgs.d.ts +1 -1
- package/dist/data/chat/tool-render/ToolParams.d.ts +1 -1
- package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
- package/dist/data/chat/tool-render/adapter.d.ts +1 -1
- package/dist/data/chat/tool-render/context.d.ts +1 -1
- package/dist/data/chat/tool-render/defaults.d.ts +1 -1
- package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
- package/dist/data/chat/tool-render/summary.d.ts +1 -1
- package/dist/data/chat/types.d.ts +1 -1
- package/dist/data/clicky-export/useClickyExport.d.ts +1 -1
- package/dist/data/data-table-server-filters.d.ts +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +1 -1
- package/dist/data/diagnostics/ErrorDetails.d.ts +1 -1
- package/dist/data/diagnostics/StackFrameRow.d.ts +1 -1
- package/dist/data/git/GitChangeList.d.ts +1 -1
- package/dist/data/icon-fallback.d.ts +1 -1
- package/dist/data/properties-context.cjs +6 -0
- package/dist/data/properties-context.cjs.map +1 -0
- package/dist/data/properties-context.d.ts +7 -0
- package/dist/data/properties-context.d.ts.map +1 -0
- package/dist/data/properties-context.js +6 -0
- package/dist/data/properties-context.js.map +1 -0
- package/dist/data/query-browser/QueryBrowser.types.d.ts +1 -1
- package/dist/data/runtime/RuntimeBar.cjs +7 -3
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.js +7 -3
- package/dist/data/runtime/RuntimeBar.js.map +1 -1
- package/dist/data/task-copy.cjs +1 -1
- package/dist/data/task-copy.cjs.map +1 -1
- package/dist/data/task-copy.js +1 -1
- package/dist/data/task-copy.js.map +1 -1
- package/dist/data/task-resource-summary.cjs +30 -0
- package/dist/data/task-resource-summary.cjs.map +1 -0
- package/dist/data/task-resource-summary.d.ts +15 -0
- package/dist/data/task-resource-summary.d.ts.map +1 -0
- package/dist/data/task-resource-summary.js +30 -0
- package/dist/data/task-resource-summary.js.map +1 -0
- package/dist/data/task-status.cjs +8 -2
- package/dist/data/task-status.cjs.map +1 -1
- package/dist/data/task-status.d.ts +3 -0
- package/dist/data/task-status.d.ts.map +1 -1
- package/dist/data/task-status.js +8 -2
- package/dist/data/task-status.js.map +1 -1
- package/dist/data/task-work-progress.cjs +24 -0
- package/dist/data/task-work-progress.cjs.map +1 -0
- package/dist/data/task-work-progress.d.ts +21 -0
- package/dist/data/task-work-progress.d.ts.map +1 -0
- package/dist/data/task-work-progress.js +24 -0
- package/dist/data/task-work-progress.js.map +1 -0
- package/dist/data/test-runner/TestRunner.d.ts +1 -1
- package/dist/data/test-runner/adapter.d.ts +1 -1
- package/dist/data/test-runner/context.d.ts +1 -1
- package/dist/data/use-data-table-virtual.cjs +73 -0
- package/dist/data/use-data-table-virtual.cjs.map +1 -0
- package/dist/data/use-data-table-virtual.d.ts +40 -0
- package/dist/data/use-data-table-virtual.d.ts.map +1 -0
- package/dist/data/use-data-table-virtual.js +73 -0
- package/dist/data/use-data-table-virtual.js.map +1 -0
- package/dist/data/verification/VerificationResults.d.ts +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/expressions/lang/attributes.cjs +56 -0
- package/dist/expressions/lang/attributes.cjs.map +1 -0
- package/dist/expressions/lang/attributes.d.ts +22 -0
- package/dist/expressions/lang/attributes.d.ts.map +1 -0
- package/dist/expressions/lang/attributes.js +56 -0
- package/dist/expressions/lang/attributes.js.map +1 -0
- package/dist/expressions/lang/completion.cjs +164 -0
- package/dist/expressions/lang/completion.cjs.map +1 -0
- package/dist/expressions/lang/completion.d.ts +29 -0
- package/dist/expressions/lang/completion.d.ts.map +1 -0
- package/dist/expressions/lang/completion.js +164 -0
- package/dist/expressions/lang/completion.js.map +1 -0
- package/dist/expressions/lang/environment.cjs +115 -0
- package/dist/expressions/lang/environment.cjs.map +1 -0
- package/dist/expressions/lang/environment.d.ts +54 -0
- package/dist/expressions/lang/environment.d.ts.map +1 -0
- package/dist/expressions/lang/environment.js +115 -0
- package/dist/expressions/lang/environment.js.map +1 -0
- package/dist/expressions/lang/generated/conformance.json.d.ts +4962 -0
- package/dist/expressions/lang/generated/index.cjs +18 -0
- package/dist/expressions/lang/generated/index.cjs.map +1 -0
- package/dist/expressions/lang/generated/index.d.ts +9 -0
- package/dist/expressions/lang/generated/index.d.ts.map +1 -0
- package/dist/expressions/lang/generated/index.js +18 -0
- package/dist/expressions/lang/generated/index.js.map +1 -0
- package/dist/expressions/lang/generated/languages.json.cjs +18 -0
- package/dist/expressions/lang/generated/languages.json.cjs.map +1 -0
- package/dist/expressions/lang/generated/languages.json.d.ts +2305 -0
- package/dist/expressions/lang/generated/languages.json.js +18 -0
- package/dist/expressions/lang/generated/languages.json.js.map +1 -0
- package/dist/expressions/lang/generated/spec.json.cjs +12 -0
- package/dist/expressions/lang/generated/spec.json.cjs.map +1 -0
- package/dist/expressions/lang/generated/spec.json.d.ts +6260 -0
- package/dist/expressions/lang/generated/spec.json.js +12 -0
- package/dist/expressions/lang/generated/spec.json.js.map +1 -0
- package/dist/expressions/lang/hover.cjs +106 -0
- package/dist/expressions/lang/hover.cjs.map +1 -0
- package/dist/expressions/lang/hover.d.ts +54 -0
- package/dist/expressions/lang/hover.d.ts.map +1 -0
- package/dist/expressions/lang/hover.js +106 -0
- package/dist/expressions/lang/hover.js.map +1 -0
- package/dist/expressions/lang/index.cjs +87 -0
- package/dist/expressions/lang/index.cjs.map +1 -0
- package/dist/expressions/lang/index.d.ts +65 -0
- package/dist/expressions/lang/index.d.ts.map +1 -0
- package/dist/expressions/lang/index.js +90 -0
- package/dist/expressions/lang/index.js.map +1 -0
- package/dist/expressions/lang/merge.cjs +52 -0
- package/dist/expressions/lang/merge.cjs.map +1 -0
- package/dist/expressions/lang/merge.d.ts +12 -0
- package/dist/expressions/lang/merge.d.ts.map +1 -0
- package/dist/expressions/lang/merge.js +52 -0
- package/dist/expressions/lang/merge.js.map +1 -0
- package/dist/expressions/lang/prefix.cjs +91 -0
- package/dist/expressions/lang/prefix.cjs.map +1 -0
- package/dist/expressions/lang/prefix.d.ts +36 -0
- package/dist/expressions/lang/prefix.d.ts.map +1 -0
- package/dist/expressions/lang/prefix.js +91 -0
- package/dist/expressions/lang/prefix.js.map +1 -0
- package/dist/expressions/lang/spec.d.ts +13 -0
- package/dist/expressions/lang/spec.d.ts.map +1 -0
- package/dist/expressions/lang/theme.cjs +97 -0
- package/dist/expressions/lang/theme.cjs.map +1 -0
- package/dist/expressions/lang/theme.d.ts +6 -0
- package/dist/expressions/lang/theme.d.ts.map +1 -0
- package/dist/expressions/lang/theme.js +97 -0
- package/dist/expressions/lang/theme.js.map +1 -0
- package/dist/expressions/lang/types.d.ts +81 -0
- package/dist/expressions/lang/types.d.ts.map +1 -0
- package/dist/expressions/playground/ExpressionPlayground.cjs +308 -0
- package/dist/expressions/playground/ExpressionPlayground.cjs.map +1 -0
- package/dist/expressions/playground/ExpressionPlayground.d.ts +42 -0
- package/dist/expressions/playground/ExpressionPlayground.d.ts.map +1 -0
- package/dist/expressions/playground/ExpressionPlayground.js +291 -0
- package/dist/expressions/playground/ExpressionPlayground.js.map +1 -0
- package/dist/expressions/playground/RunControls.cjs +51 -0
- package/dist/expressions/playground/RunControls.cjs.map +1 -0
- package/dist/expressions/playground/RunControls.d.ts +7 -0
- package/dist/expressions/playground/RunControls.d.ts.map +1 -0
- package/dist/expressions/playground/RunControls.js +51 -0
- package/dist/expressions/playground/RunControls.js.map +1 -0
- package/dist/expressions/playground/VerticalSplit.cjs +109 -0
- package/dist/expressions/playground/VerticalSplit.cjs.map +1 -0
- package/dist/expressions/playground/VerticalSplit.d.ts +23 -0
- package/dist/expressions/playground/VerticalSplit.d.ts.map +1 -0
- package/dist/expressions/playground/VerticalSplit.js +109 -0
- package/dist/expressions/playground/VerticalSplit.js.map +1 -0
- package/dist/expressions/playground/api.cjs +49 -0
- package/dist/expressions/playground/api.cjs.map +1 -0
- package/dist/expressions/playground/api.d.ts +53 -0
- package/dist/expressions/playground/api.d.ts.map +1 -0
- package/dist/expressions/playground/api.js +49 -0
- package/dist/expressions/playground/api.js.map +1 -0
- package/dist/expressions/playground/languages.cjs +88 -0
- package/dist/expressions/playground/languages.cjs.map +1 -0
- package/dist/expressions/playground/languages.d.ts +43 -0
- package/dist/expressions/playground/languages.d.ts.map +1 -0
- package/dist/expressions/playground/languages.js +88 -0
- package/dist/expressions/playground/languages.js.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.cjs +72 -0
- package/dist/expressions/playground/panels/GraphPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.d.ts +19 -0
- package/dist/expressions/playground/panels/GraphPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.js +72 -0
- package/dist/expressions/playground/panels/GraphPanel.js.map +1 -0
- package/dist/expressions/playground/panels/ResultPanel.cjs +82 -0
- package/dist/expressions/playground/panels/ResultPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/ResultPanel.d.ts +11 -0
- package/dist/expressions/playground/panels/ResultPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/ResultPanel.js +82 -0
- package/dist/expressions/playground/panels/ResultPanel.js.map +1 -0
- package/dist/expressions/playground/panels/SpecPanel.cjs +76 -0
- package/dist/expressions/playground/panels/SpecPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/SpecPanel.d.ts +18 -0
- package/dist/expressions/playground/panels/SpecPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/SpecPanel.js +76 -0
- package/dist/expressions/playground/panels/SpecPanel.js.map +1 -0
- package/dist/expressions/playground/panels/TokensPanel.cjs +89 -0
- package/dist/expressions/playground/panels/TokensPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/TokensPanel.d.ts +15 -0
- package/dist/expressions/playground/panels/TokensPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/TokensPanel.js +72 -0
- package/dist/expressions/playground/panels/TokensPanel.js.map +1 -0
- package/dist/expressions/playground/panels/graphNodes.cjs +35 -0
- package/dist/expressions/playground/panels/graphNodes.cjs.map +1 -0
- package/dist/expressions/playground/panels/graphNodes.d.ts +19 -0
- package/dist/expressions/playground/panels/graphNodes.d.ts.map +1 -0
- package/dist/expressions/playground/panels/graphNodes.js +35 -0
- package/dist/expressions/playground/panels/graphNodes.js.map +1 -0
- package/dist/expressions/playground/runAction.cjs +12 -0
- package/dist/expressions/playground/runAction.cjs.map +1 -0
- package/dist/expressions/playground/runAction.d.ts +15 -0
- package/dist/expressions/playground/runAction.d.ts.map +1 -0
- package/dist/expressions/playground/runAction.js +12 -0
- package/dist/expressions/playground/runAction.js.map +1 -0
- package/dist/expressions/playground/runShortcut.cjs +9 -0
- package/dist/expressions/playground/runShortcut.cjs.map +1 -0
- package/dist/expressions/playground/runShortcut.d.ts +2 -0
- package/dist/expressions/playground/runShortcut.d.ts.map +1 -0
- package/dist/expressions/playground/runShortcut.js +9 -0
- package/dist/expressions/playground/runShortcut.js.map +1 -0
- package/dist/expressions/playground/useEditorTheme.cjs +40 -0
- package/dist/expressions/playground/useEditorTheme.cjs.map +1 -0
- package/dist/expressions/playground/useEditorTheme.d.ts +16 -0
- package/dist/expressions/playground/useEditorTheme.d.ts.map +1 -0
- package/dist/expressions/playground/useEditorTheme.js +23 -0
- package/dist/expressions/playground/useEditorTheme.js.map +1 -0
- package/dist/expressions/playground/useEvaluator.cjs +72 -0
- package/dist/expressions/playground/useEvaluator.cjs.map +1 -0
- package/dist/expressions/playground/useEvaluator.d.ts +25 -0
- package/dist/expressions/playground/useEvaluator.d.ts.map +1 -0
- package/dist/expressions/playground/useEvaluator.js +72 -0
- package/dist/expressions/playground/useEvaluator.js.map +1 -0
- package/dist/expressions/playground/useParsedInput.cjs +22 -0
- package/dist/expressions/playground/useParsedInput.cjs.map +1 -0
- package/dist/expressions/playground/useParsedInput.d.ts +20 -0
- package/dist/expressions/playground/useParsedInput.d.ts.map +1 -0
- package/dist/expressions/playground/useParsedInput.js +22 -0
- package/dist/expressions/playground/useParsedInput.js.map +1 -0
- package/dist/expressions/playground/verticalSplitModel.cjs +11 -0
- package/dist/expressions/playground/verticalSplitModel.cjs.map +1 -0
- package/dist/expressions/playground/verticalSplitModel.d.ts +3 -0
- package/dist/expressions/playground/verticalSplitModel.d.ts.map +1 -0
- package/dist/expressions/playground/verticalSplitModel.js +11 -0
- package/dist/expressions/playground/verticalSplitModel.js.map +1 -0
- package/dist/expressions/playground.cjs +18 -0
- package/dist/expressions/playground.cjs.map +1 -0
- package/dist/expressions/playground.d.ts +18 -0
- package/dist/expressions/playground.d.ts.map +1 -0
- package/dist/expressions/playground.js +18 -0
- package/dist/expressions/playground.js.map +1 -0
- package/dist/expressions.cjs +28 -0
- package/dist/expressions.cjs.map +1 -0
- package/dist/expressions.d.ts +10 -0
- package/dist/expressions.d.ts.map +1 -0
- package/dist/expressions.js +28 -0
- package/dist/expressions.js.map +1 -0
- package/dist/hooks/density-provider.d.ts +1 -1
- package/dist/hooks/theme-provider.d.ts +1 -1
- package/dist/hooks/use-density.d.ts +1 -1
- package/dist/hooks/use-resource-clock.cjs +14 -0
- package/dist/hooks/use-resource-clock.cjs.map +1 -0
- package/dist/hooks/use-resource-clock.d.ts +2 -0
- package/dist/hooks/use-resource-clock.d.ts.map +1 -0
- package/dist/hooks/use-resource-clock.js +14 -0
- package/dist/hooks/use-resource-clock.js.map +1 -0
- package/dist/hooks/use-task-run.cjs +12 -3
- package/dist/hooks/use-task-run.cjs.map +1 -1
- package/dist/hooks/use-task-run.d.ts.map +1 -1
- package/dist/hooks/use-task-run.js +12 -3
- package/dist/hooks/use-task-run.js.map +1 -1
- package/dist/hooks/use-theme.d.ts +1 -1
- package/dist/icons/registry.d.ts +1 -1
- package/dist/icons/types.d.ts +1 -1
- package/dist/layout/AppShell.d.ts +1 -1
- package/dist/layout/AppShell.nav.drag.d.ts +1 -1
- package/dist/layout/AppSidebar.d.ts +1 -1
- package/dist/layout/Panel.d.ts +1 -1
- package/dist/layout/PanelFrame.d.ts +1 -1
- package/dist/layout/Section.d.ts +1 -1
- package/dist/layout/SplitPane.d.ts +1 -1
- package/dist/layout/Tabs.d.ts +1 -1
- package/dist/layout/Workspace.d.ts +1 -1
- package/dist/layout/Workspace.model.d.ts +1 -1
- package/dist/lib/combobox-values.d.ts +1 -1
- package/dist/monaco/MonacoEditor.cjs +3 -3
- package/dist/monaco/MonacoEditor.cjs.map +1 -1
- package/dist/monaco/MonacoEditor.js +2 -2
- package/dist/monaco/MonacoEditor.js.map +1 -1
- package/dist/monaco/types.d.ts +1 -1
- package/dist/monaco/use-monaco-worker.d.ts +1 -1
- package/dist/overlay/CellActions.d.ts +1 -1
- package/dist/overlay/CommandPalette.d.ts +2 -2
- package/dist/overlay/CommandPalette.model.d.ts +1 -1
- package/dist/overlay/CommandPaletteList.d.ts +1 -1
- package/dist/overlay/DropdownMenu.d.ts +1 -1
- package/dist/overlay/HoverCard.d.ts +1 -1
- package/dist/overlay/Modal.d.ts +2 -2
- package/dist/overlay/Toast.d.ts +1 -1
- package/dist/overlay/TourCard.d.ts +1 -1
- package/dist/overlay/TourProvider.d.ts +1 -1
- package/dist/overlay/dropdownMenuContext.d.ts +1 -1
- package/dist/overlay/toast-context.d.ts +2 -2
- package/dist/overlay/tour-context.d.ts +1 -1
- package/dist/overlay/tour-types.d.ts +1 -1
- package/dist/profiles/connections/connectionBrowserModel.d.ts +1 -1
- package/dist/profiles/connections/connectionQueryWorkspace.d.ts +1 -1
- package/dist/profiles/editor/profileBuilder.d.ts +1 -1
- package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +1 -1
- package/dist/profiles/fields/profileFieldControls.d.ts +1 -1
- package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
- package/dist/profiles/fields/profileFieldState.d.ts +1 -1
- package/dist/profiles/query/jsonPathSample.d.ts +1 -1
- package/dist/profiles/query/jsonPathSampleRow.d.ts +1 -1
- package/dist/profiles/query/prometheusResults.d.ts +2 -2
- package/dist/rpc/EndpointList.d.ts +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts +1 -1
- package/dist/rpc/OperationCatalog.d.ts +1 -1
- package/dist/rpc/OperationEntityContextPicker.d.ts +1 -1
- package/dist/rpc/OperationEntityPage.d.ts +1 -1
- package/dist/rpc/OperationResultView.d.ts +1 -1
- package/dist/rpc/RouterProvider.d.ts +1 -1
- package/dist/rpc/SchemaActionForm.d.ts +1 -1
- package/dist/rpc/formMetadata.d.ts +1 -1
- package/dist/rpc/router.d.ts +1 -1
- package/dist/rpc/rpc-story.fixtures.d.ts +1 -1
- package/dist/styles.css +1 -1
- package/package.json +21 -2
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
4
|
+
function isIdentifier(key) {
|
|
5
|
+
return IDENTIFIER.test(key);
|
|
6
|
+
}
|
|
7
|
+
function kindOf(value) {
|
|
8
|
+
if (value === null || value === void 0) return "null";
|
|
9
|
+
if (Array.isArray(value)) return "array";
|
|
10
|
+
switch (typeof value) {
|
|
11
|
+
case "string":
|
|
12
|
+
return "string";
|
|
13
|
+
case "number":
|
|
14
|
+
return "number";
|
|
15
|
+
case "boolean":
|
|
16
|
+
return "boolean";
|
|
17
|
+
default:
|
|
18
|
+
return "object";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const SUMMARY_LIMIT = 32;
|
|
22
|
+
function summarize(value) {
|
|
23
|
+
switch (kindOf(value)) {
|
|
24
|
+
case "null":
|
|
25
|
+
return "null";
|
|
26
|
+
case "array":
|
|
27
|
+
return plural(value.length, "item");
|
|
28
|
+
case "object":
|
|
29
|
+
return plural(Object.keys(value).length, "key");
|
|
30
|
+
case "string": {
|
|
31
|
+
const text = value;
|
|
32
|
+
return text.length > SUMMARY_LIMIT ? `${JSON.stringify(text.slice(0, SUMMARY_LIMIT))}…` : JSON.stringify(text);
|
|
33
|
+
}
|
|
34
|
+
default:
|
|
35
|
+
return String(value);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function plural(count, noun) {
|
|
39
|
+
return `${count} ${noun}${count === 1 ? "" : "s"}`;
|
|
40
|
+
}
|
|
41
|
+
function resolvePath(environment, segments) {
|
|
42
|
+
let current = environment;
|
|
43
|
+
for (const segment of segments) {
|
|
44
|
+
if (typeof segment === "number") {
|
|
45
|
+
if (!Array.isArray(current)) return void 0;
|
|
46
|
+
current = current[segment];
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (!isRecord(current)) return void 0;
|
|
50
|
+
current = current[segment];
|
|
51
|
+
}
|
|
52
|
+
return current;
|
|
53
|
+
}
|
|
54
|
+
function childEntries(value) {
|
|
55
|
+
if (Array.isArray(value)) {
|
|
56
|
+
return value.map((element, index) => ({
|
|
57
|
+
key: String(index),
|
|
58
|
+
segment: index,
|
|
59
|
+
kind: kindOf(element),
|
|
60
|
+
summary: summarize(element),
|
|
61
|
+
container: isContainer(element)
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
if (!isRecord(value)) return [];
|
|
65
|
+
return Object.entries(value).map(([key, child]) => ({
|
|
66
|
+
key,
|
|
67
|
+
segment: key,
|
|
68
|
+
kind: kindOf(child),
|
|
69
|
+
summary: summarize(child),
|
|
70
|
+
container: isContainer(child)
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
function isContainer(value) {
|
|
74
|
+
const kind = kindOf(value);
|
|
75
|
+
return kind === "object" || kind === "array";
|
|
76
|
+
}
|
|
77
|
+
function isRecord(value) {
|
|
78
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
79
|
+
}
|
|
80
|
+
function pathExpression(languageId, segments) {
|
|
81
|
+
const flavour = pathFlavour(languageId);
|
|
82
|
+
if (!flavour) return null;
|
|
83
|
+
if (flavour === "gotemplate") {
|
|
84
|
+
if (segments.some((segment) => typeof segment === "number" || !isIdentifier(segment))) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return segments.length === 0 ? "." : segments.map((segment) => `.${String(segment)}`).join("");
|
|
88
|
+
}
|
|
89
|
+
const root = flavour === "jsonpath" ? "$" : "";
|
|
90
|
+
let out = root;
|
|
91
|
+
for (const segment of segments) {
|
|
92
|
+
if (typeof segment === "number") {
|
|
93
|
+
out += `[${segment}]`;
|
|
94
|
+
} else if (isIdentifier(segment)) {
|
|
95
|
+
out += out === "" ? segment : `.${segment}`;
|
|
96
|
+
} else {
|
|
97
|
+
out += `[${JSON.stringify(segment)}]`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
102
|
+
function pathFlavour(languageId) {
|
|
103
|
+
if (languageId === "cel") return "cel";
|
|
104
|
+
if (languageId === "jsonpath") return "jsonpath";
|
|
105
|
+
if (languageId === "gomplate" || languageId.endsWith("-gomplate")) return "gotemplate";
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
exports.childEntries = childEntries;
|
|
109
|
+
exports.isIdentifier = isIdentifier;
|
|
110
|
+
exports.kindOf = kindOf;
|
|
111
|
+
exports.pathExpression = pathExpression;
|
|
112
|
+
exports.pathFlavour = pathFlavour;
|
|
113
|
+
exports.resolvePath = resolvePath;
|
|
114
|
+
exports.summarize = summarize;
|
|
115
|
+
//# sourceMappingURL=environment.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.cjs","sources":["../../../src/expressions/lang/environment.ts"],"sourcesContent":["/**\n * Introspection of the document an expression is evaluated against.\n *\n * Deliberately free of Monaco and of any UI dependency: the same functions back\n * editor completion and any caller that needs to render a document's shape.\n */\n\n/** One step of a path. A number indexes a list, a string keys a map. */\nexport type PathSegment = string | number;\n\n/** The JSON shape of a value, as a name a reader recognises. */\nexport type ValueKind = \"string\" | \"number\" | \"boolean\" | \"null\" | \"object\" | \"array\";\n\n/** One child of a container, as completion and shape views need it. */\nexport interface EnvironmentEntry {\n /** The key or index, as typed. */\n key: string;\n segment: PathSegment;\n kind: ValueKind;\n /** A short rendering of the value, for a detail column. */\n summary: string;\n /** Whether the value has children of its own. */\n container: boolean;\n}\n\nconst IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;\n\n/** Whether `key` can be written as a bare `.key` rather than a subscript. */\nexport function isIdentifier(key: string): boolean {\n return IDENTIFIER.test(key);\n}\n\nexport function kindOf(value: unknown): ValueKind {\n if (value === null || value === undefined) return \"null\";\n if (Array.isArray(value)) return \"array\";\n switch (typeof value) {\n case \"string\":\n return \"string\";\n case \"number\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n default:\n return \"object\";\n }\n}\n\nconst SUMMARY_LIMIT = 32;\n\n/** A one-line rendering of a value: the sample a completion detail shows. */\nexport function summarize(value: unknown): string {\n switch (kindOf(value)) {\n case \"null\":\n return \"null\";\n case \"array\":\n return plural((value as unknown[]).length, \"item\");\n case \"object\":\n return plural(Object.keys(value as Record<string, unknown>).length, \"key\");\n case \"string\": {\n const text = value as string;\n return text.length > SUMMARY_LIMIT ? `${JSON.stringify(text.slice(0, SUMMARY_LIMIT))}…` : JSON.stringify(text);\n }\n default:\n return String(value);\n }\n}\n\nfunction plural(count: number, noun: string): string {\n return `${count} ${noun}${count === 1 ? \"\" : \"s\"}`;\n}\n\n/**\n * Walks `segments` from the root.\n *\n * A numeric segment indexes a list and nothing else; a string segment keys a\n * map. Returns undefined as soon as a step does not apply, so a half-typed path\n * simply yields no completions rather than throwing.\n */\nexport function resolvePath(environment: unknown, segments: readonly PathSegment[]): unknown {\n let current = environment;\n for (const segment of segments) {\n if (typeof segment === \"number\") {\n if (!Array.isArray(current)) return undefined;\n current = current[segment];\n continue;\n }\n if (!isRecord(current)) return undefined;\n current = current[segment];\n }\n return current;\n}\n\n/**\n * The children of a container, in document order.\n *\n * A list yields its indices rather than the keys of its first element: no\n * language here lets a field follow a list without an index, so offering\n * `containers.name` would complete an expression that cannot evaluate.\n */\nexport function childEntries(value: unknown): EnvironmentEntry[] {\n if (Array.isArray(value)) {\n return value.map((element, index) => ({\n key: String(index),\n segment: index,\n kind: kindOf(element),\n summary: summarize(element),\n container: isContainer(element),\n }));\n }\n if (!isRecord(value)) return [];\n return Object.entries(value).map(([key, child]) => ({\n key,\n segment: key,\n kind: kindOf(child),\n summary: summarize(child),\n container: isContainer(child),\n }));\n}\n\nfunction isContainer(value: unknown): boolean {\n const kind = kindOf(value);\n return kind === \"object\" || kind === \"array\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Renders a path in one language's syntax.\n *\n * The single place path syntax is spelled out, so completion and click-to-insert\n * cannot drift apart. Returns null when the path has no expression in that\n * language — a go-template reaches a list element or an awkward key through\n * `index`, which is a call rather than a path.\n */\nexport function pathExpression(languageId: string, segments: readonly PathSegment[]): string | null {\n const flavour = pathFlavour(languageId);\n if (!flavour) return null;\n if (flavour === \"gotemplate\") {\n if (segments.some((segment) => typeof segment === \"number\" || !isIdentifier(segment))) {\n return null;\n }\n return segments.length === 0 ? \".\" : segments.map((segment) => `.${String(segment)}`).join(\"\");\n }\n\n const root = flavour === \"jsonpath\" ? \"$\" : \"\";\n let out = root;\n for (const segment of segments) {\n if (typeof segment === \"number\") {\n out += `[${segment}]`;\n } else if (isIdentifier(segment)) {\n out += out === \"\" ? segment : `.${segment}`;\n } else {\n out += `[${JSON.stringify(segment)}]`;\n }\n }\n return out;\n}\n\n/** Which path syntax a language id uses. */\nexport function pathFlavour(languageId: string): \"cel\" | \"gotemplate\" | \"jsonpath\" | null {\n if (languageId === \"cel\") return \"cel\";\n if (languageId === \"jsonpath\") return \"jsonpath\";\n if (languageId === \"gomplate\" || languageId.endsWith(\"-gomplate\")) return \"gotemplate\";\n return null;\n}\n"],"names":[],"mappings":";;AAyBA,MAAM,aAAa;AAGZ,SAAS,aAAa,KAAsB;AACjD,SAAO,WAAW,KAAK,GAAG;AAC5B;AAEO,SAAS,OAAO,OAA2B;AAChD,MAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAClD,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO;AACjC,UAAQ,OAAO,OAAA;AAAA,IACb,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAEA,MAAM,gBAAgB;AAGf,SAAS,UAAU,OAAwB;AAChD,UAAQ,OAAO,KAAK,GAAA;AAAA,IAClB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,OAAQ,MAAoB,QAAQ,MAAM;AAAA,IACnD,KAAK;AACH,aAAO,OAAO,OAAO,KAAK,KAAgC,EAAE,QAAQ,KAAK;AAAA,IAC3E,KAAK,UAAU;AACb,YAAM,OAAO;AACb,aAAO,KAAK,SAAS,gBAAgB,GAAG,KAAK,UAAU,KAAK,MAAM,GAAG,aAAa,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI;AAAA,IAC/G;AAAA,IACA;AACE,aAAO,OAAO,KAAK;AAAA,EAAA;AAEzB;AAEA,SAAS,OAAO,OAAe,MAAsB;AACnD,SAAO,GAAG,KAAK,IAAI,IAAI,GAAG,UAAU,IAAI,KAAK,GAAG;AAClD;AASO,SAAS,YAAY,aAAsB,UAA2C;AAC3F,MAAI,UAAU;AACd,aAAW,WAAW,UAAU;AAC9B,QAAI,OAAO,YAAY,UAAU;AAC/B,UAAI,CAAC,MAAM,QAAQ,OAAO,EAAG,QAAO;AACpC,gBAAU,QAAQ,OAAO;AACzB;AAAA,IACF;AACA,QAAI,CAAC,SAAS,OAAO,EAAG,QAAO;AAC/B,cAAU,QAAQ,OAAO;AAAA,EAC3B;AACA,SAAO;AACT;AASO,SAAS,aAAa,OAAoC;AAC/D,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,SAAS,WAAW;AAAA,MACpC,KAAK,OAAO,KAAK;AAAA,MACjB,SAAS;AAAA,MACT,MAAM,OAAO,OAAO;AAAA,MACpB,SAAS,UAAU,OAAO;AAAA,MAC1B,WAAW,YAAY,OAAO;AAAA,IAAA,EAC9B;AAAA,EACJ;AACA,MAAI,CAAC,SAAS,KAAK,UAAU,CAAA;AAC7B,SAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;AAAA,IAClD;AAAA,IACA,SAAS;AAAA,IACT,MAAM,OAAO,KAAK;AAAA,IAClB,SAAS,UAAU,KAAK;AAAA,IACxB,WAAW,YAAY,KAAK;AAAA,EAAA,EAC5B;AACJ;AAEA,SAAS,YAAY,OAAyB;AAC5C,QAAM,OAAO,OAAO,KAAK;AACzB,SAAO,SAAS,YAAY,SAAS;AACvC;AAEA,SAAS,SAAS,OAAkD;AAClE,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAUO,SAAS,eAAe,YAAoB,UAAiD;AAClG,QAAM,UAAU,YAAY,UAAU;AACtC,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI,YAAY,cAAc;AAC5B,QAAI,SAAS,KAAK,CAAC,YAAY,OAAO,YAAY,YAAY,CAAC,aAAa,OAAO,CAAC,GAAG;AACrF,aAAO;AAAA,IACT;AACA,WAAO,SAAS,WAAW,IAAI,MAAM,SAAS,IAAI,CAAC,YAAY,IAAI,OAAO,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE;AAAA,EAC/F;AAEA,QAAM,OAAO,YAAY,aAAa,MAAM;AAC5C,MAAI,MAAM;AACV,aAAW,WAAW,UAAU;AAC9B,QAAI,OAAO,YAAY,UAAU;AAC/B,aAAO,IAAI,OAAO;AAAA,IACpB,WAAW,aAAa,OAAO,GAAG;AAChC,aAAO,QAAQ,KAAK,UAAU,IAAI,OAAO;AAAA,IAC3C,OAAO;AACL,aAAO,IAAI,KAAK,UAAU,OAAO,CAAC;AAAA,IACpC;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,YAAY,YAA8D;AACxF,MAAI,eAAe,MAAO,QAAO;AACjC,MAAI,eAAe,WAAY,QAAO;AACtC,MAAI,eAAe,cAAc,WAAW,SAAS,WAAW,EAAG,QAAO;AAC1E,SAAO;AACT;;;;;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Introspection of the document an expression is evaluated against.
|
|
3
|
+
*
|
|
4
|
+
* Deliberately free of Monaco and of any UI dependency: the same functions back
|
|
5
|
+
* editor completion and any caller that needs to render a document's shape.
|
|
6
|
+
*/
|
|
7
|
+
/** One step of a path. A number indexes a list, a string keys a map. */
|
|
8
|
+
export type PathSegment = string | number;
|
|
9
|
+
/** The JSON shape of a value, as a name a reader recognises. */
|
|
10
|
+
export type ValueKind = "string" | "number" | "boolean" | "null" | "object" | "array";
|
|
11
|
+
/** One child of a container, as completion and shape views need it. */
|
|
12
|
+
export interface EnvironmentEntry {
|
|
13
|
+
/** The key or index, as typed. */
|
|
14
|
+
key: string;
|
|
15
|
+
segment: PathSegment;
|
|
16
|
+
kind: ValueKind;
|
|
17
|
+
/** A short rendering of the value, for a detail column. */
|
|
18
|
+
summary: string;
|
|
19
|
+
/** Whether the value has children of its own. */
|
|
20
|
+
container: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** Whether `key` can be written as a bare `.key` rather than a subscript. */
|
|
23
|
+
export declare function isIdentifier(key: string): boolean;
|
|
24
|
+
export declare function kindOf(value: unknown): ValueKind;
|
|
25
|
+
/** A one-line rendering of a value: the sample a completion detail shows. */
|
|
26
|
+
export declare function summarize(value: unknown): string;
|
|
27
|
+
/**
|
|
28
|
+
* Walks `segments` from the root.
|
|
29
|
+
*
|
|
30
|
+
* A numeric segment indexes a list and nothing else; a string segment keys a
|
|
31
|
+
* map. Returns undefined as soon as a step does not apply, so a half-typed path
|
|
32
|
+
* simply yields no completions rather than throwing.
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolvePath(environment: unknown, segments: readonly PathSegment[]): unknown;
|
|
35
|
+
/**
|
|
36
|
+
* The children of a container, in document order.
|
|
37
|
+
*
|
|
38
|
+
* A list yields its indices rather than the keys of its first element: no
|
|
39
|
+
* language here lets a field follow a list without an index, so offering
|
|
40
|
+
* `containers.name` would complete an expression that cannot evaluate.
|
|
41
|
+
*/
|
|
42
|
+
export declare function childEntries(value: unknown): EnvironmentEntry[];
|
|
43
|
+
/**
|
|
44
|
+
* Renders a path in one language's syntax.
|
|
45
|
+
*
|
|
46
|
+
* The single place path syntax is spelled out, so completion and click-to-insert
|
|
47
|
+
* cannot drift apart. Returns null when the path has no expression in that
|
|
48
|
+
* language — a go-template reaches a list element or an awkward key through
|
|
49
|
+
* `index`, which is a call rather than a path.
|
|
50
|
+
*/
|
|
51
|
+
export declare function pathExpression(languageId: string, segments: readonly PathSegment[]): string | null;
|
|
52
|
+
/** Which path syntax a language id uses. */
|
|
53
|
+
export declare function pathFlavour(languageId: string): "cel" | "gotemplate" | "jsonpath" | null;
|
|
54
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/expressions/lang/environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wEAAwE;AACxE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,gEAAgE;AAChE,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtF,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;CACpB;AAID,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAahD;AAID,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAehD;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAY3F;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAkB/D;AAWD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAsBlG;AAED,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,GAAG,IAAI,CAKxF"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
const IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
2
|
+
function isIdentifier(key) {
|
|
3
|
+
return IDENTIFIER.test(key);
|
|
4
|
+
}
|
|
5
|
+
function kindOf(value) {
|
|
6
|
+
if (value === null || value === void 0) return "null";
|
|
7
|
+
if (Array.isArray(value)) return "array";
|
|
8
|
+
switch (typeof value) {
|
|
9
|
+
case "string":
|
|
10
|
+
return "string";
|
|
11
|
+
case "number":
|
|
12
|
+
return "number";
|
|
13
|
+
case "boolean":
|
|
14
|
+
return "boolean";
|
|
15
|
+
default:
|
|
16
|
+
return "object";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const SUMMARY_LIMIT = 32;
|
|
20
|
+
function summarize(value) {
|
|
21
|
+
switch (kindOf(value)) {
|
|
22
|
+
case "null":
|
|
23
|
+
return "null";
|
|
24
|
+
case "array":
|
|
25
|
+
return plural(value.length, "item");
|
|
26
|
+
case "object":
|
|
27
|
+
return plural(Object.keys(value).length, "key");
|
|
28
|
+
case "string": {
|
|
29
|
+
const text = value;
|
|
30
|
+
return text.length > SUMMARY_LIMIT ? `${JSON.stringify(text.slice(0, SUMMARY_LIMIT))}…` : JSON.stringify(text);
|
|
31
|
+
}
|
|
32
|
+
default:
|
|
33
|
+
return String(value);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function plural(count, noun) {
|
|
37
|
+
return `${count} ${noun}${count === 1 ? "" : "s"}`;
|
|
38
|
+
}
|
|
39
|
+
function resolvePath(environment, segments) {
|
|
40
|
+
let current = environment;
|
|
41
|
+
for (const segment of segments) {
|
|
42
|
+
if (typeof segment === "number") {
|
|
43
|
+
if (!Array.isArray(current)) return void 0;
|
|
44
|
+
current = current[segment];
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (!isRecord(current)) return void 0;
|
|
48
|
+
current = current[segment];
|
|
49
|
+
}
|
|
50
|
+
return current;
|
|
51
|
+
}
|
|
52
|
+
function childEntries(value) {
|
|
53
|
+
if (Array.isArray(value)) {
|
|
54
|
+
return value.map((element, index) => ({
|
|
55
|
+
key: String(index),
|
|
56
|
+
segment: index,
|
|
57
|
+
kind: kindOf(element),
|
|
58
|
+
summary: summarize(element),
|
|
59
|
+
container: isContainer(element)
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
if (!isRecord(value)) return [];
|
|
63
|
+
return Object.entries(value).map(([key, child]) => ({
|
|
64
|
+
key,
|
|
65
|
+
segment: key,
|
|
66
|
+
kind: kindOf(child),
|
|
67
|
+
summary: summarize(child),
|
|
68
|
+
container: isContainer(child)
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
function isContainer(value) {
|
|
72
|
+
const kind = kindOf(value);
|
|
73
|
+
return kind === "object" || kind === "array";
|
|
74
|
+
}
|
|
75
|
+
function isRecord(value) {
|
|
76
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
77
|
+
}
|
|
78
|
+
function pathExpression(languageId, segments) {
|
|
79
|
+
const flavour = pathFlavour(languageId);
|
|
80
|
+
if (!flavour) return null;
|
|
81
|
+
if (flavour === "gotemplate") {
|
|
82
|
+
if (segments.some((segment) => typeof segment === "number" || !isIdentifier(segment))) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
return segments.length === 0 ? "." : segments.map((segment) => `.${String(segment)}`).join("");
|
|
86
|
+
}
|
|
87
|
+
const root = flavour === "jsonpath" ? "$" : "";
|
|
88
|
+
let out = root;
|
|
89
|
+
for (const segment of segments) {
|
|
90
|
+
if (typeof segment === "number") {
|
|
91
|
+
out += `[${segment}]`;
|
|
92
|
+
} else if (isIdentifier(segment)) {
|
|
93
|
+
out += out === "" ? segment : `.${segment}`;
|
|
94
|
+
} else {
|
|
95
|
+
out += `[${JSON.stringify(segment)}]`;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
function pathFlavour(languageId) {
|
|
101
|
+
if (languageId === "cel") return "cel";
|
|
102
|
+
if (languageId === "jsonpath") return "jsonpath";
|
|
103
|
+
if (languageId === "gomplate" || languageId.endsWith("-gomplate")) return "gotemplate";
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
export {
|
|
107
|
+
childEntries,
|
|
108
|
+
isIdentifier,
|
|
109
|
+
kindOf,
|
|
110
|
+
pathExpression,
|
|
111
|
+
pathFlavour,
|
|
112
|
+
resolvePath,
|
|
113
|
+
summarize
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sources":["../../../src/expressions/lang/environment.ts"],"sourcesContent":["/**\n * Introspection of the document an expression is evaluated against.\n *\n * Deliberately free of Monaco and of any UI dependency: the same functions back\n * editor completion and any caller that needs to render a document's shape.\n */\n\n/** One step of a path. A number indexes a list, a string keys a map. */\nexport type PathSegment = string | number;\n\n/** The JSON shape of a value, as a name a reader recognises. */\nexport type ValueKind = \"string\" | \"number\" | \"boolean\" | \"null\" | \"object\" | \"array\";\n\n/** One child of a container, as completion and shape views need it. */\nexport interface EnvironmentEntry {\n /** The key or index, as typed. */\n key: string;\n segment: PathSegment;\n kind: ValueKind;\n /** A short rendering of the value, for a detail column. */\n summary: string;\n /** Whether the value has children of its own. */\n container: boolean;\n}\n\nconst IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;\n\n/** Whether `key` can be written as a bare `.key` rather than a subscript. */\nexport function isIdentifier(key: string): boolean {\n return IDENTIFIER.test(key);\n}\n\nexport function kindOf(value: unknown): ValueKind {\n if (value === null || value === undefined) return \"null\";\n if (Array.isArray(value)) return \"array\";\n switch (typeof value) {\n case \"string\":\n return \"string\";\n case \"number\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n default:\n return \"object\";\n }\n}\n\nconst SUMMARY_LIMIT = 32;\n\n/** A one-line rendering of a value: the sample a completion detail shows. */\nexport function summarize(value: unknown): string {\n switch (kindOf(value)) {\n case \"null\":\n return \"null\";\n case \"array\":\n return plural((value as unknown[]).length, \"item\");\n case \"object\":\n return plural(Object.keys(value as Record<string, unknown>).length, \"key\");\n case \"string\": {\n const text = value as string;\n return text.length > SUMMARY_LIMIT ? `${JSON.stringify(text.slice(0, SUMMARY_LIMIT))}…` : JSON.stringify(text);\n }\n default:\n return String(value);\n }\n}\n\nfunction plural(count: number, noun: string): string {\n return `${count} ${noun}${count === 1 ? \"\" : \"s\"}`;\n}\n\n/**\n * Walks `segments` from the root.\n *\n * A numeric segment indexes a list and nothing else; a string segment keys a\n * map. Returns undefined as soon as a step does not apply, so a half-typed path\n * simply yields no completions rather than throwing.\n */\nexport function resolvePath(environment: unknown, segments: readonly PathSegment[]): unknown {\n let current = environment;\n for (const segment of segments) {\n if (typeof segment === \"number\") {\n if (!Array.isArray(current)) return undefined;\n current = current[segment];\n continue;\n }\n if (!isRecord(current)) return undefined;\n current = current[segment];\n }\n return current;\n}\n\n/**\n * The children of a container, in document order.\n *\n * A list yields its indices rather than the keys of its first element: no\n * language here lets a field follow a list without an index, so offering\n * `containers.name` would complete an expression that cannot evaluate.\n */\nexport function childEntries(value: unknown): EnvironmentEntry[] {\n if (Array.isArray(value)) {\n return value.map((element, index) => ({\n key: String(index),\n segment: index,\n kind: kindOf(element),\n summary: summarize(element),\n container: isContainer(element),\n }));\n }\n if (!isRecord(value)) return [];\n return Object.entries(value).map(([key, child]) => ({\n key,\n segment: key,\n kind: kindOf(child),\n summary: summarize(child),\n container: isContainer(child),\n }));\n}\n\nfunction isContainer(value: unknown): boolean {\n const kind = kindOf(value);\n return kind === \"object\" || kind === \"array\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Renders a path in one language's syntax.\n *\n * The single place path syntax is spelled out, so completion and click-to-insert\n * cannot drift apart. Returns null when the path has no expression in that\n * language — a go-template reaches a list element or an awkward key through\n * `index`, which is a call rather than a path.\n */\nexport function pathExpression(languageId: string, segments: readonly PathSegment[]): string | null {\n const flavour = pathFlavour(languageId);\n if (!flavour) return null;\n if (flavour === \"gotemplate\") {\n if (segments.some((segment) => typeof segment === \"number\" || !isIdentifier(segment))) {\n return null;\n }\n return segments.length === 0 ? \".\" : segments.map((segment) => `.${String(segment)}`).join(\"\");\n }\n\n const root = flavour === \"jsonpath\" ? \"$\" : \"\";\n let out = root;\n for (const segment of segments) {\n if (typeof segment === \"number\") {\n out += `[${segment}]`;\n } else if (isIdentifier(segment)) {\n out += out === \"\" ? segment : `.${segment}`;\n } else {\n out += `[${JSON.stringify(segment)}]`;\n }\n }\n return out;\n}\n\n/** Which path syntax a language id uses. */\nexport function pathFlavour(languageId: string): \"cel\" | \"gotemplate\" | \"jsonpath\" | null {\n if (languageId === \"cel\") return \"cel\";\n if (languageId === \"jsonpath\") return \"jsonpath\";\n if (languageId === \"gomplate\" || languageId.endsWith(\"-gomplate\")) return \"gotemplate\";\n return null;\n}\n"],"names":[],"mappings":"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"}
|