@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.
- package/dist/dashboard/dashboard.contracts.js +1 -0
- package/dist/dashboard/dashboard.enum.js +1 -0
- package/dist/dashboard/dashboard.schema.js +1 -0
- package/dist/dashboard/index.js +1 -0
- package/dist/feature.js +1 -1
- package/dist/index.js +1 -1
- package/dist/query/index.js +1 -0
- package/dist/query/query.contracts.js +1 -0
- package/dist/query/query.enum.js +1 -0
- package/dist/query/query.schema.js +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -11
- package/dist/contracts/index.js +0 -1
- package/dist/entities/index.js +0 -1
- package/dist/events.js +0 -1
- package/dist/handlers/index.js +0 -1
- package/dist/presentations/index.js +0 -1
|
@@ -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{
|
|
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{
|
|
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};
|