@lssm/example.analytics-dashboard 0.0.0-canary-20251215234340 → 0.0.0-canary-20251216023757

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.
@@ -0,0 +1 @@
1
+ import{AddWidgetInputModel as e,CreateDashboardInputModel as t,DashboardModel as n,GetDashboardInputModel as r,ListDashboardsInputModel as i,ListDashboardsOutputModel as a,WidgetModel as o}from"./dashboard.schema.js";import{defineCommand as s,defineQuery as c}from"@lssm/lib.contracts/spec";const l=[`@example.analytics-dashboard`],u=s({meta:{name:`analytics.dashboard.create`,version:1,stability:`stable`,owners:[...l],tags:[`analytics`,`dashboard`,`create`],description:`Create a new analytics dashboard.`,goal:`Allow users to create custom dashboards.`,context:`Dashboard management.`},io:{input:t,output:n},policy:{auth:`user`},sideEffects:{emits:[{name:`analytics.dashboard.created`,version:1,when:`Dashboard created`,payload:n}],audit:[`analytics.dashboard.created`]}}),d=s({meta:{name:`analytics.widget.add`,version:1,stability:`stable`,owners:[...l],tags:[`analytics`,`widget`,`add`],description:`Add a widget to a dashboard.`,goal:`Allow users to add visualizations.`,context:`Dashboard editor.`},io:{input:e,output:o},policy:{auth:`user`},sideEffects:{emits:[{name:`analytics.widget.added`,version:1,when:`Widget added`,payload:o}]}}),f=c({meta:{name:`analytics.dashboard.list`,version:1,stability:`stable`,owners:[...l],tags:[`analytics`,`dashboard`,`list`],description:`List dashboards.`,goal:`Browse available dashboards.`,context:`Dashboard listing.`},io:{input:i,output:a},policy:{auth:`user`}}),p=c({meta:{name:`analytics.dashboard.get`,version:1,stability:`stable`,owners:[...l],tags:[`analytics`,`dashboard`,`get`],description:`Get a dashboard with widgets.`,goal:`Load dashboard for viewing.`,context:`Dashboard view.`},io:{input:r,output:n},policy:{auth:`anonymous`}});export{d as AddWidgetContract,u as CreateDashboardContract,p as GetDashboardContract,f as ListDashboardsContract};
@@ -0,0 +1 @@
1
+ import{defineEnum as e}from"@lssm/lib.schema";const t=e(`DashboardStatus`,[`DRAFT`,`PUBLISHED`,`ARCHIVED`]),n=e(`WidgetType`,[`LINE_CHART`,`BAR_CHART`,`PIE_CHART`,`AREA_CHART`,`SCATTER_PLOT`,`METRIC`,`TABLE`,`HEATMAP`,`FUNNEL`,`MAP`,`TEXT`,`EMBED`]),r=e(`RefreshInterval`,[`NONE`,`MINUTE`,`FIVE_MINUTES`,`FIFTEEN_MINUTES`,`HOUR`,`DAY`]);export{t as DashboardStatusEnum,r as RefreshIntervalEnum,n as WidgetTypeEnum};
@@ -0,0 +1 @@
1
+ import{DashboardStatusEnum as e,RefreshIntervalEnum as t,WidgetTypeEnum as n}from"./dashboard.enum.js";import{ScalarTypeEnum as r,defineSchemaModel as i}from"@lssm/lib.schema";const a=i({name:`WidgetModel`,fields:{id:{type:r.String_unsecure(),isOptional:!1},dashboardId:{type:r.String_unsecure(),isOptional:!1},name:{type:r.String_unsecure(),isOptional:!1},type:{type:n,isOptional:!1},gridX:{type:r.Int_unsecure(),isOptional:!1},gridY:{type:r.Int_unsecure(),isOptional:!1},gridWidth:{type:r.Int_unsecure(),isOptional:!1},gridHeight:{type:r.Int_unsecure(),isOptional:!1},queryId:{type:r.String_unsecure(),isOptional:!0},config:{type:r.JSON(),isOptional:!0}}}),o=i({name:`DashboardModel`,fields:{id:{type:r.String_unsecure(),isOptional:!1},name:{type:r.String_unsecure(),isOptional:!1},slug:{type:r.String_unsecure(),isOptional:!1},description:{type:r.String_unsecure(),isOptional:!0},status:{type:e,isOptional:!1},refreshInterval:{type:t,isOptional:!1},isPublic:{type:r.Boolean(),isOptional:!1},widgets:{type:a,isArray:!0,isOptional:!0},createdAt:{type:r.DateTime(),isOptional:!1}}}),s=i({name:`CreateDashboardInput`,fields:{name:{type:r.NonEmptyString(),isOptional:!1},slug:{type:r.NonEmptyString(),isOptional:!1},description:{type:r.String_unsecure(),isOptional:!0},refreshInterval:{type:t,isOptional:!0},dateRange:{type:r.JSON(),isOptional:!0}}}),c=i({name:`AddWidgetInput`,fields:{dashboardId:{type:r.String_unsecure(),isOptional:!1},name:{type:r.NonEmptyString(),isOptional:!1},type:{type:n,isOptional:!1},gridX:{type:r.Int_unsecure(),isOptional:!0},gridY:{type:r.Int_unsecure(),isOptional:!0},gridWidth:{type:r.Int_unsecure(),isOptional:!0},gridHeight:{type:r.Int_unsecure(),isOptional:!0},queryId:{type:r.String_unsecure(),isOptional:!0},config:{type:r.JSON(),isOptional:!0}}}),l=i({name:`ListDashboardsInput`,fields:{status:{type:e,isOptional:!0},search:{type:r.String_unsecure(),isOptional:!0},limit:{type:r.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:r.Int_unsecure(),isOptional:!0,defaultValue:0}}}),u=i({name:`ListDashboardsOutput`,fields:{dashboards:{type:o,isArray:!0,isOptional:!1},total:{type:r.Int_unsecure(),isOptional:!1}}}),d=i({name:`GetDashboardInput`,fields:{dashboardId:{type:r.String_unsecure(),isOptional:!0},slug:{type:r.String_unsecure(),isOptional:!0},shareToken:{type:r.String_unsecure(),isOptional:!0}}});export{c as AddWidgetInputModel,s as CreateDashboardInputModel,o as DashboardModel,d as GetDashboardInputModel,l as ListDashboardsInputModel,u as ListDashboardsOutputModel,a as WidgetModel};
@@ -0,0 +1 @@
1
+ import{DashboardStatusEnum as e,RefreshIntervalEnum as t,WidgetTypeEnum as n}from"./dashboard.enum.js";import{AddWidgetInputModel as r,CreateDashboardInputModel as i,DashboardModel as a,GetDashboardInputModel as o,ListDashboardsInputModel as s,ListDashboardsOutputModel as c,WidgetModel as l}from"./dashboard.schema.js";import{AddWidgetContract as u,CreateDashboardContract as d,GetDashboardContract as f,ListDashboardsContract as p}from"./dashboard.contracts.js";export{u as AddWidgetContract,r as AddWidgetInputModel,d as CreateDashboardContract,i as CreateDashboardInputModel,a as DashboardModel,e as DashboardStatusEnum,f as GetDashboardContract,o as GetDashboardInputModel,p as ListDashboardsContract,s as ListDashboardsInputModel,c as ListDashboardsOutputModel,t as RefreshIntervalEnum,l as WidgetModel,n as WidgetTypeEnum};
package/dist/feature.js CHANGED
@@ -1 +1 @@
1
- import{DashboardCreatedEvent as e,DashboardPublishedEvent as t,DashboardViewedEvent as n,QueryCreatedEvent as r,QueryExecutedEvent as i,ReportGeneratedEvent as a,WidgetAddedEvent as o}from"./events.js";import{analyticsDashboardSchemaContribution as s}from"./entities/index.js";import{AddWidgetContract as c,CreateDashboardContract as l,CreateQueryContract as u,ExecuteQueryContract as d,GetDashboardContract as f,ListDashboardsContract as p}from"./contracts/index.js";import{AnalyticsDashboardPresentations as m}from"./presentations/index.js";const h={name:`@lssm/example.analytics-dashboard`,version:`1.0.0`,description:`Analytics dashboards with customizable widgets and queries`,dependencies:[`@lssm/lib.schema`,`@lssm/lib.contracts`,`@lssm/lib.identity-rbac`,`@lssm/lib.metering`,`@lssm/module.audit-trail`,`@lssm/module.notifications`],schema:s,contracts:{createDashboard:l,addWidget:c,getDashboard:f,listDashboards:p,createQuery:u,executeQuery:d},events:{dashboardCreated:e,dashboardPublished:t,widgetAdded:o,queryCreated:r,queryExecuted:i,dashboardViewed:n,reportGenerated:a},presentations:m,permissions:{"dashboard:view":{description:`View dashboards`,defaultRoles:[`viewer`,`analyst`,`admin`]},"dashboard:create":{description:`Create dashboards`,defaultRoles:[`analyst`,`admin`]},"dashboard:edit":{description:`Edit dashboards`,defaultRoles:[`analyst`,`admin`]},"dashboard:delete":{description:`Delete dashboards`,defaultRoles:[`admin`]},"dashboard:share":{description:`Share dashboards externally`,defaultRoles:[`analyst`,`admin`]},"query:create":{description:`Create queries`,defaultRoles:[`analyst`,`admin`]},"query:execute":{description:`Execute queries`,defaultRoles:[`viewer`,`analyst`,`admin`]},"report:schedule":{description:`Schedule automated reports`,defaultRoles:[`analyst`,`admin`]}},featureFlags:{ANALYTICS_SQL_QUERIES:{description:`Enable SQL query support`,defaultValue:!1},ANALYTICS_SCHEDULED_REPORTS:{description:`Enable scheduled report generation`,defaultValue:!0},ANALYTICS_PUBLIC_DASHBOARDS:{description:`Allow public dashboard sharing`,defaultValue:!1},ANALYTICS_ADVANCED_WIDGETS:{description:`Enable advanced widget types (maps, funnels)`,defaultValue:!0},ANALYTICS_QUERY_CACHING:{description:`Enable query result caching`,defaultValue:!0}},metrics:{dashboards_created:{name:`Dashboards Created`,unit:`count`,aggregation:`count`},widgets_added:{name:`Widgets Added`,unit:`count`,aggregation:`count`},queries_executed:{name:`Queries Executed`,unit:`count`,aggregation:`count`},query_execution_time:{name:`Query Execution Time`,unit:`milliseconds`,aggregation:`avg`},dashboard_views:{name:`Dashboard Views`,unit:`count`,aggregation:`count`},reports_generated:{name:`Reports Generated`,unit:`count`,aggregation:`count`}},routes:{"/dashboards":{presentation:`analytics.dashboards.list`,permission:`dashboard:view`},"/dashboards/new":{presentation:`analytics.dashboard.editor`,permission:`dashboard:create`},"/dashboards/:slug":{presentation:`analytics.dashboard.view`,permission:`dashboard:view`},"/dashboards/:slug/edit":{presentation:`analytics.dashboard.editor`,permission:`dashboard:edit`},"/queries":{presentation:`analytics.queries.list`,permission:`query:create`},"/queries/builder":{presentation:`analytics.query.builder`,permission:`query:create`}}};export{h as AnalyticsDashboardFeature};
1
+ import{AddWidgetContract as e,CreateDashboardContract as t,GetDashboardContract as n,ListDashboardsContract as r}from"./dashboard/dashboard.contracts.js";import"./dashboard/index.js";import{CreateQueryContract as i,ExecuteQueryContract as a}from"./query/query.contracts.js";import"./query/index.js";const o={name:`@lssm/example.analytics-dashboard`,version:`1.0.0`,description:`Analytics dashboards with customizable widgets and queries`,dependencies:[`@lssm/lib.schema`,`@lssm/lib.contracts`,`@lssm/lib.identity-rbac`,`@lssm/lib.metering`,`@lssm/module.audit-trail`,`@lssm/module.notifications`],contracts:{createDashboard:t,addWidget:e,getDashboard:n,listDashboards:r,createQuery:i,executeQuery:a},permissions:{"dashboard:view":{description:`View dashboards`,defaultRoles:[`viewer`,`analyst`,`admin`]},"dashboard:create":{description:`Create dashboards`,defaultRoles:[`analyst`,`admin`]},"dashboard:edit":{description:`Edit dashboards`,defaultRoles:[`analyst`,`admin`]},"dashboard:delete":{description:`Delete dashboards`,defaultRoles:[`admin`]},"dashboard:share":{description:`Share dashboards externally`,defaultRoles:[`analyst`,`admin`]},"query:create":{description:`Create queries`,defaultRoles:[`analyst`,`admin`]},"query:execute":{description:`Execute queries`,defaultRoles:[`viewer`,`analyst`,`admin`]},"report:schedule":{description:`Schedule automated reports`,defaultRoles:[`analyst`,`admin`]}},featureFlags:{ANALYTICS_SQL_QUERIES:{description:`Enable SQL query support`,defaultValue:!1},ANALYTICS_SCHEDULED_REPORTS:{description:`Enable scheduled report generation`,defaultValue:!0},ANALYTICS_PUBLIC_DASHBOARDS:{description:`Allow public dashboard sharing`,defaultValue:!1},ANALYTICS_ADVANCED_WIDGETS:{description:`Enable advanced widget types (maps, funnels)`,defaultValue:!0},ANALYTICS_QUERY_CACHING:{description:`Enable query result caching`,defaultValue:!0}},metrics:{dashboards_created:{name:`Dashboards Created`,unit:`count`,aggregation:`count`},widgets_added:{name:`Widgets Added`,unit:`count`,aggregation:`count`},queries_executed:{name:`Queries Executed`,unit:`count`,aggregation:`count`},query_execution_time:{name:`Query Execution Time`,unit:`milliseconds`,aggregation:`avg`},dashboard_views:{name:`Dashboard Views`,unit:`count`,aggregation:`count`},reports_generated:{name:`Reports Generated`,unit:`count`,aggregation:`count`}},routes:{"/dashboards":{presentation:`analytics.dashboards.list`,permission:`dashboard:view`},"/dashboards/new":{presentation:`analytics.dashboard.editor`,permission:`dashboard:create`},"/dashboards/:slug":{presentation:`analytics.dashboard.view`,permission:`dashboard:view`},"/dashboards/:slug/edit":{presentation:`analytics.dashboard.editor`,permission:`dashboard:edit`},"/queries":{presentation:`analytics.queries.list`,permission:`query:create`},"/queries/builder":{presentation:`analytics.query.builder`,permission:`query:create`}}};export{o as AnalyticsDashboardFeature};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{AnalyticsDashboardEvents as e,DashboardCreatedEvent as t,DashboardPublishedEvent as n,DashboardViewedEvent as r,QueryCreatedEvent as i,QueryExecutedEvent as a,ReportGeneratedEvent as o,WidgetAddedEvent as s}from"./events.js";import c from"./example.js";import{ChartTypeEnum as l,DashboardEntity as u,DashboardStatusEnum as d,QueryEntity as f,QueryTypeEnum as p,ReportEntity as m,ReportFormatEnum as h,ReportRunEntity as g,SavedFilterEntity as _,TimeRangeEnum as v,WidgetEntity as y,WidgetTypeEnum as b,analyticsDashboardSchemaContribution as x}from"./entities/index.js";import{AddWidgetContract as S,CreateDashboardContract as C,CreateQueryContract as w,ExecuteQueryContract as T,GetDashboardContract as E,ListDashboardsContract as D}from"./contracts/index.js";import{AnalyticsDashboardPresentations as O}from"./presentations/index.js";import{AnalyticsDashboardFeature as k}from"./feature.js";import{BasicQueryEngine as A,InMemoryQueryCache as j,createQueryEngine as M}from"./query-engine/index.js";import{handleAddWidget as N,handleCreateDashboard as P,handleCreateQuery as F,handleGetDashboard as I,handleListDashboards as L}from"./handlers/index.js";import"./docs/index.js";export{S as AddWidgetContract,e as AnalyticsDashboardEvents,k as AnalyticsDashboardFeature,O as AnalyticsDashboardPresentations,A as BasicQueryEngine,l as ChartTypeEnum,C as CreateDashboardContract,w as CreateQueryContract,t as DashboardCreatedEvent,u as DashboardEntity,n as DashboardPublishedEvent,d as DashboardStatusEnum,r as DashboardViewedEvent,T as ExecuteQueryContract,E as GetDashboardContract,j as InMemoryQueryCache,D as ListDashboardsContract,i as QueryCreatedEvent,f as QueryEntity,a as QueryExecutedEvent,p as QueryTypeEnum,m as ReportEntity,h as ReportFormatEnum,o as ReportGeneratedEvent,g as ReportRunEntity,_ as SavedFilterEntity,v as TimeRangeEnum,s as WidgetAddedEvent,y as WidgetEntity,b as WidgetTypeEnum,x as analyticsDashboardSchemaContribution,M as createQueryEngine,c as example,N as handleAddWidget,P as handleCreateDashboard,F as handleCreateQuery,I as handleGetDashboard,L as handleListDashboards};
1
+ import{DashboardStatusEnum as e,RefreshIntervalEnum as t,WidgetTypeEnum as n}from"./dashboard/dashboard.enum.js";import{AddWidgetInputModel as r,CreateDashboardInputModel as i,DashboardModel as a,GetDashboardInputModel as o,ListDashboardsInputModel as s,ListDashboardsOutputModel as c,WidgetModel as l}from"./dashboard/dashboard.schema.js";import{AddWidgetContract as u,CreateDashboardContract as d,GetDashboardContract as f,ListDashboardsContract as p}from"./dashboard/dashboard.contracts.js";import"./dashboard/index.js";import{QueryTypeEnum as m}from"./query/query.enum.js";import{CreateQueryInputModel as h,ExecuteQueryInputModel as g,QueryModel as _,QueryResultModel as v}from"./query/query.schema.js";import{CreateQueryContract as y,ExecuteQueryContract as b}from"./query/query.contracts.js";import"./query/index.js";import{BasicQueryEngine as x,InMemoryQueryCache as S,createQueryEngine as C}from"./query-engine/index.js";export{u as AddWidgetContract,r as AddWidgetInputModel,x as BasicQueryEngine,d as CreateDashboardContract,i as CreateDashboardInputModel,y as CreateQueryContract,h as CreateQueryInputModel,a as DashboardModel,e as DashboardStatusEnum,b as ExecuteQueryContract,g as ExecuteQueryInputModel,f as GetDashboardContract,o as GetDashboardInputModel,S as InMemoryQueryCache,p as ListDashboardsContract,s as ListDashboardsInputModel,c as ListDashboardsOutputModel,_ as QueryModel,v as QueryResultModel,m as QueryTypeEnum,t as RefreshIntervalEnum,l as WidgetModel,n as WidgetTypeEnum,C as createQueryEngine};
@@ -0,0 +1 @@
1
+ import{QueryTypeEnum as e}from"./query.enum.js";import{CreateQueryInputModel as t,ExecuteQueryInputModel as n,QueryModel as r,QueryResultModel as i}from"./query.schema.js";import{CreateQueryContract as a,ExecuteQueryContract as o}from"./query.contracts.js";export{a as CreateQueryContract,t as CreateQueryInputModel,o as ExecuteQueryContract,n as ExecuteQueryInputModel,r as QueryModel,i as QueryResultModel,e as QueryTypeEnum};
@@ -0,0 +1 @@
1
+ import{CreateQueryInputModel as e,ExecuteQueryInputModel as t,QueryModel as n,QueryResultModel as r}from"./query.schema.js";import{defineCommand as i,defineQuery as a}from"@lssm/lib.contracts/spec";const o=[`@example.analytics-dashboard`],s=i({meta:{name:`analytics.query.create`,version:1,stability:`stable`,owners:[...o],tags:[`analytics`,`query`,`create`],description:`Create a data query.`,goal:`Define reusable data queries.`,context:`Query builder.`},io:{input:e,output:n},policy:{auth:`user`},sideEffects:{emits:[{name:`analytics.query.created`,version:1,when:`Query created`,payload:n}],audit:[`analytics.query.created`]}}),c=a({meta:{name:`analytics.query.execute`,version:1,stability:`stable`,owners:[...o],tags:[`analytics`,`query`,`execute`],description:`Execute a data query.`,goal:`Fetch data for visualizations.`,context:`Dashboard rendering.`},io:{input:t,output:r},policy:{auth:`user`}});export{s as CreateQueryContract,c as ExecuteQueryContract};
@@ -0,0 +1 @@
1
+ import{defineEnum as e}from"@lssm/lib.schema";const t=e(`QueryType`,[`SQL`,`METRIC`,`AGGREGATION`,`CUSTOM`]);export{t as QueryTypeEnum};
@@ -0,0 +1 @@
1
+ import{QueryTypeEnum as e}from"./query.enum.js";import{ScalarTypeEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";const r=n({name:`QueryModel`,fields:{id:{type:t.String_unsecure(),isOptional:!1},name:{type:t.String_unsecure(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},type:{type:e,isOptional:!1},definition:{type:t.JSON(),isOptional:!1},sql:{type:t.String_unsecure(),isOptional:!0},cacheTtlSeconds:{type:t.Int_unsecure(),isOptional:!1},isShared:{type:t.Boolean(),isOptional:!1},createdAt:{type:t.DateTime(),isOptional:!1}}}),i=n({name:`QueryResultModel`,fields:{queryId:{type:t.String_unsecure(),isOptional:!1},data:{type:t.JSON(),isOptional:!1},columns:{type:t.JSON(),isOptional:!1},rowCount:{type:t.Int_unsecure(),isOptional:!1},executionTimeMs:{type:t.Int_unsecure(),isOptional:!1},cachedAt:{type:t.DateTime(),isOptional:!0},error:{type:t.String_unsecure(),isOptional:!0}}}),a=n({name:`CreateQueryInput`,fields:{name:{type:t.NonEmptyString(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},type:{type:e,isOptional:!1},definition:{type:t.JSON(),isOptional:!1},sql:{type:t.String_unsecure(),isOptional:!0},metricIds:{type:t.String_unsecure(),isArray:!0,isOptional:!0},cacheTtlSeconds:{type:t.Int_unsecure(),isOptional:!0},isShared:{type:t.Boolean(),isOptional:!0}}}),o=n({name:`ExecuteQueryInput`,fields:{queryId:{type:t.String_unsecure(),isOptional:!1},parameters:{type:t.JSON(),isOptional:!0},dateRange:{type:t.JSON(),isOptional:!0},filters:{type:t.JSON(),isOptional:!0},forceRefresh:{type:t.Boolean(),isOptional:!0}}});export{a as CreateQueryInputModel,o as ExecuteQueryInputModel,r as QueryModel,i as QueryResultModel};