@elastic/isomer-sdk 0.0.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +93 -0
- package/NOTICE.txt +1861 -0
- package/README.md +69 -0
- package/THIRD_PARTY_LICENSES.md +957 -0
- package/dist/author/authored_fields.d.ts +153 -0
- package/dist/author/authored_fields.d.ts.map +1 -0
- package/dist/author/authored_fields.js +227 -0
- package/dist/author/authored_fields.js.map +1 -0
- package/dist/author/authoring_input.d.ts +7 -0
- package/dist/author/authoring_input.d.ts.map +1 -0
- package/dist/author/authoring_input.js +60 -0
- package/dist/author/authoring_input.js.map +1 -0
- package/dist/author/authoring_model.d.ts +27 -0
- package/dist/author/authoring_model.d.ts.map +1 -0
- package/dist/author/authoring_model.js +98 -0
- package/dist/author/authoring_model.js.map +1 -0
- package/dist/author/declarations.d.ts +13 -0
- package/dist/author/declarations.d.ts.map +1 -0
- package/dist/author/declarations.js +277 -0
- package/dist/author/declarations.js.map +1 -0
- package/dist/author/index.d.ts +7 -0
- package/dist/author/index.d.ts.map +1 -0
- package/dist/author/index.js +12 -0
- package/dist/author/index.js.map +1 -0
- package/dist/author/jsx.d.ts +21 -0
- package/dist/author/jsx.d.ts.map +1 -0
- package/dist/author/jsx.js +20 -0
- package/dist/author/jsx.js.map +1 -0
- package/dist/author/jsx_shim.d.ts +117 -0
- package/dist/author/jsx_shim.d.ts.map +1 -0
- package/dist/author/jsx_shim.js +270 -0
- package/dist/author/jsx_shim.js.map +1 -0
- package/dist/author/prompt.d.ts +58 -0
- package/dist/author/prompt.d.ts.map +1 -0
- package/dist/author/prompt.js +148 -0
- package/dist/author/prompt.js.map +1 -0
- package/dist/author/schema_to_typescript.d.ts +37 -0
- package/dist/author/schema_to_typescript.d.ts.map +1 -0
- package/dist/author/schema_to_typescript.js +286 -0
- package/dist/author/schema_to_typescript.js.map +1 -0
- package/dist/cjs/author/authored_fields.js +233 -0
- package/dist/cjs/author/authored_fields.js.map +1 -0
- package/dist/cjs/author/authoring_input.js +64 -0
- package/dist/cjs/author/authoring_input.js.map +1 -0
- package/dist/cjs/author/authoring_model.js +104 -0
- package/dist/cjs/author/authoring_model.js.map +1 -0
- package/dist/cjs/author/declarations.js +281 -0
- package/dist/cjs/author/declarations.js.map +1 -0
- package/dist/cjs/author/index.js +25 -0
- package/dist/cjs/author/index.js.map +1 -0
- package/dist/cjs/author/jsx.js +24 -0
- package/dist/cjs/author/jsx.js.map +1 -0
- package/dist/cjs/author/jsx_shim.js +276 -0
- package/dist/cjs/author/jsx_shim.js.map +1 -0
- package/dist/cjs/author/prompt.js +153 -0
- package/dist/cjs/author/prompt.js.map +1 -0
- package/dist/cjs/author/schema_to_typescript.js +295 -0
- package/dist/cjs/author/schema_to_typescript.js.map +1 -0
- package/dist/cjs/composition/action_event.js +9 -0
- package/dist/cjs/composition/action_event.js.map +1 -0
- package/dist/cjs/composition/body_node_base.js +112 -0
- package/dist/cjs/composition/body_node_base.js.map +1 -0
- package/dist/cjs/composition/composition.js +9 -0
- package/dist/cjs/composition/composition.js.map +1 -0
- package/dist/cjs/composition/error.js +73 -0
- package/dist/cjs/composition/error.js.map +1 -0
- package/dist/cjs/composition/index.js +32 -0
- package/dist/cjs/composition/index.js.map +1 -0
- package/dist/cjs/composition/map_nodes.js +85 -0
- package/dist/cjs/composition/map_nodes.js.map +1 -0
- package/dist/cjs/composition/named_color.js +20 -0
- package/dist/cjs/composition/named_color.js.map +1 -0
- package/dist/cjs/composition/node.js +9 -0
- package/dist/cjs/composition/node.js.map +1 -0
- package/dist/cjs/composition/one_line.js +23 -0
- package/dist/cjs/composition/one_line.js.map +1 -0
- package/dist/cjs/composition/structured_value.js +21 -0
- package/dist/cjs/composition/structured_value.js.map +1 -0
- package/dist/cjs/composition/validation_error.js +40 -0
- package/dist/cjs/composition/validation_error.js.map +1 -0
- package/dist/cjs/define/frame.js +31 -0
- package/dist/cjs/define/frame.js.map +1 -0
- package/dist/cjs/define/index.js +31 -0
- package/dist/cjs/define/index.js.map +1 -0
- package/dist/cjs/define/markdown_content.js +12 -0
- package/dist/cjs/define/markdown_content.js.map +1 -0
- package/dist/cjs/define/primitive_example.js +26 -0
- package/dist/cjs/define/primitive_example.js.map +1 -0
- package/dist/cjs/define/primitive_icon.js +17 -0
- package/dist/cjs/define/primitive_icon.js.map +1 -0
- package/dist/cjs/define/primitive_module.js +118 -0
- package/dist/cjs/define/primitive_module.js.map +1 -0
- package/dist/cjs/define/slack_assets.js +9 -0
- package/dist/cjs/define/slack_assets.js.map +1 -0
- package/dist/cjs/define/slack_blocks.js +9 -0
- package/dist/cjs/define/slack_blocks.js.map +1 -0
- package/dist/cjs/define/zod_format.js +122 -0
- package/dist/cjs/define/zod_format.js.map +1 -0
- package/dist/cjs/define/zod_helpers.js +26 -0
- package/dist/cjs/define/zod_helpers.js.map +1 -0
- package/dist/cjs/entries/html.js +12 -0
- package/dist/cjs/entries/html.js.map +1 -0
- package/dist/cjs/entries/index.js +80 -0
- package/dist/cjs/entries/index.js.map +1 -0
- package/dist/cjs/entries/markdown.js +14 -0
- package/dist/cjs/entries/markdown.js.map +1 -0
- package/dist/cjs/entries/react.js +20 -0
- package/dist/cjs/entries/react.js.map +1 -0
- package/dist/cjs/entries/slack.js +25 -0
- package/dist/cjs/entries/slack.js.map +1 -0
- package/dist/cjs/entries/text.js +12 -0
- package/dist/cjs/entries/text.js.map +1 -0
- package/dist/cjs/pack/capabilities.js +40 -0
- package/dist/cjs/pack/capabilities.js.map +1 -0
- package/dist/cjs/pack/compose.js +59 -0
- package/dist/cjs/pack/compose.js.map +1 -0
- package/dist/cjs/pack/enhancements.js +65 -0
- package/dist/cjs/pack/enhancements.js.map +1 -0
- package/dist/cjs/pack/index.js +18 -0
- package/dist/cjs/pack/index.js.map +1 -0
- package/dist/cjs/pack/primitive_pack.js +97 -0
- package/dist/cjs/pack/primitive_pack.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/render/anchors.js +167 -0
- package/dist/cjs/render/anchors.js.map +1 -0
- package/dist/cjs/render/context_view.js +54 -0
- package/dist/cjs/render/context_view.js.map +1 -0
- package/dist/cjs/render/format_display_value.js +143 -0
- package/dist/cjs/render/format_display_value.js.map +1 -0
- package/dist/cjs/render/format_number.js +46 -0
- package/dist/cjs/render/format_number.js.map +1 -0
- package/dist/cjs/render/html/enhancements.js +30 -0
- package/dist/cjs/render/html/enhancements.js.map +1 -0
- package/dist/cjs/render/html/envelope.js +218 -0
- package/dist/cjs/render/html/envelope.js.map +1 -0
- package/dist/cjs/render/html/index.js +12 -0
- package/dist/cjs/render/html/index.js.map +1 -0
- package/dist/cjs/render/index.js +25 -0
- package/dist/cjs/render/index.js.map +1 -0
- package/dist/cjs/render/layout_check.js +133 -0
- package/dist/cjs/render/layout_check.js.map +1 -0
- package/dist/cjs/render/markdown/builder.js +195 -0
- package/dist/cjs/render/markdown/builder.js.map +1 -0
- package/dist/cjs/render/markdown/envelope.js +33 -0
- package/dist/cjs/render/markdown/envelope.js.map +1 -0
- package/dist/cjs/render/markdown/format.js +208 -0
- package/dist/cjs/render/markdown/format.js.map +1 -0
- package/dist/cjs/render/markdown/index.js +15 -0
- package/dist/cjs/render/markdown/index.js.map +1 -0
- package/dist/cjs/render/measure_dom.js +61 -0
- package/dist/cjs/render/measure_dom.js.map +1 -0
- package/dist/cjs/render/payload.js +13 -0
- package/dist/cjs/render/payload.js.map +1 -0
- package/dist/cjs/render/primitive_dispatch.js +173 -0
- package/dist/cjs/render/primitive_dispatch.js.map +1 -0
- package/dist/cjs/render/react/content.js +44 -0
- package/dist/cjs/render/react/content.js.map +1 -0
- package/dist/cjs/render/react/enhancements.js +32 -0
- package/dist/cjs/render/react/enhancements.js.map +1 -0
- package/dist/cjs/render/react/index.js +15 -0
- package/dist/cjs/render/react/index.js.map +1 -0
- package/dist/cjs/render/slack/assets.js +45 -0
- package/dist/cjs/render/slack/assets.js.map +1 -0
- package/dist/cjs/render/slack/blocks.js +80 -0
- package/dist/cjs/render/slack/blocks.js.map +1 -0
- package/dist/cjs/render/slack/envelope.js +551 -0
- package/dist/cjs/render/slack/envelope.js.map +1 -0
- package/dist/cjs/render/slack/format.js +225 -0
- package/dist/cjs/render/slack/format.js.map +1 -0
- package/dist/cjs/render/slack/index.js +30 -0
- package/dist/cjs/render/slack/index.js.map +1 -0
- package/dist/cjs/render/slack/markdown_content.js +409 -0
- package/dist/cjs/render/slack/markdown_content.js.map +1 -0
- package/dist/cjs/render/text/envelope.js +21 -0
- package/dist/cjs/render/text/envelope.js.map +1 -0
- package/dist/cjs/render/text/index.js +12 -0
- package/dist/cjs/render/text/index.js.map +1 -0
- package/dist/cjs/testing/conformance.js +312 -0
- package/dist/cjs/testing/conformance.js.map +1 -0
- package/dist/cjs/testing/icon.js +248 -0
- package/dist/cjs/testing/icon.js.map +1 -0
- package/dist/cjs/testing/index.js +18 -0
- package/dist/cjs/testing/index.js.map +1 -0
- package/dist/cjs/testing/registration.js +142 -0
- package/dist/cjs/testing/registration.js.map +1 -0
- package/dist/cjs/validate/authoring_schema.js +312 -0
- package/dist/cjs/validate/authoring_schema.js.map +1 -0
- package/dist/cjs/validate/composition_schema.js +135 -0
- package/dist/cjs/validate/composition_schema.js.map +1 -0
- package/dist/cjs/validate/index.js +53 -0
- package/dist/cjs/validate/index.js.map +1 -0
- package/dist/cjs/validate/input_budget.js +156 -0
- package/dist/cjs/validate/input_budget.js.map +1 -0
- package/dist/cjs/validate/json_schema.js +72 -0
- package/dist/cjs/validate/json_schema.js.map +1 -0
- package/dist/cjs/validate/node_issues.js +65 -0
- package/dist/cjs/validate/node_issues.js.map +1 -0
- package/dist/cjs/validate/url.js +116 -0
- package/dist/cjs/validate/url.js.map +1 -0
- package/dist/cjs/validate/validation.js +165 -0
- package/dist/cjs/validate/validation.js.map +1 -0
- package/dist/cjs/validate/value_schemas.js +53 -0
- package/dist/cjs/validate/value_schemas.js.map +1 -0
- package/dist/composition/action_event.d.ts +13 -0
- package/dist/composition/action_event.d.ts.map +1 -0
- package/dist/composition/action_event.js +8 -0
- package/dist/composition/action_event.js.map +1 -0
- package/dist/composition/body_node_base.d.ts +72 -0
- package/dist/composition/body_node_base.d.ts.map +1 -0
- package/dist/composition/body_node_base.js +104 -0
- package/dist/composition/body_node_base.js.map +1 -0
- package/dist/composition/composition.d.ts +71 -0
- package/dist/composition/composition.d.ts.map +1 -0
- package/dist/composition/composition.js +8 -0
- package/dist/composition/composition.js.map +1 -0
- package/dist/composition/error.d.ts +61 -0
- package/dist/composition/error.d.ts.map +1 -0
- package/dist/composition/error.js +69 -0
- package/dist/composition/error.js.map +1 -0
- package/dist/composition/index.d.ts +11 -0
- package/dist/composition/index.d.ts.map +1 -0
- package/dist/composition/index.js +14 -0
- package/dist/composition/index.js.map +1 -0
- package/dist/composition/map_nodes.d.ts +16 -0
- package/dist/composition/map_nodes.d.ts.map +1 -0
- package/dist/composition/map_nodes.js +81 -0
- package/dist/composition/map_nodes.js.map +1 -0
- package/dist/composition/named_color.d.ts +9 -0
- package/dist/composition/named_color.d.ts.map +1 -0
- package/dist/composition/named_color.js +17 -0
- package/dist/composition/named_color.js.map +1 -0
- package/dist/composition/node.d.ts +11 -0
- package/dist/composition/node.d.ts.map +1 -0
- package/dist/composition/node.js +8 -0
- package/dist/composition/node.js.map +1 -0
- package/dist/composition/one_line.d.ts +7 -0
- package/dist/composition/one_line.d.ts.map +1 -0
- package/dist/composition/one_line.js +17 -0
- package/dist/composition/one_line.js.map +1 -0
- package/dist/composition/structured_value.d.ts +27 -0
- package/dist/composition/structured_value.d.ts.map +1 -0
- package/dist/composition/structured_value.js +18 -0
- package/dist/composition/structured_value.js.map +1 -0
- package/dist/composition/validation_error.d.ts +33 -0
- package/dist/composition/validation_error.d.ts.map +1 -0
- package/dist/composition/validation_error.js +35 -0
- package/dist/composition/validation_error.js.map +1 -0
- package/dist/define/frame.d.ts +155 -0
- package/dist/define/frame.d.ts.map +1 -0
- package/dist/define/frame.js +27 -0
- package/dist/define/frame.js.map +1 -0
- package/dist/define/index.d.ts +10 -0
- package/dist/define/index.d.ts.map +1 -0
- package/dist/define/index.js +13 -0
- package/dist/define/index.js.map +1 -0
- package/dist/define/markdown_content.d.ts +15 -0
- package/dist/define/markdown_content.d.ts.map +1 -0
- package/dist/define/markdown_content.js +9 -0
- package/dist/define/markdown_content.js.map +1 -0
- package/dist/define/primitive_example.d.ts +30 -0
- package/dist/define/primitive_example.d.ts.map +1 -0
- package/dist/define/primitive_example.js +21 -0
- package/dist/define/primitive_example.js.map +1 -0
- package/dist/define/primitive_icon.d.ts +11 -0
- package/dist/define/primitive_icon.d.ts.map +1 -0
- package/dist/define/primitive_icon.js +14 -0
- package/dist/define/primitive_icon.js.map +1 -0
- package/dist/define/primitive_module.d.ts +435 -0
- package/dist/define/primitive_module.d.ts.map +1 -0
- package/dist/define/primitive_module.js +112 -0
- package/dist/define/primitive_module.js.map +1 -0
- package/dist/define/slack_assets.d.ts +28 -0
- package/dist/define/slack_assets.d.ts.map +1 -0
- package/dist/define/slack_assets.js +8 -0
- package/dist/define/slack_assets.js.map +1 -0
- package/dist/define/slack_blocks.d.ts +234 -0
- package/dist/define/slack_blocks.d.ts.map +1 -0
- package/dist/define/slack_blocks.js +8 -0
- package/dist/define/slack_blocks.js.map +1 -0
- package/dist/define/zod_format.d.ts +33 -0
- package/dist/define/zod_format.d.ts.map +1 -0
- package/dist/define/zod_format.js +114 -0
- package/dist/define/zod_format.js.map +1 -0
- package/dist/define/zod_helpers.d.ts +10 -0
- package/dist/define/zod_helpers.d.ts.map +1 -0
- package/dist/define/zod_helpers.js +22 -0
- package/dist/define/zod_helpers.js.map +1 -0
- package/dist/entries/html.d.ts +3 -0
- package/dist/entries/html.d.ts.map +1 -0
- package/dist/entries/html.js +8 -0
- package/dist/entries/html.js.map +1 -0
- package/dist/entries/index.d.ts +6 -0
- package/dist/entries/index.d.ts.map +1 -0
- package/dist/entries/index.js +12 -0
- package/dist/entries/index.js.map +1 -0
- package/dist/entries/markdown.d.ts +3 -0
- package/dist/entries/markdown.d.ts.map +1 -0
- package/dist/entries/markdown.js +8 -0
- package/dist/entries/markdown.js.map +1 -0
- package/dist/entries/react.d.ts +5 -0
- package/dist/entries/react.d.ts.map +1 -0
- package/dist/entries/react.js +11 -0
- package/dist/entries/react.js.map +1 -0
- package/dist/entries/slack.d.ts +2 -0
- package/dist/entries/slack.d.ts.map +1 -0
- package/dist/entries/slack.js +8 -0
- package/dist/entries/slack.js.map +1 -0
- package/dist/entries/text.d.ts +2 -0
- package/dist/entries/text.d.ts.map +1 -0
- package/dist/entries/text.js +8 -0
- package/dist/entries/text.js.map +1 -0
- package/dist/pack/capabilities.d.ts +41 -0
- package/dist/pack/capabilities.d.ts.map +1 -0
- package/dist/pack/capabilities.js +36 -0
- package/dist/pack/capabilities.js.map +1 -0
- package/dist/pack/compose.d.ts +24 -0
- package/dist/pack/compose.d.ts.map +1 -0
- package/dist/pack/compose.js +55 -0
- package/dist/pack/compose.js.map +1 -0
- package/dist/pack/enhancements.d.ts +65 -0
- package/dist/pack/enhancements.d.ts.map +1 -0
- package/dist/pack/enhancements.js +59 -0
- package/dist/pack/enhancements.js.map +1 -0
- package/dist/pack/index.d.ts +5 -0
- package/dist/pack/index.d.ts.map +1 -0
- package/dist/pack/index.js +11 -0
- package/dist/pack/index.js.map +1 -0
- package/dist/pack/primitive_pack.d.ts +164 -0
- package/dist/pack/primitive_pack.d.ts.map +1 -0
- package/dist/pack/primitive_pack.js +92 -0
- package/dist/pack/primitive_pack.js.map +1 -0
- package/dist/render/anchors.d.ts +82 -0
- package/dist/render/anchors.d.ts.map +1 -0
- package/dist/render/anchors.js +153 -0
- package/dist/render/anchors.js.map +1 -0
- package/dist/render/context_view.d.ts +10 -0
- package/dist/render/context_view.d.ts.map +1 -0
- package/dist/render/context_view.js +49 -0
- package/dist/render/context_view.js.map +1 -0
- package/dist/render/format_display_value.d.ts +20 -0
- package/dist/render/format_display_value.d.ts.map +1 -0
- package/dist/render/format_display_value.js +137 -0
- package/dist/render/format_display_value.js.map +1 -0
- package/dist/render/format_number.d.ts +9 -0
- package/dist/render/format_number.d.ts.map +1 -0
- package/dist/render/format_number.js +42 -0
- package/dist/render/format_number.js.map +1 -0
- package/dist/render/html/enhancements.d.ts +10 -0
- package/dist/render/html/enhancements.d.ts.map +1 -0
- package/dist/render/html/enhancements.js +25 -0
- package/dist/render/html/enhancements.js.map +1 -0
- package/dist/render/html/envelope.d.ts +182 -0
- package/dist/render/html/envelope.d.ts.map +1 -0
- package/dist/render/html/envelope.js +214 -0
- package/dist/render/html/envelope.js.map +1 -0
- package/dist/render/html/index.d.ts +3 -0
- package/dist/render/html/index.d.ts.map +1 -0
- package/dist/render/html/index.js +8 -0
- package/dist/render/html/index.js.map +1 -0
- package/dist/render/index.d.ts +6 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +11 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/layout_check.d.ts +43 -0
- package/dist/render/layout_check.d.ts.map +1 -0
- package/dist/render/layout_check.js +129 -0
- package/dist/render/layout_check.js.map +1 -0
- package/dist/render/markdown/builder.d.ts +46 -0
- package/dist/render/markdown/builder.d.ts.map +1 -0
- package/dist/render/markdown/builder.js +190 -0
- package/dist/render/markdown/builder.js.map +1 -0
- package/dist/render/markdown/envelope.d.ts +20 -0
- package/dist/render/markdown/envelope.d.ts.map +1 -0
- package/dist/render/markdown/envelope.js +29 -0
- package/dist/render/markdown/envelope.js.map +1 -0
- package/dist/render/markdown/format.d.ts +10 -0
- package/dist/render/markdown/format.d.ts.map +1 -0
- package/dist/render/markdown/format.js +202 -0
- package/dist/render/markdown/format.js.map +1 -0
- package/dist/render/markdown/index.d.ts +3 -0
- package/dist/render/markdown/index.d.ts.map +1 -0
- package/dist/render/markdown/index.js +9 -0
- package/dist/render/markdown/index.js.map +1 -0
- package/dist/render/measure_dom.d.ts +10 -0
- package/dist/render/measure_dom.d.ts.map +1 -0
- package/dist/render/measure_dom.js +57 -0
- package/dist/render/measure_dom.js.map +1 -0
- package/dist/render/payload.d.ts +16 -0
- package/dist/render/payload.d.ts.map +1 -0
- package/dist/render/payload.js +9 -0
- package/dist/render/payload.js.map +1 -0
- package/dist/render/primitive_dispatch.d.ts +72 -0
- package/dist/render/primitive_dispatch.d.ts.map +1 -0
- package/dist/render/primitive_dispatch.js +169 -0
- package/dist/render/primitive_dispatch.js.map +1 -0
- package/dist/render/react/content.d.ts +40 -0
- package/dist/render/react/content.d.ts.map +1 -0
- package/dist/render/react/content.js +39 -0
- package/dist/render/react/content.js.map +1 -0
- package/dist/render/react/enhancements.d.ts +15 -0
- package/dist/render/react/enhancements.d.ts.map +1 -0
- package/dist/render/react/enhancements.js +28 -0
- package/dist/render/react/enhancements.js.map +1 -0
- package/dist/render/react/index.d.ts +3 -0
- package/dist/render/react/index.d.ts.map +1 -0
- package/dist/render/react/index.js +9 -0
- package/dist/render/react/index.js.map +1 -0
- package/dist/render/slack/assets.d.ts +16 -0
- package/dist/render/slack/assets.d.ts.map +1 -0
- package/dist/render/slack/assets.js +40 -0
- package/dist/render/slack/assets.js.map +1 -0
- package/dist/render/slack/blocks.d.ts +72 -0
- package/dist/render/slack/blocks.d.ts.map +1 -0
- package/dist/render/slack/blocks.js +77 -0
- package/dist/render/slack/blocks.js.map +1 -0
- package/dist/render/slack/envelope.d.ts +52 -0
- package/dist/render/slack/envelope.d.ts.map +1 -0
- package/dist/render/slack/envelope.js +547 -0
- package/dist/render/slack/envelope.js.map +1 -0
- package/dist/render/slack/format.d.ts +70 -0
- package/dist/render/slack/format.d.ts.map +1 -0
- package/dist/render/slack/format.js +209 -0
- package/dist/render/slack/format.js.map +1 -0
- package/dist/render/slack/index.d.ts +6 -0
- package/dist/render/slack/index.d.ts.map +1 -0
- package/dist/render/slack/index.js +12 -0
- package/dist/render/slack/index.js.map +1 -0
- package/dist/render/slack/markdown_content.d.ts +17 -0
- package/dist/render/slack/markdown_content.d.ts.map +1 -0
- package/dist/render/slack/markdown_content.js +404 -0
- package/dist/render/slack/markdown_content.js.map +1 -0
- package/dist/render/text/envelope.d.ts +15 -0
- package/dist/render/text/envelope.d.ts.map +1 -0
- package/dist/render/text/envelope.js +17 -0
- package/dist/render/text/envelope.js.map +1 -0
- package/dist/render/text/index.d.ts +2 -0
- package/dist/render/text/index.d.ts.map +1 -0
- package/dist/render/text/index.js +8 -0
- package/dist/render/text/index.js.map +1 -0
- package/dist/testing/conformance.d.ts +145 -0
- package/dist/testing/conformance.d.ts.map +1 -0
- package/dist/testing/conformance.js +303 -0
- package/dist/testing/conformance.js.map +1 -0
- package/dist/testing/icon.d.ts +11 -0
- package/dist/testing/icon.d.ts.map +1 -0
- package/dist/testing/icon.js +244 -0
- package/dist/testing/icon.js.map +1 -0
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +10 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/registration.d.ts +32 -0
- package/dist/testing/registration.d.ts.map +1 -0
- package/dist/testing/registration.js +105 -0
- package/dist/testing/registration.js.map +1 -0
- package/dist/validate/authoring_schema.d.ts +33 -0
- package/dist/validate/authoring_schema.d.ts.map +1 -0
- package/dist/validate/authoring_schema.js +306 -0
- package/dist/validate/authoring_schema.js.map +1 -0
- package/dist/validate/composition_schema.d.ts +80 -0
- package/dist/validate/composition_schema.d.ts.map +1 -0
- package/dist/validate/composition_schema.js +127 -0
- package/dist/validate/composition_schema.js.map +1 -0
- package/dist/validate/index.d.ts +9 -0
- package/dist/validate/index.d.ts.map +1 -0
- package/dist/validate/index.js +15 -0
- package/dist/validate/index.js.map +1 -0
- package/dist/validate/input_budget.d.ts +35 -0
- package/dist/validate/input_budget.d.ts.map +1 -0
- package/dist/validate/input_budget.js +151 -0
- package/dist/validate/input_budget.js.map +1 -0
- package/dist/validate/json_schema.d.ts +32 -0
- package/dist/validate/json_schema.d.ts.map +1 -0
- package/dist/validate/json_schema.js +68 -0
- package/dist/validate/json_schema.js.map +1 -0
- package/dist/validate/node_issues.d.ts +12 -0
- package/dist/validate/node_issues.d.ts.map +1 -0
- package/dist/validate/node_issues.js +61 -0
- package/dist/validate/node_issues.js.map +1 -0
- package/dist/validate/url.d.ts +50 -0
- package/dist/validate/url.d.ts.map +1 -0
- package/dist/validate/url.js +107 -0
- package/dist/validate/url.js.map +1 -0
- package/dist/validate/validation.d.ts +95 -0
- package/dist/validate/validation.d.ts.map +1 -0
- package/dist/validate/validation.js +157 -0
- package/dist/validate/validation.js.map +1 -0
- package/dist/validate/value_schemas.d.ts +53 -0
- package/dist/validate/value_schemas.d.ts.map +1 -0
- package/dist/validate/value_schemas.js +50 -0
- package/dist/validate/value_schemas.js.map +1 -0
- package/package.json +119 -5
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes the three characters Slack treats as HTML in `mrkdwn` text.
|
|
3
|
+
*
|
|
4
|
+
* The formatting markers (`*`, `_`, `~`, `` ` ``) are left intact so callers
|
|
5
|
+
* can compose markdown with them. Wrap text in {@link code} when literal
|
|
6
|
+
* asterisks are needed.
|
|
7
|
+
*/
|
|
8
|
+
export declare const escapeMrkdwn: (value: string) => string;
|
|
9
|
+
/** `text` escaped and wrapped in mrkdwn bold markers. */
|
|
10
|
+
export declare const bold: (text: string) => string;
|
|
11
|
+
/** `text` escaped and wrapped in mrkdwn italic markers. */
|
|
12
|
+
export declare const italic: (text: string) => string;
|
|
13
|
+
/** `text` escaped and wrapped in mrkdwn strikethrough markers. */
|
|
14
|
+
export declare const strike: (text: string) => string;
|
|
15
|
+
/**
|
|
16
|
+
* Inline code span. Contents are not mrkdwn-escaped, since `<` and friends are
|
|
17
|
+
* literal inside a code span; only embedded backticks are demoted, to a
|
|
18
|
+
* modifier letter that cannot close the span.
|
|
19
|
+
*/
|
|
20
|
+
export declare const code: (text: string) => string;
|
|
21
|
+
/**
|
|
22
|
+
* Fenced code block. Slack honours the triple-backtick fence but not a language
|
|
23
|
+
* hint. Embedded triple-backticks are demoted with a zero-width joiner so they
|
|
24
|
+
* cannot terminate the block early.
|
|
25
|
+
*/
|
|
26
|
+
export declare const codeBlock: (text: string) => string;
|
|
27
|
+
/**
|
|
28
|
+
* Whether `url` is an `http:` or `https:` URL with a DNS or IPv6 host that
|
|
29
|
+
* `URL` prints as written, so nothing it repairs or encodes, such as a
|
|
30
|
+
* backslash, whitespace, or non-ASCII, passes.
|
|
31
|
+
*/
|
|
32
|
+
export declare const isAbsoluteHttpUrl: (url: string) => boolean;
|
|
33
|
+
/**
|
|
34
|
+
* `href` when {@link sanitizeNavigationHref} passes it and it is an `http:` or
|
|
35
|
+
* `https:` URL with a host, or a `mailto:` of well-formed mailboxes; `null`
|
|
36
|
+
* otherwise. Slack has no page to resolve a relative URL against.
|
|
37
|
+
*/
|
|
38
|
+
export declare const slackLinkUrl: (href: string) => string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Slack mrkdwn link, `<url|label>`, or a bare `<url>` when `label` is omitted.
|
|
41
|
+
*
|
|
42
|
+
* URL and label are both escaped so `&` and `>` cannot break Slack's link
|
|
43
|
+
* parser, and a `|` in the URL is percent-encoded so it cannot end the URL
|
|
44
|
+
* early. A URL {@link slackLinkUrl} rejects degrades to plain escaped text
|
|
45
|
+
* with no link.
|
|
46
|
+
*/
|
|
47
|
+
export declare const link: (url: string, label?: string) => string;
|
|
48
|
+
/**
|
|
49
|
+
* Truncates `value` to `max` UTF-16 code units at a grapheme boundary,
|
|
50
|
+
* appending an ellipsis when it had to cut. Pass a `SLACK_LIMITS` constant as
|
|
51
|
+
* the budget.
|
|
52
|
+
*/
|
|
53
|
+
export declare const clampSlackText: (value: string, max: number) => string;
|
|
54
|
+
/**
|
|
55
|
+
* {@link clampSlackText} for `mrkdwn`: never cuts inside a `<…>` link or
|
|
56
|
+
* mention or an entity. Formatting marks are left as they fall; Slack prints an
|
|
57
|
+
* unclosed one as written.
|
|
58
|
+
*/
|
|
59
|
+
export declare const clampMrkdwn: (value: string, max: number) => string;
|
|
60
|
+
/**
|
|
61
|
+
* `value` cut to `max` UTF-16 code units, never through a surrogate pair. For
|
|
62
|
+
* opaque values a host reads back, which an ellipsis would change.
|
|
63
|
+
*/
|
|
64
|
+
export declare const cutSlackValue: (value: string, max: number) => string;
|
|
65
|
+
/**
|
|
66
|
+
* Collapses whitespace and clamps to `SLACK_LIMITS.headerTextChars`. Header
|
|
67
|
+
* text is `plain_text`, so no markdown survives — do not pre-format it.
|
|
68
|
+
*/
|
|
69
|
+
export declare const formatHeaderText: (value: string) => string;
|
|
70
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/render/slack/format.ts"],"names":[],"mappings":"AA4BA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,MACuB,CAAC;AAErE,yDAAyD;AACzD,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,KAAG,MAAmC,CAAC;AACxE,2DAA2D;AAC3D,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,KAAG,MAAmC,CAAC;AAC1E,kEAAkE;AAClE,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,KAAG,MAAmC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,KAAG,MACG,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MACe,CAAC;AAgCzD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,OAM/C,CAAC;AAmCF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,IAMpD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,MAAM,EAAE,QAAQ,MAAM,KAAG,MAUlD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MAgB3D,CAAC;AAgBF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MAiBxD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MAG1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MAI9C,CAAC"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0; you may not use this file except in compliance with the Elastic License
|
|
5
|
+
* 2.0.
|
|
6
|
+
*/
|
|
7
|
+
// Slack mrkdwn helpers.
|
|
8
|
+
//
|
|
9
|
+
// Slack uses a flavour of Markdown called "mrkdwn" that differs from CommonMark
|
|
10
|
+
// in subtle ways: links are `<url|label>`, code uses single backticks (or
|
|
11
|
+
// fenced ```` ``` ```` blocks), and `&`, `<`, `>` must be HTML-escaped inside
|
|
12
|
+
// any text element. These helpers centralize the escaping so primitive
|
|
13
|
+
// renderers cannot accidentally emit a literal `<https://...>` that Slack
|
|
14
|
+
// would parse as auto-link with no label.
|
|
15
|
+
//
|
|
16
|
+
// See https://api.slack.com/reference/surfaces/formatting
|
|
17
|
+
import { sanitizeNavigationHref } from '../../validate/url.js';
|
|
18
|
+
import { SLACK_LIMITS } from './blocks.js';
|
|
19
|
+
const MRKDWN_ESCAPES = {
|
|
20
|
+
'&': '&',
|
|
21
|
+
'<': '<',
|
|
22
|
+
'>': '>',
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Escapes the three characters Slack treats as HTML in `mrkdwn` text.
|
|
26
|
+
*
|
|
27
|
+
* The formatting markers (`*`, `_`, `~`, `` ` ``) are left intact so callers
|
|
28
|
+
* can compose markdown with them. Wrap text in {@link code} when literal
|
|
29
|
+
* asterisks are needed.
|
|
30
|
+
*/
|
|
31
|
+
export const escapeMrkdwn = (value) => value.replace(/[&<>]/g, (match) => MRKDWN_ESCAPES[match] ?? match);
|
|
32
|
+
/** `text` escaped and wrapped in mrkdwn bold markers. */
|
|
33
|
+
export const bold = (text) => `*${escapeMrkdwn(text)}*`;
|
|
34
|
+
/** `text` escaped and wrapped in mrkdwn italic markers. */
|
|
35
|
+
export const italic = (text) => `_${escapeMrkdwn(text)}_`;
|
|
36
|
+
/** `text` escaped and wrapped in mrkdwn strikethrough markers. */
|
|
37
|
+
export const strike = (text) => `~${escapeMrkdwn(text)}~`;
|
|
38
|
+
/**
|
|
39
|
+
* Inline code span. Contents are not mrkdwn-escaped, since `<` and friends are
|
|
40
|
+
* literal inside a code span; only embedded backticks are demoted, to a
|
|
41
|
+
* modifier letter that cannot close the span.
|
|
42
|
+
*/
|
|
43
|
+
export const code = (text) => `\`${text.replace(/`/g, '\u02CB')}\``;
|
|
44
|
+
/**
|
|
45
|
+
* Fenced code block. Slack honours the triple-backtick fence but not a language
|
|
46
|
+
* hint. Embedded triple-backticks are demoted with a zero-width joiner so they
|
|
47
|
+
* cannot terminate the block early.
|
|
48
|
+
*/
|
|
49
|
+
export const codeBlock = (text) => `\`\`\`\n${text.replace(/```/g, '``\u200d`')}\n\`\`\``;
|
|
50
|
+
const URL_PARTS_RE = /^([a-z][a-z0-9+.-]*:(?:\/\/[^/?#]*)?)(.*)$/is;
|
|
51
|
+
// Letter, digit, and hyphen labels, with an optional DNS root dot.
|
|
52
|
+
const DNS_NAME_RE = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)*\.?$/i;
|
|
53
|
+
const IPV6_HOST_RE = /^\[[0-9a-f:.]+\]$/i;
|
|
54
|
+
const MALFORMED_ESCAPE_RE = /%(?![0-9a-f]{2})/i;
|
|
55
|
+
// `url` parsed, when its escapes are well formed and `URL` prints it as
|
|
56
|
+
// written up to the case of its scheme and authority and a `/` for an empty
|
|
57
|
+
// path.
|
|
58
|
+
const parsedAsWritten = (url) => {
|
|
59
|
+
if (MALFORMED_ESCAPE_RE.test(url)) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
let parsed;
|
|
63
|
+
try {
|
|
64
|
+
parsed = new URL(url);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
const [, prefix, rest] = URL_PARTS_RE.exec(url) ?? [];
|
|
70
|
+
const [, printedPrefix, printedRest] = URL_PARTS_RE.exec(parsed.href) ?? [];
|
|
71
|
+
return prefix !== undefined &&
|
|
72
|
+
prefix.toLowerCase() === printedPrefix?.toLowerCase() &&
|
|
73
|
+
(printedRest === rest || printedRest === `/${rest}`)
|
|
74
|
+
? parsed
|
|
75
|
+
: null;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Whether `url` is an `http:` or `https:` URL with a DNS or IPv6 host that
|
|
79
|
+
* `URL` prints as written, so nothing it repairs or encodes, such as a
|
|
80
|
+
* backslash, whitespace, or non-ASCII, passes.
|
|
81
|
+
*/
|
|
82
|
+
export const isAbsoluteHttpUrl = (url) => {
|
|
83
|
+
const parsed = parsedAsWritten(url);
|
|
84
|
+
return ((parsed?.protocol === 'http:' || parsed?.protocol === 'https:') &&
|
|
85
|
+
(DNS_NAME_RE.test(parsed.hostname) || IPV6_HOST_RE.test(parsed.hostname)));
|
|
86
|
+
};
|
|
87
|
+
// RFC 5322 dot-atom text, less `/`, `?`, `#`, and `%`.
|
|
88
|
+
const LOCAL_PART_RE = /^[a-z0-9!$&'*+=^_`{|}~-]+(?:\.[a-z0-9!$&'*+=^_`{|}~-]+)*$/i;
|
|
89
|
+
const isMailbox = (recipient) => {
|
|
90
|
+
const at = recipient.lastIndexOf('@');
|
|
91
|
+
return (at > 0 &&
|
|
92
|
+
LOCAL_PART_RE.test(recipient.slice(0, at)) &&
|
|
93
|
+
DNS_NAME_RE.test(recipient.slice(at + 1)));
|
|
94
|
+
};
|
|
95
|
+
const decoded = (value) => {
|
|
96
|
+
try {
|
|
97
|
+
return decodeURIComponent(value);
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
// Every comma-separated recipient before the query or fragment is a mailbox.
|
|
104
|
+
const isMailtoUrl = (url) => {
|
|
105
|
+
const [, recipients] = /^mailto:([^?#]*)/i.exec(url) ?? [];
|
|
106
|
+
return (recipients !== undefined &&
|
|
107
|
+
parsedAsWritten(url) !== null &&
|
|
108
|
+
recipients
|
|
109
|
+
.split(',')
|
|
110
|
+
.every((recipient) => isMailbox(decoded(recipient) ?? '')));
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* `href` when {@link sanitizeNavigationHref} passes it and it is an `http:` or
|
|
114
|
+
* `https:` URL with a host, or a `mailto:` of well-formed mailboxes; `null`
|
|
115
|
+
* otherwise. Slack has no page to resolve a relative URL against.
|
|
116
|
+
*/
|
|
117
|
+
export const slackLinkUrl = (href) => {
|
|
118
|
+
const url = sanitizeNavigationHref(href);
|
|
119
|
+
if (url === null) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
return isAbsoluteHttpUrl(url) || isMailtoUrl(url) ? url : null;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Slack mrkdwn link, `<url|label>`, or a bare `<url>` when `label` is omitted.
|
|
126
|
+
*
|
|
127
|
+
* URL and label are both escaped so `&` and `>` cannot break Slack's link
|
|
128
|
+
* parser, and a `|` in the URL is percent-encoded so it cannot end the URL
|
|
129
|
+
* early. A URL {@link slackLinkUrl} rejects degrades to plain escaped text
|
|
130
|
+
* with no link.
|
|
131
|
+
*/
|
|
132
|
+
export const link = (url, label) => {
|
|
133
|
+
const sanitized = slackLinkUrl(url);
|
|
134
|
+
if (!sanitized) {
|
|
135
|
+
return escapeMrkdwn(label ?? url);
|
|
136
|
+
}
|
|
137
|
+
const safeUrl = escapeMrkdwn(sanitized).replaceAll('|', '%7C');
|
|
138
|
+
if (!label) {
|
|
139
|
+
return `<${safeUrl}>`;
|
|
140
|
+
}
|
|
141
|
+
return `<${safeUrl}|${escapeMrkdwn(label)}>`;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Truncates `value` to `max` UTF-16 code units at a grapheme boundary,
|
|
145
|
+
* appending an ellipsis when it had to cut. Pass a `SLACK_LIMITS` constant as
|
|
146
|
+
* the budget.
|
|
147
|
+
*/
|
|
148
|
+
export const clampSlackText = (value, max) => {
|
|
149
|
+
if (value.length <= max) {
|
|
150
|
+
return value;
|
|
151
|
+
}
|
|
152
|
+
const budget = max <= 1 ? max : max - 1;
|
|
153
|
+
let end = 0;
|
|
154
|
+
for (const { index, segment } of new Intl.Segmenter(undefined, {
|
|
155
|
+
granularity: 'grapheme',
|
|
156
|
+
}).segment(value)) {
|
|
157
|
+
if (index + segment.length > budget) {
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
end = index + segment.length;
|
|
161
|
+
}
|
|
162
|
+
const head = value.slice(0, end);
|
|
163
|
+
return max <= 1 ? head : `${head.trimEnd()}…`;
|
|
164
|
+
};
|
|
165
|
+
// A `<…>` link or mention and an entity, each matched where it starts.
|
|
166
|
+
const LINK_TOKEN_RE = /<[^<>\n]*>/y;
|
|
167
|
+
const ENTITY_TOKEN_RE = /&(?:amp|lt|gt);/y;
|
|
168
|
+
// The end of the token `re` matches at `index`, or `undefined`.
|
|
169
|
+
const tokenEnd = (value, re, index) => {
|
|
170
|
+
re.lastIndex = index;
|
|
171
|
+
return re.test(value) ? re.lastIndex : undefined;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* {@link clampSlackText} for `mrkdwn`: never cuts inside a `<…>` link or
|
|
175
|
+
* mention or an entity. Formatting marks are left as they fall; Slack prints an
|
|
176
|
+
* unclosed one as written.
|
|
177
|
+
*/
|
|
178
|
+
export const clampMrkdwn = (value, max) => {
|
|
179
|
+
const clamped = clampSlackText(value, max);
|
|
180
|
+
if (clamped === value || max <= 1) {
|
|
181
|
+
return clamped;
|
|
182
|
+
}
|
|
183
|
+
// Entity first: a link holds no `<` of its own, so stepping back to its
|
|
184
|
+
// start cannot land inside an entity, while the reverse could.
|
|
185
|
+
let cut = clamped.length - 1;
|
|
186
|
+
const entity = value.lastIndexOf('&', cut - 1);
|
|
187
|
+
if (entity !== -1 && (tokenEnd(value, ENTITY_TOKEN_RE, entity) ?? 0) > cut) {
|
|
188
|
+
cut = entity;
|
|
189
|
+
}
|
|
190
|
+
const link = value.lastIndexOf('<', cut - 1);
|
|
191
|
+
if (link !== -1 && (tokenEnd(value, LINK_TOKEN_RE, link) ?? 0) > cut) {
|
|
192
|
+
cut = link;
|
|
193
|
+
}
|
|
194
|
+
return `${value.slice(0, cut).trimEnd()}…`;
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* `value` cut to `max` UTF-16 code units, never through a surrogate pair. For
|
|
198
|
+
* opaque values a host reads back, which an ellipsis would change.
|
|
199
|
+
*/
|
|
200
|
+
export const cutSlackValue = (value, max) => {
|
|
201
|
+
const cut = value.slice(0, max);
|
|
202
|
+
return /[\ud800-\udbff]$/.test(cut) ? cut.slice(0, -1) : cut;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Collapses whitespace and clamps to `SLACK_LIMITS.headerTextChars`. Header
|
|
206
|
+
* text is `plain_text`, so no markdown survives — do not pre-format it.
|
|
207
|
+
*/
|
|
208
|
+
export const formatHeaderText = (value) => clampSlackText(value.replace(/\s+/g, ' ').trim(), SLACK_LIMITS.headerTextChars);
|
|
209
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/render/slack/format.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0; you may not use this file except in compliance with the Elastic License\n * 2.0.\n */\n\n// Slack mrkdwn helpers.\n//\n// Slack uses a flavour of Markdown called \"mrkdwn\" that differs from CommonMark\n// in subtle ways: links are `<url|label>`, code uses single backticks (or\n// fenced ```` ``` ```` blocks), and `&`, `<`, `>` must be HTML-escaped inside\n// any text element. These helpers centralize the escaping so primitive\n// renderers cannot accidentally emit a literal `<https://...>` that Slack\n// would parse as auto-link with no label.\n//\n// See https://api.slack.com/reference/surfaces/formatting\n\nimport { sanitizeNavigationHref } from '../../validate/url';\n\nimport { SLACK_LIMITS } from './blocks';\n\nconst MRKDWN_ESCAPES: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n};\n\n/**\n * Escapes the three characters Slack treats as HTML in `mrkdwn` text.\n *\n * The formatting markers (`*`, `_`, `~`, `` ` ``) are left intact so callers\n * can compose markdown with them. Wrap text in {@link code} when literal\n * asterisks are needed.\n */\nexport const escapeMrkdwn = (value: string): string =>\n value.replace(/[&<>]/g, (match) => MRKDWN_ESCAPES[match] ?? match);\n\n/** `text` escaped and wrapped in mrkdwn bold markers. */\nexport const bold = (text: string): string => `*${escapeMrkdwn(text)}*`;\n/** `text` escaped and wrapped in mrkdwn italic markers. */\nexport const italic = (text: string): string => `_${escapeMrkdwn(text)}_`;\n/** `text` escaped and wrapped in mrkdwn strikethrough markers. */\nexport const strike = (text: string): string => `~${escapeMrkdwn(text)}~`;\n\n/**\n * Inline code span. Contents are not mrkdwn-escaped, since `<` and friends are\n * literal inside a code span; only embedded backticks are demoted, to a\n * modifier letter that cannot close the span.\n */\nexport const code = (text: string): string =>\n `\\`${text.replace(/`/g, '\\u02CB')}\\``;\n\n/**\n * Fenced code block. Slack honours the triple-backtick fence but not a language\n * hint. Embedded triple-backticks are demoted with a zero-width joiner so they\n * cannot terminate the block early.\n */\nexport const codeBlock = (text: string): string =>\n `\\`\\`\\`\\n${text.replace(/```/g, '``\\u200d`')}\\n\\`\\`\\``;\n\nconst URL_PARTS_RE = /^([a-z][a-z0-9+.-]*:(?:\\/\\/[^/?#]*)?)(.*)$/is;\n// Letter, digit, and hyphen labels, with an optional DNS root dot.\nconst DNS_NAME_RE =\n /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)*\\.?$/i;\nconst IPV6_HOST_RE = /^\\[[0-9a-f:.]+\\]$/i;\n\nconst MALFORMED_ESCAPE_RE = /%(?![0-9a-f]{2})/i;\n\n// `url` parsed, when its escapes are well formed and `URL` prints it as\n// written up to the case of its scheme and authority and a `/` for an empty\n// path.\nconst parsedAsWritten = (url: string): URL | null => {\n if (MALFORMED_ESCAPE_RE.test(url)) {\n return null;\n }\n let parsed: URL;\n try {\n parsed = new URL(url);\n } catch {\n return null;\n }\n const [, prefix, rest] = URL_PARTS_RE.exec(url) ?? [];\n const [, printedPrefix, printedRest] = URL_PARTS_RE.exec(parsed.href) ?? [];\n return prefix !== undefined &&\n prefix.toLowerCase() === printedPrefix?.toLowerCase() &&\n (printedRest === rest || printedRest === `/${rest}`)\n ? parsed\n : null;\n};\n\n/**\n * Whether `url` is an `http:` or `https:` URL with a DNS or IPv6 host that\n * `URL` prints as written, so nothing it repairs or encodes, such as a\n * backslash, whitespace, or non-ASCII, passes.\n */\nexport const isAbsoluteHttpUrl = (url: string): boolean => {\n const parsed = parsedAsWritten(url);\n return (\n (parsed?.protocol === 'http:' || parsed?.protocol === 'https:') &&\n (DNS_NAME_RE.test(parsed.hostname) || IPV6_HOST_RE.test(parsed.hostname))\n );\n};\n\n// RFC 5322 dot-atom text, less `/`, `?`, `#`, and `%`.\nconst LOCAL_PART_RE =\n /^[a-z0-9!$&'*+=^_`{|}~-]+(?:\\.[a-z0-9!$&'*+=^_`{|}~-]+)*$/i;\n\nconst isMailbox = (recipient: string): boolean => {\n const at = recipient.lastIndexOf('@');\n return (\n at > 0 &&\n LOCAL_PART_RE.test(recipient.slice(0, at)) &&\n DNS_NAME_RE.test(recipient.slice(at + 1))\n );\n};\n\nconst decoded = (value: string): string | null => {\n try {\n return decodeURIComponent(value);\n } catch {\n return null;\n }\n};\n\n// Every comma-separated recipient before the query or fragment is a mailbox.\nconst isMailtoUrl = (url: string): boolean => {\n const [, recipients] = /^mailto:([^?#]*)/i.exec(url) ?? [];\n return (\n recipients !== undefined &&\n parsedAsWritten(url) !== null &&\n recipients\n .split(',')\n .every((recipient) => isMailbox(decoded(recipient) ?? ''))\n );\n};\n\n/**\n * `href` when {@link sanitizeNavigationHref} passes it and it is an `http:` or\n * `https:` URL with a host, or a `mailto:` of well-formed mailboxes; `null`\n * otherwise. Slack has no page to resolve a relative URL against.\n */\nexport const slackLinkUrl = (href: string): string | null => {\n const url = sanitizeNavigationHref(href);\n if (url === null) {\n return null;\n }\n return isAbsoluteHttpUrl(url) || isMailtoUrl(url) ? url : null;\n};\n\n/**\n * Slack mrkdwn link, `<url|label>`, or a bare `<url>` when `label` is omitted.\n *\n * URL and label are both escaped so `&` and `>` cannot break Slack's link\n * parser, and a `|` in the URL is percent-encoded so it cannot end the URL\n * early. A URL {@link slackLinkUrl} rejects degrades to plain escaped text\n * with no link.\n */\nexport const link = (url: string, label?: string): string => {\n const sanitized = slackLinkUrl(url);\n if (!sanitized) {\n return escapeMrkdwn(label ?? url);\n }\n const safeUrl = escapeMrkdwn(sanitized).replaceAll('|', '%7C');\n if (!label) {\n return `<${safeUrl}>`;\n }\n return `<${safeUrl}|${escapeMrkdwn(label)}>`;\n};\n\n/**\n * Truncates `value` to `max` UTF-16 code units at a grapheme boundary,\n * appending an ellipsis when it had to cut. Pass a `SLACK_LIMITS` constant as\n * the budget.\n */\nexport const clampSlackText = (value: string, max: number): string => {\n if (value.length <= max) {\n return value;\n }\n const budget = max <= 1 ? max : max - 1;\n let end = 0;\n for (const { index, segment } of new Intl.Segmenter(undefined, {\n granularity: 'grapheme',\n }).segment(value)) {\n if (index + segment.length > budget) {\n break;\n }\n end = index + segment.length;\n }\n const head = value.slice(0, end);\n return max <= 1 ? head : `${head.trimEnd()}…`;\n};\n\n// A `<…>` link or mention and an entity, each matched where it starts.\nconst LINK_TOKEN_RE = /<[^<>\\n]*>/y;\nconst ENTITY_TOKEN_RE = /&(?:amp|lt|gt);/y;\n\n// The end of the token `re` matches at `index`, or `undefined`.\nconst tokenEnd = (\n value: string,\n re: RegExp,\n index: number\n): number | undefined => {\n re.lastIndex = index;\n return re.test(value) ? re.lastIndex : undefined;\n};\n\n/**\n * {@link clampSlackText} for `mrkdwn`: never cuts inside a `<…>` link or\n * mention or an entity. Formatting marks are left as they fall; Slack prints an\n * unclosed one as written.\n */\nexport const clampMrkdwn = (value: string, max: number): string => {\n const clamped = clampSlackText(value, max);\n if (clamped === value || max <= 1) {\n return clamped;\n }\n // Entity first: a link holds no `<` of its own, so stepping back to its\n // start cannot land inside an entity, while the reverse could.\n let cut = clamped.length - 1;\n const entity = value.lastIndexOf('&', cut - 1);\n if (entity !== -1 && (tokenEnd(value, ENTITY_TOKEN_RE, entity) ?? 0) > cut) {\n cut = entity;\n }\n const link = value.lastIndexOf('<', cut - 1);\n if (link !== -1 && (tokenEnd(value, LINK_TOKEN_RE, link) ?? 0) > cut) {\n cut = link;\n }\n return `${value.slice(0, cut).trimEnd()}…`;\n};\n\n/**\n * `value` cut to `max` UTF-16 code units, never through a surrogate pair. For\n * opaque values a host reads back, which an ellipsis would change.\n */\nexport const cutSlackValue = (value: string, max: number): string => {\n const cut = value.slice(0, max);\n return /[\\ud800-\\udbff]$/.test(cut) ? cut.slice(0, -1) : cut;\n};\n\n/**\n * Collapses whitespace and clamps to `SLACK_LIMITS.headerTextChars`. Header\n * text is `plain_text`, so no markdown survives — do not pre-format it.\n */\nexport const formatHeaderText = (value: string): string =>\n clampSlackText(\n value.replace(/\\s+/g, ' ').trim(),\n SLACK_LIMITS.headerTextChars\n );\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { type SlackAssetCollector, type SlackAssetRequest, createSlackAssetCollector, isSlackReachableImageUrl, } from './assets.js';
|
|
2
|
+
export { type SlackActionElement, type SlackActionsBlock, type SlackBlock, type SlackButtonElement, type SlackCheckboxesElement, type SlackContextBlock, type SlackDividerBlock, type SlackFileReference, type SlackHeaderBlock, type SlackHeaderLevel, type SlackImageBlock, type SlackImageElement, type SlackMrkdwnTextObject, type SlackMultiStaticSelectElement, type SlackOptionGroup, type SlackOptionObject, type SlackOverflowElement, type SlackPlainTextObject, type SlackRadioButtonsElement, type SlackRawTextElement, type SlackRichTextBlock, type SlackRichTextBlockElement, type SlackRichTextInline, type SlackRichTextLink, type SlackRichTextList, type SlackRichTextPreformatted, type SlackRichTextQuote, type SlackRichTextSection, type SlackRichTextStyle, type SlackRichTextTag, type SlackRichTextText, type SlackSectionAccessory, type SlackSectionBlock, type SlackStaticSelectElement, type SlackTableBlock, type SlackTableCell, type SlackTableColumnSetting, type SlackTagColor, type SlackTextObject, type SlackVideoBlock, SLACK_LIMITS, } from './blocks.js';
|
|
3
|
+
export { type SlackEnvelopeDispatcher, type SlackEnvelopeOptions, type SlackEnvelopeResult, renderSlackEnvelope, } from './envelope.js';
|
|
4
|
+
export { bold, clampSlackText, code, codeBlock, escapeMrkdwn, isAbsoluteHttpUrl, italic, link, slackLinkUrl, strike, } from './format.js';
|
|
5
|
+
export { markdownContentToSlackBlocks } from './markdown_content.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/render/slack/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,MAAM,GACP,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0; you may not use this file except in compliance with the Elastic License
|
|
5
|
+
* 2.0.
|
|
6
|
+
*/
|
|
7
|
+
export { createSlackAssetCollector, isSlackReachableImageUrl, } from './assets.js';
|
|
8
|
+
export { SLACK_LIMITS, } from './blocks.js';
|
|
9
|
+
export { renderSlackEnvelope, } from './envelope.js';
|
|
10
|
+
export { bold, clampSlackText, code, codeBlock, escapeMrkdwn, isAbsoluteHttpUrl, italic, link, slackLinkUrl, strike, } from './format.js';
|
|
11
|
+
export { markdownContentToSlackBlocks } from './markdown_content.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/render/slack/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EAyCL,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAIL,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,MAAM,GACP,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0; you may not use this file except in compliance with the Elastic License\n * 2.0.\n */\n\nexport {\n type SlackAssetCollector,\n type SlackAssetRequest,\n createSlackAssetCollector,\n isSlackReachableImageUrl,\n} from './assets';\nexport {\n type SlackActionElement,\n type SlackActionsBlock,\n type SlackBlock,\n type SlackButtonElement,\n type SlackCheckboxesElement,\n type SlackContextBlock,\n type SlackDividerBlock,\n type SlackFileReference,\n type SlackHeaderBlock,\n type SlackHeaderLevel,\n type SlackImageBlock,\n type SlackImageElement,\n type SlackMrkdwnTextObject,\n type SlackMultiStaticSelectElement,\n type SlackOptionGroup,\n type SlackOptionObject,\n type SlackOverflowElement,\n type SlackPlainTextObject,\n type SlackRadioButtonsElement,\n type SlackRawTextElement,\n type SlackRichTextBlock,\n type SlackRichTextBlockElement,\n type SlackRichTextInline,\n type SlackRichTextLink,\n type SlackRichTextList,\n type SlackRichTextPreformatted,\n type SlackRichTextQuote,\n type SlackRichTextSection,\n type SlackRichTextStyle,\n type SlackRichTextTag,\n type SlackRichTextText,\n type SlackSectionAccessory,\n type SlackSectionBlock,\n type SlackStaticSelectElement,\n type SlackTableBlock,\n type SlackTableCell,\n type SlackTableColumnSetting,\n type SlackTagColor,\n type SlackTextObject,\n type SlackVideoBlock,\n SLACK_LIMITS,\n} from './blocks';\nexport {\n type SlackEnvelopeDispatcher,\n type SlackEnvelopeOptions,\n type SlackEnvelopeResult,\n renderSlackEnvelope,\n} from './envelope';\n\nexport {\n bold,\n clampSlackText,\n code,\n codeBlock,\n escapeMrkdwn,\n isAbsoluteHttpUrl,\n italic,\n link,\n slackLinkUrl,\n strike,\n} from './format';\n\nexport { markdownContentToSlackBlocks } from './markdown_content';\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { MarkdownContent } from '../../define/markdown_content.js';
|
|
2
|
+
import { type SlackBlock } from './blocks.js';
|
|
3
|
+
/**
|
|
4
|
+
* Builder content as Block Kit: paragraphs, headings, lists, quotes, and code
|
|
5
|
+
* as `rich_text`, tables as `table` blocks, and thematic breaks as `divider`
|
|
6
|
+
* blocks. A quote is one level, and inside a list item its blocks are the
|
|
7
|
+
* item's. A run of rich-text blocks shares one `rich_text` block. Source from
|
|
8
|
+
* `md.authored` is parsed as GFM and translated the same way.
|
|
9
|
+
*/
|
|
10
|
+
export declare const markdownContentToSlackBlocks: (content: MarkdownContent) => SlackBlock[];
|
|
11
|
+
/**
|
|
12
|
+
* GFM as Block Kit, parsed as CommonMark with GFM and translated as
|
|
13
|
+
* {@link markdownContentToSlackBlocks} translates builder content. Source past
|
|
14
|
+
* the parse budget that `md.authored` applies prints as literal paragraphs.
|
|
15
|
+
*/
|
|
16
|
+
export declare const gfmToSlackBlocks: (gfm: string) => SlackBlock[];
|
|
17
|
+
//# sourceMappingURL=markdown_content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown_content.d.ts","sourceRoot":"","sources":["../../../src/render/slack/markdown_content.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EAEL,KAAK,UAAU,EAOhB,MAAM,UAAU,CAAC;AA8dlB;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,eAAe,KACvB,UAAU,EAKV,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,UAAU,EAC1B,CAAC"}
|