@eienjs/adonisjs-api-query 0.2.0 → 1.0.1

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.
@@ -78,50 +78,46 @@ var FiltersPartial = class _FiltersPartial extends FiltersExact {
78
78
  this.withRelationConstraint(query, value, property);
79
79
  return;
80
80
  }
81
- const dialect = this.getDatabaseDialect(query);
82
81
  if (Array.isArray(value)) {
83
82
  if (value.filter((item) => item.toString().length > 0).length === 0) {
84
83
  return;
85
84
  }
86
85
  void query.where((subQuery) => {
87
86
  for (const partialValue of value.filter((item) => item.toString().length > 0)) {
88
- const [innerSql, innerBindings] = this.getWhereRawParameters(partialValue, property, dialect);
87
+ const [innerSql, innerBindings] = this.getWhereRawParameters(
88
+ partialValue,
89
+ this.parsePropertyToColumn(subQuery, property)
90
+ );
89
91
  void subQuery.orWhereRaw(innerSql, innerBindings);
90
92
  }
91
93
  });
92
94
  return;
93
95
  }
94
- const [sql, bindings] = this.getWhereRawParameters(value, property, dialect);
96
+ const [sql, bindings] = this.getWhereRawParameters(value, this.parsePropertyToColumn(query, property));
95
97
  void query.whereRaw(sql, bindings);
96
98
  }
99
+ parsePropertyToColumn(query, property) {
100
+ if (property.includes(".")) {
101
+ return property;
102
+ }
103
+ return query.model.$getColumn(property)?.columnName ?? property;
104
+ }
97
105
  getDatabaseDialect(query) {
98
106
  return query.client.dialect.name;
99
107
  }
100
- getWhereRawParameters(value, property, dialect) {
108
+ getWhereRawParameters(value, property) {
101
109
  const resolvedValue = `${value}`.toLowerCase();
102
- return [
103
- `LOWER(${property}) LIKE ?${_FiltersPartial.maybeSpecifyEscapeChar(dialect)}`,
104
- [`%${_FiltersPartial.escapeLike(resolvedValue)}%`]
105
- ];
110
+ return [`LOWER(??) LIKE ?`, [property, `%${_FiltersPartial.escapeLike(resolvedValue)}%`]];
106
111
  }
107
112
  static escapeLike(value) {
108
113
  return value.replaceAll("\\", "\\\\").replaceAll("_", String.raw`\\_`).replaceAll("%", String.raw`\\%`);
109
114
  }
110
- static maybeSpecifyEscapeChar(dialect) {
111
- if (["sqlite3", "better-sqlite3", "libsql", "mssql"].includes(dialect)) {
112
- return "";
113
- }
114
- return String.raw`ESCAPE '\'`;
115
- }
116
115
  };
117
116
 
118
117
  // src/filters/filters_begin_with_strict.ts
