semanticdb-v2 2.0.0-alpha.1 → 2.0.0-alpha.10

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 (272) hide show
  1. package/README.md +346 -46
  2. package/dist/cache/index.d.ts +2 -1
  3. package/dist/cache/manager.d.ts +5 -0
  4. package/dist/cache/registry.d.ts +14 -0
  5. package/dist/cache/types.d.ts +17 -0
  6. package/dist/close.d.ts +1 -0
  7. package/dist/compatibility/index.d.ts +2 -2
  8. package/dist/compatibility/logicform.d.ts +1 -7
  9. package/dist/compiler/compile-cte.d.ts +17 -2
  10. package/dist/compiler/index.d.ts +2 -1
  11. package/dist/compiler/shorten-sql.d.ts +1 -1
  12. package/dist/errors.d.ts +3 -0
  13. package/dist/executor/compatibility.d.ts +13 -0
  14. package/dist/executor/components.d.ts +8 -3
  15. package/dist/executor/connection-registry.d.ts +1 -12
  16. package/dist/executor/execute-query.d.ts +8 -2
  17. package/dist/executor/federated-execution.d.ts +38 -0
  18. package/dist/executor/fetch-entities.d.ts +7 -1
  19. package/dist/executor/index.d.ts +1 -1
  20. package/dist/executor/result-hydrator/types.d.ts +2 -0
  21. package/dist/executor/row-identity.d.ts +2 -1
  22. package/dist/executor/total.d.ts +11 -0
  23. package/dist/executor/types.d.ts +64 -19
  24. package/dist/i18n/index.d.ts +4 -0
  25. package/dist/i18n/locales/en-US.d.ts +2 -0
  26. package/dist/i18n/locales/zh-CN.d.ts +2 -0
  27. package/dist/i18n/registry.d.ts +13 -0
  28. package/dist/i18n/types.d.ts +9 -0
  29. package/dist/index.d.ts +16 -16
  30. package/dist/logicform-types.d.ts +56 -36
  31. package/dist/normalizer/core.d.ts +16 -2
  32. package/dist/normalizer/default-pred-name.d.ts +2 -0
  33. package/dist/normalizer/index.d.ts +1 -0
  34. package/dist/normalizer/pred-expression.d.ts +6 -0
  35. package/dist/normalizer/property-resolve.d.ts +6 -0
  36. package/dist/operators/builtins/constant.d.ts +2 -0
  37. package/dist/operators/builtins/period-name.d.ts +2 -1
  38. package/dist/operators/builtins/period-value.d.ts +2 -0
  39. package/dist/operators/builtins/query-expression.d.ts +3 -0
  40. package/dist/operators/builtins/scalar-extremum.d.ts +3 -0
  41. package/dist/operators/index.d.ts +2 -1
  42. package/dist/operators/registry.d.ts +5 -3
  43. package/dist/operators/resolve.d.ts +3 -0
  44. package/dist/operators/types.d.ts +102 -49
  45. package/dist/physical/clickhouse-provider.d.ts +29 -2
  46. package/dist/physical/connection-registry.d.ts +13 -0
  47. package/dist/physical/connection.d.ts +57 -15
  48. package/dist/physical/dameng-provider.d.ts +66 -0
  49. package/dist/physical/databricks-provider.d.ts +88 -0
  50. package/dist/physical/db-connector.d.ts +23 -0
  51. package/dist/physical/display-query.d.ts +3 -0
  52. package/dist/physical/doris-provider.d.ts +7 -1
  53. package/dist/physical/duckdb-coordinator-provider.d.ts +37 -0
  54. package/dist/physical/gbase-provider.d.ts +11 -0
  55. package/dist/physical/index.d.ts +24 -9
  56. package/dist/physical/load-driver.d.ts +1 -0
  57. package/dist/physical/maxcompute-provider.d.ts +44 -0
  58. package/dist/physical/mysql-protocol-provider.d.ts +27 -7
  59. package/dist/physical/mysql-provider.d.ts +2 -1
  60. package/dist/physical/oracle-provider.d.ts +21 -4
  61. package/dist/physical/postgresql-provider.d.ts +25 -4
  62. package/dist/physical/provider.d.ts +66 -2
  63. package/dist/physical/snowflake-provider.d.ts +20 -3
  64. package/dist/physical/sqlserver-provider.d.ts +69 -0
  65. package/dist/physical/starrocks-provider.d.ts +7 -1
  66. package/dist/physical/table-description.d.ts +5 -0
  67. package/dist/physical/table-discovery.d.ts +10 -0
  68. package/dist/planner/build-lineage.d.ts +1 -1
  69. package/dist/planner/create-logical-plan.d.ts +7 -0
  70. package/dist/planner/index.d.ts +4 -2
  71. package/dist/planner/mapping-granularity.d.ts +7 -0
  72. package/dist/planner/rewrite-nested-components.d.ts +8 -0
  73. package/dist/planner/select-schema-mapping.d.ts +16 -2
  74. package/dist/planner/semantics/index.d.ts +0 -3
  75. package/dist/planner/semantics/periods.d.ts +13 -0
  76. package/dist/planner/semantics/registry-defaults.d.ts +2 -1
  77. package/dist/planner/semantics/registry.d.ts +2 -1
  78. package/dist/planner/types.d.ts +94 -14
  79. package/dist/plugins/hierarchy/index.d.ts +1 -1
  80. package/dist/plugins/hierarchy/mapping-granularity.d.ts +4 -0
  81. package/dist/plugins/hierarchy/types.d.ts +20 -2
  82. package/dist/plugins/index.d.ts +10 -1
  83. package/dist/{planner/semantics → plugins}/observation/classification.d.ts +1 -1
  84. package/dist/plugins/observation/index.d.ts +17 -0
  85. package/dist/{planner/semantics → plugins}/observation/operator-policy.d.ts +4 -5
  86. package/dist/plugins/observation/periods.d.ts +18 -0
  87. package/dist/{planner/semantics → plugins}/observation/rule.d.ts +1 -1
  88. package/dist/plugins/observation/types.d.ts +3 -0
  89. package/dist/plugins/property-hierarchy/index.d.ts +11 -0
  90. package/dist/plugins/recursive/index.d.ts +26 -0
  91. package/dist/plugins/temporal/index.d.ts +13 -0
  92. package/dist/plugins/types.d.ts +165 -1
  93. package/dist/plugins/validity/classification.d.ts +5 -0
  94. package/dist/plugins/validity/index.d.ts +15 -0
  95. package/dist/plugins/validity/periods.d.ts +15 -0
  96. package/dist/plugins/validity/query-policy.d.ts +3 -0
  97. package/dist/plugins/validity/rule.d.ts +2 -0
  98. package/dist/plugins/validity/semantic-types.d.ts +3 -0
  99. package/dist/schema/dependent-projection.d.ts +8 -0
  100. package/dist/schema/entity-identity.d.ts +1 -1
  101. package/dist/schema/index.d.ts +1 -0
  102. package/dist/schema-mappings/freshness.d.ts +1 -1
  103. package/dist/schema-mappings/granularity.d.ts +5 -0
  104. package/dist/schema-mappings/index.d.ts +4 -1
  105. package/dist/schema-mappings/registry.d.ts +6 -3
  106. package/dist/schema-mappings/types.d.ts +52 -8
  107. package/dist/schema-mappings/yiask.d.ts +26 -0
  108. package/dist/semantic-types/builtins/tag.d.ts +2 -0
  109. package/dist/semantic-types/index.d.ts +5 -3
  110. package/dist/semantic-types/registry.d.ts +2 -0
  111. package/dist/semantic-types/resolve-schema.d.ts +1 -1
  112. package/dist/semantic-types/types.d.ts +22 -10
  113. package/dist/semantic-types/validate-resolved-schema.d.ts +2 -5
  114. package/dist/semanticdb.esm.js +5 -0
  115. package/dist/semanticdb.js +5 -0
  116. package/package.json +49 -17
  117. package/dist/cache/expiry.js +0 -1
  118. package/dist/cache/identity.js +0 -1
  119. package/dist/cache/redis-query-cache.js +0 -1
  120. package/dist/cache/serialization.js +0 -1
  121. package/dist/calendar/constants.d.ts +0 -7
  122. package/dist/calendar/constants.js +0 -1
  123. package/dist/calendar/index.d.ts +0 -6
  124. package/dist/calendar/provider-relation-store.d.ts +0 -9
  125. package/dist/calendar/provider-relation-store.js +0 -1
  126. package/dist/calendar/resolver.d.ts +0 -10
  127. package/dist/calendar/resolver.js +0 -1
  128. package/dist/calendar/system-schemas.d.ts +0 -3
  129. package/dist/calendar/system-schemas.js +0 -1
  130. package/dist/calendar/types.d.ts +0 -31
  131. package/dist/compatibility/logicform.js +0 -1
  132. package/dist/compiler/compile-cte.js +0 -1
  133. package/dist/compiler/compile-plan.js +0 -1
  134. package/dist/compiler/shorten-sql.js +0 -2
  135. package/dist/custom-functions/custom-functions.d.ts +0 -6
  136. package/dist/custom-functions/custom-functions.js +0 -1
  137. package/dist/custom-functions/index.d.ts +0 -3
  138. package/dist/custom-functions/operator-adapter.d.ts +0 -12
  139. package/dist/custom-functions/operator-adapter.js +0 -1
  140. package/dist/custom-functions/types.d.ts +0 -62
  141. package/dist/errors.js +0 -1
  142. package/dist/executor/compatibility.js +0 -1
  143. package/dist/executor/components.js +0 -1
  144. package/dist/executor/connection-registry.js +0 -1
  145. package/dist/executor/evaluate.js +0 -1
  146. package/dist/executor/execute-query.js +0 -1
  147. package/dist/executor/execute.js +0 -1
  148. package/dist/executor/fetch-entities.js +0 -1
  149. package/dist/executor/result-hydrator/entity-loader.js +0 -1
  150. package/dist/executor/result-hydrator/format-values.js +0 -1
  151. package/dist/executor/result-hydrator/hydrate-result.js +0 -1
  152. package/dist/executor/result-hydrator/missing-entity.js +0 -1
  153. package/dist/executor/result-hydrator/populate-entities.js +0 -1
  154. package/dist/executor/row-identity.js +0 -1
  155. package/dist/index.js +0 -1
  156. package/dist/logicform-types.js +0 -1
  157. package/dist/normalizer/core.js +0 -1
  158. package/dist/normalizer/default-pred-name.js +0 -1
  159. package/dist/normalizer/entity-id.js +0 -1
  160. package/dist/normalizer/groupby.js +0 -1
  161. package/dist/normalizer/normalize-logicform.js +0 -1
  162. package/dist/normalizer/pagination.js +0 -1
  163. package/dist/normalizer/pred-query-name.js +0 -1
  164. package/dist/normalizer/preds.js +0 -1
  165. package/dist/normalizer/query.js +0 -1
  166. package/dist/normalizer/version.js +0 -1
  167. package/dist/operators/builtins/abs.js +0 -1
  168. package/dist/operators/builtins/accumulate.js +0 -1
  169. package/dist/operators/builtins/add.js +0 -1
  170. package/dist/operators/builtins/arithmetic.js +0 -1
  171. package/dist/operators/builtins/average-per-period.js +0 -1
  172. package/dist/operators/builtins/avg.js +0 -1
  173. package/dist/operators/builtins/case.js +0 -1
  174. package/dist/operators/builtins/concat.js +0 -1
  175. package/dist/operators/builtins/count-distinct.js +0 -1
  176. package/dist/operators/builtins/count.js +0 -1
  177. package/dist/operators/builtins/date-bucket.js +0 -1
  178. package/dist/operators/builtins/divide.js +0 -1
  179. package/dist/operators/builtins/index.js +0 -1
  180. package/dist/operators/builtins/max.js +0 -1
  181. package/dist/operators/builtins/min.js +0 -1
  182. package/dist/operators/builtins/multiply.js +0 -1
  183. package/dist/operators/builtins/newly.js +0 -1
  184. package/dist/operators/builtins/period-boundary.js +0 -1
  185. package/dist/operators/builtins/period-difference.js +0 -1
  186. package/dist/operators/builtins/period-growth.js +0 -1
  187. package/dist/operators/builtins/period-name.js +0 -1
  188. package/dist/operators/builtins/period-shift.js +0 -1
  189. package/dist/operators/builtins/rank.js +0 -1
  190. package/dist/operators/builtins/row-number.js +0 -1
  191. package/dist/operators/builtins/share-of-total.js +0 -1
  192. package/dist/operators/builtins/sql.js +0 -1
  193. package/dist/operators/builtins/substring.js +0 -1
  194. package/dist/operators/builtins/subtract.js +0 -1
  195. package/dist/operators/builtins/sum.js +0 -1
  196. package/dist/operators/builtins/time-range.js +0 -1
  197. package/dist/operators/groupby.js +0 -1
  198. package/dist/operators/index.js +0 -1
  199. package/dist/operators/registry.js +0 -1
  200. package/dist/operators/sql-expression.js +0 -1
  201. package/dist/permissions/permissions.js +0 -1
  202. package/dist/physical/clickhouse-provider.js +0 -1
  203. package/dist/physical/connection.js +0 -1
  204. package/dist/physical/display-query.js +0 -1
  205. package/dist/physical/doris-provider.js +0 -1
  206. package/dist/physical/mysql-compatible-sql.js +0 -1
  207. package/dist/physical/mysql-protocol-provider.js +0 -1
  208. package/dist/physical/mysql-provider.js +0 -1
  209. package/dist/physical/oracle-provider.js +0 -1
  210. package/dist/physical/postgresql-provider.js +0 -1
  211. package/dist/physical/snowflake-provider.js +0 -1
  212. package/dist/physical/starrocks-provider.js +0 -1
  213. package/dist/planner/build-lineage.js +0 -1
  214. package/dist/planner/create-logical-plan.js +0 -1
  215. package/dist/planner/select-schema-mapping.js +0 -1
  216. package/dist/planner/semantics/lifecycle/classification.d.ts +0 -7
  217. package/dist/planner/semantics/lifecycle/classification.js +0 -1
  218. package/dist/planner/semantics/lifecycle/index.d.ts +0 -3
  219. package/dist/planner/semantics/lifecycle/query-policy.d.ts +0 -3
  220. package/dist/planner/semantics/lifecycle/query-policy.js +0 -1
  221. package/dist/planner/semantics/lifecycle/rule.d.ts +0 -2
  222. package/dist/planner/semantics/lifecycle/rule.js +0 -1
  223. package/dist/planner/semantics/observation/classification.js +0 -1
  224. package/dist/planner/semantics/observation/index.d.ts +0 -4
  225. package/dist/planner/semantics/observation/operator-policy.js +0 -1
  226. package/dist/planner/semantics/observation/rule.js +0 -1
  227. package/dist/planner/semantics/observation/types.d.ts +0 -3
  228. package/dist/planner/semantics/registry-defaults.js +0 -1
  229. package/dist/planner/semantics/registry.js +0 -1
  230. package/dist/planner/types.js +0 -1
  231. package/dist/plugins/hierarchy/compatibility.js +0 -1
  232. package/dist/plugins/hierarchy/entity-identity.js +0 -1
  233. package/dist/plugins/hierarchy/index.js +0 -1
  234. package/dist/plugins/hierarchy/operator.js +0 -1
  235. package/dist/plugins/hierarchy/resolve-schema.js +0 -1
  236. package/dist/plugins/index.js +0 -1
  237. package/dist/schema/entity-identity.js +0 -1
  238. package/dist/schema/resolve-property-path.js +0 -1
  239. package/dist/schema/schema-registry.js +0 -1
  240. package/dist/schema-mappings/freshness.js +0 -1
  241. package/dist/schema-mappings/registry.js +0 -1
  242. package/dist/semantic-types/builtins/boolean.js +0 -1
  243. package/dist/semantic-types/builtins/category.js +0 -1
  244. package/dist/semantic-types/builtins/currency.js +0 -1
  245. package/dist/semantic-types/builtins/date.js +0 -1
  246. package/dist/semantic-types/builtins/duration.js +0 -1
  247. package/dist/semantic-types/builtins/end-date.d.ts +0 -2
  248. package/dist/semantic-types/builtins/end-date.js +0 -1
  249. package/dist/semantic-types/builtins/entity.js +0 -1
  250. package/dist/semantic-types/builtins/file.js +0 -1
  251. package/dist/semantic-types/builtins/human-name.js +0 -1
  252. package/dist/semantic-types/builtins/id.js +0 -1
  253. package/dist/semantic-types/builtins/image.js +0 -1
  254. package/dist/semantic-types/builtins/index.js +0 -1
  255. package/dist/semantic-types/builtins/int.js +0 -1
  256. package/dist/semantic-types/builtins/name.js +0 -1
  257. package/dist/semantic-types/builtins/number.js +0 -1
  258. package/dist/semantic-types/builtins/object.js +0 -1
  259. package/dist/semantic-types/builtins/order.js +0 -1
  260. package/dist/semantic-types/builtins/percentage.js +0 -1
  261. package/dist/semantic-types/builtins/start-date.d.ts +0 -2
  262. package/dist/semantic-types/builtins/start-date.js +0 -1
  263. package/dist/semantic-types/builtins/string.js +0 -1
  264. package/dist/semantic-types/builtins/timestamp.js +0 -1
  265. package/dist/semantic-types/index.js +0 -1
  266. package/dist/semantic-types/primal-types/date.js +0 -1
  267. package/dist/semantic-types/primal-types/index.js +0 -1
  268. package/dist/semantic-types/registry.js +0 -1
  269. package/dist/semantic-types/resolve-schema.js +0 -1
  270. package/dist/semantic-types/validate-resolved-schema.js +0 -1
  271. package/dist/utils/clone.js +0 -1
  272. /package/dist/operators/builtins/{period-boundary.d.ts → period-boundary-expression.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
1
  import type { SemanticDBPlugin } from '../plugins/index';
2
2
  import type { SemanticTypeRegistry } from './registry';
3
3
  import type { ResolvedSemanticSchema, SemanticSchemaDraft } from './types';
4
- export declare const resolveSchema: (schema: SemanticSchemaDraft, registry: SemanticTypeRegistry, externalPlugins?: readonly SemanticDBPlugin[]) => ResolvedSemanticSchema;
4
+ export declare const resolveSchema: (inputSchema: SemanticSchemaDraft, registry: SemanticTypeRegistry, externalPlugins?: readonly SemanticDBPlugin[]) => ResolvedSemanticSchema;
@@ -1,8 +1,14 @@
1
1
  import type { PropertyTypeDraft, SchemaTypeDraft } from 'semanticdb-core';
2
2
  import type { LogicformType, PredItemType } from '../logicform-types';
3
- export type PrimalType = 'string' | 'number' | 'boolean' | 'date' | 'object';
3
+ /** Canonical primitive types use `entity`; `object` remains a legacy input alias. */
4
+ export type PrimalType = 'string' | 'number' | 'boolean' | 'date' | 'entity' | 'object';
4
5
  export type TimeGranularity = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
5
- export type TemporalSemantics = 'normal' | 'snapshot';
6
+ export type TimeWatermarkPolicy = {
7
+ readonly type: 'database_latest';
8
+ } | {
9
+ readonly type: 'now_offset';
10
+ readonly offset: number;
11
+ };
6
12
  export interface PropertySqlDefinition {
7
13
  readonly sql: string;
8
14
  }
@@ -10,6 +16,11 @@ export interface ComparableCategoryDefinition {
10
16
  readonly values: readonly string[];
11
17
  readonly direction: 1 | -1;
12
18
  }
19
+ /** Same-Schema Property drill metadata. `up` is the single-valued side. */
20
+ export interface PropertyHierarchyDefinition {
21
+ readonly up?: string;
22
+ readonly down?: string;
23
+ }
13
24
  /** Extension point for plugin-owned Schema draft metadata. */
14
25
  export interface SemanticSchemaMetadata {
15
26
  }
@@ -19,7 +30,7 @@ export interface ResolvedSemanticSchemaMetadata {
19
30
  /** Extension point for legacy plugin metadata removed from the canonical Schema shape. */
20
31
  export interface LegacySemanticSchemaMetadata {
21
32
  }
22
- export interface SemanticPropertyDraft extends Omit<PropertyTypeDraft, '_id' | '_sid' | 'id' | 'sid' | 'type' | 'primal_type' | 'isArray' | 'granularity' | 'is_observation' | 'is_snapshot' | 'temporalSemantics' | 'is_dynamic' | 'udf' | 'is_comparable' | 'comparable_order'> {
33
+ export interface SemanticPropertyDraft extends Omit<PropertyTypeDraft, '_id' | '_sid' | 'id' | 'sid' | 'type' | 'primal_type' | 'isArray' | 'granularity' | 'is_observation' | 'is_snapshot' | 'temporalSemantics' | 'is_dynamic' | 'udf' | 'is_comparable' | 'comparable_order' | 'hierarchy'> {
23
34
  readonly id?: string;
24
35
  readonly type: string;
25
36
  readonly primal_type?: PrimalType;
@@ -39,24 +50,21 @@ export interface ResolvedSemanticProperty extends Omit<SemanticPropertyDraft, 'i
39
50
  export interface SemanticSchemaDraft extends Omit<SchemaTypeDraft, '_id' | 'id' | 'sid' | 'properties' | 'db' | 'from' | 'fromSQL' | 'projections' | keyof SemanticSchemaMetadata | keyof LegacySemanticSchemaMetadata>, SemanticSchemaMetadata {
40
51
  readonly [key: string]: unknown;
41
52
  readonly id: string;
53
+ /** Marks the single Schema whose complete rows are loaded as calendar execution context. */
54
+ readonly is_calendar?: boolean;
42
55
  readonly properties: readonly SemanticPropertyDraft[];
43
- readonly temporalSemantics?: TemporalSemantics;
44
- /** Property that stores the parent node id for recursive tree queries. */
45
- readonly parentProperty?: string;
46
56
  }
47
57
  export interface ResolvedSemanticSchema extends Omit<SchemaTypeDraft, '_id' | 'id' | 'sid' | 'properties' | 'db' | 'from' | 'fromSQL' | 'projections' | keyof SemanticSchemaMetadata | keyof LegacySemanticSchemaMetadata>, ResolvedSemanticSchemaMetadata {
48
58
  readonly [key: string]: unknown;
49
59
  readonly id: string;
60
+ readonly is_calendar?: boolean;
50
61
  readonly properties: readonly ResolvedSemanticProperty[];
51
- readonly temporalSemantics?: TemporalSemantics;
52
- /** Canonical logical name of the parent Property used by recursive tree queries. */
53
- readonly parentProperty?: string;
54
62
  }
55
63
  export interface SemanticTypeNormalizeContext {
56
64
  readonly schema: ResolvedSemanticSchema;
57
65
  readonly property: ResolvedSemanticProperty;
58
66
  readonly now: Date;
59
- readonly requestLatestDataDate: () => Promise<Date | undefined>;
67
+ readonly requestTimeWatermark: (requestedUpperBound: Date) => Promise<Date | undefined>;
60
68
  }
61
69
  /** Context used when deciding whether a value must be evaluated per time period. */
62
70
  export interface SemanticPeriodEvaluationContext {
@@ -81,6 +89,10 @@ export interface SemanticTypeResultContext {
81
89
  export interface SemanticTypeDefinition {
82
90
  readonly name: string;
83
91
  readonly primalType: PrimalType;
92
+ /** Semantic types with an intrinsic array container, such as tag. */
93
+ readonly isArray?: true;
94
+ /** Normalize a complete physical value before per-element result hydration. */
95
+ readonly normalizeResult?: (value: unknown, context: SemanticTypeResultContext) => unknown;
84
96
  readonly validateProperty?: (property: ResolvedSemanticProperty) => void;
85
97
  /** Whether this semantic property requires one evaluation per time bucket. */
86
98
  readonly requiresPerPeriodEvaluation?: (context: SemanticPeriodEvaluationContext) => boolean;
@@ -1,6 +1,3 @@
1
- import type { ResolvedSemanticProperty, TemporalSemantics } from './types';
1
+ import type { ResolvedSemanticProperty } from './types';
2
2
  /** Validates invariants that require the complete set of resolved Properties. */
3
- export declare const validateResolvedSchema: (properties: readonly ResolvedSemanticProperty[], options?: {
4
- readonly temporalSemantics?: TemporalSemantics;
5
- readonly schemaId?: string;
6
- }) => void;
3
+ export declare const validateResolvedSchema: (properties: readonly ResolvedSemanticProperty[]) => void;