@milaboratories/ptabler-expression-js 1.1.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.
- package/dist/expressions.cjs +867 -0
- package/dist/expressions.cjs.map +1 -0
- package/dist/expressions.d.ts +297 -0
- package/dist/expressions.d.ts.map +1 -0
- package/dist/expressions.js +840 -0
- package/dist/expressions.js.map +1 -0
- package/dist/functions.cjs +180 -0
- package/dist/functions.cjs.map +1 -0
- package/dist/functions.d.ts +80 -0
- package/dist/functions.d.ts.map +1 -0
- package/dist/functions.js +166 -0
- package/dist/functions.js.map +1 -0
- package/dist/index.cjs +47 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +39 -0
- package/src/expressions.ts +944 -0
- package/src/functions.ts +183 -0
- package/src/index.ts +11 -0
- package/src/types.ts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expressions.cjs","sources":["../src/expressions.ts"],"sourcesContent":["/**\n * Base expressionImpl classes and interfaces for PTabler JavaScript implementation\n */\n\nimport type {\n AggregationType,\n BinaryArithmeticExpression,\n BinaryArithmeticOperator,\n BooleanLogicExpression,\n ColumnReferenceExpression,\n ComparisonExpression,\n ComparisonOperator,\n ConstantValueExpression,\n CumsumExpression,\n Expression,\n ExtendedUnaryStringExpression,\n FillNaNExpression,\n FillNullExpression,\n FuzzyFilterDistanceMetric,\n FuzzyStringFilterExpression,\n MinMaxExpression,\n MinMaxOperator,\n NotExpression,\n RankExpression,\n StringContainsExpression,\n StringDistanceExpression,\n StringDistanceMetric,\n StringJoinExpression,\n StringReplaceExpression,\n SubstringExpression,\n UnaryArithmeticExpression,\n UnaryArithmeticOperator,\n WhenThenOtherwiseExpression,\n WindowExpression,\n} from './types';\n\n/**\n * Base abstract class for all expressions\n */\nexport abstract class ExpressionImpl {\n protected _alias?: string;\n\n /**\n * Convert the expressionImpl to JSON format compatible with PTabler schema\n */\n abstract toJSON(): Expression;\n\n /**\n * Get the alias for this expressionImpl (defaults to a generated name)\n */\n abstract getAlias(): string;\n\n /**\n * Set an alias for this expression\n */\n alias(name: string): ExpressionImpl {\n const cloned = this.clone();\n cloned._alias = name;\n return cloned;\n }\n\n /**\n * Clone this expression\n */\n protected abstract clone(): ExpressionImpl;\n\n // Arithmetic operations\n plus(other: ExpressionImpl | number | string): ArithmeticExpressionImpl {\n return new ArithmeticExpressionImpl('plus', this, coerceToExpression(other));\n }\n\n minus(other: ExpressionImpl | number | string): ArithmeticExpressionImpl {\n return new ArithmeticExpressionImpl('minus', this, coerceToExpression(other));\n }\n\n multiply(other: ExpressionImpl | number | string): ArithmeticExpressionImpl {\n return new ArithmeticExpressionImpl('multiply', this, coerceToExpression(other));\n }\n\n truediv(other: ExpressionImpl | number | string): ArithmeticExpressionImpl {\n return new ArithmeticExpressionImpl('truediv', this, coerceToExpression(other));\n }\n\n floordiv(other: ExpressionImpl | number | string): ArithmeticExpressionImpl {\n return new ArithmeticExpressionImpl('floordiv', this, coerceToExpression(other));\n }\n\n // Comparison operations\n gt(other: ExpressionImpl | number | string): ComparisonExpressionImpl {\n return new ComparisonExpressionImpl('gt', this, coerceToExpression(other));\n }\n\n ge(other: ExpressionImpl | number | string): ComparisonExpressionImpl {\n return new ComparisonExpressionImpl('ge', this, coerceToExpression(other));\n }\n\n eq(other: ExpressionImpl | number | string): ComparisonExpressionImpl {\n return new ComparisonExpressionImpl('eq', this, coerceToExpression(other));\n }\n\n lt(other: ExpressionImpl | number | string): ComparisonExpressionImpl {\n return new ComparisonExpressionImpl('lt', this, coerceToExpression(other));\n }\n\n le(other: ExpressionImpl | number | string): ComparisonExpressionImpl {\n return new ComparisonExpressionImpl('le', this, coerceToExpression(other));\n }\n\n neq(other: ExpressionImpl | number | string): ComparisonExpressionImpl {\n return new ComparisonExpressionImpl('neq', this, coerceToExpression(other));\n }\n\n // Logical operations\n and(...others: ExpressionImpl[]): LogicalExpressionImpl {\n return new LogicalExpressionImpl('and', [this, ...others]);\n }\n\n or(...others: ExpressionImpl[]): LogicalExpressionImpl {\n return new LogicalExpressionImpl('or', [this, ...others]);\n }\n\n not(): LogicalExpressionImpl {\n return new LogicalExpressionImpl('not', [this]);\n }\n\n // Unary arithmetic operations\n abs(): UnaryArithmeticExpressionImpl {\n return new UnaryArithmeticExpressionImpl('abs', this);\n }\n\n sqrt(): UnaryArithmeticExpressionImpl {\n return new UnaryArithmeticExpressionImpl('sqrt', this);\n }\n\n log(): UnaryArithmeticExpressionImpl {\n return new UnaryArithmeticExpressionImpl('log', this);\n }\n\n log10(): UnaryArithmeticExpressionImpl {\n return new UnaryArithmeticExpressionImpl('log10', this);\n }\n\n log2(): UnaryArithmeticExpressionImpl {\n return new UnaryArithmeticExpressionImpl('log2', this);\n }\n\n floor(): UnaryArithmeticExpressionImpl {\n return new UnaryArithmeticExpressionImpl('floor', this);\n }\n\n ceil(): UnaryArithmeticExpressionImpl {\n return new UnaryArithmeticExpressionImpl('ceil', this);\n }\n\n round(): UnaryArithmeticExpressionImpl {\n return new UnaryArithmeticExpressionImpl('round', this);\n }\n\n negate(): UnaryArithmeticExpressionImpl {\n return new UnaryArithmeticExpressionImpl('negate', this);\n }\n\n // Null checks\n isNull(): NullCheckExpressionImpl {\n return new NullCheckExpressionImpl('is_na', this);\n }\n\n isNotNull(): NullCheckExpressionImpl {\n return new NullCheckExpressionImpl('is_not_na', this);\n }\n\n // Fill null/NaN\n fillNull(value: ExpressionImpl): FillNullExpressionImpl {\n return new FillNullExpressionImpl(this, coerceToExpression(value));\n }\n\n fillNaN(value: ExpressionImpl): FillNaNExpressionImpl {\n return new FillNaNExpressionImpl(this, coerceToExpression(value));\n }\n\n // String operations\n strConcat(...others: (ExpressionImpl | string)[]): StringConcatExpressionImpl {\n return new StringConcatExpressionImpl([this, ...others.map(coerceToExpression)]);\n }\n\n substring(start: number, length?: number): SubstringExpressionImpl {\n return new SubstringExpressionImpl(this, start, length);\n }\n\n strReplace(pattern: string, value: string, options?: Pick<StringReplaceExpression, 'replaceAll' | 'literal'>): StringReplaceExpressionImpl {\n return new StringReplaceExpressionImpl(this, pattern, value, options);\n }\n\n strContains(pattern: ExpressionImpl | string, literal?: boolean, strict?: boolean): StringContainsExpressionImpl {\n return new StringContainsExpressionImpl(this, coerceToExpression(pattern), literal, strict);\n }\n\n strToUpper(): StringCaseExpressionImpl {\n return new StringCaseExpressionImpl('to_upper', this);\n }\n\n strToLower(): StringCaseExpressionImpl {\n return new StringCaseExpressionImpl('to_lower', this);\n }\n\n strStartsWith(pattern: ExpressionImpl | string): StringStartsWithExpressionImpl {\n return new StringStartsWithExpressionImpl(this, coerceToExpression(pattern));\n }\n\n strEndsWith(pattern: ExpressionImpl | string): StringEndsWithExpressionImpl {\n return new StringEndsWithExpressionImpl(this, coerceToExpression(pattern));\n }\n\n // Aggregation operations\n sum(): AggregationExpressionImpl {\n return new AggregationExpressionImpl('sum', this);\n }\n\n mean(): AggregationExpressionImpl {\n return new AggregationExpressionImpl('mean', this);\n }\n\n count(): AggregationExpressionImpl {\n return new AggregationExpressionImpl('count', this);\n }\n\n min(): AggregationExpressionImpl {\n return new AggregationExpressionImpl('min', this);\n }\n\n max(): AggregationExpressionImpl {\n return new AggregationExpressionImpl('max', this);\n }\n\n first(): AggregationExpressionImpl {\n return new AggregationExpressionImpl('first', this);\n }\n\n last(): AggregationExpressionImpl {\n return new AggregationExpressionImpl('last', this);\n }\n\n cumsum(): CumsumExpressionImpl {\n return new CumsumExpressionImpl(this);\n }\n\n // Fuzzy operations\n stringDistance(other: ExpressionImpl | string, metric: StringDistanceMetric, returnSimilarity?: boolean): StringDistanceExpressionImpl {\n return new StringDistanceExpressionImpl(\n this,\n coerceToExpression(other),\n metric,\n returnSimilarity,\n );\n }\n\n fuzzyStringFilter(pattern: ExpressionImpl | string, metric: FuzzyFilterDistanceMetric, bound: number): FuzzyStringFilterExpressionImpl {\n return new FuzzyStringFilterExpressionImpl(\n this,\n coerceToExpression(pattern),\n metric,\n bound,\n );\n }\n}\n\nexport class ColumnExpressionImpl extends ExpressionImpl {\n constructor(private readonly columnName: string) {\n super();\n }\n\n toJSON(): ColumnReferenceExpression {\n return {\n type: 'col',\n name: this.columnName,\n };\n }\n\n getAlias(): string {\n return this._alias || this.columnName;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new ColumnExpressionImpl(this.columnName);\n cloned._alias = this._alias;\n return cloned;\n }\n\n /**\n * Get the column name\n */\n getColumnName(): string {\n return this.columnName;\n }\n}\n\n/**\n * Helper function to coerce values to expressions\n */\nexport function coerceToExpression(value: ExpressionImpl | LiteralValue): ExpressionImpl {\n if (value instanceof ExpressionImpl) {\n return value;\n }\n return new LiteralExpressionImpl(value);\n}\n\nexport class MinMaxExpressionImpl extends ExpressionImpl {\n constructor(private readonly op: MinMaxOperator, private readonly ops: ExpressionImpl[]) {\n super();\n }\n\n toJSON(): MinMaxExpression {\n return {\n type: this.op,\n operands: this.ops.map((o) => o.toJSON()),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.op}_${this.ops.map((o) => o.getAlias()).join('_')}`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new MinMaxExpressionImpl(this.op, this.ops);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\n// Forward declarations for concrete expressionImpl classes\n// These will be imported from their respective modules\nexport class ArithmeticExpressionImpl extends ExpressionImpl {\n constructor(\n private readonly operator: BinaryArithmeticOperator,\n private readonly lhs: ExpressionImpl,\n private readonly rhs: ExpressionImpl,\n ) {\n super();\n }\n\n toJSON(): BinaryArithmeticExpression {\n return {\n type: this.operator,\n lhs: this.lhs.toJSON(),\n rhs: this.rhs.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.lhs.getAlias()}_${this.operator}_${this.rhs.getAlias()}`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new ArithmeticExpressionImpl(this.operator, this.lhs, this.rhs);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class ComparisonExpressionImpl extends ExpressionImpl {\n constructor(\n private readonly operator: ComparisonOperator,\n private readonly lhs: ExpressionImpl,\n private readonly rhs: ExpressionImpl,\n ) {\n super();\n }\n\n toJSON(): ComparisonExpression {\n return {\n type: this.operator,\n lhs: this.lhs.toJSON(),\n rhs: this.rhs.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.lhs.getAlias()}_${this.operator}_${this.rhs.getAlias()}`;\n }\n\n protected clone(): ComparisonExpressionImpl {\n const cloned = new ComparisonExpressionImpl(this.operator, this.lhs, this.rhs);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class LogicalExpressionImpl extends ExpressionImpl {\n constructor(\n private readonly operator: 'and' | 'or' | 'not',\n private readonly operands: ExpressionImpl[],\n ) {\n super();\n }\n\n toJSON(): NotExpression | BooleanLogicExpression {\n if (this.operator === 'not') {\n return {\n type: 'not',\n value: this.operands[0].toJSON(),\n };\n }\n return {\n type: this.operator,\n operands: this.operands.map((op) => op.toJSON()),\n };\n }\n\n getAlias(): string {\n if (this._alias) return this._alias;\n if (this.operator === 'not') {\n return `not_${this.operands[0].getAlias()}`;\n }\n return this.operands.map((op) => op.getAlias()).join(`_${this.operator}_`);\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new LogicalExpressionImpl(this.operator, this.operands);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class UnaryArithmeticExpressionImpl extends ExpressionImpl {\n constructor(\n private readonly operator: UnaryArithmeticOperator,\n private readonly value: ExpressionImpl,\n ) {\n super();\n }\n\n toJSON(): UnaryArithmeticExpression {\n return {\n type: this.operator,\n value: this.value.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.operator}_${this.value.getAlias()}`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new UnaryArithmeticExpressionImpl(this.operator, this.value);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class NullCheckExpressionImpl extends ExpressionImpl {\n constructor(\n private readonly operator: 'is_na' | 'is_not_na',\n private readonly value: ExpressionImpl,\n ) {\n super();\n }\n\n toJSON(): Expression {\n return {\n type: this.operator,\n value: this.value.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.value.getAlias()}_${this.operator}`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new NullCheckExpressionImpl(this.operator, this.value);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport type LiteralValue = string | number | boolean | null;\n\nexport class LiteralExpressionImpl extends ExpressionImpl {\n constructor(private readonly value: LiteralValue) {\n super();\n }\n\n toJSON(): ConstantValueExpression {\n return {\n type: 'const',\n value: this.value,\n };\n }\n\n getAlias(): string {\n return this._alias || this.generateDefaultAlias();\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new LiteralExpressionImpl(this.value);\n cloned._alias = this._alias;\n return cloned;\n }\n\n /**\n * Get the literal value\n */\n getValue(): string | number | boolean | null {\n return this.value;\n }\n\n /**\n * Generate a default alias based on the value\n */\n private generateDefaultAlias(): string {\n if (this.value === null || this.value === undefined) {\n return 'null';\n }\n if (typeof this.value === 'string') {\n // For string values, truncate if too long and make safe for column names\n const safe = this.value.replace(/[^a-zA-Z0-9_]/g, '_');\n return safe.length > 20 ? safe.substring(0, 17) + '...' : safe;\n }\n if (typeof this.value === 'boolean') {\n return this.value ? 'true' : 'false';\n }\n if (typeof this.value === 'number') {\n return String(this.value);\n }\n if (Array.isArray(this.value)) {\n return 'array';\n }\n if (typeof this.value === 'object') {\n return 'object';\n }\n return 'literal';\n }\n}\n\nexport class FillNullExpressionImpl extends ExpressionImpl {\n constructor(private readonly expr: ExpressionImpl, private readonly fillValue: ExpressionImpl) {\n super();\n }\n\n toJSON(): FillNullExpression {\n return {\n type: 'fill_null',\n input: this.expr.toJSON(),\n fillValue: this.fillValue.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_fill_null`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new FillNullExpressionImpl(this.expr, this.fillValue);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class FillNaNExpressionImpl extends ExpressionImpl {\n constructor(private readonly expr: ExpressionImpl, private readonly fillValue: ExpressionImpl) {\n super();\n }\n\n toJSON(): FillNaNExpression {\n return {\n type: 'fill_nan',\n input: this.expr.toJSON(),\n fillValue: this.fillValue.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_fill_nan`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new FillNaNExpressionImpl(this.expr, this.fillValue);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class StringConcatExpressionImpl extends ExpressionImpl {\n constructor(private readonly operands: ExpressionImpl[], private readonly delimiter: string = '') {\n super();\n }\n\n toJSON(): StringJoinExpression {\n return {\n type: 'str_join',\n operands: this.operands.map((o) => o.toJSON()),\n delimiter: this.delimiter,\n };\n }\n\n getAlias(): string {\n return this._alias || this.operands.map((o) => o.getAlias()).join('_');\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new StringConcatExpressionImpl(this.operands);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class SubstringExpressionImpl extends ExpressionImpl {\n constructor(private readonly expr: ExpressionImpl, private readonly start: number, private readonly length?: number) {\n super();\n }\n\n toJSON(): SubstringExpression {\n return {\n type: 'substring',\n value: this.expr.toJSON(),\n start: { type: 'const', value: this.start },\n length: this.length !== undefined ? { type: 'const', value: this.length } : undefined,\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_substring`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new SubstringExpressionImpl(this.expr, this.start, this.length);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class StringReplaceExpressionImpl extends ExpressionImpl {\n constructor(private readonly expr: ExpressionImpl, private readonly pattern: string, private readonly value: string, private readonly options?: Pick<StringReplaceExpression, 'replaceAll' | 'literal'>) {\n super();\n }\n\n toJSON(): StringReplaceExpression {\n return {\n type: 'str_replace',\n value: this.expr.toJSON(),\n pattern: this.pattern,\n replacement: this.value,\n replaceAll: this.options?.replaceAll || false,\n literal: this.options?.literal || false,\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_replace`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new StringReplaceExpressionImpl(this.expr, this.pattern, this.value, this.options);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class StringContainsExpressionImpl extends ExpressionImpl {\n constructor(private readonly expr: ExpressionImpl, private readonly pattern: ExpressionImpl, private readonly literal?: boolean, private readonly strict?: boolean) {\n super();\n }\n\n toJSON(): StringContainsExpression {\n return {\n type: 'str_contains',\n value: this.expr.toJSON(),\n pattern: this.pattern.toJSON(),\n literal: this.literal || false,\n strict: this.strict !== undefined ? this.strict : true,\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_contains`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new StringContainsExpressionImpl(this.expr, this.pattern, this.literal, this.strict);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class StringCaseExpressionImpl extends ExpressionImpl {\n constructor(private readonly operation: 'to_upper' | 'to_lower', private readonly expr: ExpressionImpl) {\n super();\n }\n\n toJSON(): ExtendedUnaryStringExpression {\n return {\n type: this.operation,\n value: this.expr.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_${this.operation}`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new StringCaseExpressionImpl(this.operation, this.expr);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class StringStartsWithExpressionImpl extends ExpressionImpl {\n constructor(private readonly expr: ExpressionImpl, private readonly pattern: ExpressionImpl) {\n super();\n }\n\n toJSON(): Expression {\n return {\n type: 'str_starts_with',\n value: this.expr.toJSON(),\n prefix: this.pattern.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_starts_with`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new StringStartsWithExpressionImpl(this.expr, this.pattern);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class StringEndsWithExpressionImpl extends ExpressionImpl {\n constructor(private readonly expr: ExpressionImpl, private readonly pattern: ExpressionImpl) {\n super();\n }\n\n toJSON(): Expression {\n return {\n type: 'str_ends_with',\n value: this.expr.toJSON(),\n suffix: this.pattern.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_ends_with`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new StringEndsWithExpressionImpl(this.expr, this.pattern);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class CumsumExpressionImpl extends ExpressionImpl {\n constructor(private readonly value: ExpressionImpl, private readonly additionalOrderBy: ExpressionImpl[] = [], private readonly partitionBy: ExpressionImpl[] = [], private readonly descending?: boolean) {\n super();\n }\n\n toJSON(): CumsumExpression {\n return {\n type: 'cumsum',\n value: this.value.toJSON(),\n additionalOrderBy: this.additionalOrderBy.map((expr) => expr.toJSON()),\n partitionBy: this.partitionBy.map((expr) => expr.toJSON()),\n descending: this.descending,\n };\n }\n\n getAlias(): string {\n return this._alias || `cumsum_${this.value.getAlias()}`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new CumsumExpressionImpl(this.value, this.additionalOrderBy, this.partitionBy, this.descending);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class AggregationExpressionImpl extends ExpressionImpl {\n constructor(public operation: AggregationType, public expr?: ExpressionImpl) {\n super();\n }\n\n toJSON(): WindowExpression {\n return {\n type: 'aggregate',\n aggregation: this.operation,\n value: this.expr?.toJSON() || { type: 'const', value: 1 },\n partitionBy: [],\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.operation}${this.expr ? '_' + this.expr.getAlias() : ''}`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new AggregationExpressionImpl(this.operation, this.expr);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class WindowExpressionImpl extends ExpressionImpl {\n constructor(private readonly expr: ExpressionImpl, private readonly aggregation: AggregationType, private readonly partitionBy: ExpressionImpl[]) {\n super();\n }\n\n toJSON(): WindowExpression {\n return {\n type: 'aggregate',\n aggregation: this.aggregation,\n value: this.expr.toJSON(),\n partitionBy: this.partitionBy.map((expr) => expr.toJSON()),\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_window`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new WindowExpressionImpl(this.expr, this.aggregation, this.partitionBy);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class StringDistanceExpressionImpl extends ExpressionImpl {\n constructor(private readonly string1: ExpressionImpl, private readonly string2: ExpressionImpl, private readonly metric: StringDistanceMetric, private readonly returnSimilarity?: boolean) {\n super();\n }\n\n toJSON(): StringDistanceExpression {\n return {\n type: 'string_distance',\n metric: this.metric,\n string1: this.string1.toJSON(),\n string2: this.string2.toJSON(),\n returnSimilarity: this.returnSimilarity || false,\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.string1.getAlias()}_distance_${this.string2.getAlias()}`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new StringDistanceExpressionImpl(this.string1, this.string2, this.metric, this.returnSimilarity);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class FuzzyStringFilterExpressionImpl extends ExpressionImpl {\n constructor(private readonly expr: ExpressionImpl, private readonly pattern: ExpressionImpl, private readonly metric: FuzzyFilterDistanceMetric, private readonly bound: number) {\n super();\n }\n\n toJSON(): FuzzyStringFilterExpression {\n return {\n type: 'fuzzy_string_filter',\n metric: this.metric,\n value: this.expr.toJSON(),\n pattern: this.pattern.toJSON(),\n bound: this.bound,\n };\n }\n\n getAlias(): string {\n return this._alias || `${this.expr.getAlias()}_fuzzy_filter`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new FuzzyStringFilterExpressionImpl(this.expr, this.pattern, this.metric, this.bound);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class RankExpressionImpl extends ExpressionImpl {\n constructor(\n private readonly orderBy: ExpressionImpl[],\n private readonly partitionBy: ExpressionImpl[],\n private readonly descending: boolean,\n ) {\n super();\n }\n\n toJSON(): RankExpression {\n return {\n type: 'rank',\n orderBy: this.orderBy.map((e) => e.toJSON()),\n partitionBy: this.partitionBy.map((e) => e.toJSON()),\n descending: this.descending || undefined,\n };\n }\n\n getAlias(): string {\n const order = this.orderBy.map((e) => e.getAlias()).join('_');\n const part = this.partitionBy.map((e) => e.getAlias()).join('_');\n const dir = this.descending ? 'desc' : 'asc';\n return this._alias || `rank_${order}${part ? `_over_${part}` : ''}_${dir}`;\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new RankExpressionImpl(this.orderBy, this.partitionBy, this.descending);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n\nexport class WhenThenOtherwiseExpressionImpl extends ExpressionImpl {\n constructor(\n private readonly conditions: Array<{ when: ExpressionImpl; then: ExpressionImpl }>,\n private readonly otherwiseValue: ExpressionImpl,\n ) {\n super();\n }\n\n toJSON(): WhenThenOtherwiseExpression {\n return {\n type: 'when_then_otherwise',\n conditions: this.conditions.map((clause) => ({\n when: clause.when.toJSON(),\n then: clause.then.toJSON(),\n })),\n otherwise: this.otherwiseValue.toJSON(),\n };\n }\n\n getAlias(): string {\n return this._alias || 'conditional';\n }\n\n protected clone(): ExpressionImpl {\n const cloned = new WhenThenOtherwiseExpressionImpl(this.conditions, this.otherwiseValue);\n cloned._alias = this._alias;\n return cloned;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base expressionImpl classes and interfaces for PTabler JavaScript implementation
|
|
3
|
+
*/
|
|
4
|
+
import type { AggregationType, BinaryArithmeticExpression, BinaryArithmeticOperator, BooleanLogicExpression, ColumnReferenceExpression, ComparisonExpression, ComparisonOperator, ConstantValueExpression, CumsumExpression, Expression, ExtendedUnaryStringExpression, FillNaNExpression, FillNullExpression, FuzzyFilterDistanceMetric, FuzzyStringFilterExpression, MinMaxExpression, MinMaxOperator, NotExpression, RankExpression, StringContainsExpression, StringDistanceExpression, StringDistanceMetric, StringJoinExpression, StringReplaceExpression, SubstringExpression, UnaryArithmeticExpression, UnaryArithmeticOperator, WhenThenOtherwiseExpression, WindowExpression } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* Base abstract class for all expressions
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class ExpressionImpl {
|
|
9
|
+
protected _alias?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Convert the expressionImpl to JSON format compatible with PTabler schema
|
|
12
|
+
*/
|
|
13
|
+
abstract toJSON(): Expression;
|
|
14
|
+
/**
|
|
15
|
+
* Get the alias for this expressionImpl (defaults to a generated name)
|
|
16
|
+
*/
|
|
17
|
+
abstract getAlias(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Set an alias for this expression
|
|
20
|
+
*/
|
|
21
|
+
alias(name: string): ExpressionImpl;
|
|
22
|
+
/**
|
|
23
|
+
* Clone this expression
|
|
24
|
+
*/
|
|
25
|
+
protected abstract clone(): ExpressionImpl;
|
|
26
|
+
plus(other: ExpressionImpl | number | string): ArithmeticExpressionImpl;
|
|
27
|
+
minus(other: ExpressionImpl | number | string): ArithmeticExpressionImpl;
|
|
28
|
+
multiply(other: ExpressionImpl | number | string): ArithmeticExpressionImpl;
|
|
29
|
+
truediv(other: ExpressionImpl | number | string): ArithmeticExpressionImpl;
|
|
30
|
+
floordiv(other: ExpressionImpl | number | string): ArithmeticExpressionImpl;
|
|
31
|
+
gt(other: ExpressionImpl | number | string): ComparisonExpressionImpl;
|
|
32
|
+
ge(other: ExpressionImpl | number | string): ComparisonExpressionImpl;
|
|
33
|
+
eq(other: ExpressionImpl | number | string): ComparisonExpressionImpl;
|
|
34
|
+
lt(other: ExpressionImpl | number | string): ComparisonExpressionImpl;
|
|
35
|
+
le(other: ExpressionImpl | number | string): ComparisonExpressionImpl;
|
|
36
|
+
neq(other: ExpressionImpl | number | string): ComparisonExpressionImpl;
|
|
37
|
+
and(...others: ExpressionImpl[]): LogicalExpressionImpl;
|
|
38
|
+
or(...others: ExpressionImpl[]): LogicalExpressionImpl;
|
|
39
|
+
not(): LogicalExpressionImpl;
|
|
40
|
+
abs(): UnaryArithmeticExpressionImpl;
|
|
41
|
+
sqrt(): UnaryArithmeticExpressionImpl;
|
|
42
|
+
log(): UnaryArithmeticExpressionImpl;
|
|
43
|
+
log10(): UnaryArithmeticExpressionImpl;
|
|
44
|
+
log2(): UnaryArithmeticExpressionImpl;
|
|
45
|
+
floor(): UnaryArithmeticExpressionImpl;
|
|
46
|
+
ceil(): UnaryArithmeticExpressionImpl;
|
|
47
|
+
round(): UnaryArithmeticExpressionImpl;
|
|
48
|
+
negate(): UnaryArithmeticExpressionImpl;
|
|
49
|
+
isNull(): NullCheckExpressionImpl;
|
|
50
|
+
isNotNull(): NullCheckExpressionImpl;
|
|
51
|
+
fillNull(value: ExpressionImpl): FillNullExpressionImpl;
|
|
52
|
+
fillNaN(value: ExpressionImpl): FillNaNExpressionImpl;
|
|
53
|
+
strConcat(...others: (ExpressionImpl | string)[]): StringConcatExpressionImpl;
|
|
54
|
+
substring(start: number, length?: number): SubstringExpressionImpl;
|
|
55
|
+
strReplace(pattern: string, value: string, options?: Pick<StringReplaceExpression, 'replaceAll' | 'literal'>): StringReplaceExpressionImpl;
|
|
56
|
+
strContains(pattern: ExpressionImpl | string, literal?: boolean, strict?: boolean): StringContainsExpressionImpl;
|
|
57
|
+
strToUpper(): StringCaseExpressionImpl;
|
|
58
|
+
strToLower(): StringCaseExpressionImpl;
|
|
59
|
+
strStartsWith(pattern: ExpressionImpl | string): StringStartsWithExpressionImpl;
|
|
60
|
+
strEndsWith(pattern: ExpressionImpl | string): StringEndsWithExpressionImpl;
|
|
61
|
+
sum(): AggregationExpressionImpl;
|
|
62
|
+
mean(): AggregationExpressionImpl;
|
|
63
|
+
count(): AggregationExpressionImpl;
|
|
64
|
+
min(): AggregationExpressionImpl;
|
|
65
|
+
max(): AggregationExpressionImpl;
|
|
66
|
+
first(): AggregationExpressionImpl;
|
|
67
|
+
last(): AggregationExpressionImpl;
|
|
68
|
+
cumsum(): CumsumExpressionImpl;
|
|
69
|
+
stringDistance(other: ExpressionImpl | string, metric: StringDistanceMetric, returnSimilarity?: boolean): StringDistanceExpressionImpl;
|
|
70
|
+
fuzzyStringFilter(pattern: ExpressionImpl | string, metric: FuzzyFilterDistanceMetric, bound: number): FuzzyStringFilterExpressionImpl;
|
|
71
|
+
}
|
|
72
|
+
export declare class ColumnExpressionImpl extends ExpressionImpl {
|
|
73
|
+
private readonly columnName;
|
|
74
|
+
constructor(columnName: string);
|
|
75
|
+
toJSON(): ColumnReferenceExpression;
|
|
76
|
+
getAlias(): string;
|
|
77
|
+
protected clone(): ExpressionImpl;
|
|
78
|
+
/**
|
|
79
|
+
* Get the column name
|
|
80
|
+
*/
|
|
81
|
+
getColumnName(): string;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Helper function to coerce values to expressions
|
|
85
|
+
*/
|
|
86
|
+
export declare function coerceToExpression(value: ExpressionImpl | LiteralValue): ExpressionImpl;
|
|
87
|
+
export declare class MinMaxExpressionImpl extends ExpressionImpl {
|
|
88
|
+
private readonly op;
|
|
89
|
+
private readonly ops;
|
|
90
|
+
constructor(op: MinMaxOperator, ops: ExpressionImpl[]);
|
|
91
|
+
toJSON(): MinMaxExpression;
|
|
92
|
+
getAlias(): string;
|
|
93
|
+
protected clone(): ExpressionImpl;
|
|
94
|
+
}
|
|
95
|
+
export declare class ArithmeticExpressionImpl extends ExpressionImpl {
|
|
96
|
+
private readonly operator;
|
|
97
|
+
private readonly lhs;
|
|
98
|
+
private readonly rhs;
|
|
99
|
+
constructor(operator: BinaryArithmeticOperator, lhs: ExpressionImpl, rhs: ExpressionImpl);
|
|
100
|
+
toJSON(): BinaryArithmeticExpression;
|
|
101
|
+
getAlias(): string;
|
|
102
|
+
protected clone(): ExpressionImpl;
|
|
103
|
+
}
|
|
104
|
+
export declare class ComparisonExpressionImpl extends ExpressionImpl {
|
|
105
|
+
private readonly operator;
|
|
106
|
+
private readonly lhs;
|
|
107
|
+
private readonly rhs;
|
|
108
|
+
constructor(operator: ComparisonOperator, lhs: ExpressionImpl, rhs: ExpressionImpl);
|
|
109
|
+
toJSON(): ComparisonExpression;
|
|
110
|
+
getAlias(): string;
|
|
111
|
+
protected clone(): ComparisonExpressionImpl;
|
|
112
|
+
}
|
|
113
|
+
export declare class LogicalExpressionImpl extends ExpressionImpl {
|
|
114
|
+
private readonly operator;
|
|
115
|
+
private readonly operands;
|
|
116
|
+
constructor(operator: 'and' | 'or' | 'not', operands: ExpressionImpl[]);
|
|
117
|
+
toJSON(): NotExpression | BooleanLogicExpression;
|
|
118
|
+
getAlias(): string;
|
|
119
|
+
protected clone(): ExpressionImpl;
|
|
120
|
+
}
|
|
121
|
+
export declare class UnaryArithmeticExpressionImpl extends ExpressionImpl {
|
|
122
|
+
private readonly operator;
|
|
123
|
+
private readonly value;
|
|
124
|
+
constructor(operator: UnaryArithmeticOperator, value: ExpressionImpl);
|
|
125
|
+
toJSON(): UnaryArithmeticExpression;
|
|
126
|
+
getAlias(): string;
|
|
127
|
+
protected clone(): ExpressionImpl;
|
|
128
|
+
}
|
|
129
|
+
export declare class NullCheckExpressionImpl extends ExpressionImpl {
|
|
130
|
+
private readonly operator;
|
|
131
|
+
private readonly value;
|
|
132
|
+
constructor(operator: 'is_na' | 'is_not_na', value: ExpressionImpl);
|
|
133
|
+
toJSON(): Expression;
|
|
134
|
+
getAlias(): string;
|
|
135
|
+
protected clone(): ExpressionImpl;
|
|
136
|
+
}
|
|
137
|
+
export type LiteralValue = string | number | boolean | null;
|
|
138
|
+
export declare class LiteralExpressionImpl extends ExpressionImpl {
|
|
139
|
+
private readonly value;
|
|
140
|
+
constructor(value: LiteralValue);
|
|
141
|
+
toJSON(): ConstantValueExpression;
|
|
142
|
+
getAlias(): string;
|
|
143
|
+
protected clone(): ExpressionImpl;
|
|
144
|
+
/**
|
|
145
|
+
* Get the literal value
|
|
146
|
+
*/
|
|
147
|
+
getValue(): string | number | boolean | null;
|
|
148
|
+
/**
|
|
149
|
+
* Generate a default alias based on the value
|
|
150
|
+
*/
|
|
151
|
+
private generateDefaultAlias;
|
|
152
|
+
}
|
|
153
|
+
export declare class FillNullExpressionImpl extends ExpressionImpl {
|
|
154
|
+
private readonly expr;
|
|
155
|
+
private readonly fillValue;
|
|
156
|
+
constructor(expr: ExpressionImpl, fillValue: ExpressionImpl);
|
|
157
|
+
toJSON(): FillNullExpression;
|
|
158
|
+
getAlias(): string;
|
|
159
|
+
protected clone(): ExpressionImpl;
|
|
160
|
+
}
|
|
161
|
+
export declare class FillNaNExpressionImpl extends ExpressionImpl {
|
|
162
|
+
private readonly expr;
|
|
163
|
+
private readonly fillValue;
|
|
164
|
+
constructor(expr: ExpressionImpl, fillValue: ExpressionImpl);
|
|
165
|
+
toJSON(): FillNaNExpression;
|
|
166
|
+
getAlias(): string;
|
|
167
|
+
protected clone(): ExpressionImpl;
|
|
168
|
+
}
|
|
169
|
+
export declare class StringConcatExpressionImpl extends ExpressionImpl {
|
|
170
|
+
private readonly operands;
|
|
171
|
+
private readonly delimiter;
|
|
172
|
+
constructor(operands: ExpressionImpl[], delimiter?: string);
|
|
173
|
+
toJSON(): StringJoinExpression;
|
|
174
|
+
getAlias(): string;
|
|
175
|
+
protected clone(): ExpressionImpl;
|
|
176
|
+
}
|
|
177
|
+
export declare class SubstringExpressionImpl extends ExpressionImpl {
|
|
178
|
+
private readonly expr;
|
|
179
|
+
private readonly start;
|
|
180
|
+
private readonly length?;
|
|
181
|
+
constructor(expr: ExpressionImpl, start: number, length?: number | undefined);
|
|
182
|
+
toJSON(): SubstringExpression;
|
|
183
|
+
getAlias(): string;
|
|
184
|
+
protected clone(): ExpressionImpl;
|
|
185
|
+
}
|
|
186
|
+
export declare class StringReplaceExpressionImpl extends ExpressionImpl {
|
|
187
|
+
private readonly expr;
|
|
188
|
+
private readonly pattern;
|
|
189
|
+
private readonly value;
|
|
190
|
+
private readonly options?;
|
|
191
|
+
constructor(expr: ExpressionImpl, pattern: string, value: string, options?: Pick<StringReplaceExpression, "replaceAll" | "literal"> | undefined);
|
|
192
|
+
toJSON(): StringReplaceExpression;
|
|
193
|
+
getAlias(): string;
|
|
194
|
+
protected clone(): ExpressionImpl;
|
|
195
|
+
}
|
|
196
|
+
export declare class StringContainsExpressionImpl extends ExpressionImpl {
|
|
197
|
+
private readonly expr;
|
|
198
|
+
private readonly pattern;
|
|
199
|
+
private readonly literal?;
|
|
200
|
+
private readonly strict?;
|
|
201
|
+
constructor(expr: ExpressionImpl, pattern: ExpressionImpl, literal?: boolean | undefined, strict?: boolean | undefined);
|
|
202
|
+
toJSON(): StringContainsExpression;
|
|
203
|
+
getAlias(): string;
|
|
204
|
+
protected clone(): ExpressionImpl;
|
|
205
|
+
}
|
|
206
|
+
export declare class StringCaseExpressionImpl extends ExpressionImpl {
|
|
207
|
+
private readonly operation;
|
|
208
|
+
private readonly expr;
|
|
209
|
+
constructor(operation: 'to_upper' | 'to_lower', expr: ExpressionImpl);
|
|
210
|
+
toJSON(): ExtendedUnaryStringExpression;
|
|
211
|
+
getAlias(): string;
|
|
212
|
+
protected clone(): ExpressionImpl;
|
|
213
|
+
}
|
|
214
|
+
export declare class StringStartsWithExpressionImpl extends ExpressionImpl {
|
|
215
|
+
private readonly expr;
|
|
216
|
+
private readonly pattern;
|
|
217
|
+
constructor(expr: ExpressionImpl, pattern: ExpressionImpl);
|
|
218
|
+
toJSON(): Expression;
|
|
219
|
+
getAlias(): string;
|
|
220
|
+
protected clone(): ExpressionImpl;
|
|
221
|
+
}
|
|
222
|
+
export declare class StringEndsWithExpressionImpl extends ExpressionImpl {
|
|
223
|
+
private readonly expr;
|
|
224
|
+
private readonly pattern;
|
|
225
|
+
constructor(expr: ExpressionImpl, pattern: ExpressionImpl);
|
|
226
|
+
toJSON(): Expression;
|
|
227
|
+
getAlias(): string;
|
|
228
|
+
protected clone(): ExpressionImpl;
|
|
229
|
+
}
|
|
230
|
+
export declare class CumsumExpressionImpl extends ExpressionImpl {
|
|
231
|
+
private readonly value;
|
|
232
|
+
private readonly additionalOrderBy;
|
|
233
|
+
private readonly partitionBy;
|
|
234
|
+
private readonly descending?;
|
|
235
|
+
constructor(value: ExpressionImpl, additionalOrderBy?: ExpressionImpl[], partitionBy?: ExpressionImpl[], descending?: boolean | undefined);
|
|
236
|
+
toJSON(): CumsumExpression;
|
|
237
|
+
getAlias(): string;
|
|
238
|
+
protected clone(): ExpressionImpl;
|
|
239
|
+
}
|
|
240
|
+
export declare class AggregationExpressionImpl extends ExpressionImpl {
|
|
241
|
+
operation: AggregationType;
|
|
242
|
+
expr?: ExpressionImpl | undefined;
|
|
243
|
+
constructor(operation: AggregationType, expr?: ExpressionImpl | undefined);
|
|
244
|
+
toJSON(): WindowExpression;
|
|
245
|
+
getAlias(): string;
|
|
246
|
+
protected clone(): ExpressionImpl;
|
|
247
|
+
}
|
|
248
|
+
export declare class WindowExpressionImpl extends ExpressionImpl {
|
|
249
|
+
private readonly expr;
|
|
250
|
+
private readonly aggregation;
|
|
251
|
+
private readonly partitionBy;
|
|
252
|
+
constructor(expr: ExpressionImpl, aggregation: AggregationType, partitionBy: ExpressionImpl[]);
|
|
253
|
+
toJSON(): WindowExpression;
|
|
254
|
+
getAlias(): string;
|
|
255
|
+
protected clone(): ExpressionImpl;
|
|
256
|
+
}
|
|
257
|
+
export declare class StringDistanceExpressionImpl extends ExpressionImpl {
|
|
258
|
+
private readonly string1;
|
|
259
|
+
private readonly string2;
|
|
260
|
+
private readonly metric;
|
|
261
|
+
private readonly returnSimilarity?;
|
|
262
|
+
constructor(string1: ExpressionImpl, string2: ExpressionImpl, metric: StringDistanceMetric, returnSimilarity?: boolean | undefined);
|
|
263
|
+
toJSON(): StringDistanceExpression;
|
|
264
|
+
getAlias(): string;
|
|
265
|
+
protected clone(): ExpressionImpl;
|
|
266
|
+
}
|
|
267
|
+
export declare class FuzzyStringFilterExpressionImpl extends ExpressionImpl {
|
|
268
|
+
private readonly expr;
|
|
269
|
+
private readonly pattern;
|
|
270
|
+
private readonly metric;
|
|
271
|
+
private readonly bound;
|
|
272
|
+
constructor(expr: ExpressionImpl, pattern: ExpressionImpl, metric: FuzzyFilterDistanceMetric, bound: number);
|
|
273
|
+
toJSON(): FuzzyStringFilterExpression;
|
|
274
|
+
getAlias(): string;
|
|
275
|
+
protected clone(): ExpressionImpl;
|
|
276
|
+
}
|
|
277
|
+
export declare class RankExpressionImpl extends ExpressionImpl {
|
|
278
|
+
private readonly orderBy;
|
|
279
|
+
private readonly partitionBy;
|
|
280
|
+
private readonly descending;
|
|
281
|
+
constructor(orderBy: ExpressionImpl[], partitionBy: ExpressionImpl[], descending: boolean);
|
|
282
|
+
toJSON(): RankExpression;
|
|
283
|
+
getAlias(): string;
|
|
284
|
+
protected clone(): ExpressionImpl;
|
|
285
|
+
}
|
|
286
|
+
export declare class WhenThenOtherwiseExpressionImpl extends ExpressionImpl {
|
|
287
|
+
private readonly conditions;
|
|
288
|
+
private readonly otherwiseValue;
|
|
289
|
+
constructor(conditions: Array<{
|
|
290
|
+
when: ExpressionImpl;
|
|
291
|
+
then: ExpressionImpl;
|
|
292
|
+
}>, otherwiseValue: ExpressionImpl);
|
|
293
|
+
toJSON(): WhenThenOtherwiseExpression;
|
|
294
|
+
getAlias(): string;
|
|
295
|
+
protected clone(): ExpressionImpl;
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=expressions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../src/expressions.ts"],"names":[],"mappings":"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"}
|