data-finder-ts 0.1.0 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -55
- package/dist/chunk-4JVW4TAB.js +180 -0
- package/dist/chunk-4JVW4TAB.js.map +1 -0
- package/dist/chunk-4LNZV6EN.js +500 -0
- package/dist/chunk-4LNZV6EN.js.map +1 -0
- package/dist/chunk-FJYA2ASS.js +136 -0
- package/dist/chunk-FJYA2ASS.js.map +1 -0
- package/dist/chunk-FLEIUDZZ.js +14 -0
- package/dist/chunk-FLEIUDZZ.js.map +1 -0
- package/dist/chunk-MH4XMYVB.js +696 -0
- package/dist/chunk-MH4XMYVB.js.map +1 -0
- package/dist/chunk-PMPLCEWQ.js +90 -0
- package/dist/chunk-PMPLCEWQ.js.map +1 -0
- package/dist/chunk-UYMOE6YU.js +509 -0
- package/dist/chunk-UYMOE6YU.js.map +1 -0
- package/dist/datafinder/attribute.cjs +320 -0
- package/dist/datafinder/attribute.cjs.map +1 -0
- package/dist/datafinder/attribute.d.cts +86 -0
- package/dist/datafinder/attribute.d.ts +86 -0
- package/dist/datafinder/attribute.js +8 -0
- package/dist/datafinder/attribute.js.map +1 -0
- package/dist/datafinder/finder-registry.cjs +39 -0
- package/dist/datafinder/finder-registry.cjs.map +1 -0
- package/dist/datafinder/finder-registry.d.cts +4 -0
- package/dist/datafinder/finder-registry.d.ts +4 -0
- package/dist/datafinder/finder-registry.js +9 -0
- package/dist/datafinder/finder-registry.js.map +1 -0
- package/dist/datafinder/runner.cjs +1595 -0
- package/dist/datafinder/runner.cjs.map +1 -0
- package/dist/datafinder/runner.d.cts +44 -0
- package/dist/datafinder/runner.d.ts +44 -0
- package/dist/datafinder/runner.js +26 -0
- package/dist/datafinder/runner.js.map +1 -0
- package/dist/datafinder/sql-generator.cjs +1467 -0
- package/dist/datafinder/sql-generator.cjs.map +1 -0
- package/dist/datafinder/sql-generator.d.cts +8 -0
- package/dist/datafinder/sql-generator.d.ts +8 -0
- package/dist/datafinder/sql-generator.js +15 -0
- package/dist/datafinder/sql-generator.js.map +1 -0
- package/dist/datafinder/typed-attributes.cjs +909 -0
- package/dist/datafinder/typed-attributes.cjs.map +1 -0
- package/dist/datafinder/typed-attributes.d.cts +242 -0
- package/dist/datafinder/typed-attributes.d.ts +242 -0
- package/dist/datafinder/typed-attributes.js +25 -0
- package/dist/datafinder/typed-attributes.js.map +1 -0
- package/dist/index.cjs +2153 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +28 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +199 -0
- package/dist/index.js.map +1 -0
- package/dist/model/milestoning.cjs +145 -0
- package/dist/model/milestoning.cjs.map +1 -0
- package/dist/model/milestoning.d.cts +40 -0
- package/dist/model/milestoning.d.ts +40 -0
- package/dist/model/milestoning.js +18 -0
- package/dist/model/milestoning.js.map +1 -0
- package/dist/model/relational.cjs +579 -0
- package/dist/model/relational.cjs.map +1 -0
- package/dist/model/relational.d.cts +291 -0
- package/dist/model/relational.d.ts +291 -0
- package/dist/model/relational.js +99 -0
- package/dist/model/relational.js.map +1 -0
- package/package.json +6 -4
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/model/milestoning.ts
|
|
21
|
+
var milestoning_exports = {};
|
|
22
|
+
__export(milestoning_exports, {
|
|
23
|
+
BiTemporalColumns: () => BiTemporalColumns,
|
|
24
|
+
BusinessDateAndProcessingTemporalColumns: () => BusinessDateAndProcessingTemporalColumns,
|
|
25
|
+
MilestonedTable: () => MilestonedTable,
|
|
26
|
+
MilestoningColumns: () => MilestoningColumns,
|
|
27
|
+
ProcessingTemporalColumns: () => ProcessingTemporalColumns,
|
|
28
|
+
SingleBusinessDateColumn: () => SingleBusinessDateColumn
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(milestoning_exports);
|
|
31
|
+
|
|
32
|
+
// src/model/relational.ts
|
|
33
|
+
var Table = class {
|
|
34
|
+
constructor(name, columns, schema) {
|
|
35
|
+
this.name = name;
|
|
36
|
+
this.schema = schema;
|
|
37
|
+
for (const col of columns) {
|
|
38
|
+
if (this._columnsByName.has(col.name)) {
|
|
39
|
+
throw new Error(`Duplicate column name '${col.name}' in table '${name}'`);
|
|
40
|
+
}
|
|
41
|
+
this._columnsByName.set(col.name, col);
|
|
42
|
+
col.table = this;
|
|
43
|
+
}
|
|
44
|
+
schema?.tables.push(this);
|
|
45
|
+
}
|
|
46
|
+
name;
|
|
47
|
+
schema;
|
|
48
|
+
_columnsByName = /* @__PURE__ */ new Map();
|
|
49
|
+
foreignKeys = [];
|
|
50
|
+
get columns() {
|
|
51
|
+
return Array.from(this._columnsByName.values());
|
|
52
|
+
}
|
|
53
|
+
get qualifiedName() {
|
|
54
|
+
if (!this.schema) return this.name;
|
|
55
|
+
if (!this.schema.datastore) return `${this.schema.name}.${this.name}`;
|
|
56
|
+
return `${this.schema.datastore.namespace(this.schema.name)}.${this.name}`;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// src/model/milestoning.ts
|
|
61
|
+
var MilestoningColumns = class {
|
|
62
|
+
};
|
|
63
|
+
var ProcessingTemporalColumns = class extends MilestoningColumns {
|
|
64
|
+
constructor(startAtColumn, endAtColumn, infiniteDatetime) {
|
|
65
|
+
super();
|
|
66
|
+
this.startAtColumn = startAtColumn;
|
|
67
|
+
this.endAtColumn = endAtColumn;
|
|
68
|
+
this.infiniteDatetime = infiniteDatetime;
|
|
69
|
+
}
|
|
70
|
+
startAtColumn;
|
|
71
|
+
endAtColumn;
|
|
72
|
+
infiniteDatetime;
|
|
73
|
+
columns() {
|
|
74
|
+
return [this.startAtColumn, this.endAtColumn];
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var SingleBusinessDateColumn = class extends MilestoningColumns {
|
|
78
|
+
constructor(businessDateColumn) {
|
|
79
|
+
super();
|
|
80
|
+
this.businessDateColumn = businessDateColumn;
|
|
81
|
+
}
|
|
82
|
+
businessDateColumn;
|
|
83
|
+
columns() {
|
|
84
|
+
return [this.businessDateColumn];
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
var BusinessDateAndProcessingTemporalColumns = class extends MilestoningColumns {
|
|
88
|
+
constructor(businessDateColumn, startAtColumn, endAtColumn, infiniteDatetime) {
|
|
89
|
+
super();
|
|
90
|
+
this.businessDateColumn = businessDateColumn;
|
|
91
|
+
this.startAtColumn = startAtColumn;
|
|
92
|
+
this.endAtColumn = endAtColumn;
|
|
93
|
+
this.infiniteDatetime = infiniteDatetime;
|
|
94
|
+
}
|
|
95
|
+
businessDateColumn;
|
|
96
|
+
startAtColumn;
|
|
97
|
+
endAtColumn;
|
|
98
|
+
infiniteDatetime;
|
|
99
|
+
columns() {
|
|
100
|
+
return [this.businessDateColumn, this.startAtColumn, this.endAtColumn];
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
var BiTemporalColumns = class extends MilestoningColumns {
|
|
104
|
+
constructor(businessDateFromColumn, businessDateToColumn, startAtColumn, endAtColumn, infiniteDatetime) {
|
|
105
|
+
super();
|
|
106
|
+
this.businessDateFromColumn = businessDateFromColumn;
|
|
107
|
+
this.businessDateToColumn = businessDateToColumn;
|
|
108
|
+
this.startAtColumn = startAtColumn;
|
|
109
|
+
this.endAtColumn = endAtColumn;
|
|
110
|
+
this.infiniteDatetime = infiniteDatetime;
|
|
111
|
+
}
|
|
112
|
+
businessDateFromColumn;
|
|
113
|
+
businessDateToColumn;
|
|
114
|
+
startAtColumn;
|
|
115
|
+
endAtColumn;
|
|
116
|
+
infiniteDatetime;
|
|
117
|
+
columns() {
|
|
118
|
+
return [
|
|
119
|
+
this.businessDateFromColumn,
|
|
120
|
+
this.businessDateToColumn,
|
|
121
|
+
this.startAtColumn,
|
|
122
|
+
this.endAtColumn
|
|
123
|
+
];
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
var MilestonedTable = class extends Table {
|
|
127
|
+
constructor(name, columns, milestoningColumns, schema) {
|
|
128
|
+
super(name, columns, schema);
|
|
129
|
+
this.milestoningColumns = milestoningColumns;
|
|
130
|
+
for (const col of milestoningColumns.columns()) {
|
|
131
|
+
col.table = this;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
milestoningColumns;
|
|
135
|
+
};
|
|
136
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
137
|
+
0 && (module.exports = {
|
|
138
|
+
BiTemporalColumns,
|
|
139
|
+
BusinessDateAndProcessingTemporalColumns,
|
|
140
|
+
MilestonedTable,
|
|
141
|
+
MilestoningColumns,
|
|
142
|
+
ProcessingTemporalColumns,
|
|
143
|
+
SingleBusinessDateColumn
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=milestoning.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/model/milestoning.ts","../../src/model/relational.ts"],"sourcesContent":["import { Column, Table, Schema } from './relational';\n\nexport abstract class MilestoningColumns {\n abstract columns(): Column[];\n}\n\nexport class ProcessingTemporalColumns extends MilestoningColumns {\n constructor(\n readonly startAtColumn: Column,\n readonly endAtColumn: Column,\n readonly infiniteDatetime?: string,\n ) { super(); }\n\n columns(): Column[] { return [this.startAtColumn, this.endAtColumn]; }\n}\n\nexport class SingleBusinessDateColumn extends MilestoningColumns {\n constructor(readonly businessDateColumn: Column) { super(); }\n\n columns(): Column[] { return [this.businessDateColumn]; }\n}\n\nexport class BusinessDateAndProcessingTemporalColumns extends MilestoningColumns {\n constructor(\n readonly businessDateColumn: Column,\n readonly startAtColumn: Column,\n readonly endAtColumn: Column,\n readonly infiniteDatetime?: string,\n ) { super(); }\n\n columns(): Column[] {\n return [this.businessDateColumn, this.startAtColumn, this.endAtColumn];\n }\n}\n\nexport class BiTemporalColumns extends MilestoningColumns {\n constructor(\n readonly businessDateFromColumn: Column,\n readonly businessDateToColumn: Column,\n readonly startAtColumn: Column,\n readonly endAtColumn: Column,\n readonly infiniteDatetime?: string,\n ) { super(); }\n\n columns(): Column[] {\n return [\n this.businessDateFromColumn,\n this.businessDateToColumn,\n this.startAtColumn,\n this.endAtColumn,\n ];\n }\n}\n\nexport class MilestonedTable extends Table {\n constructor(\n name: string,\n columns: Column[],\n readonly milestoningColumns: MilestoningColumns,\n schema?: Schema,\n ) {\n super(name, columns, schema);\n for (const col of milestoningColumns.columns()) {\n col.table = this;\n }\n }\n}\n","export enum ComparisonOperator {\n EQUAL = 'EQUAL',\n NOT_EQUAL = 'NOT_EQUAL',\n LESS_THAN = 'LESS_THAN',\n GREATER_THAN = 'GREATER_THAN',\n LESS_THAN_OR_EQUAL_TO = 'LESS_THAN_OR_EQUAL_TO',\n GREATER_THAN_OR_EQUAL_TO = 'GREATER_THAN_OR_EQUAL_TO',\n LIKE = 'LIKE',\n NOT_LIKE = 'NOT_LIKE',\n}\n\nexport enum LogicalOperator {\n AND = 'AND',\n OR = 'OR',\n}\n\nexport enum AggregateOperator {\n COUNT = 'COUNT',\n SUM = 'SUM',\n MIN = 'MIN',\n MAX = 'MAX',\n AVERAGE = 'AVERAGE',\n}\n\nexport enum ScalarFunction {\n ABS = 'ABS',\n CEILING = 'CEILING',\n FLOOR = 'FLOOR',\n MOD = 'MOD',\n POWER = 'POWER',\n SQRT = 'SQRT',\n ROUND = 'ROUND',\n UPPER = 'UPPER',\n LOWER = 'LOWER',\n TRIM = 'TRIM',\n LTRIM = 'LTRIM',\n RTRIM = 'RTRIM',\n LENGTH = 'LENGTH',\n REVERSE = 'REVERSE',\n LEFT = 'LEFT',\n RIGHT = 'RIGHT',\n REPEAT = 'REPEAT',\n REPLACE = 'REPLACE',\n SUBSTRING = 'SUBSTRING',\n}\n\nexport enum DatePart {\n YEAR = 'YEAR',\n MONTH = 'MONTH',\n DAY = 'DAY',\n HOUR = 'HOUR',\n MINUTE = 'MINUTE',\n SECOND = 'SECOND',\n QUARTER = 'QUARTER',\n WEEK = 'WEEK',\n DOW = 'DOW',\n}\n\nexport enum SortDirection {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\nexport abstract class RelationalOperationElement {}\n\nexport abstract class Operation extends RelationalOperationElement {\n andOp(other: RelationalOperationElement): Operation {\n return new LogicalOperation(this, LogicalOperator.AND, other);\n }\n}\n\nexport class NoOperation extends Operation {\n andOp(other: RelationalOperationElement): Operation {\n return other as Operation;\n }\n}\n\nexport abstract class ConstantOperation extends RelationalOperationElement {}\n\nexport class IntegerConstantOperation extends ConstantOperation {\n constructor(readonly value: number) { super(); }\n}\n\nexport class FloatConstantOperation extends ConstantOperation {\n constructor(readonly value: number) { super(); }\n}\n\nexport class StringConstantOperation extends ConstantOperation {\n constructor(readonly value: string) { super(); }\n}\n\nexport class DateConstantOperation extends ConstantOperation {\n constructor(readonly value: Date) { super(); }\n}\n\nexport class DateTimeConstantOperation extends ConstantOperation {\n constructor(readonly value: Date) { super(); }\n}\n\nexport class DecimalConstantOperation extends ConstantOperation {\n constructor(readonly value: number) { super(); }\n}\n\nexport class BooleanConstantOperation extends ConstantOperation {\n constructor(readonly value: boolean) { super(); }\n}\n\nexport abstract class UnaryOperation extends Operation {\n constructor(readonly element: RelationalOperationElement) { super(); }\n}\n\nexport abstract class BinaryOperation extends Operation {\n constructor(\n readonly left: RelationalOperationElement,\n readonly right: RelationalOperationElement,\n ) { super(); }\n}\n\nexport class IsNullOperation extends UnaryOperation {}\n\nexport class IsNotNullOperation extends UnaryOperation {}\n\nexport class ComparisonOperation extends BinaryOperation {\n constructor(\n left: RelationalOperationElement,\n readonly operator: ComparisonOperator,\n right: RelationalOperationElement,\n ) { super(left, right); }\n}\n\nexport class LogicalOperation extends BinaryOperation {\n constructor(\n left: RelationalOperationElement,\n readonly operator: LogicalOperator,\n right: RelationalOperationElement,\n ) { super(left, right); }\n}\n\nexport class WindowSpecification {\n constructor(\n readonly partitionBy: RelationalOperationElement[] = [],\n readonly orderBy: SortOperation[] = [],\n ) {}\n}\n\nexport class AggregateOperation extends UnaryOperation {\n constructor(\n element: RelationalOperationElement,\n readonly operator: AggregateOperator,\n readonly displayName?: string,\n readonly window?: WindowSpecification,\n ) { super(element); }\n\n over(partitionBy?: RelationalOperationElement[], orderBy?: SortOperation[]): AggregateOperation {\n return new AggregateOperation(this.element, this.operator, this.displayName,\n new WindowSpecification(partitionBy ?? [], orderBy ?? []));\n }\n}\n\nexport enum WindowFunction {\n ROW_NUMBER = 'ROW_NUMBER',\n RANK = 'RANK',\n DENSE_RANK = 'DENSE_RANK',\n NTILE = 'NTILE',\n LAG = 'LAG',\n LEAD = 'LEAD',\n FIRST_VALUE = 'FIRST_VALUE',\n LAST_VALUE = 'LAST_VALUE',\n CUME_DIST = 'CUME_DIST',\n PERCENT_RANK = 'PERCENT_RANK',\n}\n\nexport class WindowFunctionOperation extends UnaryOperation {\n constructor(\n element: RelationalOperationElement | null,\n readonly func: WindowFunction,\n readonly displayName?: string,\n readonly secondArg?: number,\n readonly extraArgs: (string | number)[] = [],\n readonly window?: WindowSpecification,\n ) { super(element as RelationalOperationElement); }\n\n over(partitionBy?: RelationalOperationElement[], orderBy?: SortOperation[]): WindowFunctionOperation {\n return new WindowFunctionOperation(this.element, this.func, this.displayName, this.secondArg,\n [...this.extraArgs], new WindowSpecification(partitionBy ?? [], orderBy ?? []));\n }\n}\n\nexport class ScalarFunctionOperation extends UnaryOperation {\n constructor(\n element: RelationalOperationElement,\n readonly func: ScalarFunction,\n readonly displayName?: string,\n readonly secondArg?: number,\n readonly extraArgs: (string | number)[] = [],\n ) { super(element); }\n}\n\nexport class DateExtractOperation extends UnaryOperation {\n constructor(\n element: RelationalOperationElement,\n readonly part: DatePart,\n readonly displayName?: string,\n ) { super(element); }\n}\n\nexport class DateArithmeticOperation extends UnaryOperation {\n constructor(\n element: RelationalOperationElement,\n readonly n: number,\n readonly unit: DatePart,\n readonly isAdd: boolean = true,\n readonly displayName?: string,\n ) { super(element); }\n}\n\nexport class DateDiffOperation extends UnaryOperation {\n constructor(\n element: RelationalOperationElement,\n readonly other: Date,\n readonly unit: DatePart,\n readonly displayName?: string,\n ) { super(element); }\n}\n\nexport class Column extends RelationalOperationElement {\n table?: Table;\n\n constructor(\n readonly name: string,\n readonly type: string,\n readonly owner?: string,\n readonly primaryKey: boolean = false,\n ) { super(); }\n}\n\nexport class ForeignKey {\n constructor(readonly column: Column, readonly references: Column) {}\n}\n\nexport abstract class DataStore {\n readonly schemas: Schema[] = [];\n\n constructor(readonly name: string) {}\n\n abstract namespace(schemaName: string): string;\n}\n\nexport class Database extends DataStore {\n constructor(name: string, readonly location?: string) { super(name); }\n\n namespace(schemaName: string): string { return schemaName; }\n}\n\nexport class DataCatalog extends DataStore {\n constructor(name: string) { super(name); }\n\n namespace(schemaName: string): string { return `${this.name}.${schemaName}`; }\n}\n\nexport class Schema {\n readonly tables: Table[] = [];\n\n constructor(readonly name: string, readonly datastore?: DataStore) {\n datastore?.schemas.push(this);\n }\n}\n\nexport class Table {\n private readonly _columnsByName: Map<string, Column> = new Map();\n readonly foreignKeys: ForeignKey[] = [];\n\n constructor(readonly name: string, columns: Column[], readonly schema?: Schema) {\n for (const col of columns) {\n if (this._columnsByName.has(col.name)) {\n throw new Error(`Duplicate column name '${col.name}' in table '${name}'`);\n }\n this._columnsByName.set(col.name, col);\n col.table = this;\n }\n schema?.tables.push(this);\n }\n\n get columns(): Column[] {\n return Array.from(this._columnsByName.values());\n }\n\n get qualifiedName(): string {\n if (!this.schema) return this.name;\n if (!this.schema.datastore) return `${this.schema.name}.${this.name}`;\n return `${this.schema.datastore.namespace(this.schema.name)}.${this.name}`;\n }\n}\n\nexport class JoinOperation {\n filter?: RelationalOperationElement;\n /** Property-equality filters on the join target (property id -> value), set by a related finder given a filter. */\n filterKwargs: Record<string, unknown> = {};\n /** Maps property ids to [column, type, table] for `filterKwargs`. */\n filterColumnMap: Record<string, [string, string, string]> = {};\n\n constructor(\n readonly name: string,\n readonly target: Table,\n readonly left: Column,\n readonly right: Column,\n filter?: RelationalOperationElement,\n ) {\n this.filter = filter;\n }\n}\n\nexport class JoinTreeNodeOperation {\n constructor(\n readonly join: JoinOperation,\n readonly parent?: JoinTreeNodeOperation,\n ) {}\n}\n\nexport class ColumnWithJoin extends RelationalOperationElement {\n /**\n * `embedded` is an alternate reference to a flat (denormalized) column on the owning table that\n * holds the same value without the join; the SQL generator uses it when the join can be elided.\n */\n constructor(\n readonly column: Column,\n readonly parent?: JoinTreeNodeOperation,\n readonly embedded?: ColumnWithJoin,\n ) { super(); }\n}\n\nexport class SortOperation {\n constructor(\n readonly column: ColumnWithJoin,\n readonly direction: SortDirection,\n ) {}\n}\n\nexport class CountAllOperation extends RelationalOperationElement {\n constructor(readonly table: string) { super(); }\n}\n\nexport class Alias extends RelationalOperationElement {\n constructor(readonly element: RelationalOperationElement, readonly name: string) { super(); }\n}\n\n/** Returned by `RelatedFinder.exists()`. A backend translates it to a join-presence check. */\nexport class ExistsOperation extends RelationalOperationElement {\n constructor(readonly node: JoinTreeNodeOperation) { super(); }\n\n andOp(other: RelationalOperationElement): LogicalOperation {\n return new LogicalOperation(this, LogicalOperator.AND, other);\n }\n}\n\n/** Returned by `RelatedFinder.notExists()`. A backend translates it to a join-absence check. */\nexport class NotExistsOperation extends RelationalOperationElement {\n constructor(readonly node: JoinTreeNodeOperation) { super(); }\n\n andOp(other: RelationalOperationElement): LogicalOperation {\n return new LogicalOperation(this, LogicalOperator.AND, other);\n }\n}\n\nexport class SelectOperation {\n constructor(\n readonly display: RelationalOperationElement[],\n readonly filter: RelationalOperationElement,\n readonly orderBy: SortOperation[] = [],\n readonly groupBy: RelationalOperationElement[] = [],\n readonly limit?: number,\n readonly table?: Table,\n /**\n * Extra ON conditions for this query's joins (milestoning and property filters), keyed by join node.\n * Held here rather than on the shared JoinOperation, so queries that use the same node can't affect each other.\n */\n readonly joinFilters: ReadonlyMap<JoinTreeNodeOperation, Operation> = new Map(),\n ) {}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC4QO,IAAM,QAAN,MAAY;AAAA,EAIjB,YAAqB,MAAc,SAA4B,QAAiB;AAA3D;AAA0C;AAC7D,eAAW,OAAO,SAAS;AACzB,UAAI,KAAK,eAAe,IAAI,IAAI,IAAI,GAAG;AACrC,cAAM,IAAI,MAAM,0BAA0B,IAAI,IAAI,eAAe,IAAI,GAAG;AAAA,MAC1E;AACA,WAAK,eAAe,IAAI,IAAI,MAAM,GAAG;AACrC,UAAI,QAAQ;AAAA,IACd;AACA,YAAQ,OAAO,KAAK,IAAI;AAAA,EAC1B;AAAA,EATqB;AAAA,EAA0C;AAAA,EAH9C,iBAAsC,oBAAI,IAAI;AAAA,EACtD,cAA4B,CAAC;AAAA,EAatC,IAAI,UAAoB;AACtB,WAAO,MAAM,KAAK,KAAK,eAAe,OAAO,CAAC;AAAA,EAChD;AAAA,EAEA,IAAI,gBAAwB;AAC1B,QAAI,CAAC,KAAK,OAAQ,QAAO,KAAK;AAC9B,QAAI,CAAC,KAAK,OAAO,UAAW,QAAO,GAAG,KAAK,OAAO,IAAI,IAAI,KAAK,IAAI;AACnE,WAAO,GAAG,KAAK,OAAO,UAAU,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI;AAAA,EAC1E;AACF;;;ADlSO,IAAe,qBAAf,MAAkC;AAEzC;AAEO,IAAM,4BAAN,cAAwC,mBAAmB;AAAA,EAChE,YACW,eACA,aACA,kBACT;AAAE,UAAM;AAHC;AACA;AACA;AAAA,EACE;AAAA,EAHF;AAAA,EACA;AAAA,EACA;AAAA,EAGX,UAAoB;AAAE,WAAO,CAAC,KAAK,eAAe,KAAK,WAAW;AAAA,EAAG;AACvE;AAEO,IAAM,2BAAN,cAAuC,mBAAmB;AAAA,EAC/D,YAAqB,oBAA4B;AAAE,UAAM;AAApC;AAAA,EAAuC;AAAA,EAAvC;AAAA,EAErB,UAAoB;AAAE,WAAO,CAAC,KAAK,kBAAkB;AAAA,EAAG;AAC1D;AAEO,IAAM,2CAAN,cAAuD,mBAAmB;AAAA,EAC/E,YACW,oBACA,eACA,aACA,kBACT;AAAE,UAAM;AAJC;AACA;AACA;AACA;AAAA,EACE;AAAA,EAJF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGX,UAAoB;AAClB,WAAO,CAAC,KAAK,oBAAoB,KAAK,eAAe,KAAK,WAAW;AAAA,EACvE;AACF;AAEO,IAAM,oBAAN,cAAgC,mBAAmB;AAAA,EACxD,YACW,wBACA,sBACA,eACA,aACA,kBACT;AAAE,UAAM;AALC;AACA;AACA;AACA;AACA;AAAA,EACE;AAAA,EALF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGX,UAAoB;AAClB,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AACF;AAEO,IAAM,kBAAN,cAA8B,MAAM;AAAA,EACzC,YACE,MACA,SACS,oBACT,QACA;AACA,UAAM,MAAM,SAAS,MAAM;AAHlB;AAIT,eAAW,OAAO,mBAAmB,QAAQ,GAAG;AAC9C,UAAI,QAAQ;AAAA,IACd;AAAA,EACF;AAAA,EAPW;AAQb;","names":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Column, Table, Schema } from './relational.cjs';
|
|
2
|
+
|
|
3
|
+
declare abstract class MilestoningColumns {
|
|
4
|
+
abstract columns(): Column[];
|
|
5
|
+
}
|
|
6
|
+
declare class ProcessingTemporalColumns extends MilestoningColumns {
|
|
7
|
+
readonly startAtColumn: Column;
|
|
8
|
+
readonly endAtColumn: Column;
|
|
9
|
+
readonly infiniteDatetime?: string | undefined;
|
|
10
|
+
constructor(startAtColumn: Column, endAtColumn: Column, infiniteDatetime?: string | undefined);
|
|
11
|
+
columns(): Column[];
|
|
12
|
+
}
|
|
13
|
+
declare class SingleBusinessDateColumn extends MilestoningColumns {
|
|
14
|
+
readonly businessDateColumn: Column;
|
|
15
|
+
constructor(businessDateColumn: Column);
|
|
16
|
+
columns(): Column[];
|
|
17
|
+
}
|
|
18
|
+
declare class BusinessDateAndProcessingTemporalColumns extends MilestoningColumns {
|
|
19
|
+
readonly businessDateColumn: Column;
|
|
20
|
+
readonly startAtColumn: Column;
|
|
21
|
+
readonly endAtColumn: Column;
|
|
22
|
+
readonly infiniteDatetime?: string | undefined;
|
|
23
|
+
constructor(businessDateColumn: Column, startAtColumn: Column, endAtColumn: Column, infiniteDatetime?: string | undefined);
|
|
24
|
+
columns(): Column[];
|
|
25
|
+
}
|
|
26
|
+
declare class BiTemporalColumns extends MilestoningColumns {
|
|
27
|
+
readonly businessDateFromColumn: Column;
|
|
28
|
+
readonly businessDateToColumn: Column;
|
|
29
|
+
readonly startAtColumn: Column;
|
|
30
|
+
readonly endAtColumn: Column;
|
|
31
|
+
readonly infiniteDatetime?: string | undefined;
|
|
32
|
+
constructor(businessDateFromColumn: Column, businessDateToColumn: Column, startAtColumn: Column, endAtColumn: Column, infiniteDatetime?: string | undefined);
|
|
33
|
+
columns(): Column[];
|
|
34
|
+
}
|
|
35
|
+
declare class MilestonedTable extends Table {
|
|
36
|
+
readonly milestoningColumns: MilestoningColumns;
|
|
37
|
+
constructor(name: string, columns: Column[], milestoningColumns: MilestoningColumns, schema?: Schema);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { BiTemporalColumns, BusinessDateAndProcessingTemporalColumns, MilestonedTable, MilestoningColumns, ProcessingTemporalColumns, SingleBusinessDateColumn };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Column, Table, Schema } from './relational.js';
|
|
2
|
+
|
|
3
|
+
declare abstract class MilestoningColumns {
|
|
4
|
+
abstract columns(): Column[];
|
|
5
|
+
}
|
|
6
|
+
declare class ProcessingTemporalColumns extends MilestoningColumns {
|
|
7
|
+
readonly startAtColumn: Column;
|
|
8
|
+
readonly endAtColumn: Column;
|
|
9
|
+
readonly infiniteDatetime?: string | undefined;
|
|
10
|
+
constructor(startAtColumn: Column, endAtColumn: Column, infiniteDatetime?: string | undefined);
|
|
11
|
+
columns(): Column[];
|
|
12
|
+
}
|
|
13
|
+
declare class SingleBusinessDateColumn extends MilestoningColumns {
|
|
14
|
+
readonly businessDateColumn: Column;
|
|
15
|
+
constructor(businessDateColumn: Column);
|
|
16
|
+
columns(): Column[];
|
|
17
|
+
}
|
|
18
|
+
declare class BusinessDateAndProcessingTemporalColumns extends MilestoningColumns {
|
|
19
|
+
readonly businessDateColumn: Column;
|
|
20
|
+
readonly startAtColumn: Column;
|
|
21
|
+
readonly endAtColumn: Column;
|
|
22
|
+
readonly infiniteDatetime?: string | undefined;
|
|
23
|
+
constructor(businessDateColumn: Column, startAtColumn: Column, endAtColumn: Column, infiniteDatetime?: string | undefined);
|
|
24
|
+
columns(): Column[];
|
|
25
|
+
}
|
|
26
|
+
declare class BiTemporalColumns extends MilestoningColumns {
|
|
27
|
+
readonly businessDateFromColumn: Column;
|
|
28
|
+
readonly businessDateToColumn: Column;
|
|
29
|
+
readonly startAtColumn: Column;
|
|
30
|
+
readonly endAtColumn: Column;
|
|
31
|
+
readonly infiniteDatetime?: string | undefined;
|
|
32
|
+
constructor(businessDateFromColumn: Column, businessDateToColumn: Column, startAtColumn: Column, endAtColumn: Column, infiniteDatetime?: string | undefined);
|
|
33
|
+
columns(): Column[];
|
|
34
|
+
}
|
|
35
|
+
declare class MilestonedTable extends Table {
|
|
36
|
+
readonly milestoningColumns: MilestoningColumns;
|
|
37
|
+
constructor(name: string, columns: Column[], milestoningColumns: MilestoningColumns, schema?: Schema);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { BiTemporalColumns, BusinessDateAndProcessingTemporalColumns, MilestonedTable, MilestoningColumns, ProcessingTemporalColumns, SingleBusinessDateColumn };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BiTemporalColumns,
|
|
3
|
+
BusinessDateAndProcessingTemporalColumns,
|
|
4
|
+
MilestonedTable,
|
|
5
|
+
MilestoningColumns,
|
|
6
|
+
ProcessingTemporalColumns,
|
|
7
|
+
SingleBusinessDateColumn
|
|
8
|
+
} from "../chunk-PMPLCEWQ.js";
|
|
9
|
+
import "../chunk-UYMOE6YU.js";
|
|
10
|
+
export {
|
|
11
|
+
BiTemporalColumns,
|
|
12
|
+
BusinessDateAndProcessingTemporalColumns,
|
|
13
|
+
MilestonedTable,
|
|
14
|
+
MilestoningColumns,
|
|
15
|
+
ProcessingTemporalColumns,
|
|
16
|
+
SingleBusinessDateColumn
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=milestoning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|