@panoboard/core 1.11.7 → 1.12.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.
Files changed (145) hide show
  1. package/dist/components/PanelWrapper.js +50 -5
  2. package/dist/components/PanelWrapper.js.map +1 -1
  3. package/dist/components/panels/TablePanel.d.ts +7 -1
  4. package/dist/components/panels/TablePanel.d.ts.map +1 -1
  5. package/dist/components/panels/TablePanel.js +38 -23
  6. package/dist/components/panels/TablePanel.js.map +1 -1
  7. package/dist/index.d.ts +1 -4
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +0 -8
  10. package/dist/index.js.map +1 -1
  11. package/dist/schemas/dashboard.d.ts +1 -0
  12. package/dist/schemas/dashboard.d.ts.map +1 -1
  13. package/dist/schemas/datasource.d.ts +118 -0
  14. package/dist/schemas/datasource.d.ts.map +1 -1
  15. package/dist/schemas/datasource.js +46 -0
  16. package/dist/schemas/datasource.js.map +1 -1
  17. package/dist/transforms/computed.d.ts +1 -1
  18. package/dist/transforms/computed.d.ts.map +1 -1
  19. package/dist/transforms/engine.d.ts +1 -1
  20. package/dist/transforms/engine.d.ts.map +1 -1
  21. package/dist/transforms/filter.d.ts +1 -1
  22. package/dist/transforms/filter.d.ts.map +1 -1
  23. package/dist/transforms/limit.d.ts +1 -1
  24. package/dist/transforms/limit.d.ts.map +1 -1
  25. package/dist/transforms/percentage.d.ts +1 -1
  26. package/dist/transforms/percentage.d.ts.map +1 -1
  27. package/dist/transforms/rename.d.ts +1 -1
  28. package/dist/transforms/rename.d.ts.map +1 -1
  29. package/dist/transforms/sort.d.ts +1 -1
  30. package/dist/transforms/sort.d.ts.map +1 -1
  31. package/dist/{connectors/types.d.ts → types/connector-types.d.ts} +8 -2
  32. package/dist/types/connector-types.d.ts.map +1 -0
  33. package/dist/{query/strategy/types.js → types/connector-types.js} +1 -1
  34. package/dist/types/connector-types.js.map +1 -0
  35. package/package.json +2 -39
  36. package/dist/annotations/executor.d.ts +0 -32
  37. package/dist/annotations/executor.d.ts.map +0 -1
  38. package/dist/annotations/executor.js +0 -87
  39. package/dist/annotations/executor.js.map +0 -1
  40. package/dist/annotations/index.d.ts +0 -2
  41. package/dist/annotations/index.d.ts.map +0 -1
  42. package/dist/annotations/index.js +0 -15
  43. package/dist/annotations/index.js.map +0 -1
  44. package/dist/cache/cache.d.ts +0 -11
  45. package/dist/cache/cache.d.ts.map +0 -1
  46. package/dist/cache/cache.js +0 -42
  47. package/dist/cache/cache.js.map +0 -1
  48. package/dist/cache/client.d.ts +0 -9
  49. package/dist/cache/client.d.ts.map +0 -1
  50. package/dist/cache/client.js +0 -63
  51. package/dist/cache/client.js.map +0 -1
  52. package/dist/cache/index.d.ts +0 -4
  53. package/dist/cache/index.d.ts.map +0 -1
  54. package/dist/cache/index.js +0 -17
  55. package/dist/cache/index.js.map +0 -1
  56. package/dist/cache/keys.d.ts +0 -2
  57. package/dist/cache/keys.d.ts.map +0 -1
  58. package/dist/cache/keys.js +0 -26
  59. package/dist/cache/keys.js.map +0 -1
  60. package/dist/connectors/bigquery.d.ts +0 -26
  61. package/dist/connectors/bigquery.d.ts.map +0 -1
  62. package/dist/connectors/bigquery.js +0 -118
  63. package/dist/connectors/bigquery.js.map +0 -1
  64. package/dist/connectors/index.d.ts +0 -17
  65. package/dist/connectors/index.d.ts.map +0 -1
  66. package/dist/connectors/index.js +0 -23
  67. package/dist/connectors/index.js.map +0 -1
  68. package/dist/connectors/params.d.ts +0 -15
  69. package/dist/connectors/params.d.ts.map +0 -1
  70. package/dist/connectors/params.js +0 -46
  71. package/dist/connectors/params.js.map +0 -1
  72. package/dist/connectors/postgres.d.ts +0 -29
  73. package/dist/connectors/postgres.d.ts.map +0 -1
  74. package/dist/connectors/postgres.js +0 -133
  75. package/dist/connectors/postgres.js.map +0 -1
  76. package/dist/connectors/redshift-data.d.ts +0 -25
  77. package/dist/connectors/redshift-data.d.ts.map +0 -1
  78. package/dist/connectors/redshift-data.js +0 -237
  79. package/dist/connectors/redshift-data.js.map +0 -1
  80. package/dist/connectors/redshift.d.ts +0 -29
  81. package/dist/connectors/redshift.d.ts.map +0 -1
  82. package/dist/connectors/redshift.js +0 -141
  83. package/dist/connectors/redshift.js.map +0 -1
  84. package/dist/connectors/registry.d.ts +0 -7
  85. package/dist/connectors/registry.d.ts.map +0 -1
  86. package/dist/connectors/registry.js +0 -30
  87. package/dist/connectors/registry.js.map +0 -1
  88. package/dist/connectors/snowflake.d.ts +0 -37
  89. package/dist/connectors/snowflake.d.ts.map +0 -1
  90. package/dist/connectors/snowflake.js +0 -181
  91. package/dist/connectors/snowflake.js.map +0 -1
  92. package/dist/connectors/types.d.ts.map +0 -1
  93. package/dist/connectors/types.js +0 -15
  94. package/dist/connectors/types.js.map +0 -1
  95. package/dist/connectors/url-parsers.d.ts +0 -13
  96. package/dist/connectors/url-parsers.d.ts.map +0 -1
  97. package/dist/connectors/url-parsers.js +0 -95
  98. package/dist/connectors/url-parsers.js.map +0 -1
  99. package/dist/connectors/url.d.ts +0 -36
  100. package/dist/connectors/url.d.ts.map +0 -1
  101. package/dist/connectors/url.js +0 -139
  102. package/dist/connectors/url.js.map +0 -1
  103. package/dist/query/array-expansion.d.ts +0 -5
  104. package/dist/query/array-expansion.d.ts.map +0 -1
  105. package/dist/query/array-expansion.js +0 -39
  106. package/dist/query/array-expansion.js.map +0 -1
  107. package/dist/query/index.d.ts +0 -8
  108. package/dist/query/index.d.ts.map +0 -1
  109. package/dist/query/index.js +0 -20
  110. package/dist/query/index.js.map +0 -1
  111. package/dist/query/pipeline.d.ts +0 -27
  112. package/dist/query/pipeline.d.ts.map +0 -1
  113. package/dist/query/pipeline.js +0 -49
  114. package/dist/query/pipeline.js.map +0 -1
  115. package/dist/query/strategy/http.d.ts +0 -7
  116. package/dist/query/strategy/http.d.ts.map +0 -1
  117. package/dist/query/strategy/http.js +0 -26
  118. package/dist/query/strategy/http.js.map +0 -1
  119. package/dist/query/strategy/index.d.ts +0 -4
  120. package/dist/query/strategy/index.d.ts.map +0 -1
  121. package/dist/query/strategy/index.js +0 -32
  122. package/dist/query/strategy/index.js.map +0 -1
  123. package/dist/query/strategy/sql.d.ts +0 -7
  124. package/dist/query/strategy/sql.d.ts.map +0 -1
  125. package/dist/query/strategy/sql.js +0 -40
  126. package/dist/query/strategy/sql.js.map +0 -1
  127. package/dist/query/strategy/types.d.ts +0 -6
  128. package/dist/query/strategy/types.d.ts.map +0 -1
  129. package/dist/query/strategy/types.js.map +0 -1
  130. package/dist/query/template.d.ts +0 -7
  131. package/dist/query/template.d.ts.map +0 -1
  132. package/dist/query/template.js +0 -43
  133. package/dist/query/template.js.map +0 -1
  134. package/dist/startup/index.d.ts +0 -5
  135. package/dist/startup/index.d.ts.map +0 -1
  136. package/dist/startup/index.js +0 -16
  137. package/dist/startup/index.js.map +0 -1
  138. package/dist/startup/sentinel-check.d.ts +0 -12
  139. package/dist/startup/sentinel-check.d.ts.map +0 -1
  140. package/dist/startup/sentinel-check.js +0 -142
  141. package/dist/startup/sentinel-check.js.map +0 -1
  142. package/dist/startup/sql-lint.d.ts +0 -13
  143. package/dist/startup/sql-lint.d.ts.map +0 -1
  144. package/dist/startup/sql-lint.js +0 -87
  145. package/dist/startup/sql-lint.js.map +0 -1
