@eienjs/adonisjs-api-query 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +43 -0
- package/build/api_query_request-QXOB4BN6.js +18 -0
- package/build/api_query_request-QXOB4BN6.js.map +1 -0
- package/build/chunk-HQN7LHVO.js +106 -0
- package/build/chunk-HQN7LHVO.js.map +1 -0
- package/build/chunk-MKQ3HMMA.js +198 -0
- package/build/chunk-MKQ3HMMA.js.map +1 -0
- package/build/chunk-OS75QJZN.js +159 -0
- package/build/chunk-OS75QJZN.js.map +1 -0
- package/build/chunk-PBQFWYKU.js +349 -0
- package/build/chunk-PBQFWYKU.js.map +1 -0
- package/build/chunk-XIRHVLVQ.js +10 -0
- package/build/chunk-XIRHVLVQ.js.map +1 -0
- package/build/config.stub +82 -0
- package/build/configure.d.ts +2 -0
- package/build/filters_query-ZXNA4X75.js +55 -0
- package/build/filters_query-ZXNA4X75.js.map +1 -0
- package/build/includes_query-2XNHHWJB.js +70 -0
- package/build/includes_query-2XNHHWJB.js.map +1 -0
- package/build/index.d.ts +19 -0
- package/build/index.js +130 -0
- package/build/index.js.map +1 -0
- package/build/metafile-esm.json +1 -0
- package/build/providers/api_query_provider.d.ts +42 -0
- package/build/providers/api_query_provider.js +30 -0
- package/build/providers/api_query_provider.js.map +1 -0
- package/build/sorts_query-LUETK3FD.js +63 -0
- package/build/sorts_query-LUETK3FD.js.map +1 -0
- package/build/src/allowed_filter.d.ts +37 -0
- package/build/src/allowed_include.d.ts +17 -0
- package/build/src/allowed_sort.d.ts +18 -0
- package/build/src/api_query_builder_request.d.ts +31 -0
- package/build/src/bindings/api_query_request.d.ts +2 -0
- package/build/src/bindings/filters_query.d.ts +3 -0
- package/build/src/bindings/includes_query.d.ts +3 -0
- package/build/src/bindings/sorts_query.d.ts +3 -0
- package/build/src/define_config.d.ts +3 -0
- package/build/src/enums/filter_operator.d.ts +10 -0
- package/build/src/enums/sort_direction.d.ts +5 -0
- package/build/src/exceptions/allowed_fields_must_be_called_before_allowed_includes.d.ts +6 -0
- package/build/src/exceptions/invalid_append_query.d.ts +5 -0
- package/build/src/exceptions/invalid_direction.d.ts +4 -0
- package/build/src/exceptions/invalid_field_query.d.ts +5 -0
- package/build/src/exceptions/invalid_filter_query.d.ts +7 -0
- package/build/src/exceptions/invalid_filter_value.d.ts +4 -0
- package/build/src/exceptions/invalid_include_query.d.ts +7 -0
- package/build/src/exceptions/invalid_query.d.ts +4 -0
- package/build/src/exceptions/invalid_sort_query.d.ts +7 -0
- package/build/src/exceptions/unknown_included_fields_query.d.ts +5 -0
- package/build/src/filters/filters_begin_with_strict.d.ts +8 -0
- package/build/src/filters/filters_callback.d.ts +7 -0
- package/build/src/filters/filters_ends_with_strict.d.ts +8 -0
- package/build/src/filters/filters_exact.d.ts +12 -0
- package/build/src/filters/filters_operator.d.ts +14 -0
- package/build/src/filters/filters_partial.d.ts +12 -0
- package/build/src/filters/filters_trashed.d.ts +6 -0
- package/build/src/includes/included_callback.d.ts +8 -0
- package/build/src/includes/included_count.d.ts +5 -0
- package/build/src/includes/included_relationship.d.ts +9 -0
- package/build/src/sorts/sorts_callback.d.ts +7 -0
- package/build/src/sorts/sorts_field.d.ts +5 -0
- package/build/src/types.d.ts +90 -0
- package/build/src/types.js +1 -0
- package/build/src/types.js.map +1 -0
- package/build/src/utils/helpers.d.ts +3 -0
- package/build/stubs/main.d.ts +1 -0
- package/package.json +143 -0
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { configure } from './configure.js';
|
|
2
|
+
export { AllowedFilter } from './src/allowed_filter.js';
|
|
3
|
+
export { AllowedInclude } from './src/allowed_include.js';
|
|
4
|
+
export { AllowedSort } from './src/allowed_sort.js';
|
|
5
|
+
export { ApiQueryBuilderRequest } from './src/api_query_builder_request.js';
|
|
6
|
+
export { defineConfig } from './src/define_config.js';
|
|
7
|
+
export { FilterOperator } from './src/enums/filter_operator.js';
|
|
8
|
+
export { SortDirection } from './src/enums/sort_direction.js';
|
|
9
|
+
export { AllowedFieldsMustBeCalledBeforeAllowedIncludes } from './src/exceptions/allowed_fields_must_be_called_before_allowed_includes.js';
|
|
10
|
+
export { InvalidAppendQuery } from './src/exceptions/invalid_append_query.js';
|
|
11
|
+
export { InvalidDirection } from './src/exceptions/invalid_direction.js';
|
|
12
|
+
export { InvalidFilterQuery } from './src/exceptions/invalid_filter_query.js';
|
|
13
|
+
export { InvalidFilterValue } from './src/exceptions/invalid_filter_value.js';
|
|
14
|
+
export { InvalidIncludeQuery } from './src/exceptions/invalid_include_query.js';
|
|
15
|
+
export { InvalidQuery } from './src/exceptions/invalid_query.js';
|
|
16
|
+
export { InvalidSortQuery } from './src/exceptions/invalid_sort_query.js';
|
|
17
|
+
export { UnknownIncludedFieldsQuery } from './src/exceptions/unknown_included_fields_query.js';
|
|
18
|
+
export { stubsRoot } from './stubs/main.js';
|
|
19
|
+
export * from 'collect.js';
|
package/build/index.js
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AllowedSort,
|
|
3
|
+
InvalidDirection,
|
|
4
|
+
InvalidSortQuery,
|
|
5
|
+
SortDirection
|
|
6
|
+
} from "./chunk-HQN7LHVO.js";
|
|
7
|
+
import {
|
|
8
|
+
AllowedFilter,
|
|
9
|
+
FilterOperator,
|
|
10
|
+
InvalidFilterQuery
|
|
11
|
+
} from "./chunk-PBQFWYKU.js";
|
|
12
|
+
import {
|
|
13
|
+
ApiQueryBuilderRequest
|
|
14
|
+
} from "./chunk-MKQ3HMMA.js";
|
|
15
|
+
import {
|
|
16
|
+
AllowedInclude,
|
|
17
|
+
InvalidIncludeQuery
|
|
18
|
+
} from "./chunk-OS75QJZN.js";
|
|
19
|
+
import {
|
|
20
|
+
InvalidQuery
|
|
21
|
+
} from "./chunk-XIRHVLVQ.js";
|
|
22
|
+
|
|
23
|
+
// stubs/main.ts
|
|
24
|
+
import path from "node:path";
|
|
25
|
+
import { fileURLToPath } from "node:url";
|
|
26
|
+
var stubsRoot = path.dirname(fileURLToPath(import.meta.url));
|
|
27
|
+
|
|
28
|
+
// configure.ts
|
|
29
|
+
var configure = async (command) => {
|
|
30
|
+
const codemods = await command.createCodemods();
|
|
31
|
+
await codemods.updateRcFile((rcFile) => {
|
|
32
|
+
rcFile.addProvider("@eienjs/adonisjs-api-query/api_query_provider");
|
|
33
|
+
});
|
|
34
|
+
await codemods.makeUsingStub(stubsRoot, "config.stub", {});
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// src/define_config.ts
|
|
38
|
+
import { configProvider } from "@adonisjs/core";
|
|
39
|
+
var defineConfig = function(config) {
|
|
40
|
+
return configProvider.create(async (_) => {
|
|
41
|
+
return {
|
|
42
|
+
parameters: {
|
|
43
|
+
include: config.parameters?.include ?? "include",
|
|
44
|
+
filter: config.parameters?.filter ?? "filter",
|
|
45
|
+
sort: config.parameters?.sort ?? "sort",
|
|
46
|
+
fields: config.parameters?.fields ?? "fields",
|
|
47
|
+
append: config.parameters?.append ?? "append"
|
|
48
|
+
},
|
|
49
|
+
countSuffix: config.countSuffix ?? "Count",
|
|
50
|
+
existsSuffix: config.existsSuffix ?? "Exists",
|
|
51
|
+
disableInvalidFilterQueryException: config.disableInvalidFilterQueryException ?? false,
|
|
52
|
+
disableInvalidSortQueryException: config.disableInvalidSortQueryException ?? false,
|
|
53
|
+
disableInvalidIncludesQueryException: config.disableInvalidIncludesQueryException ?? false,
|
|
54
|
+
convertRelationNamesToSnakeCasePlural: config.convertRelationNamesToSnakeCasePlural ?? false,
|
|
55
|
+
convertRelationTableNameStrategy: config.convertRelationTableNameStrategy ?? false,
|
|
56
|
+
convertFieldNamesToSnakeCase: config.convertFieldNamesToSnakeCase ?? false
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
// src/exceptions/allowed_fields_must_be_called_before_allowed_includes.ts
|
|
62
|
+
import { Exception } from "@adonisjs/core/exceptions";
|
|
63
|
+
var AllowedFieldsMustBeCalledBeforeAllowedIncludes = class extends Exception {
|
|
64
|
+
static code;
|
|
65
|
+
static status;
|
|
66
|
+
constructor() {
|
|
67
|
+
super("The QueryBuilder's `allowedFields` method must be called before the `allowedIncludes` method");
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// src/exceptions/invalid_append_query.ts
|
|
72
|
+
import { ResponseStatus } from "@adonisjs/core/http";
|
|
73
|
+
var InvalidAppendQuery = class _InvalidAppendQuery extends InvalidQuery {
|
|
74
|
+
constructor(appendsNotAllowed, allowedAppends) {
|
|
75
|
+
const notAllowed = appendsNotAllowed.join(", ");
|
|
76
|
+
const allowed = allowedAppends.join(", ");
|
|
77
|
+
const message = `Requested append(s) \`${notAllowed}\` are not allowed. Allowed append(s) are \`${allowed}\``;
|
|
78
|
+
super(message, { status: ResponseStatus.BadRequest });
|
|
79
|
+
}
|
|
80
|
+
static appendsNotAllowed(appendsNotAllowed, allowedAppends) {
|
|
81
|
+
return new _InvalidAppendQuery(appendsNotAllowed, allowedAppends);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
// src/exceptions/invalid_filter_value.ts
|
|
86
|
+
import { Exception as Exception2 } from "@adonisjs/core/exceptions";
|
|
87
|
+
var InvalidFilterValue = class _InvalidFilterValue extends Exception2 {
|
|
88
|
+
static make(value) {
|
|
89
|
+
return new _InvalidFilterValue(`Filter value \`${value}\` is invalid`);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
// src/exceptions/unknown_included_fields_query.ts
|
|
94
|
+
import { ResponseStatus as ResponseStatus2 } from "@adonisjs/core/http";
|
|
95
|
+
var UnknownIncludedFieldsQuery = class extends InvalidQuery {
|
|
96
|
+
unknownFields;
|
|
97
|
+
constructor(unknownFields) {
|
|
98
|
+
const notAllowed = unknownFields.join(", ");
|
|
99
|
+
const message = [
|
|
100
|
+
`Requested field(s) \`${notAllowed}\` are not allowed (yet). `,
|
|
101
|
+
"If you want to allow these fields, please make sure to call the QueryBuilder's `allowedFields` method before the `allowedIncludes` method"
|
|
102
|
+
].join("");
|
|
103
|
+
super(message, { status: ResponseStatus2.BadRequest });
|
|
104
|
+
this.unknownFields = unknownFields;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
// index.ts
|
|
109
|
+
export * from "collect.js";
|
|
110
|
+
export {
|
|
111
|
+
AllowedFieldsMustBeCalledBeforeAllowedIncludes,
|
|
112
|
+
AllowedFilter,
|
|
113
|
+
AllowedInclude,
|
|
114
|
+
AllowedSort,
|
|
115
|
+
ApiQueryBuilderRequest,
|
|
116
|
+
FilterOperator,
|
|
117
|
+
InvalidAppendQuery,
|
|
118
|
+
InvalidDirection,
|
|
119
|
+
InvalidFilterQuery,
|
|
120
|
+
InvalidFilterValue,
|
|
121
|
+
InvalidIncludeQuery,
|
|
122
|
+
InvalidQuery,
|
|
123
|
+
InvalidSortQuery,
|
|
124
|
+
SortDirection,
|
|
125
|
+
UnknownIncludedFieldsQuery,
|
|
126
|
+
configure,
|
|
127
|
+
defineConfig,
|
|
128
|
+
stubsRoot
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../stubs/main.ts","../configure.ts","../src/define_config.ts","../src/exceptions/allowed_fields_must_be_called_before_allowed_includes.ts","../src/exceptions/invalid_append_query.ts","../src/exceptions/invalid_filter_value.ts","../src/exceptions/unknown_included_fields_query.ts","../index.ts"],"sourcesContent":["import path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nexport const stubsRoot = path.dirname(fileURLToPath(import.meta.url));\n","import type Configure from '@adonisjs/core/commands/configure';\nimport { stubsRoot } from './stubs/main.js';\n\nexport const configure = async (command: Configure): Promise<void> => {\n const codemods = await command.createCodemods();\n\n await codemods.updateRcFile((rcFile) => {\n rcFile.addProvider('@eienjs/adonisjs-api-query/api_query_provider');\n });\n\n await codemods.makeUsingStub(stubsRoot, 'config.stub', {});\n};\n","import { configProvider } from '@adonisjs/core';\nimport { type ConfigProvider } from '@adonisjs/core/types';\nimport { type ApiQueryConfig, type ResolvedApiQueryConfig } from './types.js';\n\nexport const defineConfig = function (config: ApiQueryConfig): ConfigProvider<ResolvedApiQueryConfig> {\n return configProvider.create(async (_) => {\n return {\n parameters: {\n include: config.parameters?.include ?? 'include',\n filter: config.parameters?.filter ?? 'filter',\n sort: config.parameters?.sort ?? 'sort',\n fields: config.parameters?.fields ?? 'fields',\n append: config.parameters?.append ?? 'append',\n },\n countSuffix: config.countSuffix ?? 'Count',\n existsSuffix: config.existsSuffix ?? 'Exists',\n disableInvalidFilterQueryException: config.disableInvalidFilterQueryException ?? false,\n disableInvalidSortQueryException: config.disableInvalidSortQueryException ?? false,\n disableInvalidIncludesQueryException: config.disableInvalidIncludesQueryException ?? false,\n convertRelationNamesToSnakeCasePlural: config.convertRelationNamesToSnakeCasePlural ?? false,\n convertRelationTableNameStrategy: config.convertRelationTableNameStrategy ?? false,\n convertFieldNamesToSnakeCase: config.convertFieldNamesToSnakeCase ?? false,\n };\n });\n};\n","import { Exception } from '@adonisjs/core/exceptions';\n\nexport class AllowedFieldsMustBeCalledBeforeAllowedIncludes extends Exception {\n public static readonly code: 'E_BAD_METHOD_CALL_EXCEPTION';\n\n public static readonly status: 500;\n\n public constructor() {\n super(\"The QueryBuilder's `allowedFields` method must be called before the `allowedIncludes` method\");\n }\n}\n","import { ResponseStatus } from '@adonisjs/core/http';\nimport { InvalidQuery } from './invalid_query.js';\n\nexport class InvalidAppendQuery extends InvalidQuery {\n public constructor(appendsNotAllowed: string[], allowedAppends: string[]) {\n const notAllowed = appendsNotAllowed.join(', ');\n const allowed = allowedAppends.join(', ');\n const message = `Requested append(s) \\`${notAllowed}\\` are not allowed. Allowed append(s) are \\`${allowed}\\``;\n\n super(message, { status: ResponseStatus.BadRequest });\n }\n\n public static appendsNotAllowed(appendsNotAllowed: string[], allowedAppends: string[]): InvalidAppendQuery {\n return new InvalidAppendQuery(appendsNotAllowed, allowedAppends);\n }\n}\n","import { Exception } from '@adonisjs/core/exceptions';\n\nexport class InvalidFilterValue extends Exception {\n public static make(value: unknown): InvalidFilterValue {\n return new InvalidFilterValue(`Filter value \\`${value}\\` is invalid`);\n }\n}\n","import { ResponseStatus } from '@adonisjs/core/http';\nimport { InvalidQuery } from './invalid_query.js';\n\nexport class UnknownIncludedFieldsQuery extends InvalidQuery {\n public readonly unknownFields: string[];\n\n public constructor(unknownFields: string[]) {\n const notAllowed = unknownFields.join(', ');\n const message = [\n `Requested field(s) \\`${notAllowed}\\` are not allowed (yet). `,\n \"If you want to allow these fields, please make sure to call the QueryBuilder's `allowedFields` method before the `allowedIncludes` method\",\n ].join('');\n\n super(message, { status: ResponseStatus.BadRequest });\n\n this.unknownFields = unknownFields;\n }\n}\n","export { configure } from './configure.js';\nexport { AllowedFilter } from './src/allowed_filter.js';\nexport { AllowedInclude } from './src/allowed_include.js';\nexport { AllowedSort } from './src/allowed_sort.js';\nexport { ApiQueryBuilderRequest } from './src/api_query_builder_request.js';\nexport { defineConfig } from './src/define_config.js';\nexport { FilterOperator } from './src/enums/filter_operator.js';\nexport { SortDirection } from './src/enums/sort_direction.js';\nexport { AllowedFieldsMustBeCalledBeforeAllowedIncludes } from './src/exceptions/allowed_fields_must_be_called_before_allowed_includes.js';\nexport { InvalidAppendQuery } from './src/exceptions/invalid_append_query.js';\nexport { InvalidDirection } from './src/exceptions/invalid_direction.js';\nexport { InvalidFilterQuery } from './src/exceptions/invalid_filter_query.js';\nexport { InvalidFilterValue } from './src/exceptions/invalid_filter_value.js';\nexport { InvalidIncludeQuery } from './src/exceptions/invalid_include_query.js';\nexport { InvalidQuery } from './src/exceptions/invalid_query.js';\nexport { InvalidSortQuery } from './src/exceptions/invalid_sort_query.js';\nexport { UnknownIncludedFieldsQuery } from './src/exceptions/unknown_included_fields_query.js';\nexport { stubsRoot } from './stubs/main.js';\nexport * from 'collect.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAEvB,IAAM,YAAY,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;;;ACA7D,IAAM,YAAY,OAAO,YAAsC;AACpE,QAAM,WAAW,MAAM,QAAQ,eAAe;AAE9C,QAAM,SAAS,aAAa,CAAC,WAAW;AACtC,WAAO,YAAY,+CAA+C;AAAA,EACpE,CAAC;AAED,QAAM,SAAS,cAAc,WAAW,eAAe,CAAC,CAAC;AAC3D;;;ACXA,SAAS,sBAAsB;AAIxB,IAAM,eAAe,SAAU,QAAgE;AACpG,SAAO,eAAe,OAAO,OAAO,MAAM;AACxC,WAAO;AAAA,MACL,YAAY;AAAA,QACV,SAAS,OAAO,YAAY,WAAW;AAAA,QACvC,QAAQ,OAAO,YAAY,UAAU;AAAA,QACrC,MAAM,OAAO,YAAY,QAAQ;AAAA,QACjC,QAAQ,OAAO,YAAY,UAAU;AAAA,QACrC,QAAQ,OAAO,YAAY,UAAU;AAAA,MACvC;AAAA,MACA,aAAa,OAAO,eAAe;AAAA,MACnC,cAAc,OAAO,gBAAgB;AAAA,MACrC,oCAAoC,OAAO,sCAAsC;AAAA,MACjF,kCAAkC,OAAO,oCAAoC;AAAA,MAC7E,sCAAsC,OAAO,wCAAwC;AAAA,MACrF,uCAAuC,OAAO,yCAAyC;AAAA,MACvF,kCAAkC,OAAO,oCAAoC;AAAA,MAC7E,8BAA8B,OAAO,gCAAgC;AAAA,IACvE;AAAA,EACF,CAAC;AACH;;;ACxBA,SAAS,iBAAiB;AAEnB,IAAM,iDAAN,cAA6D,UAAU;AAAA,EAC5E,OAAuB;AAAA,EAEvB,OAAuB;AAAA,EAEhB,cAAc;AACnB,UAAM,8FAA8F;AAAA,EACtG;AACF;;;ACVA,SAAS,sBAAsB;AAGxB,IAAM,qBAAN,MAAM,4BAA2B,aAAa;AAAA,EAC5C,YAAY,mBAA6B,gBAA0B;AACxE,UAAM,aAAa,kBAAkB,KAAK,IAAI;AAC9C,UAAM,UAAU,eAAe,KAAK,IAAI;AACxC,UAAM,UAAU,yBAAyB,UAAU,+CAA+C,OAAO;AAEzG,UAAM,SAAS,EAAE,QAAQ,eAAe,WAAW,CAAC;AAAA,EACtD;AAAA,EAEA,OAAc,kBAAkB,mBAA6B,gBAA8C;AACzG,WAAO,IAAI,oBAAmB,mBAAmB,cAAc;AAAA,EACjE;AACF;;;ACfA,SAAS,aAAAA,kBAAiB;AAEnB,IAAM,qBAAN,MAAM,4BAA2BA,WAAU;AAAA,EAChD,OAAc,KAAK,OAAoC;AACrD,WAAO,IAAI,oBAAmB,kBAAkB,KAAK,eAAe;AAAA,EACtE;AACF;;;ACNA,SAAS,kBAAAC,uBAAsB;AAGxB,IAAM,6BAAN,cAAyC,aAAa;AAAA,EAC3C;AAAA,EAET,YAAY,eAAyB;AAC1C,UAAM,aAAa,cAAc,KAAK,IAAI;AAC1C,UAAM,UAAU;AAAA,MACd,wBAAwB,UAAU;AAAA,MAClC;AAAA,IACF,EAAE,KAAK,EAAE;AAET,UAAM,SAAS,EAAE,QAAQC,gBAAe,WAAW,CAAC;AAEpD,SAAK,gBAAgB;AAAA,EACvB;AACF;;;ACCA,cAAc;","names":["Exception","ResponseStatus","ResponseStatus"]}
|
|
@@ -0,0 +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}}}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type Request } from '@adonisjs/core/http';
|
|
2
|
+
import { type ApplicationService } from '@adonisjs/core/types';
|
|
3
|
+
import { type LucidModel } from '@adonisjs/lucid/types/model';
|
|
4
|
+
import { type ExtractModelRelations } from '@adonisjs/lucid/types/relations';
|
|
5
|
+
import { type Collection } from 'collect.js';
|
|
6
|
+
import { type AllowedFilter } from '../src/allowed_filter.js';
|
|
7
|
+
import { type AllowedInclude } from '../src/allowed_include.js';
|
|
8
|
+
import { type AllowedSort } from '../src/allowed_sort.js';
|
|
9
|
+
import { type ApiQueryBuilderRequest } from '../src/api_query_builder_request.js';
|
|
10
|
+
import { type ExtractKeys, type HintedString, type SortUnionKeyParams } from '../src/types.js';
|
|
11
|
+
export default class ApiQueryProvider {
|
|
12
|
+
protected app: ApplicationService;
|
|
13
|
+
constructor(app: ApplicationService);
|
|
14
|
+
boot(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
declare module '@adonisjs/lucid/orm' {
|
|
17
|
+
interface ModelQueryBuilder {
|
|
18
|
+
withRequest(request: Request): this;
|
|
19
|
+
$apiQueryBuilderRequest: ApiQueryBuilderRequest;
|
|
20
|
+
allowedSorts(...sorts: (AllowedSort<LucidModel> | string)[]): this;
|
|
21
|
+
allowedSorts(sorts: (AllowedSort<LucidModel> | string)[]): this;
|
|
22
|
+
defaultSort(...sorts: (AllowedSort<LucidModel> | string)[]): this;
|
|
23
|
+
defaultSort(sorts: (AllowedSort<LucidModel> | string)[]): this;
|
|
24
|
+
allowedFilters(...filters: (AllowedFilter<LucidModel> | string)[]): this;
|
|
25
|
+
allowedFilters(filters: (AllowedFilter<LucidModel> | string)[]): this;
|
|
26
|
+
allowedIncludes(...includes: (Collection<AllowedInclude<LucidModel>> | string)[]): this;
|
|
27
|
+
allowedIncludes(includes: (Collection<AllowedInclude<LucidModel>> | string)[]): this;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
declare module '@adonisjs/lucid/types/model' {
|
|
31
|
+
interface ModelQueryBuilderContract<Model extends LucidModel, Result = InstanceType<Model>> {
|
|
32
|
+
withRequest(request: Request): this;
|
|
33
|
+
allowedSorts(...sorts: (AllowedSort<Model> | HintedString<SortUnionKeyParams<Model>>)[]): this;
|
|
34
|
+
allowedSorts(sorts: (AllowedSort<Model> | HintedString<SortUnionKeyParams<Model>>)[]): this;
|
|
35
|
+
defaultSort(...sorts: (AllowedSort<Model> | HintedString<SortUnionKeyParams<Model>>)[]): this;
|
|
36
|
+
defaultSort(sorts: (AllowedSort<Model> | HintedString<SortUnionKeyParams<Model>>)[]): this;
|
|
37
|
+
allowedFilters(...filters: (AllowedFilter<Model> | ExtractKeys<ModelAttributes<InstanceType<Model>>>)[]): this;
|
|
38
|
+
allowedFilters(filters: (AllowedFilter<Model> | ExtractKeys<ModelAttributes<InstanceType<Model>>>)[]): this;
|
|
39
|
+
allowedIncludes(...includes: (Collection<AllowedInclude<Model>> | HintedString<ExtractModelRelations<InstanceType<Model>>>)[]): this;
|
|
40
|
+
allowedIncludes(includes: (Collection<AllowedInclude<Model>> | HintedString<ExtractModelRelations<InstanceType<Model>>>)[]): this;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// providers/api_query_provider.ts
|
|
2
|
+
import { configProvider } from "@adonisjs/core";
|
|
3
|
+
import { RuntimeException } from "@adonisjs/core/exceptions";
|
|
4
|
+
import { ModelQueryBuilder } from "@adonisjs/lucid/orm";
|
|
5
|
+
var ApiQueryProvider = class {
|
|
6
|
+
constructor(app) {
|
|
7
|
+
this.app = app;
|
|
8
|
+
}
|
|
9
|
+
async boot() {
|
|
10
|
+
const { extendModelQueryBuilderWithRequest } = await import("../api_query_request-QXOB4BN6.js");
|
|
11
|
+
const { extendModelQueryBuilderWithSortsQuery } = await import("../sorts_query-LUETK3FD.js");
|
|
12
|
+
const { extendModelQueryBuilderWithFiltersQuery } = await import("../filters_query-ZXNA4X75.js");
|
|
13
|
+
const { extendModelQueryBuilderWithIncludesQuery } = await import("../includes_query-2XNHHWJB.js");
|
|
14
|
+
const apiQueryConfigProvider = this.app.config.get("apiquery");
|
|
15
|
+
const config = await configProvider.resolve(this.app, apiQueryConfigProvider);
|
|
16
|
+
if (!config) {
|
|
17
|
+
throw new RuntimeException(
|
|
18
|
+
'Invalid "config/apiquery.ts" file. Make sure you are using the "defineConfig" method'
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
extendModelQueryBuilderWithRequest(ModelQueryBuilder);
|
|
22
|
+
extendModelQueryBuilderWithSortsQuery(ModelQueryBuilder, config);
|
|
23
|
+
extendModelQueryBuilderWithFiltersQuery(ModelQueryBuilder, config);
|
|
24
|
+
extendModelQueryBuilderWithIncludesQuery(ModelQueryBuilder, config);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
ApiQueryProvider as default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=api_query_provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../providers/api_query_provider.ts"],"sourcesContent":["import { configProvider } from '@adonisjs/core';\nimport { RuntimeException } from '@adonisjs/core/exceptions';\nimport { type Request } from '@adonisjs/core/http';\nimport { type ApplicationService } from '@adonisjs/core/types';\nimport { ModelQueryBuilder } from '@adonisjs/lucid/orm';\nimport { type LucidModel } from '@adonisjs/lucid/types/model';\nimport { type ExtractModelRelations } from '@adonisjs/lucid/types/relations';\nimport { type Collection } from 'collect.js';\nimport { type AllowedFilter } from '../src/allowed_filter.js';\nimport { type AllowedInclude } from '../src/allowed_include.js';\nimport { type AllowedSort } from '../src/allowed_sort.js';\nimport { type ApiQueryBuilderRequest } from '../src/api_query_builder_request.js';\nimport {\n type ApiQueryConfig,\n type ExtractKeys,\n type HintedString,\n type ResolvedApiQueryConfig,\n type SortUnionKeyParams,\n} from '../src/types.js';\n\nexport default class ApiQueryProvider {\n public constructor(protected app: ApplicationService) {}\n\n public async boot(): Promise<void> {\n const { extendModelQueryBuilderWithRequest } = await import('../src/bindings/api_query_request.js');\n const { extendModelQueryBuilderWithSortsQuery } = await import('../src/bindings/sorts_query.js');\n const { extendModelQueryBuilderWithFiltersQuery } = await import('../src/bindings/filters_query.js');\n const { extendModelQueryBuilderWithIncludesQuery } = await import('../src/bindings/includes_query.js');\n const apiQueryConfigProvider = this.app.config.get<ApiQueryConfig>('apiquery');\n const config = await configProvider.resolve<ResolvedApiQueryConfig>(this.app, apiQueryConfigProvider);\n\n if (!config) {\n throw new RuntimeException(\n 'Invalid \"config/apiquery.ts\" file. Make sure you are using the \"defineConfig\" method',\n );\n }\n\n extendModelQueryBuilderWithRequest(ModelQueryBuilder);\n extendModelQueryBuilderWithSortsQuery(ModelQueryBuilder, config);\n extendModelQueryBuilderWithFiltersQuery(ModelQueryBuilder, config);\n extendModelQueryBuilderWithIncludesQuery(ModelQueryBuilder, config);\n }\n}\n\ndeclare module '@adonisjs/lucid/orm' {\n interface ModelQueryBuilder {\n withRequest(request: Request): this;\n $apiQueryBuilderRequest: ApiQueryBuilderRequest;\n\n allowedSorts(...sorts: (AllowedSort<LucidModel> | string)[]): this;\n allowedSorts(sorts: (AllowedSort<LucidModel> | string)[]): this;\n defaultSort(...sorts: (AllowedSort<LucidModel> | string)[]): this;\n defaultSort(sorts: (AllowedSort<LucidModel> | string)[]): this;\n\n allowedFilters(...filters: (AllowedFilter<LucidModel> | string)[]): this;\n allowedFilters(filters: (AllowedFilter<LucidModel> | string)[]): this;\n\n allowedIncludes(...includes: (Collection<AllowedInclude<LucidModel>> | string)[]): this;\n allowedIncludes(includes: (Collection<AllowedInclude<LucidModel>> | string)[]): this;\n }\n}\n\ndeclare module '@adonisjs/lucid/types/model' {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface ModelQueryBuilderContract<Model extends LucidModel, Result = InstanceType<Model>> {\n withRequest(request: Request): this;\n\n allowedSorts(...sorts: (AllowedSort<Model> | HintedString<SortUnionKeyParams<Model>>)[]): this;\n allowedSorts(sorts: (AllowedSort<Model> | HintedString<SortUnionKeyParams<Model>>)[]): this;\n defaultSort(...sorts: (AllowedSort<Model> | HintedString<SortUnionKeyParams<Model>>)[]): this;\n defaultSort(sorts: (AllowedSort<Model> | HintedString<SortUnionKeyParams<Model>>)[]): this;\n\n allowedFilters(...filters: (AllowedFilter<Model> | ExtractKeys<ModelAttributes<InstanceType<Model>>>)[]): this;\n allowedFilters(filters: (AllowedFilter<Model> | ExtractKeys<ModelAttributes<InstanceType<Model>>>)[]): this;\n\n allowedIncludes(\n ...includes: (Collection<AllowedInclude<Model>> | HintedString<ExtractModelRelations<InstanceType<Model>>>)[]\n ): this;\n allowedIncludes(\n includes: (Collection<AllowedInclude<Model>> | HintedString<ExtractModelRelations<InstanceType<Model>>>)[],\n ): this;\n }\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AAGjC,SAAS,yBAAyB;AAgBlC,IAAqB,mBAArB,MAAsC;AAAA,EAC7B,YAAsB,KAAyB;AAAzB;AAAA,EAA0B;AAAA,EAEvD,MAAa,OAAsB;AACjC,UAAM,EAAE,mCAAmC,IAAI,MAAM,OAAO,kCAAsC;AAClG,UAAM,EAAE,sCAAsC,IAAI,MAAM,OAAO,4BAAgC;AAC/F,UAAM,EAAE,wCAAwC,IAAI,MAAM,OAAO,8BAAkC;AACnG,UAAM,EAAE,yCAAyC,IAAI,MAAM,OAAO,+BAAmC;AACrG,UAAM,yBAAyB,KAAK,IAAI,OAAO,IAAoB,UAAU;AAC7E,UAAM,SAAS,MAAM,eAAe,QAAgC,KAAK,KAAK,sBAAsB;AAEpG,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,uCAAmC,iBAAiB;AACpD,0CAAsC,mBAAmB,MAAM;AAC/D,4CAAwC,mBAAmB,MAAM;AACjE,6CAAyC,mBAAmB,MAAM;AAAA,EACpE;AACF;","names":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AllowedSort,
|
|
3
|
+
InvalidSortQuery
|
|
4
|
+
} from "./chunk-HQN7LHVO.js";
|
|
5
|
+
import "./chunk-XIRHVLVQ.js";
|
|
6
|
+
|
|
7
|
+
// src/bindings/sorts_query.ts
|
|
8
|
+
import { collect } from "collect.js";
|
|
9
|
+
var extendModelQueryBuilderWithSortsQuery = function(builder, config) {
|
|
10
|
+
const ensureAllSortsExist = (self) => {
|
|
11
|
+
if (config.disableInvalidSortQueryException) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const requestedSortNames = self.$apiQueryBuilderRequest.sorts().map((sort) => sort.replace(/^-+/, ""));
|
|
15
|
+
const allowedSortNames = self._allowedSorts.map((sort) => sort.getName());
|
|
16
|
+
const unknownSort = requestedSortNames.diff(allowedSortNames);
|
|
17
|
+
if (unknownSort.isNotEmpty()) {
|
|
18
|
+
throw InvalidSortQuery.sortsNotAllowed(unknownSort.all(), allowedSortNames.all());
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const findSort = (self, property) => {
|
|
22
|
+
return self._allowedSorts.first((sort) => sort.isSort(property));
|
|
23
|
+
};
|
|
24
|
+
const addRequestedSortsToQuery = (self) => {
|
|
25
|
+
self.$apiQueryBuilderRequest.sorts().each((property) => {
|
|
26
|
+
const descending = property.startsWith("-");
|
|
27
|
+
const key = property.replace(/^-+/, "");
|
|
28
|
+
const sort = findSort(self, key);
|
|
29
|
+
sort?.sort(self, descending);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
builder.macro("allowedSorts", function(...sorts) {
|
|
33
|
+
const arraySorts = Array.isArray(sorts.at(0)) ? sorts.at(0) : sorts;
|
|
34
|
+
this._allowedSorts = collect(arraySorts).map((sort) => {
|
|
35
|
+
if (sort instanceof AllowedSort) {
|
|
36
|
+
return sort;
|
|
37
|
+
}
|
|
38
|
+
return AllowedSort.field(sort.replace(/^-+/, ""));
|
|
39
|
+
});
|
|
40
|
+
ensureAllSortsExist(this);
|
|
41
|
+
addRequestedSortsToQuery(this);
|
|
42
|
+
return this;
|
|
43
|
+
});
|
|
44
|
+
builder.macro("defaultSort", function(...sorts) {
|
|
45
|
+
if (this.$apiQueryBuilderRequest.sorts().isNotEmpty()) {
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
const arraySorts = Array.isArray(sorts.at(0)) ? sorts.at(0) : sorts;
|
|
49
|
+
collect(arraySorts).map((sort) => {
|
|
50
|
+
if (sort instanceof AllowedSort) {
|
|
51
|
+
return sort;
|
|
52
|
+
}
|
|
53
|
+
return AllowedSort.field(sort);
|
|
54
|
+
}).each((sort) => {
|
|
55
|
+
sort.sort(this);
|
|
56
|
+
});
|
|
57
|
+
return this;
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
export {
|
|
61
|
+
extendModelQueryBuilderWithSortsQuery
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=sorts_query-LUETK3FD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/bindings/sorts_query.ts"],"sourcesContent":["import { type ModelQueryBuilder } from '@adonisjs/lucid/orm';\nimport { type LucidModel } from '@adonisjs/lucid/types/model';\nimport { collect, type Collection } from 'collect.js';\nimport { AllowedSort } from '../allowed_sort.js';\nimport { InvalidSortQuery } from '../exceptions/invalid_sort_query.js';\nimport { type ResolvedApiQueryConfig } from '../types.js';\n\ntype ModelQueryBuilderWithAllowedSorts = ModelQueryBuilder & { _allowedSorts: Collection<AllowedSort<LucidModel>> };\n\nexport const extendModelQueryBuilderWithSortsQuery = function (\n builder: typeof ModelQueryBuilder,\n config: ResolvedApiQueryConfig,\n): void {\n const ensureAllSortsExist = (self: ModelQueryBuilderWithAllowedSorts): void => {\n if (config.disableInvalidSortQueryException) {\n return;\n }\n\n const requestedSortNames = self.$apiQueryBuilderRequest.sorts().map((sort) => sort.replace(/^-+/, ''));\n const allowedSortNames = self._allowedSorts.map((sort) => sort.getName());\n const unknownSort = requestedSortNames.diff(allowedSortNames);\n\n if (unknownSort.isNotEmpty()) {\n throw InvalidSortQuery.sortsNotAllowed(unknownSort.all(), allowedSortNames.all());\n }\n };\n\n const findSort = (self: ModelQueryBuilderWithAllowedSorts, property: string): AllowedSort<LucidModel> | undefined => {\n return self._allowedSorts.first((sort) => sort.isSort(property));\n };\n\n const addRequestedSortsToQuery = (self: ModelQueryBuilderWithAllowedSorts): void => {\n self.$apiQueryBuilderRequest.sorts().each((property) => {\n const descending = property.startsWith('-');\n const key = property.replace(/^-+/, '');\n const sort = findSort(self, key);\n\n sort?.sort(self, descending);\n });\n };\n\n builder.macro('allowedSorts', function (this: ModelQueryBuilderWithAllowedSorts, ...sorts) {\n const arraySorts = Array.isArray(sorts.at(0)) ? sorts.at(0) : (sorts as (AllowedSort<LucidModel> | string)[]);\n\n this._allowedSorts = collect(arraySorts).map((sort) => {\n if (sort instanceof AllowedSort) {\n return sort;\n }\n\n return AllowedSort.field(sort.replace(/^-+/, ''));\n });\n\n ensureAllSortsExist(this);\n addRequestedSortsToQuery(this);\n\n return this;\n });\n\n builder.macro('defaultSort', function (this: ModelQueryBuilderWithAllowedSorts, ...sorts) {\n if (this.$apiQueryBuilderRequest.sorts().isNotEmpty()) {\n // We've got requested sorts. No need to parse defaults.\n\n return this;\n }\n\n const arraySorts = Array.isArray(sorts.at(0)) ? sorts.at(0) : (sorts as (AllowedSort<LucidModel> | string)[]);\n\n collect(arraySorts)\n .map((sort) => {\n if (sort instanceof AllowedSort) {\n return sort;\n }\n\n return AllowedSort.field(sort);\n })\n .each((sort) => {\n sort.sort(this);\n });\n\n return this;\n });\n};\n"],"mappings":";;;;;;;AAEA,SAAS,eAAgC;AAOlC,IAAM,wCAAwC,SACnD,SACA,QACM;AACN,QAAM,sBAAsB,CAAC,SAAkD;AAC7E,QAAI,OAAO,kCAAkC;AAC3C;AAAA,IACF;AAEA,UAAM,qBAAqB,KAAK,wBAAwB,MAAM,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ,OAAO,EAAE,CAAC;AACrG,UAAM,mBAAmB,KAAK,cAAc,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC;AACxE,UAAM,cAAc,mBAAmB,KAAK,gBAAgB;AAE5D,QAAI,YAAY,WAAW,GAAG;AAC5B,YAAM,iBAAiB,gBAAgB,YAAY,IAAI,GAAG,iBAAiB,IAAI,CAAC;AAAA,IAClF;AAAA,EACF;AAEA,QAAM,WAAW,CAAC,MAAyC,aAA0D;AACnH,WAAO,KAAK,cAAc,MAAM,CAAC,SAAS,KAAK,OAAO,QAAQ,CAAC;AAAA,EACjE;AAEA,QAAM,2BAA2B,CAAC,SAAkD;AAClF,SAAK,wBAAwB,MAAM,EAAE,KAAK,CAAC,aAAa;AACtD,YAAM,aAAa,SAAS,WAAW,GAAG;AAC1C,YAAM,MAAM,SAAS,QAAQ,OAAO,EAAE;AACtC,YAAM,OAAO,SAAS,MAAM,GAAG;AAE/B,YAAM,KAAK,MAAM,UAAU;AAAA,IAC7B,CAAC;AAAA,EACH;AAEA,UAAQ,MAAM,gBAAgB,YAAsD,OAAO;AACzF,UAAM,aAAa,MAAM,QAAQ,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,IAAK;AAE/D,SAAK,gBAAgB,QAAQ,UAAU,EAAE,IAAI,CAAC,SAAS;AACrD,UAAI,gBAAgB,aAAa;AAC/B,eAAO;AAAA,MACT;AAEA,aAAO,YAAY,MAAM,KAAK,QAAQ,OAAO,EAAE,CAAC;AAAA,IAClD,CAAC;AAED,wBAAoB,IAAI;AACxB,6BAAyB,IAAI;AAE7B,WAAO;AAAA,EACT,CAAC;AAED,UAAQ,MAAM,eAAe,YAAsD,OAAO;AACxF,QAAI,KAAK,wBAAwB,MAAM,EAAE,WAAW,GAAG;AAGrD,aAAO;AAAA,IACT;AAEA,UAAM,aAAa,MAAM,QAAQ,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,IAAK;AAE/D,YAAQ,UAAU,EACf,IAAI,CAAC,SAAS;AACb,UAAI,gBAAgB,aAAa;AAC/B,eAAO;AAAA,MACT;AAEA,aAAO,YAAY,MAAM,IAAI;AAAA,IAC/B,CAAC,EACA,KAAK,CAAC,SAAS;AACd,WAAK,KAAK,IAAI;AAAA,IAChB,CAAC;AAEH,WAAO;AAAA,EACT,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type LucidModel, type ModelAttributes, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';
|
|
2
|
+
import { type StrictValuesWithoutRaw } from '@adonisjs/lucid/types/querybuilder';
|
|
3
|
+
import { Collection } from 'collect.js';
|
|
4
|
+
import { type FilterOperator } from './enums/filter_operator.js';
|
|
5
|
+
import { type ExtractKeys, type Filter } from './types.js';
|
|
6
|
+
export declare class AllowedFilter<Model extends LucidModel> {
|
|
7
|
+
static setFilterArrayValueDelimiter(delimiter?: string): void;
|
|
8
|
+
static exact<Model extends LucidModel>(name: string, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>, addRelationConstraint?: boolean, arrayValueDelimiter?: string): AllowedFilter<Model>;
|
|
9
|
+
static partial<Model extends LucidModel>(name: string, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>, addRelationConstraint?: boolean, arrayValueDelimiter?: string): AllowedFilter<Model>;
|
|
10
|
+
static beginsWithStrict<Model extends LucidModel>(name: string, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>, addRelationConstraint?: boolean, arrayValueDelimiter?: string): AllowedFilter<Model>;
|
|
11
|
+
static endsWithStrict<Model extends LucidModel>(name: string, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>, addRelationConstraint?: boolean, arrayValueDelimiter?: string): AllowedFilter<Model>;
|
|
12
|
+
static callback<Model extends LucidModel>(name: string, callback: (query: ModelQueryBuilderContract<Model>, value: unknown, property: string) => void, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>, arrayValueDelimiter?: string): AllowedFilter<Model>;
|
|
13
|
+
static trashed<Model extends LucidModel>(name?: string, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>): AllowedFilter<Model>;
|
|
14
|
+
static custom<Model extends LucidModel>(name: string, filterClass: Filter<Model>, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>, arrayValueDelimiter?: string): AllowedFilter<Model>;
|
|
15
|
+
static operator<Model extends LucidModel>(name: string, filterOperator: FilterOperator, boolean?: 'and' | 'or', internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>, addRelationConstraint?: boolean, arrayValueDelimiter?: string): AllowedFilter<Model>;
|
|
16
|
+
protected name: string;
|
|
17
|
+
protected filterClass: Filter<Model>;
|
|
18
|
+
protected internalName: string;
|
|
19
|
+
protected ignored: Collection<unknown>;
|
|
20
|
+
protected default: unknown;
|
|
21
|
+
protected $hasDefault: boolean;
|
|
22
|
+
protected nullable: boolean;
|
|
23
|
+
constructor(name: string, filterClass: Filter<Model>, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>);
|
|
24
|
+
filter(query: ModelQueryBuilderContract<Model>, value: unknown): void;
|
|
25
|
+
getFilterClass(): Filter<Model>;
|
|
26
|
+
getName(): string;
|
|
27
|
+
isForFilter(filterName: string): boolean;
|
|
28
|
+
ignore(...values: unknown[]): this;
|
|
29
|
+
getIgnored(): unknown[];
|
|
30
|
+
getInternalName(): string;
|
|
31
|
+
setDefault(defaultValue: unknown): this;
|
|
32
|
+
getDefault(): unknown;
|
|
33
|
+
hasDefault(): boolean;
|
|
34
|
+
setNullable(nullable?: boolean): this;
|
|
35
|
+
unsetDefault(): this;
|
|
36
|
+
protected resolveValueForFiltering(value: unknown): StrictValuesWithoutRaw | null;
|
|
37
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type LucidModel, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';
|
|
2
|
+
import { type ModelRelations } from '@adonisjs/lucid/types/relations';
|
|
3
|
+
import { Collection } from 'collect.js';
|
|
4
|
+
import { type Include } from './types.js';
|
|
5
|
+
export declare class AllowedInclude<Model extends LucidModel> {
|
|
6
|
+
static relationship<ParentModel extends LucidModel>(name: string, internalName?: string): Collection<AllowedInclude<ParentModel>>;
|
|
7
|
+
static count<ParentModel extends LucidModel>(name: string, internalName?: string): Collection<AllowedInclude<ParentModel>>;
|
|
8
|
+
static callback<ParentModel extends LucidModel, RelatedModel extends LucidModel>(name: string, callback: (query: ModelRelations<RelatedModel, ParentModel>['builder'] | ModelRelations<RelatedModel, ParentModel>['subQuery']) => void, internalName?: string): Collection<AllowedInclude<ParentModel>>;
|
|
9
|
+
static custom<ParentModel extends LucidModel>(name: string, includeClass: Include<ParentModel>, internalName?: string): Collection<AllowedInclude<ParentModel>>;
|
|
10
|
+
protected internalName: string;
|
|
11
|
+
protected name: string;
|
|
12
|
+
protected includeClass: Include<Model>;
|
|
13
|
+
constructor(name: string, includeClass: Include<Model>, internalName?: string);
|
|
14
|
+
include(query: ModelQueryBuilderContract<Model>): void;
|
|
15
|
+
getName(): string;
|
|
16
|
+
isForInclude(includeName: string): boolean;
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type LucidModel, type ModelAttributes, type ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';
|
|
2
|
+
import { type ExtractKeys, type Sort } from './types.js';
|
|
3
|
+
export declare class AllowedSort<Model extends LucidModel> {
|
|
4
|
+
static parseSortDirection(name: string): string;
|
|
5
|
+
static field<Model extends LucidModel>(name: string, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>): AllowedSort<Model>;
|
|
6
|
+
static custom<Model extends LucidModel>(name: string, sortClass: Sort<Model>, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>): AllowedSort<Model>;
|
|
7
|
+
static callback<Model extends LucidModel>(name: string, callback: (query: ModelQueryBuilderContract<Model>, descending: boolean, property: string) => void, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>): AllowedSort<Model>;
|
|
8
|
+
protected defaultDirection: string;
|
|
9
|
+
protected internalName: string;
|
|
10
|
+
protected name: string;
|
|
11
|
+
protected sortClass: Sort<Model>;
|
|
12
|
+
constructor(name: string, sortClass: Sort<Model>, internalName?: ExtractKeys<ModelAttributes<InstanceType<Model>>>);
|
|
13
|
+
sort(query: ModelQueryBuilderContract<Model>, descending?: boolean): void;
|
|
14
|
+
getName(): string;
|
|
15
|
+
isSort(sortName: string): boolean;
|
|
16
|
+
getInternalName(): string;
|
|
17
|
+
setDefaultDirection(defaultDirection: string): this;
|
|
18
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type Request } from '@adonisjs/core/http';
|
|
2
|
+
import { Collection } from 'collect.js';
|
|
3
|
+
export declare class ApiQueryBuilderRequest {
|
|
4
|
+
protected static includesArrayValueDelimiter: string;
|
|
5
|
+
protected static appendsArrayValueDelimiter: string;
|
|
6
|
+
protected static fieldsArrayValueDelimiter: string;
|
|
7
|
+
protected static sortsArrayValueDelimiter: string;
|
|
8
|
+
protected static filterArrayValueDelimiter: string;
|
|
9
|
+
static setArrayValueDelimiter(delimiter: string): void;
|
|
10
|
+
static setIncludesArrayValueDelimiter(includesArrayValueDelimiter: string): void;
|
|
11
|
+
static setAppendsArrayValueDelimiter(appendsArrayValueDelimiter: string): void;
|
|
12
|
+
static setFieldsArrayValueDelimiter(fieldsArrayValueDelimiter: string): void;
|
|
13
|
+
static setSortsArrayValueDelimiter(sortsArrayValueDelimiter: string): void;
|
|
14
|
+
static setFilterArrayValueDelimiter(filterArrayValueDelimiter: string): void;
|
|
15
|
+
static getIncludesArrayValueDelimiter(): string;
|
|
16
|
+
static getAppendsArrayValueDelimiter(): string;
|
|
17
|
+
static getFieldsArrayValueDelimiter(): string;
|
|
18
|
+
static getSortsArrayValueDelimiter(): string;
|
|
19
|
+
static getFilterArrayValueDelimiter(): string;
|
|
20
|
+
static resetDelimiters(): void;
|
|
21
|
+
static fromRequest(request: Request): ApiQueryBuilderRequest;
|
|
22
|
+
private readonly _request;
|
|
23
|
+
constructor(request?: Request);
|
|
24
|
+
includes(): Collection<string>;
|
|
25
|
+
appends(): Collection<unknown>;
|
|
26
|
+
fields(): Collection<unknown>;
|
|
27
|
+
sorts(): Collection<string>;
|
|
28
|
+
filters(): Collection<unknown>;
|
|
29
|
+
protected getFilterValue(value: unknown): unknown;
|
|
30
|
+
protected getRequestData<T = unknown>(key: string, defaultValue?: T): T;
|
|
31
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const FilterOperator: {
|
|
2
|
+
readonly Dynamic: "";
|
|
3
|
+
readonly Equal: "=";
|
|
4
|
+
readonly LessThan: "<";
|
|
5
|
+
readonly GreaterThan: ">";
|
|
6
|
+
readonly LessThanOrEqual: "<=";
|
|
7
|
+
readonly GreaterThanOrEqual: ">=";
|
|
8
|
+
readonly NotEqual: "<>";
|
|
9
|
+
};
|
|
10
|
+
export type FilterOperator = (typeof FilterOperator)[keyof typeof FilterOperator];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { InvalidQuery } from './invalid_query.js';
|
|
2
|
+
export declare class InvalidAppendQuery extends InvalidQuery {
|
|
3
|
+
constructor(appendsNotAllowed: string[], allowedAppends: string[]);
|
|
4
|
+
static appendsNotAllowed(appendsNotAllowed: string[], allowedAppends: string[]): InvalidAppendQuery;
|
|
5
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { InvalidQuery } from './invalid_query.js';
|
|
2
|
+
export declare class InvalidFieldQuery extends InvalidQuery {
|
|
3
|
+
constructor(unknownFields: string[], allowedFields: string[]);
|
|
4
|
+
static fieldsNotAllowed(unknownFields: string[], allowedFields: string[]): InvalidFieldQuery;
|
|
5
|
+
}
|