@eienjs/adonisjs-api-query 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,7 +17,7 @@ This package provides a set of macros on `ModelQueryBuilder` to build [Lucid](ht
17
17
 
18
18
  ## Documentation
19
19
 
20
- The documentation is available on [EienJS](https://eienjs.com).
20
+ The documentation is available on [EienJS](https://eienjs.com/packages/adonisjs-api-query/getting-started/).
21
21
 
22
22
  ## Contributing
23
23
 
@@ -78,50 +78,37 @@ 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(partialValue, property);
89
88
  void subQuery.orWhereRaw(innerSql, innerBindings);
90
89
  }
91
90
  });
92
91
  return;
93
92
  }
94
- const [sql, bindings] = this.getWhereRawParameters(value, property, dialect);
93
+ const [sql, bindings] = this.getWhereRawParameters(value, property);
95
94
  void query.whereRaw(sql, bindings);
96
95
  }
97
96
  getDatabaseDialect(query) {
98
97
  return query.client.dialect.name;
99
98
  }
100
- getWhereRawParameters(value, property, dialect) {
99
+ getWhereRawParameters(value, property) {
101
100
  const resolvedValue = `${value}`.toLowerCase();
102
- return [
103
- `LOWER(${property}) LIKE ?${_FiltersPartial.maybeSpecifyEscapeChar(dialect)}`,
104
- [`%${_FiltersPartial.escapeLike(resolvedValue)}%`]
105
- ];
101
+ return [`LOWER(${property}) LIKE ?`, [`%${_FiltersPartial.escapeLike(resolvedValue)}%`]];
106
102
  }
107
103
  static escapeLike(value) {
108
104
  return value.replaceAll("\\", "\\\\").replaceAll("_", String.raw`\\_`).replaceAll("%", String.raw`\\%`);
109
105
  }
110
- static maybeSpecifyEscapeChar(dialect) {
111
- if (["sqlite3", "better-sqlite3", "libsql", "mssql"].includes(dialect)) {
112
- return "";
113
- }
114
- return String.raw`ESCAPE '\'`;
115
- }
116
106
  };
117
107
 
118
108
  // src/filters/filters_begin_with_strict.ts
119
109
  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
- ];
110
+ getWhereRawParameters(value, property) {
111
+ return [`${property} LIKE ?`, [`${_FiltersBeginWithStrict.escapeLike(value.toString())}%`]];
125
112
  }
126
113
  };
127
114
 
@@ -137,11 +124,8 @@ var FiltersCallback = class {
137
124
 
138
125
  // src/filters/filters_ends_with_strict.ts
139
126
  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
- ];
127
+ getWhereRawParameters(value, property) {
128
+ return [`${property} LIKE ?`, [`%${_FiltersEndsWithStrict.escapeLike(value.toString())}`]];
145
129
  }
146
130
  };
147
131
 
@@ -346,4 +330,4 @@ export {
346
330
  AllowedFilter,
347
331
  InvalidFilterQuery
348
332
  };
349
- //# sourceMappingURL=chunk-PBQFWYKU.js.map
333
+ //# sourceMappingURL=chunk-KL2OFKRW.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(partialValue, property);\n void subQuery.orWhereRaw(innerSql, innerBindings);\n }\n });\n\n return;\n }\n\n const [sql, bindings] = this.getWhereRawParameters(value, property);\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(value: StrictValuesWithoutRaw | null, property: string): [string, string[]] {\n const resolvedValue = `${value}`.toLowerCase();\n\n return [`LOWER(${property}) LIKE ?`, [`%${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":[]}
package/build/config.stub CHANGED
@@ -5,8 +5,8 @@ import { defineConfig } from '@eienjs/adonisjs-api-query'
5
5
 