@@ -41,6 +41,16 @@ const roleAuthSchema = z.object({
41
41
  type: z.literal("role"),
42
42
  role_arn: z.string().optional(),
43
43
  });
44
+ const mysqlPasswordAuthSchema = z.object({
45
+ type: z.literal("password"),
46
+ user: z.string(),
47
+ password: z.string(),
48
+ });
49
+ const mysqlIamAuthSchema = z.object({
50
+ type: z.literal("iam"),
51
+ username: z.string(),
52
+ region: z.string(),
53
+ });
44
54
  // ---------------------------------------------------------------------------
45
55
  // SSL type shared by postgres / redshift
46
56
  // ---------------------------------------------------------------------------
@@ -126,6 +136,17 @@ const urlDatasourceSchema = z.object({
126
136
  auth: urlAuthSchema.optional(),
127
137
  });
128
138
  // ---------------------------------------------------------------------------
139
+ // Prometheus datasource
140
+ // ---------------------------------------------------------------------------
141
+ const prometheusDatasourceSchema = z.object({
142
+ id: z.string(),
143
+ type: z.literal("prometheus"),
144
+ base_url: z.string().url(),
145
+ timeout: z.number().int().positive().default(30000),
146
+ org_id: z.string().optional(),
147
+ auth: urlAuthSchema.optional(),
148
+ });
149
+ // ---------------------------------------------------------------------------
129
150
  // Snowflake auth schemas
