@freshguard/freshguard-core 0.13.2 → 0.15.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 (196) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/README.md +74 -1
  3. package/SKILL.md +229 -0
  4. package/dist/cli/index.d.ts +13 -0
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +74 -1
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/connectors/azure-sql.d.ts +121 -0
  9. package/dist/connectors/azure-sql.d.ts.map +1 -0
  10. package/dist/connectors/azure-sql.js +489 -0
  11. package/dist/connectors/azure-sql.js.map +1 -0
  12. package/dist/connectors/base-connector.d.ts +139 -0
  13. package/dist/connectors/base-connector.d.ts.map +1 -1
  14. package/dist/connectors/base-connector.js +160 -3
  15. package/dist/connectors/base-connector.js.map +1 -1
  16. package/dist/connectors/bigquery.d.ts +100 -0
  17. package/dist/connectors/bigquery.d.ts.map +1 -1
  18. package/dist/connectors/bigquery.js +143 -2
  19. package/dist/connectors/bigquery.js.map +1 -1
  20. package/dist/connectors/duckdb.d.ts +96 -0
  21. package/dist/connectors/duckdb.d.ts.map +1 -1
  22. package/dist/connectors/duckdb.js +144 -7
  23. package/dist/connectors/duckdb.js.map +1 -1
  24. package/dist/connectors/index.d.ts +28 -0
  25. package/dist/connectors/index.d.ts.map +1 -1
  26. package/dist/connectors/index.js +28 -0
  27. package/dist/connectors/index.js.map +1 -1
  28. package/dist/connectors/mssql.d.ts +119 -0
  29. package/dist/connectors/mssql.d.ts.map +1 -0
  30. package/dist/connectors/mssql.js +483 -0
  31. package/dist/connectors/mssql.js.map +1 -0
  32. package/dist/connectors/mysql.d.ts +85 -0
  33. package/dist/connectors/mysql.d.ts.map +1 -1
  34. package/dist/connectors/mysql.js +118 -3
  35. package/dist/connectors/mysql.js.map +1 -1
  36. package/dist/connectors/postgres.d.ts +85 -0
  37. package/dist/connectors/postgres.d.ts.map +1 -1
  38. package/dist/connectors/postgres.js +113 -6
  39. package/dist/connectors/postgres.js.map +1 -1
  40. package/dist/connectors/redshift.d.ts +90 -0
  41. package/dist/connectors/redshift.d.ts.map +1 -1
  42. package/dist/connectors/redshift.js +131 -7
  43. package/dist/connectors/redshift.js.map +1 -1
  44. package/dist/connectors/snowflake.d.ts +108 -0
  45. package/dist/connectors/snowflake.d.ts.map +1 -1
  46. package/dist/connectors/snowflake.js +137 -3
  47. package/dist/connectors/snowflake.js.map +1 -1
  48. package/dist/connectors/synapse.d.ts +123 -0
  49. package/dist/connectors/synapse.d.ts.map +1 -0
  50. package/dist/connectors/synapse.js +495 -0
  51. package/dist/connectors/synapse.js.map +1 -0
  52. package/dist/db/index.d.ts +25 -0
  53. package/dist/db/index.d.ts.map +1 -1
  54. package/dist/db/index.js +23 -0
  55. package/dist/db/index.js.map +1 -1
  56. package/dist/db/migrate.d.ts +23 -0
  57. package/dist/db/migrate.d.ts.map +1 -1
  58. package/dist/db/migrate.js +38 -0
  59. package/dist/db/migrate.js.map +1 -1
  60. package/dist/db/schema.d.ts +11 -0
  61. package/dist/db/schema.d.ts.map +1 -1
  62. package/dist/db/schema.js +70 -0
  63. package/dist/db/schema.js.map +1 -1
  64. package/dist/errors/debug-factory.d.ts +38 -0
  65. package/dist/errors/debug-factory.d.ts.map +1 -1
  66. package/dist/errors/debug-factory.js +40 -0
  67. package/dist/errors/debug-factory.js.map +1 -1
  68. package/dist/errors/index.d.ts +59 -0
  69. package/dist/errors/index.d.ts.map +1 -1
  70. package/dist/errors/index.js +110 -7
  71. package/dist/errors/index.js.map +1 -1
  72. package/dist/index.d.ts +32 -1
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +37 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/metadata/duckdb-storage.d.ts +3 -0
  77. package/dist/metadata/duckdb-storage.d.ts.map +1 -1
  78. package/dist/metadata/duckdb-storage.js +6 -0
  79. package/dist/metadata/duckdb-storage.js.map +1 -1
  80. package/dist/metadata/factory.d.ts +30 -0
  81. package/dist/metadata/factory.d.ts.map +1 -1
  82. package/dist/metadata/factory.js +31 -0
  83. package/dist/metadata/factory.js.map +1 -1
  84. package/dist/metadata/index.d.ts +26 -0
  85. package/dist/metadata/index.d.ts.map +1 -1
  86. package/dist/metadata/index.js +26 -0
  87. package/dist/metadata/index.js.map +1 -1
  88. package/dist/metadata/interface.d.ts +33 -0
  89. package/dist/metadata/interface.d.ts.map +1 -1
  90. package/dist/metadata/interface.js +3 -0
  91. package/dist/metadata/interface.js.map +1 -1
  92. package/dist/metadata/postgresql-storage.d.ts +3 -0
  93. package/dist/metadata/postgresql-storage.d.ts.map +1 -1
  94. package/dist/metadata/postgresql-storage.js +12 -2
  95. package/dist/metadata/postgresql-storage.js.map +1 -1
  96. package/dist/metadata/schema-config.d.ts +53 -0
  97. package/dist/metadata/schema-config.d.ts.map +1 -1
  98. package/dist/metadata/schema-config.js +64 -0
  99. package/dist/metadata/schema-config.js.map +1 -1
  100. package/dist/metadata/types.d.ts +3 -0
  101. package/dist/metadata/types.d.ts.map +1 -1
  102. package/dist/metadata/types.js +3 -0
  103. package/dist/metadata/types.js.map +1 -1
  104. package/dist/monitor/baseline-calculator.d.ts +56 -0
  105. package/dist/monitor/baseline-calculator.d.ts.map +1 -1
  106. package/dist/monitor/baseline-calculator.js +72 -0
  107. package/dist/monitor/baseline-calculator.js.map +1 -1
  108. package/dist/monitor/baseline-config.d.ts +77 -0
  109. package/dist/monitor/baseline-config.d.ts.map +1 -1
  110. package/dist/monitor/baseline-config.js +79 -1
  111. package/dist/monitor/baseline-config.js.map +1 -1
  112. package/dist/monitor/freshness.d.ts +40 -0
  113. package/dist/monitor/freshness.d.ts.map +1 -1
  114. package/dist/monitor/freshness.js +82 -3
  115. package/dist/monitor/freshness.js.map +1 -1
  116. package/dist/monitor/index.d.ts +29 -0
  117. package/dist/monitor/index.d.ts.map +1 -1
  118. package/dist/monitor/index.js +29 -0
  119. package/dist/monitor/index.js.map +1 -1
  120. package/dist/monitor/schema-baseline.d.ts +45 -0
  121. package/dist/monitor/schema-baseline.d.ts.map +1 -1
  122. package/dist/monitor/schema-baseline.js +63 -5
  123. package/dist/monitor/schema-baseline.js.map +1 -1
  124. package/dist/monitor/schema-changes.d.ts +45 -0
  125. package/dist/monitor/schema-changes.d.ts.map +1 -1
  126. package/dist/monitor/schema-changes.js +85 -0
  127. package/dist/monitor/schema-changes.js.map +1 -1
  128. package/dist/monitor/volume.d.ts +43 -0
  129. package/dist/monitor/volume.d.ts.map +1 -1
  130. package/dist/monitor/volume.js +89 -0
  131. package/dist/monitor/volume.js.map +1 -1
  132. package/dist/observability/logger.d.ts +91 -0
  133. package/dist/observability/logger.d.ts.map +1 -1
  134. package/dist/observability/logger.js +108 -0
  135. package/dist/observability/logger.js.map +1 -1
  136. package/dist/observability/metrics.d.ts +140 -0
  137. package/dist/observability/metrics.d.ts.map +1 -1
  138. package/dist/observability/metrics.js +184 -7
  139. package/dist/observability/metrics.js.map +1 -1
  140. package/dist/resilience/circuit-breaker.d.ts +112 -2
  141. package/dist/resilience/circuit-breaker.d.ts.map +1 -1
  142. package/dist/resilience/circuit-breaker.js +140 -6
  143. package/dist/resilience/circuit-breaker.js.map +1 -1
  144. package/dist/resilience/index.d.ts +9 -0
  145. package/dist/resilience/index.d.ts.map +1 -1
  146. package/dist/resilience/index.js +13 -0
  147. package/dist/resilience/index.js.map +1 -1
  148. package/dist/resilience/retry-policy.d.ts +105 -0
  149. package/dist/resilience/retry-policy.d.ts.map +1 -1
  150. package/dist/resilience/retry-policy.js +158 -7
  151. package/dist/resilience/retry-policy.js.map +1 -1
  152. package/dist/resilience/timeout-manager.d.ts +137 -0
  153. package/dist/resilience/timeout-manager.d.ts.map +1 -1
  154. package/dist/resilience/timeout-manager.js +151 -4
  155. package/dist/resilience/timeout-manager.js.map +1 -1
  156. package/dist/security/query-analyzer.d.ts +124 -0
  157. package/dist/security/query-analyzer.d.ts.map +1 -1
  158. package/dist/security/query-analyzer.js +150 -9
  159. package/dist/security/query-analyzer.js.map +1 -1
  160. package/dist/security/schema-cache.d.ts +152 -0
  161. package/dist/security/schema-cache.d.ts.map +1 -1
  162. package/dist/security/schema-cache.js +144 -12
  163. package/dist/security/schema-cache.js.map +1 -1
  164. package/dist/types/connector.d.ts +68 -1
  165. package/dist/types/connector.d.ts.map +1 -1
  166. package/dist/types/connector.js +38 -15
  167. package/dist/types/connector.js.map +1 -1
  168. package/dist/types/driver-results.d.ts +28 -0
  169. package/dist/types/driver-results.d.ts.map +1 -1
  170. package/dist/types/driver-results.js +12 -0
  171. package/dist/types/driver-results.js.map +1 -1
  172. package/dist/types.d.ts +113 -1
  173. package/dist/types.d.ts.map +1 -1
  174. package/dist/types.js +8 -0
  175. package/dist/types.js.map +1 -1
  176. package/dist/validation/index.d.ts +8 -0
  177. package/dist/validation/index.d.ts.map +1 -1
  178. package/dist/validation/index.js +12 -0
  179. package/dist/validation/index.js.map +1 -1
  180. package/dist/validation/runtime-validator.d.ts +98 -0
  181. package/dist/validation/runtime-validator.d.ts.map +1 -1
  182. package/dist/validation/runtime-validator.js +114 -1
  183. package/dist/validation/runtime-validator.js.map +1 -1
  184. package/dist/validation/sanitizers.d.ts +59 -0
  185. package/dist/validation/sanitizers.d.ts.map +1 -1
  186. package/dist/validation/sanitizers.js +104 -20
  187. package/dist/validation/sanitizers.js.map +1 -1
  188. package/dist/validation/schemas.d.ts +73 -0
  189. package/dist/validation/schemas.d.ts.map +1 -1
  190. package/dist/validation/schemas.js +132 -5
  191. package/dist/validation/schemas.js.map +1 -1
  192. package/dist/validators/index.d.ts +54 -0
  193. package/dist/validators/index.d.ts.map +1 -1
  194. package/dist/validators/index.js +93 -2
  195. package/dist/validators/index.js.map +1 -1
  196. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"schema-config.js","sourceRoot":"","sources":["../../src/metadata/schema-config.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAwBxD,MAAM,OAAO,oBAAoB;IACd,MAAM,CAAuB;IAE9C,YAAY,cAAqC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAKD,qBAAqB,CAAC,aAAmD;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAKD,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAKD,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAKD,YAAY,CAAC,aAAmD;QAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAKO,oBAAoB,CAAC,cAAqC;QAChE,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,IAAI,EAAE,CAAC;QAGjD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,IAAI,QAAQ,CAAC;QACjD,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,EAAE,CAAC;QAGnD,MAAM,MAAM,GAAG;YACb,eAAe,EAAE,IAAI,CAAC,gBAAgB,CACpC,YAAY,CAAC,MAAM,EAAE,eAAe,IAAI,iBAAiB,EACzD,WAAW,CACZ;YACD,eAAe,EAAE,IAAI,CAAC,gBAAgB,CACpC,YAAY,CAAC,MAAM,EAAE,eAAe,IAAI,iBAAiB,EACzD,WAAW,CACZ;SACF,CAAC;QAGF,MAAM,cAAc,GAAG;YACrB,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC;YAC7E,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC;SAC9E,CAAC;QAEF,OAAO;YACL,UAAU;YACV,WAAW;YACX,MAAM;YACN,cAAc;SACf,CAAC;IACJ,CAAC;IAKO,gBAAgB,CAAC,SAAiB,EAAE,MAAc;QACxD,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAG9B,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,MAAM,GAAG,SAAS,EAAE,CAAC;IACjC,CAAC;IAKO,mBAAmB,CAAC,UAAkB,EAAE,SAAiB;QAE/D,OAAO,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC;IACtC,CAAC;IAKO,qBAAqB;QAE3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,MAAM,kBAAkB,CAAC,YAAY,CACnC,aAAa,EACb,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,8BAA8B,CAC/B,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACjF,MAAM,kBAAkB,CAAC,YAAY,CACnC,oBAAoB,EACpB,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,+BAA+B,CAChC,CAAC;QACJ,CAAC;QAGD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;YAC9D,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,kBAAkB,CAAC,YAAY,CACnC,iBAAiB,GAAG,EAAE,EACtB,SAAS,EACT,6BAA6B,CAC9B,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAKO,iBAAiB,CAAC,UAAkB;QAC1C,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QAMD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;QAErD,OAAO,CACL,UAAU,CAAC,MAAM,IAAI,EAAE;YACvB,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;YAClC,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAClD,CAAC;IACJ,CAAC;IAKO,kBAAkB,CAAC,MAAc;QACvC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,MAAM,aAAa,GAAG,iBAAiB,CAAC;QAExC,OAAO,CACL,MAAM,CAAC,MAAM,IAAI,EAAE;YACnB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAC3B,CAAC;IACJ,CAAC;IAKO,iBAAiB,CAAC,UAAkB;QAE1C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;YAC/B,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;YACzE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;YACjE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;YAC/D,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;YACjE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO;SAChE,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"schema-config.js","sourceRoot":"","sources":["../../src/metadata/schema-config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Types for metadata storage abstraction
3
+ */
1
4
  export interface MetadataCheckExecution {
2
5
  ruleId: string;
3
6
  status: 'ok' | 'alert' | 'failed' | 'pending';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE;YACP,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE;YACP,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;CACH"}
@@ -1,2 +1,5 @@
1
+ /**
2
+ * Types for metadata storage abstraction
3
+ */
1
4
  export {};
2
5
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,9 +1,23 @@
1
+ /**
2
+ * Enhanced baseline calculator for volume monitoring
3
+ *
4
+ * Provides advanced statistical methods for baseline calculation including
5
+ * mean, median, trimmed mean, weekend exclusion, and seasonal adjustment.
6
+ *
7
+ * @license MIT
8
+ */
1
9
  import type { MetadataCheckExecution } from '../metadata/types.js';
2
10
  import type { ResolvedBaselineConfig } from './baseline-config.js';
11
+ /**
12
+ * Historical data point with timestamp information
13
+ */
3
14
  export interface HistoricalDataPoint {
4
15
  rowCount: number;
5
16
  executedAt: Date;
6
17
  }
18
+ /**
19
+ * Baseline calculation result
20
+ */
7
21
  export interface BaselineResult {
8
22
  mean: number;
9
23
  deviationPercent: number;
@@ -11,20 +25,62 @@ export interface BaselineResult {
11
25
  calculationMethod: string;
12
26
  seasonalAdjusted?: boolean;
13
27
  }
28
+ /**
29
+ * Enhanced baseline calculator
30
+ *
31
+ * Calculates baselines using various statistical methods with support for
32
+ * weekend exclusion and seasonal adjustment for day-of-week patterns.
33
+ */
14
34
  export declare class BaselineCalculator {
15
35
  private readonly config;
16
36
  constructor(config: ResolvedBaselineConfig);
37
+ /**
38
+ * Calculate baseline from historical check execution data
39
+ */
17
40
  calculateBaseline(historicalData: MetadataCheckExecution[], currentRowCount: number): BaselineResult;
41
+ /**
42
+ * Convert check executions to data points
43
+ */
18
44
  private convertToDataPoints;
45
+ /**
46
+ * Filter data based on configuration
47
+ */
19
48
  private filterData;
49
+ /**
50
+ * Apply seasonal adjustment based on day-of-week patterns
51
+ */
20
52
  private applySeasonalAdjustment;
53
+ /**
54
+ * Adjust current value for seasonal patterns
55
+ */
21
56
  private adjustCurrentValueForSeason;
57
+ /**
58
+ * Calculate day-of-week statistics
59
+ */
22
60
  private calculateDayOfWeekStats;
61
+ /**
62
+ * Calculate statistic based on configured method
63
+ */
23
64
  private calculateStatistic;
65
+ /**
66
+ * Validate row count values
67
+ */
24
68
  private validateValues;
69
+ /**
70
+ * Calculate arithmetic mean
71
+ */
25
72
  private calculateMean;
73
+ /**
74
+ * Calculate median
75
+ */
26
76
  private calculateMedian;
77
+ /**
78
+ * Calculate trimmed mean (excluding outliers from both ends)
79
+ */
27
80
  private calculateTrimmedMean;
81
+ /**
82
+ * Calculate deviation percentage safely
83
+ */
28
84
  private calculateDeviation;
29
85
  }
30
86
  //# sourceMappingURL=baseline-calculator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseline-calculator.d.ts","sourceRoot":"","sources":["../../src/monitor/baseline-calculator.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAMnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB;AAKD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAgBD,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,sBAAsB;IAK3D,iBAAiB,CACf,cAAc,EAAE,sBAAsB,EAAE,EACxC,eAAe,EAAE,MAAM,GACtB,cAAc;IA4DjB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,uBAAuB;IAsC/B,OAAO,CAAC,2BAA2B;IA8BnC,OAAO,CAAC,uBAAuB;IAyB/B,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,kBAAkB;CAe3B"}
1
+ {"version":3,"file":"baseline-calculator.d.ts","sourceRoot":"","sources":["../../src/monitor/baseline-calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAUD;;;;;GAKG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,sBAAsB;IAE3D;;OAEG;IACH,iBAAiB,CACf,cAAc,EAAE,sBAAsB,EAAE,EACxC,eAAe,EAAE,MAAM,GACtB,cAAc;IAyDjB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA2BnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAe3B"}
@@ -1,12 +1,32 @@
1
+ /**
2
+ * Enhanced baseline calculator for volume monitoring
3
+ *
4
+ * Provides advanced statistical methods for baseline calculation including
5
+ * mean, median, trimmed mean, weekend exclusion, and seasonal adjustment.
6
+ *
7
+ * @license MIT
8
+ */
1
9
  import { MonitoringError } from '../errors/index.js';
10
+ /**
11
+ * Enhanced baseline calculator
12
+ *
13
+ * Calculates baselines using various statistical methods with support for
14
+ * weekend exclusion and seasonal adjustment for day-of-week patterns.
15
+ */
2
16
  export class BaselineCalculator {
3
17
  config;
4
18
  constructor(config) {
5
19
  this.config = config;
6
20
  }
21
+ /**
22
+ * Calculate baseline from historical check execution data
23
+ */
7
24
  calculateBaseline(historicalData, currentRowCount) {
25
+ // Convert to data points with timestamp information
8
26
  const dataPoints = this.convertToDataPoints(historicalData);
27
+ // Filter data based on configuration
9
28
  const filteredData = this.filterData(dataPoints);
29
+ // Check if we have enough data for reliable baseline calculation
10
30
  if (filteredData.length < this.config.minimumDataPoints) {
11
31
  return {
12
32
  mean: currentRowCount,
@@ -17,14 +37,19 @@ export class BaselineCalculator {
17
37
  };
18
38
  }
19
39
  try {
40
+ // Apply seasonal adjustment if enabled and sufficient data
20
41
  const adjustedData = this.config.seasonalAdjustment
21
42
  ? this.applySeasonalAdjustment(filteredData)
22
43
  : filteredData;
44
+ // Check if seasonal adjustment was actually applied
23
45
  const seasonalAdjustmentApplied = this.config.seasonalAdjustment && filteredData.length >= 14;
46
+ // Calculate baseline using configured method
24
47
  const baseline = this.calculateStatistic(adjustedData);
48
+ // Seasonally adjust current row count if seasonal adjustment was applied
25
49
  const adjustedCurrentRowCount = seasonalAdjustmentApplied
26
50
  ? this.adjustCurrentValueForSeason(filteredData, currentRowCount)
27
51
  : currentRowCount;
52
+ // Calculate deviation percentage
28
53
  const deviationPercent = this.calculateDeviation(baseline, adjustedCurrentRowCount);
29
54
  return {
30
55
  mean: Math.round(baseline),
@@ -35,6 +60,7 @@ export class BaselineCalculator {
35
60
  };
36
61
  }
37
62
  catch {
63
+ // If calculation fails, return safe defaults
38
64
  return {
39
65
  mean: currentRowCount,
40
66
  deviationPercent: 0,
@@ -44,6 +70,9 @@ export class BaselineCalculator {
44
70
  };
45
71
  }
46
72
  }
73
+ /**
74
+ * Convert check executions to data points
75
+ */
47
76
  convertToDataPoints(executions) {
48
77
  return executions
49
78
  .filter(e => e.rowCount !== undefined && e.executedAt)
@@ -52,27 +81,38 @@ export class BaselineCalculator {
52
81
  executedAt: e.executedAt,
53
82
  }));
54
83
  }
84
+ /**
85
+ * Filter data based on configuration
86
+ */
55
87
  filterData(dataPoints) {
56
88
  if (!this.config.excludeWeekends) {
57
89
  return dataPoints;
58
90
  }
91
+ // Filter out weekend data (Saturday = 6, Sunday = 0)
59
92
  return dataPoints.filter(point => {
60
93
  const dayOfWeek = point.executedAt.getDay();
61
94
  return dayOfWeek !== 0 && dayOfWeek !== 6;
62
95
  });
63
96
  }
97
+ /**
98
+ * Apply seasonal adjustment based on day-of-week patterns
99
+ */
64
100
  applySeasonalAdjustment(dataPoints) {
65
101
  if (dataPoints.length < 14) {
102
+ // Need at least 2 weeks of data for seasonal adjustment
66
103
  return dataPoints;
67
104
  }
68
105
  const dayOfWeekStats = this.calculateDayOfWeekStats(dataPoints);
69
106
  const overallMean = this.calculateMean(dataPoints.map(p => p.rowCount));
107
+ // Adjust each data point based on day-of-week factor
70
108
  const adjustedPoints = dataPoints.map(point => {
71
109
  const dayOfWeek = point.executedAt.getDay();
72
110
  const dayStats = dayOfWeekStats[dayOfWeek];
73
111
  if (!dayStats || dayStats.count < 2) {
112
+ // Not enough data for this day of week
74
113
  return point;
75
114
  }
115
+ // Calculate adjustment factor
76
116
  const dayFactor = overallMean / dayStats.mean;
77
117
  const adjustedRowCount = point.rowCount * dayFactor;
78
118
  return {
@@ -82,6 +122,9 @@ export class BaselineCalculator {
82
122
  });
83
123
  return adjustedPoints;
84
124
  }
125
+ /**
126
+ * Adjust current value for seasonal patterns
127
+ */
85
128
  adjustCurrentValueForSeason(dataPoints, currentRowCount) {
86
129
  if (dataPoints.length < 14) {
87
130
  return currentRowCount;
@@ -91,20 +134,27 @@ export class BaselineCalculator {
91
134
  const currentDayOfWeek = new Date().getDay();
92
135
  const currentDayStats = dayOfWeekStats[currentDayOfWeek];
93
136
  if (!currentDayStats || currentDayStats.count < 2) {
137
+ // Not enough data for today's day of week, no adjustment
94
138
  return currentRowCount;
95
139
  }
140
+ // Apply the same adjustment factor used for historical data
96
141
  const dayFactor = overallMean / currentDayStats.mean;
97
142
  const adjustedCurrentRowCount = currentRowCount * dayFactor;
98
143
  return adjustedCurrentRowCount;
99
144
  }
145
+ /**
146
+ * Calculate day-of-week statistics
147
+ */
100
148
  calculateDayOfWeekStats(dataPoints) {
101
149
  const stats = {};
150
+ // Group by day of week
102
151
  dataPoints.forEach(point => {
103
152
  const dayOfWeek = point.executedAt.getDay();
104
153
  stats[dayOfWeek] ??= { mean: 0, count: 0 };
105
154
  stats[dayOfWeek].mean += point.rowCount;
106
155
  stats[dayOfWeek].count += 1;
107
156
  });
157
+ // Calculate means
108
158
  Object.values(stats).forEach(stat => {
109
159
  if (stat.count > 0) {
110
160
  stat.mean = stat.mean / stat.count;
@@ -112,6 +162,9 @@ export class BaselineCalculator {
112
162
  });
113
163
  return stats;
114
164
  }
165
+ /**
166
+ * Calculate statistic based on configured method
167
+ */
115
168
  calculateStatistic(dataPoints) {
116
169
  const values = dataPoints.map(p => p.rowCount);
117
170
  this.validateValues(values);
@@ -126,6 +179,9 @@ export class BaselineCalculator {
126
179
  throw new MonitoringError(`Unknown calculation method: ${this.config.calculationMethod}`, 'volume', undefined, undefined);
127
180
  }
128
181
  }
182
+ /**
183
+ * Validate row count values
184
+ */
129
185
  validateValues(values) {
130
186
  if (values.length === 0) {
131
187
  throw new MonitoringError('No valid data points for baseline calculation', 'volume');
@@ -134,6 +190,9 @@ export class BaselineCalculator {
134
190
  throw new MonitoringError('Invalid row count values detected', 'volume');
135
191
  }
136
192
  }
193
+ /**
194
+ * Calculate arithmetic mean
195
+ */
137
196
  calculateMean(values) {
138
197
  const sum = values.reduce((a, b) => {
139
198
  const result = a + b;
@@ -144,6 +203,9 @@ export class BaselineCalculator {
144
203
  }, 0);
145
204
  return sum / values.length;
146
205
  }
206
+ /**
207
+ * Calculate median
208
+ */
147
209
  calculateMedian(values) {
148
210
  const sorted = [...values].sort((a, b) => a - b);
149
211
  const mid = Math.floor(sorted.length / 2);
@@ -163,24 +225,34 @@ export class BaselineCalculator {
163
225
  return middle;
164
226
  }
165
227
  }
228
+ /**
229
+ * Calculate trimmed mean (excluding outliers from both ends)
230
+ */
166
231
  calculateTrimmedMean(values, trimPercentile) {
167
232
  if (values.length < 4) {
233
+ // Need at least 4 values for meaningful trimming
168
234
  return this.calculateMean(values);
169
235
  }
170
236
  const sorted = [...values].sort((a, b) => a - b);
171
237
  const trimCount = Math.floor((sorted.length * trimPercentile) / 100);
238
+ // Remove outliers from both ends
172
239
  const trimmedValues = sorted.slice(trimCount, sorted.length - trimCount);
173
240
  if (trimmedValues.length === 0) {
241
+ // Fallback to mean if too much trimming
174
242
  return this.calculateMean(values);
175
243
  }
176
244
  return this.calculateMean(trimmedValues);
177
245
  }
246
+ /**
247
+ * Calculate deviation percentage safely
248
+ */
178
249
  calculateDeviation(baseline, currentValue) {
179
250
  if (baseline <= 0) {
180
251
  return 0;
181
252
  }
182
253
  const deviation = Math.abs(currentValue - baseline);
183
254
  const deviationPercent = (deviation / baseline) * 100;
255
+ // Validate result is reasonable
184
256
  if (isNaN(deviationPercent) || deviationPercent === Infinity) {
185
257
  return 0;
186
258
  }
@@ -1 +1 @@
1
- {"version":3,"file":"baseline-calculator.js","sourceRoot":"","sources":["../../src/monitor/baseline-calculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseline-calculator.js","sourceRoot":"","sources":["../../src/monitor/baseline-calculator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,15 @@
1
+ /**
2
+ * Baseline configuration resolver for enhanced volume monitoring
3
+ *
4
+ * Provides configuration resolution with backwards compatibility,
5
+ * parameter validation, and default value management.
6
+ *
7
+ * @license MIT
8
+ */
1
9
  import type { MonitoringRule } from '../types.js';
10
+ /**
11
+ * Resolved baseline configuration with applied defaults
12
+ */
2
13
  export interface ResolvedBaselineConfig {
3
14
  windowDays: number;
4
15
  minimumDataPoints: number;
@@ -10,28 +21,94 @@ export interface ResolvedBaselineConfig {
10
21
  deviationThresholdPercent: number;
11
22
  minimumRowCount: number;
12
23
  }
24
+ /**
25
+ * Baseline configuration resolver
26
+ *
27
+ * Resolves monitoring rule baseline configuration with defaults and validates parameters.
28
+ * Maintains backwards compatibility with existing rule configurations.
29
+ */
13
30
  export declare class BaselineConfigResolver {
14
31
  private readonly config;
15
32
  constructor(rule: MonitoringRule);
33
+ /**
34
+ * Get resolved configuration
35
+ */
16
36
  getConfig(): ResolvedBaselineConfig;
37
+ /**
38
+ * Get window days for historical data retrieval
39
+ */
17
40
  getWindowDays(): number;
41
+ /**
42
+ * Get minimum required data points
43
+ */
18
44
  getMinimumDataPoints(): number;
45
+ /**
46
+ * Get timeout for baseline calculation queries
47
+ */
19
48
  getTimeoutSeconds(): number;
49
+ /**
50
+ * Check if weekends should be excluded from baseline
51
+ */
20
52
  shouldExcludeWeekends(): boolean;
53
+ /**
54
+ * Get statistical calculation method
55
+ */
21
56
  getCalculationMethod(): 'mean' | 'median' | 'trimmed_mean';
57
+ /**
58
+ * Get trimmed mean percentile (for trimmed_mean method)
59
+ */
22
60
  getTrimmedMeanPercentile(): number;
61
+ /**
62
+ * Check if seasonal adjustment should be applied
63
+ */
23
64
  shouldApplySeasonalAdjustment(): boolean;
65
+ /**
66
+ * Get deviation threshold percentage
67
+ */
24
68
  getDeviationThresholdPercent(): number;
69
+ /**
70
+ * Get minimum row count threshold
71
+ */
25
72
  getMinimumRowCount(): number;
73
+ /**
74
+ * Resolve configuration with backwards compatibility
75
+ */
26
76
  private resolveConfiguration;
77
+ /**
78
+ * Resolve window days with backwards compatibility
79
+ */
27
80
  private resolveWindowDays;
81
+ /**
82
+ * Validate all configuration parameters
83
+ */
28
84
  private validateConfiguration;
85
+ /**
86
+ * Validate window days parameter
87
+ */
29
88
  private validateWindowDays;
89
+ /**
90
+ * Validate minimum data points parameter
91
+ */
30
92
  private validateMinimumDataPoints;
93
+ /**
94
+ * Validate timeout seconds parameter
95
+ */
31
96
  private validateTimeoutSeconds;
97
+ /**
98
+ * Validate calculation method parameter
99
+ */
32
100
  private validateCalculationMethod;
101
+ /**
102
+ * Validate trimmed mean percentile parameter
103
+ */
33
104
  private validateTrimmedMeanPercentile;
105
+ /**
106
+ * Validate deviation threshold percentage parameter
107
+ */
34
108
  private validateDeviationThresholdPercent;
109
+ /**
110
+ * Validate minimum row count parameter
111
+ */
35
112
  private validateMinimumRowCount;
36
113
  }
37
114
  //# sourceMappingURL=baseline-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseline-config.d.ts","sourceRoot":"","sources":["../../src/monitor/baseline-config.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,QAAQ,GAAG,cAAc,CAAC;IACtD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB;AAQD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,IAAI,EAAE,cAAc;IAQhC,SAAS,IAAI,sBAAsB;IAOnC,aAAa,IAAI,MAAM;IAOvB,oBAAoB,IAAI,MAAM;IAO9B,iBAAiB,IAAI,MAAM;IAO3B,qBAAqB,IAAI,OAAO;IAOhC,oBAAoB,IAAI,MAAM,GAAG,QAAQ,GAAG,cAAc;IAO1D,wBAAwB,IAAI,MAAM;IAOlC,6BAA6B,IAAI,OAAO;IAOxC,4BAA4B,IAAI,MAAM;IAOtC,kBAAkB,IAAI,MAAM;IAO5B,OAAO,CAAC,oBAAoB;IAgC5B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,6BAA6B;IA4BrC,OAAO,CAAC,iCAAiC;IA+BzC,OAAO,CAAC,uBAAuB;CAmBhC"}
1
+ {"version":3,"file":"baseline-config.d.ts","sourceRoot":"","sources":["../../src/monitor/baseline-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,QAAQ,GAAG,cAAc,CAAC;IACtD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,IAAI,EAAE,cAAc;IAKhC;;OAEG;IACH,SAAS,IAAI,sBAAsB;IAInC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,oBAAoB,IAAI,MAAM,GAAG,QAAQ,GAAG,cAAc;IAI1D;;OAEG;IACH,wBAAwB,IAAI,MAAM;IAIlC;;OAEG;IACH,6BAA6B,IAAI,OAAO;IAIxC;;OAEG;IACH,4BAA4B,IAAI,MAAM;IAItC;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA4BjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAajC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;OAEG;IACH,OAAO,CAAC,iCAAiC;IA4BzC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAmBhC"}