119
118
  var FiltersBeginWithStrict = class _FiltersBeginWithStrict extends FiltersPartial {
120
- getWhereRawParameters(value, property, dialect) {
121
- return [
122
- `${property} LIKE ?${_FiltersBeginWithStrict.maybeSpecifyEscapeChar(dialect)}`,
123
- [`${_FiltersBeginWithStrict.escapeLike(value.toString())}%`]
124
- ];
119
+ getWhereRawParameters(value, property) {
120
+ return [`${property} LIKE ?`, [`${_FiltersBeginWithStrict.escapeLike(value.toString())}%`]];
125
121
  }
126
122
  };
127
123
 
@@ -137,11 +133,8 @@ var FiltersCallback = class {
137
133
 
138
134
  // src/filters/filters_ends_with_strict.ts
139
135
  var FiltersEndsWithStrict = class _FiltersEndsWithStrict extends FiltersPartial {
140
- getWhereRawParameters(value, property, dialect) {
141
- return [
142
- `${property} LIKE ?${_FiltersEndsWithStrict.maybeSpecifyEscapeChar(dialect)}`,
143
- [`%${_FiltersEndsWithStrict.escapeLike(value.toString())}`]
144
- ];
136
+ getWhereRawParameters(value, property) {
137
+ return [`${property} LIKE ?`, [`%${_FiltersEndsWithStrict.escapeLike(value.toString())}`]];
145
138
  }
146
139
  };
147
140
 
@@ -346,4 +339,4 @@ export {
346
339
  AllowedFilter,
347
340
  InvalidFilterQuery
348
341
  };
349
- //# sourceMappingURL=chunk-PBQFWYKU.js.map
342
+ //# sourceMappingURL=chunk-AL3XCN3K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/enums/filter_operator.ts","../src/allowed_filter.ts","../src/filters/filters_exact.ts","../src/filters/filters_partial.ts","../src/filters/filters_begin_with_strict.ts","../src/filters/filters_callback.ts","../src/filters/filters_ends_with_strict.ts","../src/filters/filters_operator.ts","../src/filters/filters_trashed.ts","../src/exceptions/invalid_filter_query.ts"],"sourcesContent":["export const FilterOperator = {\n Dynamic: '',\n Equal: '=',\n LessThan: '<',\n GreaterThan: '>',\n LessThanOrEqual: '<=',\n GreaterThanOrEqual: '>=',\n NotEqual: '<>',\n} as const;\n\nexport type FilterOperator = (typeof FilterOperator)[keyof typeof FilterOperator];\n","import { type LucidModel, type ModelAttributes, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { Collection } from 'collect.js';\nimport { ApiQueryBuilderRequest } from './api_query_builder_request.js';\nimport { type FilterOperator } from './enums/filter_operator.js';\nimport { FiltersBeginWithStrict } from './filters/filters_begin_with_strict.js';\nimport { FiltersCallback } from './filters/filters_callback.js';\nimport { FiltersEndsWithStrict } from './filters/filters_ends_with_strict.js';\nimport { FiltersExact } from './filters/filters_exact.js';\nimport { FiltersOperator } from './filters/filters_operator.js';\nimport { FiltersPartial } from './filters/filters_partial.js';\nimport { FiltersTrashed } from './filters/filters_trashed.js';\nimport { type ExtractKeys, type Filter } from './types.js';\n\nexport class AllowedFilter<Model extends LucidModel> {\n public static setFilterArrayValueDelimiter(delimiter?: string): void {\n if (delimiter) {\n ApiQueryBuilderRequest.setFilterArrayValueDelimiter(delimiter);\n }\n }\n\n public static exact<Model extends LucidModel>(\n name: string,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersExact<Model>(addRelationConstraint), internalName);\n }\n\n public static partial<Model extends LucidModel>(\n name: string,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersPartial<Model>(addRelationConstraint), internalName);\n }\n\n public static beginsWithStrict<Model extends LucidModel>(\n name: string,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersBeginWithStrict<Model>(addRelationConstraint), internalName);\n }\n\n public static endsWithStrict<Model extends LucidModel>(\n name: string,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersEndsWithStrict<Model>(addRelationConstraint), internalName);\n }\n\n public static callback<Model extends LucidModel>(\n name: string,\n callback: (query: ModelQueryBuilderContract<Model>, value: unknown, property: string) => void,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersCallback<Model>(callback), internalName);\n }\n\n public static trashed<Model extends LucidModel>(\n name = 'trashed',\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n ): AllowedFilter<Model> {\n return new AllowedFilter<Model>(name, new FiltersTrashed<Model>(), internalName);\n }\n\n public static custom<Model extends LucidModel>(\n name: string,\n filterClass: Filter<Model>,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, filterClass, internalName);\n }\n\n public static operator<Model extends LucidModel>(\n name: string,\n filterOperator: FilterOperator,\n boolean: 'and' | 'or' = 'and',\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(\n name,\n new FiltersOperator<Model>(addRelationConstraint, filterOperator, boolean),\n internalName,\n );\n }\n\n protected name: string;\n\n protected filterClass: Filter<Model>;\n\n protected internalName: string;\n\n protected ignored: Collection<unknown>;\n\n protected default: unknown;\n\n protected $hasDefault = false;\n\n protected nullable = false;\n\n public constructor(\n name: string,\n filterClass: Filter<Model>,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n ) {\n this.name = name;\n this.filterClass = filterClass;\n this.ignored = new Collection();\n this.internalName = internalName ?? this.name;\n }\n\n public filter(query: ModelQueryBuilderContract<Model>, value: unknown): void {\n const valueToFilter = this.resolveValueForFiltering(value);\n if (!this.nullable && valueToFilter === null) {\n return;\n }\n\n this.filterClass.handle(query, valueToFilter, this.internalName);\n }\n\n public getFilterClass(): Filter<Model> {\n return this.filterClass;\n }\n\n public getName(): string {\n return this.name;\n }\n\n public isForFilter(filterName: string): boolean {\n return this.name === filterName;\n }\n\n public ignore(...values: unknown[]): this {\n this.ignored = this.ignored.merge(values).flatten();\n\n return this;\n }\n\n public getIgnored(): unknown[] {\n return this.ignored.toArray();\n }\n\n public getInternalName(): string {\n return this.internalName;\n }\n\n public setDefault(defaultValue: unknown): this {\n this.default = defaultValue;\n this.$hasDefault = true;\n\n if (defaultValue === null) {\n this.setNullable(true);\n }\n\n return this;\n }\n\n public getDefault(): unknown {\n return this.default;\n }\n\n public hasDefault(): boolean {\n return this.$hasDefault;\n }\n\n public setNullable(nullable = true): this {\n this.nullable = nullable;\n\n return this;\n }\n\n public unsetDefault(): this {\n this.$hasDefault = false;\n this.default = undefined;\n\n return this;\n }\n\n protected resolveValueForFiltering(value: unknown): StrictValuesWithoutRaw | null {\n if (Array.isArray(value)) {\n const remainingProperties = value.map((subValue) => this.resolveValueForFiltering(subValue));\n\n return remainingProperties.length === 0 ? null : (remainingProperties as StrictValuesWithoutRaw);\n }\n\n return this.ignored.contains(value) ? null : (value as StrictValuesWithoutRaw);\n }\n}\n","import { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type ExtractModelRelations } from '@adonisjs/lucid/types/relations';\nimport collect, { type Collection } from 'collect.js';\nimport { type Filter } from '../types.js';\n\nexport class FiltersExact<Model extends LucidModel> implements Filter<Model> {\n protected relationConstraints: string[] = [];\n\n public constructor(protected addRelationConstraint = true) {}\n\n public handle(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw | null,\n property: string,\n ): void {\n if (this.addRelationConstraint && this.isRelationProperty(query, property)) {\n this.withRelationConstraint(query, value, property);\n\n return;\n }\n\n if (Array.isArray(value)) {\n void query.whereIn(this.qualifyColumn(query, property), value);\n\n return;\n }\n\n if (value === null) {\n void query.whereNull(this.qualifyColumn(query, property));\n\n return;\n }\n\n void query.where(this.qualifyColumn(query, property), '=', value);\n }\n\n protected qualifyColumn(query: ModelQueryBuilderContract<Model, InstanceType<Model>>, column: string): string {\n if (column.includes('.')) {\n return column;\n }\n\n return `${query.model.table}.${query.model.$getColumn(column)?.columnName}`;\n }\n\n protected isRelationProperty(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n property: string,\n ): boolean {\n if (!property.includes('.')) {\n return false;\n }\n\n if (this.relationConstraints.includes(property)) {\n return false;\n }\n\n const firstRelationShip = property.split('.')[0];\n\n return query.model.$relationsDefinitions.has(firstRelationShip);\n }\n\n protected withRelationConstraint(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw | null,\n property: string,\n ): void {\n const [relation, relationProperty] = collect(property.split('.')).pipe((parts: Collection<string>) => [\n parts.except([parts.last()]).implode('.') as ExtractModelRelations<InstanceType<Model>>,\n parts.last(),\n ]);\n\n void query.whereHas(relation, (subQuery: ModelQueryBuilderContract<Model>) => {\n const columnName = this.qualifyColumn(query, relationProperty);\n this.relationConstraints.push(columnName);\n\n this.handle(subQuery, value, columnName);\n });\n }\n}\n","import { type DialectContract } from '@adonisjs/lucid/types/database';\nimport { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type Filter } from '../types.js';\nimport { FiltersExact } from './filters_exact.js';\n\nexport class FiltersPartial<Model extends LucidModel> extends FiltersExact<Model> implements Filter<Model> {\n public handle(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw | null,\n property: string,\n ): void {\n if (this.addRelationConstraint && this.isRelationProperty(query, property)) {\n this.withRelationConstraint(query, value, property);\n\n return;\n }\n\n if (Array.isArray(value)) {\n if (value.filter((item) => item.toString().length > 0).length === 0) {\n return;\n }\n\n void query.where((subQuery) => {\n for (const partialValue of value.filter((item) => item.toString().length > 0)) {\n const [innerSql, innerBindings] = this.getWhereRawParameters(\n partialValue,\n this.parsePropertyToColumn(subQuery, property),\n );\n void subQuery.orWhereRaw(innerSql, innerBindings);\n }\n });\n\n return;\n }\n\n const [sql, bindings] = this.getWhereRawParameters(value, this.parsePropertyToColumn(query, property));\n void query.whereRaw(sql, bindings);\n }\n\n protected parsePropertyToColumn(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n property: string,\n ): string {\n if (property.includes('.')) {\n return property;\n }\n\n return query.model.$getColumn(property)?.columnName ?? property;\n }\n\n protected getDatabaseDialect(query: ModelQueryBuilderContract<Model, InstanceType<Model>>): DialectContract['name'] {\n return query.client.dialect.name;\n }\n\n protected getWhereRawParameters(value: StrictValuesWithoutRaw | null, property: string): [string, string[]] {\n const resolvedValue = `${value}`.toLowerCase();\n\n return [`LOWER(??) LIKE ?`, [property, `%${FiltersPartial.escapeLike(resolvedValue)}%`]];\n }\n\n protected static escapeLike(value: string): string {\n return value\n .replaceAll('\\\\', '\\\\\\\\')\n .replaceAll('_', String.raw`\\\\_`)\n .replaceAll('%', String.raw`\\\\%`);\n }\n}\n","import { type LucidModel } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type Filter } from '../types.js';\nimport { FiltersPartial } from './filters_partial.js';\n\nexport class FiltersBeginWithStrict<Model extends LucidModel> extends FiltersPartial<Model> implements Filter<Model> {\n protected getWhereRawParameters(value: StrictValuesWithoutRaw, property: string): [string, string[]] {\n return [`${property} LIKE ?`, [`${FiltersBeginWithStrict.escapeLike(value.toString())}%`]];\n }\n}\n","import { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type Filter } from '../types.js';\n\nexport class FiltersCallback<Model extends LucidModel> implements Filter<Model> {\n public constructor(\n private callback: (query: ModelQueryBuilderContract<Model>, value: unknown, property: string) => void,\n ) {}\n\n public handle(query: ModelQueryBuilderContract<Model, InstanceType<Model>>, value: unknown, property: string): void {\n this.callback(query, value, property);\n }\n}\n","import { type LucidModel } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type Filter } from '../types.js';\nimport { FiltersPartial } from './filters_partial.js';\n\nexport class FiltersEndsWithStrict<Model extends LucidModel> extends FiltersPartial<Model> implements Filter<Model> {\n protected getWhereRawParameters(value: StrictValuesWithoutRaw, property: string): [string, string[]] {\n return [`${property} LIKE ?`, [`%${FiltersEndsWithStrict.escapeLike(value.toString())}`]];\n }\n}\n","import { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { FilterOperator } from '../enums/filter_operator.js';\nimport { type Filter } from '../types.js';\nimport { substrReplace } from '../utils/helpers.js';\nimport { FiltersExact } from './filters_exact.js';\n\nexport class FiltersOperator<Model extends LucidModel> extends FiltersExact<Model> implements Filter<Model> {\n public constructor(\n protected $addRelationConstraint: boolean,\n protected $filterOperator: FilterOperator,\n protected $boolean: 'and' | 'or',\n ) {\n super($addRelationConstraint);\n }\n\n public handle(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw,\n property: string,\n ): void {\n let filterOperator = this.$filterOperator;\n\n if (this.$addRelationConstraint && this.isRelationProperty(query, property)) {\n this.withRelationConstraint(query, value, property);\n\n return;\n }\n\n if (Array.isArray(value)) {\n const items = value;\n\n void query.where((subQuery) => {\n for (const item of items) {\n this.handle(subQuery, item, property);\n }\n });\n\n return;\n }\n\n if (filterOperator === FilterOperator.Dynamic) {\n filterOperator = this.getDynamicFilterOperator(value.toString());\n value = this.removeDynamicFilterOperatorFromValue(value.toString(), filterOperator);\n }\n\n if (this.$boolean === 'and') {\n void query.where(this.qualifyColumn(query, property), filterOperator, value);\n\n return;\n }\n\n void query.orWhere(this.qualifyColumn(query, property), filterOperator, value);\n }\n\n protected getDynamicFilterOperator(value: string): FilterOperator {\n let filterOperator: FilterOperator = FilterOperator.Equal;\n\n for (const filterOperatorCase of Object.values(FilterOperator)) {\n if (value.startsWith(filterOperatorCase) && filterOperatorCase !== FilterOperator.Dynamic) {\n filterOperator = filterOperatorCase;\n }\n }\n\n return filterOperator;\n }\n\n protected removeDynamicFilterOperatorFromValue(value: string, filterOperator: FilterOperator): string {\n if (value.includes(filterOperator)) {\n value = substrReplace(value, '', 0, filterOperator.length);\n }\n\n return value;\n }\n}\n","import { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type Filter } from '../types.js';\n\nexport class FiltersTrashed<Model extends LucidModel> implements Filter<Model> {\n public handle(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw,\n _property: string,\n ): void {\n if (!('withTrashed' in query && 'onlyTrashed' in query)) {\n return;\n }\n\n const queryWithSoftDeletes = query as {\n withTrashed(): ModelQueryBuilderContract<Model>;\n onlyTrashed(): ModelQueryBuilderContract<Model>;\n };\n\n if (value === 'with') {\n void queryWithSoftDeletes.withTrashed();\n\n return;\n }\n\n if (value === 'only') {\n void queryWithSoftDeletes.onlyTrashed();\n }\n }\n}\n","import { ResponseStatus } from '@adonisjs/core/http';\nimport { InvalidQuery } from './invalid_query.js';\n\nexport class InvalidFilterQuery extends InvalidQuery {\n public constructor(\n public readonly unknownFilters: string[],\n public readonly allowedFilters: string[],\n ) {\n const notAllowed = unknownFilters.join(', ');\n const allowed = allowedFilters.join(', ');\n const message = `Requested filter(s) \\`${notAllowed}\\` are not allowed. Allowed filter(s) are \\`${allowed}\\``;\n\n super(message, { status: ResponseStatus.BadRequest });\n }\n\n public static filtersNotAllowed(unknownFilters: string[], allowedFilters: string[]): InvalidFilterQuery {\n return new InvalidFilterQuery(unknownFilters, allowedFilters);\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AllowedFilter,
3
3
  InvalidFilterQuery
4
- } from "./chunk-PBQFWYKU.js";
4
+ } from "./chunk-AL3XCN3K.js";
5
5
  import "./chunk-MKQ3HMMA.js";
6
6
  import "./chunk-XIRHVLVQ.js";
7
7
 
@@ -52,4 +52,4 @@ var extendModelQueryBuilderWithFiltersQuery = function(builder, config) {
52
52
  export {
53
53
  extendModelQueryBuilderWithFiltersQuery
54
54
  };
55
- //# sourceMappingURL=filters_query-ZXNA4X75.js.map
55
+ //# sourceMappingURL=filters_query-4E533ESM.js.map
package/build/index.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  AllowedFilter,
9
9
  FilterOperator,
10
10
  InvalidFilterQuery
11
- } from "./chunk-PBQFWYKU.js";
11
+ } from "./chunk-AL3XCN3K.js";
12
12
  import {
13
13
  ApiQueryBuilderRequest
14
14
  } from "./chunk-MKQ3HMMA.js";