130
151
  // ---------------------------------------------------------------------------
131
152
  const snowflakePasswordAuthSchema = z.object({
@@ -166,6 +187,28 @@ const snowflakeDatasourceSchema = z
166
187
  message: "Key-pair auth requires either private_key_file or private_key",
167
188
  path: ["auth"],
168
189
  });
190
+ const mysqlDatasourceSchema = z.object({
191
+ id: z.string(),
192
+ type: z.literal("mysql"),
193
+ host: z.string(),
194
+ port: z.number().int().positive().default(3306),
195
+ database: z.string(),
196
+ timezone: z.string().default("Z"),
197
+ ssl: sslSchema.default(false),
198
+ pool_size: z.number().int().positive().default(5),
199
+ auth: z.discriminatedUnion("type", [mysqlPasswordAuthSchema, mysqlIamAuthSchema]),
200
+ });
201
+ const mariadbDatasourceSchema = z.object({
202
+ id: z.string(),
203
+ type: z.literal("mariadb"),
204
+ host: z.string(),
205
+ port: z.number().int().positive().default(3306),
206
+ database: z.string(),
207
+ timezone: z.string().default("Z"),
208
+ ssl: sslSchema.default(false),
209
+ pool_size: z.number().int().positive().default(5),
210
+ auth: z.discriminatedUnion("type", [mysqlPasswordAuthSchema, mysqlIamAuthSchema]),
211
+ });
169
212
  // ---------------------------------------------------------------------------
