react-semaphor 0.1.326 → 0.1.327
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +1 -1
- package/dist/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +4 -4
- package/dist/chunks/{braces-dHeaioTd.js → braces-B6qRDu1H.js} +1 -1
- package/dist/chunks/{braces-DVaMJoCd.js → braces-BGWZEnQJ.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog--2jD-eKu.js → calendar-preferences-dialog-CjwbE_82.js} +3 -3
- package/dist/chunks/{calendar-preferences-dialog-mqU_uOmY.js → calendar-preferences-dialog-fkLUMJyR.js} +1 -1
- package/dist/chunks/{chevrons-up-down-CLbzBHoI.js → chevrons-up-down-BpsogQvv.js} +1 -1
- package/dist/chunks/{chevrons-up-down-DNQE-uEp.js → chevrons-up-down-xG-bVFD9.js} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-DguNfFr8.js → dashboard-briefing-launcher-Co57xBfS.js} +2 -2
- package/dist/chunks/{dashboard-briefing-launcher-DsjXUPFq.js → dashboard-briefing-launcher-Cy1nWZRW.js} +713 -719
- package/dist/chunks/{dashboard-controls-DgNkM1yT.js → dashboard-controls-BWnVEFJq.js} +7 -7
- package/dist/chunks/{dashboard-controls-XCa9PZuU.js → dashboard-controls-C7rOGZO-.js} +1 -1
- package/dist/chunks/{dashboard-json-DkA6Bf0Y.js → dashboard-json-BpRNSsF3.js} +2 -2
- package/dist/chunks/{dashboard-json-DiBd65Xf.js → dashboard-json-DBPMknGo.js} +1 -1
- package/dist/chunks/date-formatter-B4EBSe9C.js +1 -0
- package/dist/chunks/date-formatter-CzcPZx39.js +416 -0
- package/dist/chunks/edit-dashboard-visual-B2vkIKEa.js +178 -0
- package/dist/chunks/{edit-dashboard-visual-Q5hW5MXk.js → edit-dashboard-visual-CYf26co_.js} +8241 -7784
- package/dist/chunks/{index-B1-46PoR.js → index-BD90s-wf.js} +208 -202
- package/dist/chunks/{index-DwfDwtv2.js → index-DTlbYpxd.js} +26702 -26334
- package/dist/chunks/{palette-DtmNws9a.js → palette-CSF7IVJn.js} +1 -1
- package/dist/chunks/{palette-DpcvHAiY.js → palette-CWgEPBoG.js} +1 -1
- package/dist/chunks/{resource-management-panel-CGwWKZOP.js → resource-management-panel-D6nbfJY3.js} +1 -1
- package/dist/chunks/{resource-management-panel-D2oAQkKi.js → resource-management-panel-D893Onv8.js} +3 -3
- package/dist/chunks/{save-Cv_XRb94.js → save-CtQbSub2.js} +1 -1
- package/dist/chunks/{save-BY7WF62U.js → save-DRdFKF57.js} +1 -1
- package/dist/chunks/switch-DJJJD_g1.js +168 -0
- package/dist/chunks/{switch-j3AThLFk.js → switch-DKf6vHfP.js} +2447 -2405
- package/dist/chunks/{use-create-flow-overlay-state-BQPXP0AM.js → use-create-flow-overlay-state-C4LgoK8q.js} +1 -1
- package/dist/chunks/{use-create-flow-overlay-state-CP6GDQAX.js → use-create-flow-overlay-state-p21zs2p6.js} +4 -4
- package/dist/chunks/{use-visual-utils-CSXU-96k.js → use-visual-utils-BKBua6o4.js} +2 -2
- package/dist/chunks/{use-visual-utils-NpOW5uZ1.js → use-visual-utils-BqWm0QeW.js} +1 -1
- package/dist/chunks/{validators-DvTxl9i0.js → validators-DDAweCzB.js} +67 -48
- package/dist/chunks/validators-odlRJblR.js +2 -0
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard-authoring/index.cjs +3 -3
- package/dist/dashboard-authoring/index.js +907 -527
- package/dist/data-app-sdk/index.cjs +1 -1
- package/dist/data-app-sdk/index.js +1 -1
- package/dist/format-utils/index.cjs +4 -4
- package/dist/format-utils/index.js +22 -21
- package/dist/index.cjs +1 -1
- package/dist/index.js +7 -7
- package/dist/style.css +1 -1
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/analytics-protocol.d.ts +1 -0
- package/dist/types/dashboard-authoring.d.ts +79 -2
- package/dist/types/dashboard.d.ts +17 -2
- package/dist/types/data-app-sdk.d.ts +1 -0
- package/dist/types/format-utils.d.ts +25 -0
- package/dist/types/main.d.ts +65 -10
- package/dist/types/shared.d.ts +17 -2
- package/dist/types/surfboard.d.ts +17 -2
- package/dist/types/types.d.ts +32 -3
- package/package.json +1 -1
- package/dist/chunks/date-formatter-D9Bvw5Qk.js +0 -1
- package/dist/chunks/date-formatter-DyIOb6uC.js +0 -333
- package/dist/chunks/edit-dashboard-visual-BC9eOc4U.js +0 -178
- package/dist/chunks/switch-5aQ_jcLH.js +0 -168
- package/dist/chunks/validators-DJUMR5An.js +0 -2
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";function s(e,i,n){return n?{code:e,message:i,path:n}:{code:e,message:i}}function p(e){const i=new Set;for(const n of e){if(i.has(n))return n;i.add(n)}return null}function t(e){return typeof e=="string"&&e.trim().length>0}function f(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function h(e,i,n,r={}){if(!e||typeof e!="object"){n.push(s("missing_source","Analytics intent needs a source.",i));return}if(e.kind==="semantic"){t(e.domainId)||n.push(s("missing_semantic_domain","Semantic source needs a domainId.",`${i}.domainId`)),t(e.datasetName)||n.push(s("missing_dataset_name","Semantic source needs a datasetName.",`${i}.datasetName`));return}if(e.kind==="physical"){t(e.connectionId)||n.push(s("missing_connection_id","Physical source needs a connectionId.",`${i}.connectionId`)),t(e.tableName)||n.push(s("missing_table_name","Physical source needs a tableName.",`${i}.tableName`));return}if(e.kind==="sql"){t(e.connectionId)||n.push(s("missing_connection_id","SQL source needs a connectionId.",`${i}.connectionId`)),r.requireSqlText!==!1&&!t(e.sql)&&n.push(s("missing_sql","SQL source needs SQL text.",`${i}.sql`));return}n.push(s("invalid_source_kind","Source kind is not supported.",i))}function y(e){var r,u,o,m;const i=[],n=[];return!e||typeof e!="object"?{ok:!1,errors:[s("invalid_analytics_intent","Analytics intent must be a structured object.")],warnings:n,repairHints:[{code:"invalid_analytics_intent",recommendedNextStep:"Send one structured analytics intent object with kind, source, and required fields."}]}:(e.version!==void 0&&e.version!==1&&i.push(s("invalid_version","Analytics intent version must be 1.","version")),h(e.source,"source",i,{requireSqlText:e.kind!=="sql"||!t(e.sql)}),e.kind==="metric"?(t(e.metric)||i.push(s("missing_metric","Metric intent needs a metric.","metric")),e.metrics!==void 0&&!Array.isArray(e.metrics)?i.push(s("invalid_metric_list","Metric intent metrics must be an array of metric names.","metrics")):Array.isArray(e.metrics)&&e.metrics.some(c=>!t(c))&&i.push(s("invalid_metric_list","Metric intent metrics must be an array of non-empty metric names.","metrics")),e.dimensions!==void 0&&!Array.isArray(e.dimensions)?i.push(s("invalid_metric_dimensions","Metric intent dimensions must be an array of field references.","dimensions")):Array.isArray(e.dimensions)&&e.dimensions.some(c=>!f(c)||!t(c.name))&&i.push(s("invalid_metric_dimensions","Metric intent dimensions must be an array of field references with names.","dimensions"))):e.kind==="records"?!Array.isArray(e.fields)||e.fields.length===0?i.push(s("missing_record_fields","Records intent needs at least one field.","fields")):e.fields.some(c=>!f(c)||!t(c.name))&&i.push(s("invalid_record_fields","Records intent fields must be field references with names.","fields")):e.kind==="inputOptions"?(!e.field||!t(e.field.name))&&i.push(s("missing_input_options_field","Input options intent needs a field.","field")):e.kind==="sql"?(((r=e.source)==null?void 0:r.kind)!=="sql"&&((u=e.source)==null?void 0:u.kind)!=="physical"&&i.push(s("invalid_sql_source","SQL analytics intent must use a SQL or physical source.","source")),t(e.sql)&&((o=e.source)==null?void 0:o.kind)==="sql"&&t(e.source.sql)&&_(e.sql)!==_(e.source.sql)&&i.push(s("conflicting_sql","SQL analytics intent cannot define different SQL text in source.sql and sql.","sql")),!t(e.sql)&&!(((m=e.source)==null?void 0:m.kind)==="sql"&&t(e.source.sql))&&i.push(s("missing_sql","SQL analytics intent needs SQL text.","sql"))):i.push(s("invalid_analytics_kind","Analytics kind is not supported.","kind")),{ok:i.length===0,errors:i,warnings:n,repairHints:g(i)})}function _(e){return e.replace(/\r\n/g,`
|
|
2
|
-
`).trim()}function g(e){return e.map(i=>{switch(i.code){case"missing_source":return{code:i.code,fieldRole:"source",recommendedNextStep:"Provide a semantic, physical, or SQL source before executing analytics."};case"missing_metric":return{code:i.code,fieldRole:"metric",recommendedNextStep:"Choose one exact metric from the grounded schema candidates."};case"missing_record_fields":return{code:i.code,fieldRole:"dimension",recommendedNextStep:"Provide at least one field for the records intent."};case"missing_input_options_field":return{code:i.code,fieldRole:"input",recommendedNextStep:"Provide the exact field whose option values should be listed."};case"missing_sql":return{code:i.code,fieldRole:"sql",recommendedNextStep:"Provide bounded read-only SQL with an explicit outer LIMIT."};case"conflicting_sql":return{code:i.code,fieldRole:"sql",recommendedNextStep:"Use one canonical SQL text location for the intent; prefer top-level sql."};case"missing_semantic_domain":case"missing_dataset_name":case"missing_connection_id":case"missing_table_name":return{code:i.code,fieldRole:"source",recommendedNextStep:"Use grounded catalog metadata to fill the missing source reference."};default:return}}).filter(i=>!!i)}function q(e,i,n,r){if(!e||typeof e!="object"){n.push(s("invalid_view","Dashboard view must be an object.",i));return}if(t(e.title)||n.push(s("missing_view_title","Dashboard view needs a title.",i)),!e.presentation||typeof e.presentation!="object"){n.push(s("missing_presentation","Dashboard view needs a presentation.",`${i}.presentation`));return}if(e.presentation.kind==="text"){t(e.text)||r.push(s("missing_text_content","Text views should include text content.",`${i}.text`));return}if(!e.analytics){n.push(s("missing_view_analytics","Non-text dashboard views need analytics intent.",`${i}.analytics`));return}const u=y(e.analytics);for(const o of u.errors)n.push(s(o.code,o.message,`${i}.analytics${o.path?`.${o.path}`:""}`));for(const o of u.warnings)r.push(s(o.code,o.message,`${i}.analytics${o.path?`.${o.path}`:""}`))}function S(e){const i=[],n=[];if(!e||typeof e!="object")return{ok:!1,errors:[s("invalid_dashboard_intent","Dashboard intent must be a structured object.")],warnings:n};e.version!==1&&i.push(s("invalid_version","Dashboard intent version must be 1.")),e.kind!=="dashboard"&&i.push(s("invalid_kind","Experience intent kind must be dashboard.")),t(e.title)||i.push(s("missing_title","Dashboard intent needs a title.","title"));const r=Array.isArray(e.inputs)?e.inputs:[],u=p(r.filter(f).map(d=>d.id).filter(d=>typeof d=="string"));u&&i.push(s("duplicate_input_id",`Duplicate input id: ${u}.`,"inputs"));for(const[d,a]of r.entries()){const l=`inputs.${d}`;if(!f(a)){i.push(s("invalid_input","Dashboard input must be an object.",l));continue}t(a.id)||i.push(s("missing_input_id","Input needs an id.",`${l}.id`)),t(a.label)||i.push(s("missing_input_label","Input needs a label.",`${l}.label`)),(!a.field||!t(a.field.name))&&i.push(s("missing_input_field","Input needs a field.",`${l}.field`)),a.source&&h(a.source,`${l}.source`,i)}const o=Array.isArray(e.sections)?e.sections:[];o.length===0&&i.push(s("missing_sections","Dashboard intent needs at least one section.","sections"));const m=o.flatMap(d=>d&&typeof d=="object"&&Array.isArray(d.views)?d.views.filter(f).map(a=>a.id).filter(a=>!!a):[]),c=p(m);c&&i.push(s("duplicate_view_id",`Duplicate dashboard view id: ${c}.`,"sections"));for(const[d,a]of o.entries()){const l=`sections.${d}`;if(!a||typeof a!="object"){i.push(s("invalid_section","Dashboard section must be an object.",l));continue}if(t(a.title)||i.push(s("missing_section_title","Dashboard section needs a title.",l)),!Array.isArray(a.views)||a.views.length===0){i.push(s("missing_section_views","Dashboard section needs at least one view.",`${l}.views`));continue}for(const[b,v]of a.views.entries())q(v,`${l}.views.${b}`,i,n)}return{ok:i.length===0,errors:i,warnings:n}}exports.validateSemaphorAnalyticsIntent=y;exports.validateSemaphorDashboardIntent=S;
|