@@ -1 +1 @@
1
- {"inputs":{"stubs/main.ts":{"bytes":144,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true}],"format":"esm"},"configure.ts":{"bytes":423,"imports":[{"path":"stubs/main.ts","kind":"import-statement","original":"./stubs/main.js"}],"format":"esm"},"src/utils/helpers.ts":{"bytes":931,"imports":[],"format":"esm"},"src/api_query_builder_request.ts":{"bytes":6640,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/utils/helpers.ts","kind":"import-statement","original":"./utils/helpers.js"}],"format":"esm"},"src/filters/filters_exact.ts":{"bytes":2526,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/filters/filters_partial.ts":{"bytes":2387,"imports":[{"path":"@adonisjs/lucid/types/database","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true},{"path":"src/filters/filters_exact.ts","kind":"import-statement","original":"./filters_exact.js"}],"format":"esm"},"src/filters/filters_begin_with_strict.ts":{"bytes":768,"imports":[{"path":"@adonisjs/lucid/types/database","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true},{"path":"src/filters/filters_partial.ts","kind":"import-statement","original":"./filters_partial.js"}],"format":"esm"},"src/filters/filters_callback.ts":{"bytes":527,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/filters/filters_ends_with_strict.ts":{"bytes":765,"imports":[{"path":"@adonisjs/lucid/types/database","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true},{"path":"src/filters/filters_partial.ts","kind":"import-statement","original":"./filters_partial.js"}],"format":"esm"},"src/enums/filter_operator.ts":{"bytes":265,"imports":[],"format":"esm"},"src/filters/filters_operator.ts":{"bytes":2380,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"src/enums/filter_operator.ts","kind":"import-statement","original":"../enums/filter_operator.js"},{"path":"../types.js","kind":"import-statement","external":true},{"path":"src/utils/helpers.ts","kind":"import-statement","original":"../utils/helpers.js"},{"path":"src/filters/filters_exact.ts","kind":"import-statement","original":"./filters_exact.js"}],"format":"esm"},"src/filters/filters_trashed.ts":{"bytes":885,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/allowed_filter.ts":{"bytes":6731,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/api_query_builder_request.ts","kind":"import-statement","original":"./api_query_builder_request.js"},{"path":"./enums/filter_operator.js","kind":"import-statement","external":true},{"path":"src/filters/filters_begin_with_strict.ts","kind":"import-statement","original":"./filters/filters_begin_with_strict.js"},{"path":"src/filters/filters_callback.ts","kind":"import-statement","original":"./filters/filters_callback.js"},{"path":"src/filters/filters_ends_with_strict.ts","kind":"import-statement","original":"./filters/filters_ends_with_strict.js"},{"path":"src/filters/filters_exact.ts","kind":"import-statement","original":"./filters/filters_exact.js"},{"path":"src/filters/filters_operator.ts","kind":"import-statement","original":"./filters/filters_operator.js"},{"path":"src/filters/filters_partial.ts","kind":"import-statement","original":"./filters/filters_partial.js"},{"path":"src/filters/filters_trashed.ts","kind":"import-statement","original":"./filters/filters_trashed.js"},{"path":"./types.js","kind":"import-statement","external":true}],"format":"esm"},"src/includes/included_callback.ts":{"bytes":809,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/includes/included_count.ts":{"bytes":742,"imports":[{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/includes/included_relationship.ts":{"bytes":2731,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/allowed_include.ts":{"bytes":3602,"imports":[{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/includes/included_callback.ts","kind":"import-statement","original":"./includes/included_callback.js"},{"path":"src/includes/included_count.ts","kind":"import-statement","original":"./includes/included_count.js"},{"path":"src/includes/included_relationship.ts","kind":"import-statement","original":"./includes/included_relationship.js"},{"path":"./types.js","kind":"import-statement","external":true}],"format":"esm"},"src/enums/sort_direction.ts":{"bytes":166,"imports":[],"format":"esm"},"src/exceptions/invalid_direction.ts":{"bytes":387,"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"src/enums/sort_direction.ts","kind":"import-statement","original":"../enums/sort_direction.js"}],"format":"esm"},"src/sorts/sorts_callback.ts":{"bytes":551,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/sorts/sorts_field.ts":{"bytes":385,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/allowed_sort.ts":{"bytes":2724,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"src/enums/sort_direction.ts","kind":"import-statement","original":"./enums/sort_direction.js"},{"path":"src/exceptions/invalid_direction.ts","kind":"import-statement","original":"./exceptions/invalid_direction.js"},{"path":"src/sorts/sorts_callback.ts","kind":"import-statement","original":"./sorts/sorts_callback.js"},{"path":"src/sorts/sorts_field.ts","kind":"import-statement","original":"./sorts/sorts_field.js"},{"path":"./types.js","kind":"import-statement","external":true}],"format":"esm"},"src/define_config.ts":{"bytes":1326,"imports":[{"path":"@adonisjs/core","kind":"import-statement","external":true},{"path":"@adonisjs/core/types","kind":"import-statement","external":true},{"path":"./types.js","kind":"import-statement","external":true}],"format":"esm"},"src/exceptions/allowed_fields_must_be_called_before_allowed_includes.ts":{"bytes":376,"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true}],"format":"esm"},"src/exceptions/invalid_query.ts":{"bytes":174,"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true}],"format":"esm"},"src/exceptions/invalid_append_query.ts":{"bytes":706,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"src/exceptions/invalid_filter_query.ts":{"bytes":739,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"src/exceptions/invalid_filter_value.ts":{"bytes":248,"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true}],"format":"esm"},"src/exceptions/invalid_include_query.ts":{"bytes":900,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"src/exceptions/invalid_sort_query.ts":{"bytes":710,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"src/exceptions/unknown_included_fields_query.ts":{"bytes":672,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"index.ts":{"bytes":1315,"imports":[{"path":"configure.ts","kind":"import-statement","original":"./configure.js"},{"path":"src/allowed_filter.ts","kind":"import-statement","original":"./src/allowed_filter.js"},{"path":"src/allowed_include.ts","kind":"import-statement","original":"./src/allowed_include.js"},{"path":"src/allowed_sort.ts","kind":"import-statement","original":"./src/allowed_sort.js"},{"path":"src/api_query_builder_request.ts","kind":"import-statement","original":"./src/api_query_builder_request.js"},{"path":"src/define_config.ts","kind":"import-statement","original":"./src/define_config.js"},{"path":"src/enums/filter_operator.ts","kind":"import-statement","original":"./src/enums/filter_operator.js"},{"path":"src/enums/sort_direction.ts","kind":"import-statement","original":"./src/enums/sort_direction.js"},{"path":"src/exceptions/allowed_fields_must_be_called_before_allowed_includes.ts","kind":"import-statement","original":"./src/exceptions/allowed_fields_must_be_called_before_allowed_includes.js"},{"path":"src/exceptions/invalid_append_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_append_query.js"},{"path":"src/exceptions/invalid_direction.ts","kind":"import-statement","original":"./src/exceptions/invalid_direction.js"},{"path":"src/exceptions/invalid_filter_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_filter_query.js"},{"path":"src/exceptions/invalid_filter_value.ts","kind":"import-statement","original":"./src/exceptions/invalid_filter_value.js"},{"path":"src/exceptions/invalid_include_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_include_query.js"},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_query.js"},{"path":"src/exceptions/invalid_sort_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_sort_query.js"},{"path":"src/exceptions/unknown_included_fields_query.ts","kind":"import-statement","original":"./src/exceptions/unknown_included_fields_query.js"},{"path":"stubs/main.ts","kind":"import-statement","original":"./stubs/main.js"},{"path":"collect.js","kind":"import-statement","external":true}],"format":"esm"},"src/bindings/api_query_request.ts":{"bytes":770,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"src/api_query_builder_request.ts","kind":"import-statement","original":"../api_query_builder_request.js"}],"format":"esm"},"src/bindings/sorts_query.ts":{"bytes":2829,"imports":[{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/allowed_sort.ts","kind":"import-statement","original":"../allowed_sort.js"},{"path":"src/exceptions/invalid_sort_query.ts","kind":"import-statement","original":"../exceptions/invalid_sort_query.js"},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/bindings/filters_query.ts":{"bytes":2528,"imports":[{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/allowed_filter.ts","kind":"import-statement","original":"../allowed_filter.js"},{"path":"src/exceptions/invalid_filter_query.ts","kind":"import-statement","original":"../exceptions/invalid_filter_query.js"},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/bindings/includes_query.ts":{"bytes":3412,"imports":[{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/allowed_include.ts","kind":"import-statement","original":"../allowed_include.js"},{"path":"src/exceptions/invalid_include_query.ts","kind":"import-statement","original":"../exceptions/invalid_include_query.js"},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"providers/api_query_provider.ts":{"bytes":4064,"imports":[{"path":"@adonisjs/core","kind":"import-statement","external":true},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/core/types","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"../src/allowed_filter.js","kind":"import-statement","external":true},{"path":"../src/allowed_include.js","kind":"import-statement","external":true},{"path":"../src/allowed_sort.js","kind":"import-statement","external":true},{"path":"../src/api_query_builder_request.js","kind":"import-statement","external":true},{"path":"../src/types.js","kind":"import-statement","external":true},{"path":"src/bindings/api_query_request.ts","kind":"dynamic-import","original":"../src/bindings/api_query_request.js"},{"path":"src/bindings/sorts_query.ts","kind":"dynamic-import","original":"../src/bindings/sorts_query.js"},{"path":"src/bindings/filters_query.ts","kind":"dynamic-import","original":"../src/bindings/filters_query.js"},{"path":"src/bindings/includes_query.ts","kind":"dynamic-import","original":"../src/bindings/includes_query.js"}],"format":"esm"},"src/types.ts":{"bytes":4261,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"build/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":7495},"build/index.js":{"imports":[{"path":"build/chunk-HQN7LHVO.js","kind":"import-statement"},{"path":"build/chunk-PBQFWYKU.js","kind":"import-statement"},{"path":"build/chunk-MKQ3HMMA.js","kind":"import-statement"},{"path":"build/chunk-OS75QJZN.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@adonisjs/core","kind":"import-statement","external":true},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["AllowedFieldsMustBeCalledBeforeAllowedIncludes","AllowedFilter","AllowedInclude","AllowedSort","ApiQueryBuilderRequest","FilterOperator","InvalidAppendQuery","InvalidDirection","InvalidFilterQuery","InvalidFilterValue","InvalidIncludeQuery","InvalidQuery","InvalidSortQuery","SortDirection","UnknownIncludedFieldsQuery","configure","defineConfig","stubsRoot"],"entryPoint":"index.ts","inputs":{"stubs/main.ts":{"bytesInOutput":134},"configure.ts":{"bytesInOutput":276},"index.ts":{"bytesInOutput":28},"src/define_config.ts":{"bytesInOutput":1118},"src/exceptions/allowed_fields_must_be_called_before_allowed_includes.ts":{"bytesInOutput":298},"src/exceptions/invalid_append_query.ts":{"bytesInOutput":599},"src/exceptions/invalid_filter_value.ts":{"bytesInOutput":247},"src/exceptions/unknown_included_fields_query.ts":{"bytesInOutput":593}},"bytes":4371},"build/providers/api_query_provider.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4876},"build/providers/api_query_provider.js":{"imports":[{"path":"@adonisjs/core","kind":"import-statement","external":true},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"build/api_query_request-QXOB4BN6.js","kind":"dynamic-import"},{"path":"build/sorts_query-LUETK3FD.js","kind":"dynamic-import"},{"path":"build/filters_query-ZXNA4X75.js","kind":"dynamic-import"},{"path":"build/includes_query-2XNHHWJB.js","kind":"dynamic-import"}],"exports":["default"],"entryPoint":"providers/api_query_provider.ts","inputs":{"providers/api_query_provider.ts":{"bytesInOutput":1261}},"bytes":1338},"build/src/types.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"build/src/types.js":{"imports":[],"exports":[],"entryPoint":"src/types.ts","inputs":{"src/types.ts":{"bytesInOutput":0}},"bytes":0},"build/api_query_request-QXOB4BN6.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1131},"build/api_query_request-QXOB4BN6.js":{"imports":[{"path":"build/chunk-MKQ3HMMA.js","kind":"import-statement"}],"exports":["extendModelQueryBuilderWithRequest"],"entryPoint":"src/bindings/api_query_request.ts","inputs":{"src/bindings/api_query_request.ts":{"bytesInOutput":348}},"bytes":499},"build/sorts_query-LUETK3FD.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4447},"build/sorts_query-LUETK3FD.js":{"imports":[{"path":"build/chunk-HQN7LHVO.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["extendModelQueryBuilderWithSortsQuery"],"entryPoint":"src/bindings/sorts_query.ts","inputs":{"src/bindings/sorts_query.ts":{"bytesInOutput":1877}},"bytes":2064},"build/chunk-HQN7LHVO.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":7217},"build/chunk-HQN7LHVO.js":{"imports":[{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true}],"exports":["AllowedSort","InvalidDirection","InvalidSortQuery","SortDirection"],"inputs":{"src/enums/sort_direction.ts":{"bytesInOutput":66},"src/exceptions/invalid_direction.ts":{"bytesInOutput":311},"src/sorts/sorts_callback.ts":{"bytesInOutput":187},"src/sorts/sorts_field.ts":{"bytesInOutput":135},"src/allowed_sort.ts":{"bytesInOutput":1415},"src/exceptions/invalid_sort_query.ts":{"bytesInOutput":634}},"bytes":3084},"build/filters_query-ZXNA4X75.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3812},"build/filters_query-ZXNA4X75.js":{"imports":[{"path":"build/chunk-PBQFWYKU.js","kind":"import-statement"},{"path":"build/chunk-MKQ3HMMA.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["extendModelQueryBuilderWithFiltersQuery"],"entryPoint":"src/bindings/filters_query.ts","inputs":{"src/bindings/filters_query.ts":{"bytesInOutput":1613}},"bytes":1838},"build/chunk-PBQFWYKU.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":26281},"build/chunk-PBQFWYKU.js":{"imports":[{"path":"build/chunk-MKQ3HMMA.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"collect.js","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true}],"exports":["AllowedFilter","FilterOperator","InvalidFilterQuery"],"inputs":{"src/enums/filter_operator.ts":{"bytesInOutput":162},"src/allowed_filter.ts":{"bytesInOutput":3816},"src/filters/filters_exact.ts":{"bytesInOutput":1632},"src/filters/filters_partial.ts":{"bytesInOutput":1577},"src/filters/filters_begin_with_strict.ts":{"bytesInOutput":316},"src/filters/filters_callback.ts":{"bytesInOutput":175},"src/filters/filters_ends_with_strict.ts":{"bytesInOutput":312},"src/filters/filters_operator.ts":{"bytesInOutput":1750},"src/filters/filters_trashed.ts":{"bytesInOutput":371},"src/exceptions/invalid_filter_query.ts":{"bytesInOutput":671}},"bytes":11378},"build/chunk-MKQ3HMMA.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12289},"build/chunk-MKQ3HMMA.js":{"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["ApiQueryBuilderRequest","substrReplace"],"inputs":{"src/api_query_builder_request.ts":{"bytesInOutput":5775},"src/utils/helpers.ts":{"bytesInOutput":804}},"bytes":6732},"build/includes_query-2XNHHWJB.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":5167},"build/includes_query-2XNHHWJB.js":{"imports":[{"path":"build/chunk-OS75QJZN.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["extendModelQueryBuilderWithIncludesQuery"],"entryPoint":"src/bindings/includes_query.ts","inputs":{"src/bindings/includes_query.ts":{"bytesInOutput":2315}},"bytes":2514},"build/chunk-OS75QJZN.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12703},"build/chunk-OS75QJZN.js":{"imports":[{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true}],"exports":["AllowedInclude","InvalidIncludeQuery"],"inputs":{"src/allowed_include.ts":{"bytesInOutput":1841},"src/includes/included_callback.ts":{"bytesInOutput":173},"src/includes/included_count.ts":{"bytesInOutput":297},"src/includes/included_relationship.ts":{"bytesInOutput":1845},"src/exceptions/invalid_include_query.ts":{"bytesInOutput":835}},"bytes":5311},"build/chunk-XIRHVLVQ.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":383},"build/chunk-XIRHVLVQ.js":{"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true}],"exports":["InvalidQuery"],"inputs":{"src/exceptions/invalid_query.ts":{"bytesInOutput":148}},"bytes":211}}}
1
+ {"inputs":{"stubs/main.ts":{"bytes":144,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true}],"format":"esm"},"configure.ts":{"bytes":423,"imports":[{"path":"stubs/main.ts","kind":"import-statement","original":"./stubs/main.js"}],"format":"esm"},"src/utils/helpers.ts":{"bytes":931,"imports":[],"format":"esm"},"src/api_query_builder_request.ts":{"bytes":6640,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/utils/helpers.ts","kind":"import-statement","original":"./utils/helpers.js"}],"format":"esm"},"src/filters/filters_exact.ts":{"bytes":2526,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/filters/filters_partial.ts":{"bytes":2356,"imports":[{"path":"@adonisjs/lucid/types/database","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true},{"path":"src/filters/filters_exact.ts","kind":"import-statement","original":"./filters_exact.js"}],"format":"esm"},"src/filters/filters_begin_with_strict.ts":{"bytes":570,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true},{"path":"src/filters/filters_partial.ts","kind":"import-statement","original":"./filters_partial.js"}],"format":"esm"},"src/filters/filters_callback.ts":{"bytes":527,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/filters/filters_ends_with_strict.ts":{"bytes":568,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true},{"path":"src/filters/filters_partial.ts","kind":"import-statement","original":"./filters_partial.js"}],"format":"esm"},"src/enums/filter_operator.ts":{"bytes":265,"imports":[],"format":"esm"},"src/filters/filters_operator.ts":{"bytes":2380,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"src/enums/filter_operator.ts","kind":"import-statement","original":"../enums/filter_operator.js"},{"path":"../types.js","kind":"import-statement","external":true},{"path":"src/utils/helpers.ts","kind":"import-statement","original":"../utils/helpers.js"},{"path":"src/filters/filters_exact.ts","kind":"import-statement","original":"./filters_exact.js"}],"format":"esm"},"src/filters/filters_trashed.ts":{"bytes":885,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/allowed_filter.ts":{"bytes":6731,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/api_query_builder_request.ts","kind":"import-statement","original":"./api_query_builder_request.js"},{"path":"./enums/filter_operator.js","kind":"import-statement","external":true},{"path":"src/filters/filters_begin_with_strict.ts","kind":"import-statement","original":"./filters/filters_begin_with_strict.js"},{"path":"src/filters/filters_callback.ts","kind":"import-statement","original":"./filters/filters_callback.js"},{"path":"src/filters/filters_ends_with_strict.ts","kind":"import-statement","original":"./filters/filters_ends_with_strict.js"},{"path":"src/filters/filters_exact.ts","kind":"import-statement","original":"./filters/filters_exact.js"},{"path":"src/filters/filters_operator.ts","kind":"import-statement","original":"./filters/filters_operator.js"},{"path":"src/filters/filters_partial.ts","kind":"import-statement","original":"./filters/filters_partial.js"},{"path":"src/filters/filters_trashed.ts","kind":"import-statement","original":"./filters/filters_trashed.js"},{"path":"./types.js","kind":"import-statement","external":true}],"format":"esm"},"src/includes/included_callback.ts":{"bytes":809,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/includes/included_count.ts":{"bytes":742,"imports":[{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/includes/included_relationship.ts":{"bytes":2731,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/allowed_include.ts":{"bytes":3602,"imports":[{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/includes/included_callback.ts","kind":"import-statement","original":"./includes/included_callback.js"},{"path":"src/includes/included_count.ts","kind":"import-statement","original":"./includes/included_count.js"},{"path":"src/includes/included_relationship.ts","kind":"import-statement","original":"./includes/included_relationship.js"},{"path":"./types.js","kind":"import-statement","external":true}],"format":"esm"},"src/enums/sort_direction.ts":{"bytes":166,"imports":[],"format":"esm"},"src/exceptions/invalid_direction.ts":{"bytes":387,"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"src/enums/sort_direction.ts","kind":"import-statement","original":"../enums/sort_direction.js"}],"format":"esm"},"src/sorts/sorts_callback.ts":{"bytes":551,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/sorts/sorts_field.ts":{"bytes":385,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/allowed_sort.ts":{"bytes":2724,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"src/enums/sort_direction.ts","kind":"import-statement","original":"./enums/sort_direction.js"},{"path":"src/exceptions/invalid_direction.ts","kind":"import-statement","original":"./exceptions/invalid_direction.js"},{"path":"src/sorts/sorts_callback.ts","kind":"import-statement","original":"./sorts/sorts_callback.js"},{"path":"src/sorts/sorts_field.ts","kind":"import-statement","original":"./sorts/sorts_field.js"},{"path":"./types.js","kind":"import-statement","external":true}],"format":"esm"},"src/define_config.ts":{"bytes":1326,"imports":[{"path":"@adonisjs/core","kind":"import-statement","external":true},{"path":"@adonisjs/core/types","kind":"import-statement","external":true},{"path":"./types.js","kind":"import-statement","external":true}],"format":"esm"},"src/exceptions/allowed_fields_must_be_called_before_allowed_includes.ts":{"bytes":376,"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true}],"format":"esm"},"src/exceptions/invalid_query.ts":{"bytes":174,"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true}],"format":"esm"},"src/exceptions/invalid_append_query.ts":{"bytes":706,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"src/exceptions/invalid_filter_query.ts":{"bytes":739,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"src/exceptions/invalid_filter_value.ts":{"bytes":248,"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true}],"format":"esm"},"src/exceptions/invalid_include_query.ts":{"bytes":900,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"src/exceptions/invalid_sort_query.ts":{"bytes":710,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"src/exceptions/unknown_included_fields_query.ts":{"bytes":672,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./invalid_query.js"}],"format":"esm"},"index.ts":{"bytes":1315,"imports":[{"path":"configure.ts","kind":"import-statement","original":"./configure.js"},{"path":"src/allowed_filter.ts","kind":"import-statement","original":"./src/allowed_filter.js"},{"path":"src/allowed_include.ts","kind":"import-statement","original":"./src/allowed_include.js"},{"path":"src/allowed_sort.ts","kind":"import-statement","original":"./src/allowed_sort.js"},{"path":"src/api_query_builder_request.ts","kind":"import-statement","original":"./src/api_query_builder_request.js"},{"path":"src/define_config.ts","kind":"import-statement","original":"./src/define_config.js"},{"path":"src/enums/filter_operator.ts","kind":"import-statement","original":"./src/enums/filter_operator.js"},{"path":"src/enums/sort_direction.ts","kind":"import-statement","original":"./src/enums/sort_direction.js"},{"path":"src/exceptions/allowed_fields_must_be_called_before_allowed_includes.ts","kind":"import-statement","original":"./src/exceptions/allowed_fields_must_be_called_before_allowed_includes.js"},{"path":"src/exceptions/invalid_append_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_append_query.js"},{"path":"src/exceptions/invalid_direction.ts","kind":"import-statement","original":"./src/exceptions/invalid_direction.js"},{"path":"src/exceptions/invalid_filter_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_filter_query.js"},{"path":"src/exceptions/invalid_filter_value.ts","kind":"import-statement","original":"./src/exceptions/invalid_filter_value.js"},{"path":"src/exceptions/invalid_include_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_include_query.js"},{"path":"src/exceptions/invalid_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_query.js"},{"path":"src/exceptions/invalid_sort_query.ts","kind":"import-statement","original":"./src/exceptions/invalid_sort_query.js"},{"path":"src/exceptions/unknown_included_fields_query.ts","kind":"import-statement","original":"./src/exceptions/unknown_included_fields_query.js"},{"path":"stubs/main.ts","kind":"import-statement","original":"./stubs/main.js"},{"path":"collect.js","kind":"import-statement","external":true}],"format":"esm"},"src/bindings/api_query_request.ts":{"bytes":770,"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"src/api_query_builder_request.ts","kind":"import-statement","original":"../api_query_builder_request.js"}],"format":"esm"},"src/bindings/sorts_query.ts":{"bytes":2829,"imports":[{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/allowed_sort.ts","kind":"import-statement","original":"../allowed_sort.js"},{"path":"src/exceptions/invalid_sort_query.ts","kind":"import-statement","original":"../exceptions/invalid_sort_query.js"},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/bindings/filters_query.ts":{"bytes":2528,"imports":[{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/allowed_filter.ts","kind":"import-statement","original":"../allowed_filter.js"},{"path":"src/exceptions/invalid_filter_query.ts","kind":"import-statement","original":"../exceptions/invalid_filter_query.js"},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"src/bindings/includes_query.ts":{"bytes":3412,"imports":[{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"src/allowed_include.ts","kind":"import-statement","original":"../allowed_include.js"},{"path":"src/exceptions/invalid_include_query.ts","kind":"import-statement","original":"../exceptions/invalid_include_query.js"},{"path":"../types.js","kind":"import-statement","external":true}],"format":"esm"},"providers/api_query_provider.ts":{"bytes":4064,"imports":[{"path":"@adonisjs/core","kind":"import-statement","external":true},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/core/types","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/relations","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"../src/allowed_filter.js","kind":"import-statement","external":true},{"path":"../src/allowed_include.js","kind":"import-statement","external":true},{"path":"../src/allowed_sort.js","kind":"import-statement","external":true},{"path":"../src/api_query_builder_request.js","kind":"import-statement","external":true},{"path":"../src/types.js","kind":"import-statement","external":true},{"path":"src/bindings/api_query_request.ts","kind":"dynamic-import","original":"../src/bindings/api_query_request.js"},{"path":"src/bindings/sorts_query.ts","kind":"dynamic-import","original":"../src/bindings/sorts_query.js"},{"path":"src/bindings/filters_query.ts","kind":"dynamic-import","original":"../src/bindings/filters_query.js"},{"path":"src/bindings/includes_query.ts","kind":"dynamic-import","original":"../src/bindings/includes_query.js"}],"format":"esm"},"src/types.ts":{"bytes":4261,"imports":[{"path":"@adonisjs/lucid/types/model","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/types/querybuilder","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"build/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":7495},"build/index.js":{"imports":[{"path":"build/chunk-HQN7LHVO.js","kind":"import-statement"},{"path":"build/chunk-AL3XCN3K.js","kind":"import-statement"},{"path":"build/chunk-MKQ3HMMA.js","kind":"import-statement"},{"path":"build/chunk-OS75QJZN.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@adonisjs/core","kind":"import-statement","external":true},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["AllowedFieldsMustBeCalledBeforeAllowedIncludes","AllowedFilter","AllowedInclude","AllowedSort","ApiQueryBuilderRequest","FilterOperator","InvalidAppendQuery","InvalidDirection","InvalidFilterQuery","InvalidFilterValue","InvalidIncludeQuery","InvalidQuery","InvalidSortQuery","SortDirection","UnknownIncludedFieldsQuery","configure","defineConfig","stubsRoot"],"entryPoint":"index.ts","inputs":{"stubs/main.ts":{"bytesInOutput":134},"configure.ts":{"bytesInOutput":276},"index.ts":{"bytesInOutput":28},"src/define_config.ts":{"bytesInOutput":1118},"src/exceptions/allowed_fields_must_be_called_before_allowed_includes.ts":{"bytesInOutput":298},"src/exceptions/invalid_append_query.ts":{"bytesInOutput":599},"src/exceptions/invalid_filter_value.ts":{"bytesInOutput":247},"src/exceptions/unknown_included_fields_query.ts":{"bytesInOutput":593}},"bytes":4371},"build/providers/api_query_provider.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4876},"build/providers/api_query_provider.js":{"imports":[{"path":"@adonisjs/core","kind":"import-statement","external":true},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/lucid/orm","kind":"import-statement","external":true},{"path":"build/api_query_request-QXOB4BN6.js","kind":"dynamic-import"},{"path":"build/sorts_query-LUETK3FD.js","kind":"dynamic-import"},{"path":"build/filters_query-4E533ESM.js","kind":"dynamic-import"},{"path":"build/includes_query-2XNHHWJB.js","kind":"dynamic-import"}],"exports":["default"],"entryPoint":"providers/api_query_provider.ts","inputs":{"providers/api_query_provider.ts":{"bytesInOutput":1261}},"bytes":1338},"build/src/types.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"build/src/types.js":{"imports":[],"exports":[],"entryPoint":"src/types.ts","inputs":{"src/types.ts":{"bytesInOutput":0}},"bytes":0},"build/api_query_request-QXOB4BN6.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1131},"build/api_query_request-QXOB4BN6.js":{"imports":[{"path":"build/chunk-MKQ3HMMA.js","kind":"import-statement"}],"exports":["extendModelQueryBuilderWithRequest"],"entryPoint":"src/bindings/api_query_request.ts","inputs":{"src/bindings/api_query_request.ts":{"bytesInOutput":348}},"bytes":499},"build/sorts_query-LUETK3FD.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4447},"build/sorts_query-LUETK3FD.js":{"imports":[{"path":"build/chunk-HQN7LHVO.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["extendModelQueryBuilderWithSortsQuery"],"entryPoint":"src/bindings/sorts_query.ts","inputs":{"src/bindings/sorts_query.ts":{"bytesInOutput":1877}},"bytes":2064},"build/chunk-HQN7LHVO.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":7217},"build/chunk-HQN7LHVO.js":{"imports":[{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true}],"exports":["AllowedSort","InvalidDirection","InvalidSortQuery","SortDirection"],"inputs":{"src/enums/sort_direction.ts":{"bytesInOutput":66},"src/exceptions/invalid_direction.ts":{"bytesInOutput":311},"src/sorts/sorts_callback.ts":{"bytesInOutput":187},"src/sorts/sorts_field.ts":{"bytesInOutput":135},"src/allowed_sort.ts":{"bytesInOutput":1415},"src/exceptions/invalid_sort_query.ts":{"bytesInOutput":634}},"bytes":3084},"build/filters_query-4E533ESM.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3812},"build/filters_query-4E533ESM.js":{"imports":[{"path":"build/chunk-AL3XCN3K.js","kind":"import-statement"},{"path":"build/chunk-MKQ3HMMA.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["extendModelQueryBuilderWithFiltersQuery"],"entryPoint":"src/bindings/filters_query.ts","inputs":{"src/bindings/filters_query.ts":{"bytesInOutput":1613}},"bytes":1838},"build/chunk-AL3XCN3K.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":25699},"build/chunk-AL3XCN3K.js":{"imports":[{"path":"build/chunk-MKQ3HMMA.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"collect.js","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true}],"exports":["AllowedFilter","FilterOperator","InvalidFilterQuery"],"inputs":{"src/enums/filter_operator.ts":{"bytesInOutput":162},"src/allowed_filter.ts":{"bytesInOutput":3816},"src/filters/filters_exact.ts":{"bytesInOutput":1632},"src/filters/filters_partial.ts":{"bytesInOutput":1536},"src/filters/filters_begin_with_strict.ts":{"bytesInOutput":231},"src/filters/filters_callback.ts":{"bytesInOutput":175},"src/filters/filters_ends_with_strict.ts":{"bytesInOutput":228},"src/filters/filters_operator.ts":{"bytesInOutput":1750},"src/filters/filters_trashed.ts":{"bytesInOutput":371},"src/exceptions/invalid_filter_query.ts":{"bytesInOutput":671}},"bytes":11168},"build/chunk-MKQ3HMMA.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12289},"build/chunk-MKQ3HMMA.js":{"imports":[{"path":"@adonisjs/core/http","kind":"import-statement","external":true},{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["ApiQueryBuilderRequest","substrReplace"],"inputs":{"src/api_query_builder_request.ts":{"bytesInOutput":5775},"src/utils/helpers.ts":{"bytesInOutput":804}},"bytes":6732},"build/includes_query-2XNHHWJB.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":5167},"build/includes_query-2XNHHWJB.js":{"imports":[{"path":"build/chunk-OS75QJZN.js","kind":"import-statement"},{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"collect.js","kind":"import-statement","external":true}],"exports":["extendModelQueryBuilderWithIncludesQuery"],"entryPoint":"src/bindings/includes_query.ts","inputs":{"src/bindings/includes_query.ts":{"bytesInOutput":2315}},"bytes":2514},"build/chunk-OS75QJZN.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12703},"build/chunk-OS75QJZN.js":{"imports":[{"path":"build/chunk-XIRHVLVQ.js","kind":"import-statement"},{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"@adonisjs/core/services/app","kind":"import-statement","external":true},{"path":"collect.js","kind":"import-statement","external":true},{"path":"@adonisjs/core/http","kind":"import-statement","external":true}],"exports":["AllowedInclude","InvalidIncludeQuery"],"inputs":{"src/allowed_include.ts":{"bytesInOutput":1841},"src/includes/included_callback.ts":{"bytesInOutput":173},"src/includes/included_count.ts":{"bytesInOutput":297},"src/includes/included_relationship.ts":{"bytesInOutput":1845},"src/exceptions/invalid_include_query.ts":{"bytesInOutput":835}},"bytes":5311},"build/chunk-XIRHVLVQ.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":383},"build/chunk-XIRHVLVQ.js":{"imports":[{"path":"@adonisjs/core/exceptions","kind":"import-statement","external":true}],"exports":["InvalidQuery"],"inputs":{"src/exceptions/invalid_query.ts":{"bytesInOutput":148}},"bytes":211}}}
@@ -9,7 +9,7 @@ var ApiQueryProvider = class {
9
9
  async boot() {
10
10
  const { extendModelQueryBuilderWithRequest } = await import("../api_query_request-QXOB4BN6.js");
11
11
  const { extendModelQueryBuilderWithSortsQuery } = await import("../sorts_query-LUETK3FD.js");
12
- const { extendModelQueryBuilderWithFiltersQuery } = await import("../filters_query-ZXNA4X75.js");
12
+ const { extendModelQueryBuilderWithFiltersQuery } = await import("../filters_query-4E533ESM.js");
13
13
  const { extendModelQueryBuilderWithIncludesQuery } = await import("../includes_query-2XNHHWJB.js");
14
14
  const apiQueryConfigProvider = this.app.config.get("apiquery");
15
15
  const config = await configProvider.resolve(this.app, apiQueryConfigProvider);
@@ -1,8 +1,7 @@
1
- import { type DialectContract } from '@adonisjs/lucid/types/database';
2
1
  import { type LucidModel } from '@adonisjs/lucid/types/model';
3
2
  import { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';
4
3
  import { type Filter } from '../types.js';
5
4
  import { FiltersPartial } from './filters_partial.js';
6
5
  export declare class FiltersBeginWithStrict<Model extends LucidModel> extends FiltersPartial<Model> implements Filter<Model> {
7
- protected getWhereRawParameters(value: StrictValuesWithoutRaw, property: string, dialect: DialectContract['name']): [string, string[]];
6
+ protected getWhereRawParameters(value: StrictValuesWithoutRaw, property: string): [string, string[]];
8
7
  }
@@ -1,8 +1,7 @@
1
- import { type DialectContract } from '@adonisjs/lucid/types/database';
2
1
  import { type LucidModel } from '@adonisjs/lucid/types/model';
3
2
  import { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';
4
3
  import { type Filter } from '../types.js';
5
4
  import { FiltersPartial } from './filters_partial.js';
6
5
  export declare class FiltersEndsWithStrict<Model extends LucidModel> extends FiltersPartial<Model> implements Filter<Model> {
7
- protected getWhereRawParameters(value: StrictValuesWithoutRaw, property: string, dialect: DialectContract['name']): [string, string[]];
6
+ protected getWhereRawParameters(value: StrictValuesWithoutRaw, property: string): [string, string[]];
8
7
  }
@@ -5,8 +5,8 @@ import { type Filter } from '../types.js';
5
5
  import { FiltersExact } from './filters_exact.js';
6
6
  export declare class FiltersPartial<Model extends LucidModel> extends FiltersExact<Model> implements Filter<Model> {
7
7
  handle(query: ModelQueryBuilderContract<Model, InstanceType<Model>>, value: StrictValuesWithoutRaw | null, property: string): void;
8
+ protected parsePropertyToColumn(query: ModelQueryBuilderContract<Model, InstanceType<Model>>, property: string): string;
8
9
  protected getDatabaseDialect(query: ModelQueryBuilderContract<Model, InstanceType<Model>>): DialectContract['name'];
9
- protected getWhereRawParameters(value: StrictValuesWithoutRaw | null, property: string, dialect: DialectContract['name']): [string, string[]];
10
+ protected getWhereRawParameters(value: StrictValuesWithoutRaw | null, property: string): [string, string[]];
10
11
  protected static escapeLike(value: string): string;
11
- protected static maybeSpecifyEscapeChar(dialect: DialectContract['name']): string;
12
12
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eienjs/adonisjs-api-query",
3
3
  "description": "Easily build Lucid queries from API requests",
4
- "version": "0.2.0",
4
+ "version": "1.0.1",
5
5
  "type": "module",
6
6
  "module": "./build/index.js",
7
7
  "types": "./build/index.d.ts",
@@ -21,6 +21,7 @@
21
21
  "@adonisjs/lucid": "^21.6.0",
22
22
  "@commitlint/cli": "^19.8.0",
23
23
  "@commitlint/config-conventional": "^19.8.0",
24
+ "@dpaskhin/unique": "^1.0.0",
24
25
  "@japa/assert": "^4.0.1",
25
26
  "@japa/file-system": "^2.3.2",
26
27
  "@japa/runner": "^4.2.0",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/enums/filter_operator.ts","../src/allowed_filter.ts","../src/filters/filters_exact.ts","../src/filters/filters_partial.ts","../src/filters/filters_begin_with_strict.ts","../src/filters/filters_callback.ts","../src/filters/filters_ends_with_strict.ts","../src/filters/filters_operator.ts","../src/filters/filters_trashed.ts","../src/exceptions/invalid_filter_query.ts"],"sourcesContent":["export const FilterOperator = {\n Dynamic: '',\n Equal: '=',\n LessThan: '<',\n GreaterThan: '>',\n LessThanOrEqual: '<=',\n GreaterThanOrEqual: '>=',\n NotEqual: '<>',\n} as const;\n\nexport type FilterOperator = (typeof FilterOperator)[keyof typeof FilterOperator];\n","import { type LucidModel, type ModelAttributes, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { Collection } from 'collect.js';\nimport { ApiQueryBuilderRequest } from './api_query_builder_request.js';\nimport { type FilterOperator } from './enums/filter_operator.js';\nimport { FiltersBeginWithStrict } from './filters/filters_begin_with_strict.js';\nimport { FiltersCallback } from './filters/filters_callback.js';\nimport { FiltersEndsWithStrict } from './filters/filters_ends_with_strict.js';\nimport { FiltersExact } from './filters/filters_exact.js';\nimport { FiltersOperator } from './filters/filters_operator.js';\nimport { FiltersPartial } from './filters/filters_partial.js';\nimport { FiltersTrashed } from './filters/filters_trashed.js';\nimport { type ExtractKeys, type Filter } from './types.js';\n\nexport class AllowedFilter<Model extends LucidModel> {\n public static setFilterArrayValueDelimiter(delimiter?: string): void {\n if (delimiter) {\n ApiQueryBuilderRequest.setFilterArrayValueDelimiter(delimiter);\n }\n }\n\n public static exact<Model extends LucidModel>(\n name: string,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersExact<Model>(addRelationConstraint), internalName);\n }\n\n public static partial<Model extends LucidModel>(\n name: string,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersPartial<Model>(addRelationConstraint), internalName);\n }\n\n public static beginsWithStrict<Model extends LucidModel>(\n name: string,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersBeginWithStrict<Model>(addRelationConstraint), internalName);\n }\n\n public static endsWithStrict<Model extends LucidModel>(\n name: string,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersEndsWithStrict<Model>(addRelationConstraint), internalName);\n }\n\n public static callback<Model extends LucidModel>(\n name: string,\n callback: (query: ModelQueryBuilderContract<Model>, value: unknown, property: string) => void,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, new FiltersCallback<Model>(callback), internalName);\n }\n\n public static trashed<Model extends LucidModel>(\n name = 'trashed',\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n ): AllowedFilter<Model> {\n return new AllowedFilter<Model>(name, new FiltersTrashed<Model>(), internalName);\n }\n\n public static custom<Model extends LucidModel>(\n name: string,\n filterClass: Filter<Model>,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(name, filterClass, internalName);\n }\n\n public static operator<Model extends LucidModel>(\n name: string,\n filterOperator: FilterOperator,\n boolean: 'and' | 'or' = 'and',\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n addRelationConstraint = true,\n arrayValueDelimiter?: string,\n ): AllowedFilter<Model> {\n this.setFilterArrayValueDelimiter(arrayValueDelimiter);\n\n return new AllowedFilter<Model>(\n name,\n new FiltersOperator<Model>(addRelationConstraint, filterOperator, boolean),\n internalName,\n );\n }\n\n protected name: string;\n\n protected filterClass: Filter<Model>;\n\n protected internalName: string;\n\n protected ignored: Collection<unknown>;\n\n protected default: unknown;\n\n protected $hasDefault = false;\n\n protected nullable = false;\n\n public constructor(\n name: string,\n filterClass: Filter<Model>,\n internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>,\n ) {\n this.name = name;\n this.filterClass = filterClass;\n this.ignored = new Collection();\n this.internalName = internalName ?? this.name;\n }\n\n public filter(query: ModelQueryBuilderContract<Model>, value: unknown): void {\n const valueToFilter = this.resolveValueForFiltering(value);\n if (!this.nullable && valueToFilter === null) {\n return;\n }\n\n this.filterClass.handle(query, valueToFilter, this.internalName);\n }\n\n public getFilterClass(): Filter<Model> {\n return this.filterClass;\n }\n\n public getName(): string {\n return this.name;\n }\n\n public isForFilter(filterName: string): boolean {\n return this.name === filterName;\n }\n\n public ignore(...values: unknown[]): this {\n this.ignored = this.ignored.merge(values).flatten();\n\n return this;\n }\n\n public getIgnored(): unknown[] {\n return this.ignored.toArray();\n }\n\n public getInternalName(): string {\n return this.internalName;\n }\n\n public setDefault(defaultValue: unknown): this {\n this.default = defaultValue;\n this.$hasDefault = true;\n\n if (defaultValue === null) {\n this.setNullable(true);\n }\n\n return this;\n }\n\n public getDefault(): unknown {\n return this.default;\n }\n\n public hasDefault(): boolean {\n return this.$hasDefault;\n }\n\n public setNullable(nullable = true): this {\n this.nullable = nullable;\n\n return this;\n }\n\n public unsetDefault(): this {\n this.$hasDefault = false;\n this.default = undefined;\n\n return this;\n }\n\n protected resolveValueForFiltering(value: unknown): StrictValuesWithoutRaw | null {\n if (Array.isArray(value)) {\n const remainingProperties = value.map((subValue) => this.resolveValueForFiltering(subValue));\n\n return remainingProperties.length === 0 ? null : (remainingProperties as StrictValuesWithoutRaw);\n }\n\n return this.ignored.contains(value) ? null : (value as StrictValuesWithoutRaw);\n }\n}\n","import { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type ExtractModelRelations } from '@adonisjs/lucid/types/relations';\nimport collect, { type Collection } from 'collect.js';\nimport { type Filter } from '../types.js';\n\nexport class FiltersExact<Model extends LucidModel> implements Filter<Model> {\n protected relationConstraints: string[] = [];\n\n public constructor(protected addRelationConstraint = true) {}\n\n public handle(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw | null,\n property: string,\n ): void {\n if (this.addRelationConstraint && this.isRelationProperty(query, property)) {\n this.withRelationConstraint(query, value, property);\n\n return;\n }\n\n if (Array.isArray(value)) {\n void query.whereIn(this.qualifyColumn(query, property), value);\n\n return;\n }\n\n if (value === null) {\n void query.whereNull(this.qualifyColumn(query, property));\n\n return;\n }\n\n void query.where(this.qualifyColumn(query, property), '=', value);\n }\n\n protected qualifyColumn(query: ModelQueryBuilderContract<Model, InstanceType<Model>>, column: string): string {\n if (column.includes('.')) {\n return column;\n }\n\n return `${query.model.table}.${query.model.$getColumn(column)?.columnName}`;\n }\n\n protected isRelationProperty(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n property: string,\n ): boolean {\n if (!property.includes('.')) {\n return false;\n }\n\n if (this.relationConstraints.includes(property)) {\n return false;\n }\n\n const firstRelationShip = property.split('.')[0];\n\n return query.model.$relationsDefinitions.has(firstRelationShip);\n }\n\n protected withRelationConstraint(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw | null,\n property: string,\n ): void {\n const [relation, relationProperty] = collect(property.split('.')).pipe((parts: Collection<string>) => [\n parts.except([parts.last()]).implode('.') as ExtractModelRelations<InstanceType<Model>>,\n parts.last(),\n ]);\n\n void query.whereHas(relation, (subQuery: ModelQueryBuilderContract<Model>) => {\n const columnName = this.qualifyColumn(query, relationProperty);\n this.relationConstraints.push(columnName);\n\n this.handle(subQuery, value, columnName);\n });\n }\n}\n","import { type DialectContract } from '@adonisjs/lucid/types/database';\nimport { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type Filter } from '../types.js';\nimport { FiltersExact } from './filters_exact.js';\n\nexport class FiltersPartial<Model extends LucidModel> extends FiltersExact<Model> implements Filter<Model> {\n public handle(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw | null,\n property: string,\n ): void {\n if (this.addRelationConstraint && this.isRelationProperty(query, property)) {\n this.withRelationConstraint(query, value, property);\n\n return;\n }\n\n const dialect = this.getDatabaseDialect(query);\n if (Array.isArray(value)) {\n if (value.filter((item) => item.toString().length > 0).length === 0) {\n return;\n }\n\n void query.where((subQuery) => {\n for (const partialValue of value.filter((item) => item.toString().length > 0)) {\n const [innerSql, innerBindings] = this.getWhereRawParameters(partialValue, property, dialect);\n void subQuery.orWhereRaw(innerSql, innerBindings);\n }\n });\n\n return;\n }\n\n const [sql, bindings] = this.getWhereRawParameters(value, property, dialect);\n void query.whereRaw(sql, bindings);\n }\n\n protected getDatabaseDialect(query: ModelQueryBuilderContract<Model, InstanceType<Model>>): DialectContract['name'] {\n return query.client.dialect.name;\n }\n\n protected getWhereRawParameters(\n value: StrictValuesWithoutRaw | null,\n property: string,\n dialect: DialectContract['name'],\n ): [string, string[]] {\n const resolvedValue = `${value}`.toLowerCase();\n\n return [\n `LOWER(${property}) LIKE ?${FiltersPartial.maybeSpecifyEscapeChar(dialect)}`,\n [`%${FiltersPartial.escapeLike(resolvedValue)}%`],\n ];\n }\n\n protected static escapeLike(value: string): string {\n return value\n .replaceAll('\\\\', '\\\\\\\\')\n .replaceAll('_', String.raw`\\\\_`)\n .replaceAll('%', String.raw`\\\\%`);\n }\n\n protected static maybeSpecifyEscapeChar(dialect: DialectContract['name']): string {\n if (['sqlite3', 'better-sqlite3', 'libsql', 'mssql'].includes(dialect)) {\n return '';\n }\n\n return String.raw`ESCAPE '\\'`;\n }\n}\n","import { type DialectContract } from '@adonisjs/lucid/types/database';\nimport { type LucidModel } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type Filter } from '../types.js';\nimport { FiltersPartial } from './filters_partial.js';\n\nexport class FiltersBeginWithStrict<Model extends LucidModel> extends FiltersPartial<Model> implements Filter<Model> {\n protected getWhereRawParameters(\n value: StrictValuesWithoutRaw,\n property: string,\n dialect: DialectContract['name'],\n ): [string, string[]] {\n return [\n `${property} LIKE ?${FiltersBeginWithStrict.maybeSpecifyEscapeChar(dialect)}`,\n [`${FiltersBeginWithStrict.escapeLike(value.toString())}%`],\n ];\n }\n}\n","import { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type Filter } from '../types.js';\n\nexport class FiltersCallback<Model extends LucidModel> implements Filter<Model> {\n public constructor(\n private callback: (query: ModelQueryBuilderContract<Model>, value: unknown, property: string) => void,\n ) {}\n\n public handle(query: ModelQueryBuilderContract<Model, InstanceType<Model>>, value: unknown, property: string): void {\n this.callback(query, value, property);\n }\n}\n","import { type DialectContract } from '@adonisjs/lucid/types/database';\nimport { type LucidModel } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type Filter } from '../types.js';\nimport { FiltersPartial } from './filters_partial.js';\n\nexport class FiltersEndsWithStrict<Model extends LucidModel> extends FiltersPartial<Model> implements Filter<Model> {\n protected getWhereRawParameters(\n value: StrictValuesWithoutRaw,\n property: string,\n dialect: DialectContract['name'],\n ): [string, string[]] {\n return [\n `${property} LIKE ?${FiltersEndsWithStrict.maybeSpecifyEscapeChar(dialect)}`,\n [`%${FiltersEndsWithStrict.escapeLike(value.toString())}`],\n ];\n }\n}\n","import { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { FilterOperator } from '../enums/filter_operator.js';\nimport { type Filter } from '../types.js';\nimport { substrReplace } from '../utils/helpers.js';\nimport { FiltersExact } from './filters_exact.js';\n\nexport class FiltersOperator<Model extends LucidModel> extends FiltersExact<Model> implements Filter<Model> {\n public constructor(\n protected $addRelationConstraint: boolean,\n protected $filterOperator: FilterOperator,\n protected $boolean: 'and' | 'or',\n ) {\n super($addRelationConstraint);\n }\n\n public handle(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw,\n property: string,\n ): void {\n let filterOperator = this.$filterOperator;\n\n if (this.$addRelationConstraint && this.isRelationProperty(query, property)) {\n this.withRelationConstraint(query, value, property);\n\n return;\n }\n\n if (Array.isArray(value)) {\n const items = value;\n\n void query.where((subQuery) => {\n for (const item of items) {\n this.handle(subQuery, item, property);\n }\n });\n\n return;\n }\n\n if (filterOperator === FilterOperator.Dynamic) {\n filterOperator = this.getDynamicFilterOperator(value.toString());\n value = this.removeDynamicFilterOperatorFromValue(value.toString(), filterOperator);\n }\n\n if (this.$boolean === 'and') {\n void query.where(this.qualifyColumn(query, property), filterOperator, value);\n\n return;\n }\n\n void query.orWhere(this.qualifyColumn(query, property), filterOperator, value);\n }\n\n protected getDynamicFilterOperator(value: string): FilterOperator {\n let filterOperator: FilterOperator = FilterOperator.Equal;\n\n for (const filterOperatorCase of Object.values(FilterOperator)) {\n if (value.startsWith(filterOperatorCase) && filterOperatorCase !== FilterOperator.Dynamic) {\n filterOperator = filterOperatorCase;\n }\n }\n\n return filterOperator;\n }\n\n protected removeDynamicFilterOperatorFromValue(value: string, filterOperator: FilterOperator): string {\n if (value.includes(filterOperator)) {\n value = substrReplace(value, '', 0, filterOperator.length);\n }\n\n return value;\n }\n}\n","import { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';\nimport { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';\nimport { type Filter } from '../types.js';\n\nexport class FiltersTrashed<Model extends LucidModel> implements Filter<Model> {\n public handle(\n query: ModelQueryBuilderContract<Model, InstanceType<Model>>,\n value: StrictValuesWithoutRaw,\n _property: string,\n ): void {\n if (!('withTrashed' in query && 'onlyTrashed' in query)) {\n return;\n }\n\n const queryWithSoftDeletes = query as {\n withTrashed(): ModelQueryBuilderContract<Model>;\n onlyTrashed(): ModelQueryBuilderContract<Model>;\n };\n\n if (value === 'with') {\n void queryWithSoftDeletes.withTrashed();\n\n return;\n }\n\n if (value === 'only') {\n void queryWithSoftDeletes.onlyTrashed();\n }\n }\n}\n","import { ResponseStatus } from '@adonisjs/core/http';\nimport { InvalidQuery } from './invalid_query.js';\n\nexport class InvalidFilterQuery extends InvalidQuery {\n public constructor(\n public readonly unknownFilters: string[],\n public readonly allowedFilters: string[],\n ) {\n const notAllowed = unknownFilters.join(', ');\n const allowed = allowedFilters.join(', ');\n const message = `Requested filter(s) \\`${notAllowed}\\` are not allowed. Allowed filter(s) are \\`${allowed}\\``;\n\n super(message, { status: ResponseStatus.BadRequest });\n }\n\n public static filtersNotAllowed(unknownFilters: string[], allowedFilters: string[]): InvalidFilterQuery {\n return new InvalidFilterQuery(unknownFilters, allowedFilters);\n }\n}\n"],"mappings":"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","names":[]}