6
6
  const apiQueryConfig = defineConfig({
7
7
  /**
8
- * By default the package will use the `include`, `filter`, `sort`
9
- * and `fields` query parameters as described in the readme.
8
+ * By default the package will use the include, filter, sort
9
+ * and fields query parameters as described in the readme.
10
10
  *
11
11
  * You can customize these query string parameters here.
12
12
  */
@@ -31,20 +31,20 @@ const apiQueryConfig = defineConfig({
31
31
  existsSuffix: 'Exists',
32
32
 
33
33
  /**
34
- * By default the package will throw an `InvalidFilterQuery` exception when a filter in the
35
- * URL is not allowed in the `allowedFilters()` method.
34
+ * By default the package will throw an InvalidFilterQuery exception when a filter in the
35
+ * URL is not allowed in the allowedFilters() method.
36
36
  */
37
37
  disableInvalidFilterQueryException: false,
38
38
 
39
39
  /**
40
- * By default the package will throw an `InvalidSortQuery` exception when a sort in the
41
- * URL is not allowed in the `allowedSorts()` method.
40
+ * By default the package will throw an InvalidSortQuery exception when a sort in the
41
+ * URL is not allowed in the allowedSorts() method.
42
42
  */
43
43
  disableInvalidSortQueryException: false,
44
44
 
45
45
  /**
46
- * By default the package will throw an `InvalidIncludeQuery` exception when an include in the
47
- * URL is not allowed in the `allowedIncludes()` method.
46
+ * By default the package will throw an InvalidIncludeQuery exception when an include in the
47
+ * URL is not allowed in the allowedIncludes() method.
48
48
  */
49
49
  disableInvalidIncludesQueryException: false,
50
50
 
@@ -53,7 +53,7 @@ const apiQueryConfig = defineConfig({
53
53
  * For example, fetching the id and name for a userOwner relation would look like this:
54
54
  * GET /users?fields[userOwner]=id,name
55
55
  *
56
- * Set this to `true` if you don't want that and keep the requested relationship names as-is and allows you to
56
+ * Set this to true if you don't want that and keep the requested relationship names as-is and allows you to
57
57
  * request the fields using a snake case relationship name:
58
58
  * GET /users?fields[user_owner]=id,name
59
59
  */
@@ -64,7 +64,7 @@ const apiQueryConfig = defineConfig({
64
64
  * For example, fetching the id and name for a userOwner relation would look like this:
65
65
  * GET /users?fields[userOwner]=id,name
66
66
  *
67
- * Set this to one of `snake_case`, `camelCase` or `none` if you want to enable table name resolution in addition to the relation name resolution
67
+ * Set this to one of snake_case, camelCase or none if you want to enable table name resolution in addition to the relation name resolution
68
68
  * GET /users?include=top_orders&fields[orders]=id,name
69
69
  */
70
70
  convertRelationTableNameStrategy: false,
@@ -74,7 +74,7 @@ const apiQueryConfig = defineConfig({
74
74
  * For example, fetching the field named firstName would look like this:
75
75
  * GET /users?fields=firstName
76
76
  *
77
- * Set this to `true` if you want to convert the firstName into first_name for the underlying query
77
+ * Set this to true if you want to convert the firstName into first_name for the underlying query
78
78
  */
79
79
  convertFieldNamesToSnakeCase: false,
80
80
  })
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AllowedFilter,
3
3
  InvalidFilterQuery
4
- } from "./chunk-PBQFWYKU.js";
4
+ } from "./chunk-KL2OFKRW.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-4UVAL7CO.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-KL2OFKRW.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":1970,"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-KL2OFKRW.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-4UVAL7CO.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-4UVAL7CO.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3812},"build/filters_query-4UVAL7CO.js":{"imports":[{"path":"build/chunk-KL2OFKRW.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-KL2OFKRW.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":25116},"build/chunk-KL2OFKRW.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":1247},"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":10879},"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-4UVAL7CO.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
  }
@@ -6,7 +6,6 @@ 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
8
  protected getDatabaseDialect(query: ModelQueryBuilderContract<Model, InstanceType<Model>>): DialectContract['name'];
9
- protected getWhereRawParameters(value: StrictValuesWithoutRaw | null, property: string, dialect: DialectContract['name']): [string, string[]];
9
+ protected getWhereRawParameters(value: StrictValuesWithoutRaw | null, property: string): [string, string[]];
10
10
  protected static escapeLike(value: string): string;
11
- protected static maybeSpecifyEscapeChar(dialect: DialectContract['name']): string;
12
11
  }
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.1.0",
4
+ "version": "1.0.0",
5
5
  "type": "module",
6
6
  "module": "./build/index.js",
7
7
  "types": "./build/index.d.ts",
@@ -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":[]}