170
213
  // Union and file schema
171
214
  // ---------------------------------------------------------------------------
@@ -176,6 +219,9 @@ export const datasourceSchema = z
176
219
  redshiftDatasourceSchema,
177
220
  redshiftDataDatasourceSchema,
178
221
  urlDatasourceSchema,
222
+ prometheusDatasourceSchema,
223
+ mysqlDatasourceSchema,
224
+ mariadbDatasourceSchema,
179
225
  ])
180
226
  .or(snowflakeDatasourceSchema);
181
227
  export const datasourcesFileSchema = z
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../src/schemas/datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../src/schemas/datasource.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ColumnMeta } from "../connectors/types";
1
+ import type { ColumnMeta } from "../types/connector-types";
2
2
  import type { Transform } from "../schemas/transforms";
3
3
  type ComputedConfig = Extract<Transform, {
4
4
  type: "computed";
@@ -1 +1 @@
1
- {"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../src/transforms/computed.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,KAAK,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAQ/D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,cAAc,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAkB5D"}
1
+ {"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../src/transforms/computed.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,KAAK,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAQ/D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,cAAc,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAkB5D"}
@@ -1,4 +1,4 @@
1
- import type { QueryResult } from "../connectors/types";
1
+ import type { QueryResult } from "../types/connector-types";
2
2
  import type { Transform } from "../schemas/transforms";
3
3
  export interface TransformError {
4
4
  transform: string;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/transforms/engine.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQvD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAuBD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,SAAS,EAAE,GACtB,eAAe,CA+CjB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/transforms/engine.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQvD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAuBD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,SAAS,EAAE,GACtB,eAAe,CA+CjB"}
@@ -1,4 +1,4 @@
1
- import type { ColumnMeta } from "../connectors/types";
1
+ import type { ColumnMeta } from "../types/connector-types";
2
2
  import type { Transform } from "../schemas/transforms";
3
3
  type FilterConfig = Extract<Transform, {
4
4
  type: "filter";
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/transforms/filter.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,KAAK,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAE3D,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,YAAY,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAS5D"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/transforms/filter.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,KAAK,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAE3D,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,YAAY,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAS5D"}
@@ -1,4 +1,4 @@
1
- import type { ColumnMeta } from "../connectors/types";
1
+ import type { ColumnMeta } from "../types/connector-types";
2
2
  import type { Transform } from "../schemas/transforms";
3
3
  type LimitConfig = Extract<Transform, {
4
4
  type: "limit";
@@ -1 +1 @@
1
- {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../../src/transforms/limit.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEzD,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,WAAW,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAE5D"}
1
+ {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../../src/transforms/limit.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEzD,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,WAAW,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAE5D"}
@@ -1,4 +1,4 @@
1
- import type { ColumnMeta } from "../connectors/types";
1
+ import type { ColumnMeta } from "../types/connector-types";
2
2
  import type { Transform } from "../schemas/transforms";
3
3
  type PercentageConfig = Extract<Transform, {
4
4
  type: "percentage";
@@ -1 +1 @@
1
- {"version":3,"file":"percentage.d.ts","sourceRoot":"","sources":["../../src/transforms/percentage.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC;AAEnE,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,gBAAgB,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CA6B5D"}
1
+ {"version":3,"file":"percentage.d.ts","sourceRoot":"","sources":["../../src/transforms/percentage.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC;AAEnE,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,gBAAgB,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CA6B5D"}
@@ -1,4 +1,4 @@
1
- import type { ColumnMeta } from "../connectors/types";
1
+ import type { ColumnMeta } from "../types/connector-types";
2
2
  import type { Transform } from "../schemas/transforms";
3
3
  type RenameConfig = Extract<Transform, {
4
4
  type: "rename";
@@ -1 +1 @@
1
- {"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../src/transforms/rename.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAE3D,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,YAAY,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAqB5D"}
1
+ {"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../src/transforms/rename.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAE3D,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,YAAY,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAqB5D"}
@@ -1,4 +1,4 @@
1
- import type { ColumnMeta } from "../connectors/types";
1
+ import type { ColumnMeta } from "../types/connector-types";
2
2
  import type { Transform } from "../schemas/transforms";
3
3
  type SortConfig = Extract<Transform, {
4
4
  type: "sort";
@@ -1 +1 @@
1
- {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../src/transforms/sort.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEvD,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,UAAU,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAqB5D"}
1
+ {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../src/transforms/sort.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEvD,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,UAAU,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAqB5D"}
@@ -1,4 +1,4 @@
1
- export type DatasourceType = "postgres" | "bigquery" | "redshift" | "redshift-data" | "url" | "snowflake";
1
+ export type DatasourceType = "postgres" | "bigquery" | "redshift" | "redshift-data" | "url" | "snowflake" | "prometheus" | "mysql" | "mariadb";
2
2
  export type QueryRequest = {
3
3
  type: "sql";
4
4
  sql: string;
@@ -7,6 +7,12 @@ export type QueryRequest = {
7
7
  type: "http";
8
8
  path: string;
9
9
  params?: Record<string, unknown>;
10
+ } | {
11
+ type: "promql";
12
+ query: string;
13
+ start: string;
14
+ end: string;
15
+ step: string;
10
16
  };
11
17
  export interface ColumnMeta {
12
18
  name: string;
@@ -38,4 +44,4 @@ export interface Connector {
38
44
  testConnection(): Promise<ConnectionTestResult>;
39
45
  close(): Promise<void>;
40
46
  }
41
- //# sourceMappingURL=types.d.ts.map
47
+ //# sourceMappingURL=connector-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-types.d.ts","sourceRoot":"","sources":["../../src/types/connector-types.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,UAAU,GACV,UAAU,GACV,eAAe,GACf,KAAK,GACL,WAAW,GACX,YAAY,GACZ,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IACxD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -12,4 +12,4 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  export {};
15
- //# sourceMappingURL=types.js.map
15
+ //# sourceMappingURL=connector-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-types.js","sourceRoot":"","sources":["../../src/types/connector-types.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panoboard/core",
3
- "version": "1.11.7",
3
+ "version": "1.12.0",
4
4
  "description": "Shared core library for Panoboard — schemas, query engine, connectors, components, themes",
5
5
  "license": "BUSL-1.1",
6
6
  "type": "module",
@@ -17,21 +17,6 @@
17
17
  "types": "./dist/schemas/index.d.ts",
18
18
  "import": "./dist/schemas/index.js"
19
19
  },
20
- "./connectors": {
21
- "source": "./src/connectors/index.ts",
22
- "types": "./dist/connectors/index.d.ts",
23
- "import": "./dist/connectors/index.js"
24
- },
25
- "./query": {
26
- "source": "./src/query/index.ts",
27
- "types": "./dist/query/index.d.ts",
28
- "import": "./dist/query/index.js"
29
- },
30
- "./cache": {
31
- "source": "./src/cache/index.ts",
32
- "types": "./dist/cache/index.d.ts",
33
- "import": "./dist/cache/index.js"
34
- },
35
20
  "./filters": {
36
21
  "source": "./src/filters/index.ts",
37
22
  "types": "./dist/filters/index.d.ts",
@@ -62,16 +47,6 @@
62
47
  "types": "./dist/interfaces/index.d.ts",
63
48
  "import": "./dist/interfaces/index.js"
64
49
  },
65
- "./startup": {
66
- "source": "./src/startup/index.ts",
67
- "types": "./dist/startup/index.d.ts",
68
- "import": "./dist/startup/index.js"
69
- },
70
- "./annotations": {
71
- "source": "./src/annotations/index.ts",
72
- "types": "./dist/annotations/index.d.ts",
73
- "import": "./dist/annotations/index.js"
74
- },
75
50
  "./transforms": {
76
51
  "source": "./src/transforms/index.ts",
77
52
  "types": "./dist/transforms/index.d.ts",
@@ -108,15 +83,6 @@
108
83
  "react-router": "^7"
109
84
  },
110
85
  "dependencies": {
111
- "@aws-sdk/client-redshift-data": "^3.1016.0",
112
- "@aws-sdk/client-s3": "^3.1016.0",
113
- "@aws-sdk/client-sts": "^3.1016.0",
114
- "@aws-sdk/rds-signer": "^3.1016.0",
115
- "@google-cloud/bigquery": "8.1.1",
116
- "pg": "^8",
117
- "snowflake-sdk": "^2.3.5",
118
- "ioredis": "^5",
119
- "nunjucks": "^3",
120
86
  "yaml": "^2",
121
87
  "zod": "^4.3.6",
122
88
  "@date-fns/tz": "^1",
@@ -142,15 +108,12 @@
142
108
  "date-fns": "^4",
143
109
  "dompurify": "^3.3.3",
144
110
  "lucide-react": "^0.577.0",
145
- "marked": "^17.0.4",
146
- "node-sql-parser": "^5.4.0"
111
+ "marked": "^17.0.4"
147
112
  },
148
113
  "devDependencies": {
149
114
  "@testing-library/jest-dom": "^6",
150
115
  "@testing-library/react": "^16",
151
116
  "@types/dompurify": "^3.2.0",
152
- "@types/nunjucks": "^3",
153
- "@types/pg": "^8",
154
117
  "jsdom": "^29.0.1",
155
118
  "typescript": "^6",
156
119
  "vitest": "^4.1.1"
@@ -1,32 +0,0 @@
1
- import type { Annotation } from "../schemas/annotations";
2
- export interface AnnotationPoint {
3
- time: string;
4
- title: string;
5
- description?: string | null;
6
- }
7
- export interface ResolvedAnnotation {
8
- id: string;
9
- name: string;
10
- color: string;
11
- points: AnnotationPoint[];
12
- error?: string;
13
- }
14
- /**
15
- * Executes annotation queries for all enabled annotations.
16
- *
17
- * Annotation queries are executed in parallel. Failures are caught
18
- * per-annotation and returned as empty points with an error message --
19
- * a broken annotation never crashes the dashboard.
20
- */
21
- export declare function executeAnnotationQueries(annotations: Annotation[], resolvedParams: Record<string, unknown>, outputKeyMap: Record<string, string>, getConnector: (datasource: string) => {
22
- type: string;
23
- query: (sql: string, params: unknown[]) => Promise<{
24
- rows: Record<string, unknown>[];
25
- columns: {
26
- name: string;
27
- type: string;
28
- }[];
29
- rowCount: number;
30
- }>;
31
- } | null, ctx: Record<string, unknown>): Promise<ResolvedAnnotation[]>;
32
- //# sourceMappingURL=executor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/annotations/executor.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,UAAU,EAAE,EACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,IAAI,EACnN,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA0E/B"}
@@ -1,87 +0,0 @@
1
- // Copyright 2026 Mataki Labs LLC
2
- //
3
- // Licensed under the Business Source License 1.1 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // https://github.com/panoboard/panoboard/blob/main/LICENSE
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- /**
15
- * Executes annotation queries for all enabled annotations.
16
- *
17
- * Annotation queries are executed in parallel. Failures are caught
18
- * per-annotation and returned as empty points with an error message --
19
- * a broken annotation never crashes the dashboard.
20
- */
21
- export async function executeAnnotationQueries(annotations, resolvedParams, outputKeyMap, getConnector, ctx) {
22
- const enabled = annotations.filter((a) => a.enabled);
23
- const results = await Promise.all(enabled.map(async (annotation) => {
24
- const connector = getConnector(annotation.datasource);
25
- if (!connector) {
26
- return {
27
- id: annotation.id,
28
- name: annotation.name,
29
- color: annotation.color,
30
- points: [],
31
- error: `Datasource '${annotation.datasource}' not found`,
32
- };
33
- }
34
- try {
35
- // Resolve annotation-specific params
36
- const params = {};
37
- if (annotation.query.params) {
38
- for (const [paramName, binding] of Object.entries(annotation.query.params)) {
39
- if ("filter" in binding && binding.filter) {
40
- const mappedKey = outputKeyMap[binding.filter];
41
- if (mappedKey) {
42
- params[paramName] = resolvedParams[mappedKey] ?? null;
43
- }
44
- else {
45
- params[paramName] = resolvedParams[binding.filter] ?? null;
46
- }
47
- }
48
- else if ("ctx" in binding && binding.ctx) {
49
- params[paramName] = ctx[binding.ctx] ?? null;
50
- }
51
- }
52
- }
53
- // Build positional params array from the SQL's :param references
54
- const paramNames = Array.from(annotation.query.sql.matchAll(/:(\w+)/g)).map((m) => m[1]);
55
- const positionalParams = paramNames.map((name) => params[name] ?? null);
56
- // Replace :param placeholders with $1, $2, etc. for SQL execution
57
- let paramIndex = 0;
58
- const sql = annotation.query.sql.replace(/:(\w+)/g, () => {
59
- paramIndex++;
60
- return `$${paramIndex}`;
61
- });
62
- const result = await connector.query(sql, positionalParams);
63
- const points = result.rows.map((row) => ({
64
- time: String(row.time ?? ""),
65
- title: String(row.title ?? ""),
66
- description: row.description != null ? String(row.description) : null,
67
- }));
68
- return {
69
- id: annotation.id,
70
- name: annotation.name,
71
- color: annotation.color,
72
- points,
73
- };
74
- }
75
- catch (error) {
76
- return {
77
- id: annotation.id,
78
- name: annotation.name,
79
- color: annotation.color,
80
- points: [],
81
- error: error.message,
82
- };
83
- }
84
- }));
85
- return results;
86
- }
87
- //# sourceMappingURL=executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/annotations/executor.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { executeAnnotationQueries, type AnnotationPoint, type ResolvedAnnotation, } from "./executor";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/annotations/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,wBAAwB,EACxB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC"}
@@ -1,15 +0,0 @@
1
- // Copyright 2026 Mataki Labs LLC
2
- //
3
- // Licensed under the Business Source License 1.1 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // https://github.com/panoboard/panoboard/blob/main/LICENSE
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- export { executeAnnotationQueries, } from "./executor";
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/annotations/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EACL,wBAAwB,GAGzB,MAAM,YAAY,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { QueryResult } from "../connectors/types";
2
- interface CacheConfig {
3
- enabled: boolean;
4
- key_prefix: string;
5
- default_ttl: string;
6
- dashboard_ttl?: Record<string, string>;
7
- }
8
- export declare function resolveTtl(panelCacheTtl: string | undefined, slug: string, config: CacheConfig): number;
9
- export declare function cachedQuery(config: CacheConfig, slug: string, panelId: string, panelCacheTtl: string | undefined, params: Record<string, unknown>, bypass: boolean, queryFn: () => Promise<QueryResult>, queryIdentifier?: string): Promise<QueryResult>;
10
- export {};
11
- //# sourceMappingURL=cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/cache/cache.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,UAAU,WAAW;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAOD,wBAAgB,UAAU,CACxB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAClB,MAAM,CAKR;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,EACnC,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,WAAW,CAAC,CAuBtB"}
@@ -1,42 +0,0 @@
1
- // Copyright 2026 Mataki Labs LLC
2
- //
3
- // Licensed under the Business Source License 1.1 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // https://github.com/panoboard/panoboard/blob/main/LICENSE
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- import { cacheGet, cacheSet, isAvailable } from "./client";
15
- import { buildCacheKey } from "./keys";
16
- function parseTtlSeconds(ttl) {
17
- const match = ttl.match(/^(\d+)s$/);
18
- return match ? parseInt(match[1], 10) : 300;
19
- }
20
- export function resolveTtl(panelCacheTtl, slug, config) {
21
- if (panelCacheTtl)
22
- return parseTtlSeconds(panelCacheTtl);
23
- if (config.dashboard_ttl?.[slug])
24
- return parseTtlSeconds(config.dashboard_ttl[slug]);
25
- return parseTtlSeconds(config.default_ttl);
26
- }
27
- export async function cachedQuery(config, slug, panelId, panelCacheTtl, params, bypass, queryFn, queryIdentifier) {
28
- if (!config.enabled || !isAvailable() || bypass) {
29
- const result = await queryFn();
30
- return { ...result, fromCache: false };
31
- }
32
- const ttl = resolveTtl(panelCacheTtl, slug, config);
33
- const key = buildCacheKey(config.key_prefix, slug, panelId, params, queryIdentifier);
34
- const cached = await cacheGet(key);
35
- if (cached) {
36
- return { ...JSON.parse(cached), fromCache: true };
37
- }
38
- const result = await queryFn();
39
- await cacheSet(key, ttl, JSON.stringify(result));
40
- return { ...result, fromCache: false };
41
- }
42
- //# sourceMappingURL=cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache/cache.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAUvC,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,aAAiC,EACjC,IAAY,EACZ,MAAmB;IAEnB,IAAI,aAAa;QAAE,OAAO,eAAe,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC;QAC9B,OAAO,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAmB,EACnB,IAAY,EACZ,OAAe,EACf,aAAiC,EACjC,MAA+B,EAC/B,MAAe,EACf,OAAmC,EACnC,eAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;QAC/B,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,aAAa,CACvB,MAAM,CAAC,UAAU,EACjB,IAAI,EACJ,OAAO,EACP,MAAM,EACN,eAAe,CAChB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;IAC/B,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC"}
@@ -1,9 +0,0 @@
1
- export declare function initCache(config: {
2
- url: string;
3
- key_prefix?: string;
4
- }): void;
5
- export declare function isAvailable(): boolean;
6
- export declare function cacheGet(key: string): Promise<string | null>;
7
- export declare function cacheSet(key: string, ttl: number, value: string): Promise<void>;
8
- export declare function closeCache(): Promise<void>;
9
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cache/client.ts"],"names":[],"mappings":"AAmBA,wBAAgB,SAAS,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,QAiBrE;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOlE;AAED,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMhD"}
@@ -1,63 +0,0 @@
1
- // Copyright 2026 Mataki Labs LLC
2
- //
3
- // Licensed under the Business Source License 1.1 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // https://github.com/panoboard/panoboard/blob/main/LICENSE
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- import Redis from "ioredis";
15
- let client = null;
16
- let available = false;
17
- export function initCache(config) {
18
- client = new Redis(config.url, {
19
- lazyConnect: true,
20
- retryStrategy: (times) => Math.min(times * 500, 5000),
21
- });
22
- client.on("connect", () => {
23
- available = true;
24
- });
25
- client.on("error", (err) => {
26
- console.warn("Redis connection error:", err.message);
27
- available = false;
28
- });
29
- client.connect().catch(() => {
30
- console.warn("Redis connection failed at startup, continuing without cache");
31
- });
32
- }
33
- export function isAvailable() {
34
- return available && client !== null;
35
- }
36
- export async function cacheGet(key) {
37
- if (!isAvailable())
38
- return null;
39
- try {
40
- return await client.get(key);
41
- }
42
- catch {
43
- return null;
44
- }
45
- }
46
- export async function cacheSet(key, ttl, value) {
47
- if (!isAvailable())
48
- return;
49
- try {
50
- await client.setex(key, ttl, value);
51
- }
52
- catch {
53
- // swallow
54
- }
55
- }
56
- export async function closeCache() {
57
- if (client) {
58
- await client.quit();
59
- client = null;
60
- available = false;
61
- }
62
- }
63
- //# sourceMappingURL=client.js.map