@h3ravel/arquebus 0.5.0 → 0.6.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.
Files changed (45) hide show
  1. package/README.md +20 -1
  2. package/bin/index.cjs +196 -144
  3. package/bin/index.js +177 -94
  4. package/bin/seeders-8GJzfIIN.js +3 -0
  5. package/bin/seeders-ByeSoCAQ.cjs +131 -0
  6. package/bin/seeders-CltigymO.js +79 -0
  7. package/bin/seeders-_xJ6VGVS.cjs +3 -0
  8. package/dist/browser/index.cjs +9 -9
  9. package/dist/browser/index.d.cts +7 -7
  10. package/dist/browser/index.d.ts +7 -7
  11. package/dist/browser/index.js +9 -9
  12. package/dist/index.cjs +252 -121
  13. package/dist/index.d.cts +40 -8
  14. package/dist/index.d.ts +40 -8
  15. package/dist/index.js +245 -119
  16. package/dist/inspector/index.cjs +105 -33
  17. package/dist/inspector/index.js +102 -33
  18. package/dist/migrations/index.cjs +144 -126
  19. package/dist/migrations/index.d.cts +10 -10
  20. package/dist/migrations/index.d.ts +10 -10
  21. package/dist/migrations/index.js +148 -130
  22. package/dist/migrations/stubs/migration-js.stub +1 -1
  23. package/dist/migrations/stubs/migration-ts.stub +1 -1
  24. package/dist/migrations/stubs/migration.create-js.stub +5 -5
  25. package/dist/migrations/stubs/migration.create-ts.stub +5 -5
  26. package/dist/migrations/stubs/migration.update-js.stub +2 -2
  27. package/dist/migrations/stubs/migration.update-ts.stub +3 -3
  28. package/dist/seeders/index.cjs +141 -0
  29. package/dist/seeders/index.d.cts +4766 -0
  30. package/dist/seeders/index.d.ts +4766 -0
  31. package/dist/seeders/index.js +118 -0
  32. package/dist/seeders/index.ts +3 -0
  33. package/dist/seeders/runner.ts +102 -0
  34. package/dist/seeders/seeder-creator.ts +42 -0
  35. package/dist/seeders/seeder.ts +10 -0
  36. package/dist/stubs/seeder-js.stub +13 -0
  37. package/dist/stubs/seeder-ts.stub +9 -0
  38. package/package.json +14 -3
  39. package/types/builder.ts +153 -80
  40. package/types/container.ts +79 -66
  41. package/types/generics.ts +75 -37
  42. package/types/modeling.ts +213 -158
  43. package/types/query-builder.ts +221 -191
  44. package/types/query-methods.ts +145 -109
  45. package/types/utils.ts +64 -56
@@ -4,41 +4,51 @@ import type { Knex } from 'knex'
4
4
  import type { Model } from 'src/model'
5
5
  import type { PrimitiveValue } from './generics'
6
6
 
7
- type Operator = string;
8
- type ColumnRef = string | Raw;
9
- type FieldExpression = string;
10
- type JsonObjectOrFieldExpression = object | object[] | FieldExpression;
11
-
12
- type TableRef<QB extends AnyQueryBuilder> = ColumnRef | AnyQueryBuilder | CallbackVoid<QB>;
13
- type Selection<QB extends AnyQueryBuilder> = ColumnRef | AnyQueryBuilder | CallbackVoid<QB>;
14
- type QBOrCallback<QB extends AnyQueryBuilder> = AnyQueryBuilder | CallbackVoid<QB>;
7
+ type Operator = string
8
+ type ColumnRef = string | Raw
9
+ type FieldExpression = string
10
+ type JsonObjectOrFieldExpression = object | object[] | FieldExpression
11
+
12
+ type TableRef<QB extends AnyQueryBuilder> =
13
+ | ColumnRef
14
+ | AnyQueryBuilder
15
+ | CallbackVoid<QB>
16
+ type Selection<QB extends AnyQueryBuilder> =
17
+ | ColumnRef
18
+ | AnyQueryBuilder
19
+ | CallbackVoid<QB>
20
+ type QBOrCallback<QB extends AnyQueryBuilder> =
21
+ | AnyQueryBuilder
22
+ | CallbackVoid<QB>
15
23
 
16
24
  interface CallbackVoid<T> {
17
- (this: T, arg: T): void;
25
+ (this: T, arg: T): void
18
26
  }
19
27
 
20
- export type Raw = Knex.Raw;
28
+ export type Raw = Knex.Raw
21
29
 
22
- export type OrderByDirection = 'asc' | 'desc' | 'ASC' | 'DESC';
30
+ export type OrderByDirection = 'asc' | 'desc' | 'ASC' | 'DESC'
23
31
 
24
32
  export interface OrderByDescriptor {
25
- column: ColumnRef;
26
- order?: OrderByDirection;
33
+ column: ColumnRef
34
+ order?: OrderByDirection
27
35
  }
28
36
 
29
- export type AnyQueryBuilder<M extends Model = any, R = any> = IQueryBuilder<M, R> | IBuilder<M, R>;
37
+ export type AnyQueryBuilder<M extends Model = any, R = any> =
38
+ | IQueryBuilder<M, R>
39
+ | IBuilder<M, R>
30
40
 
31
- export type Expression<T> = T | Raw | AnyQueryBuilder;
41
+ export type Expression<T> = T | Raw | AnyQueryBuilder
32
42
 
33
- export type ColumnRefOrOrderByDescriptor = ColumnRef | OrderByDescriptor;
43
+ export type ColumnRefOrOrderByDescriptor = ColumnRef | OrderByDescriptor
34
44
 
35
45
  export interface RawInterface<R> {
36
- (sql: string, ...bindings: any[]): R;
46
+ (sql: string, ...bindings: any[]): R
37
47
  }
38
48
 
39
49
  export interface BaseSetOperations<QB extends AnyQueryBuilder> {
40
- (callbackOrBuilder: QBOrCallback<QB>, wrap?: boolean): QB;
41
- (callbacksOrBuilders: QBOrCallback<QB>[], wrap?: boolean): QB;
50
+ (callbackOrBuilder: QBOrCallback<QB>, wrap?: boolean): QB
51
+ (callbacksOrBuilders: QBOrCallback<QB>[], wrap?: boolean): QB
42
52
  }
43
53
 
44
54
  export type JoinRawMethod<QB extends AnyQueryBuilder> = RawInterface<QB> & {}
@@ -48,156 +58,182 @@ export type OrderByRawMethod<QB extends AnyQueryBuilder> = RawInterface<QB> & {}
48
58
  export type WhereRawMethod<QB extends AnyQueryBuilder> = RawInterface<QB> & {}
49
59
 
50
60
  export interface GroupByMethod<QB extends AnyQueryBuilder> {
51
- (...columns: ColumnRef[]): QB;
52
- (columns: ColumnRef[]): QB;
61
+ (...columns: ColumnRef[]): QB
62
+ (columns: ColumnRef[]): QB
53
63
  }
54
64
 
55
- export type WithRelationType = {
56
- [key: string]: <T extends IBuilder<any>>(builder: T) => T | void;
57
- } | string | string[];
65
+ export type WithRelationType =
66
+ | {
67
+ [key: string]: <T extends IBuilder<any>>(builder: T) => T | void
68
+ }
69
+ | string
70
+ | string[]
58
71
 
59
- export interface SetOperationsMethod<QB extends AnyQueryBuilder> extends BaseSetOperations<QB> {
60
- (...callbacksOrBuilders: QBOrCallback<QB>[]): QB;
72
+ export interface SetOperationsMethod<QB extends AnyQueryBuilder>
73
+ extends BaseSetOperations<QB> {
74
+ (...callbacksOrBuilders: QBOrCallback<QB>[]): QB
61
75
  }
62
76
 
63
77
  export interface SelectMethod<QB extends AnyQueryBuilder> {
64
- <QBP extends QB> (...columns: Selection<QBP>[]): QB;
65
- <QBP extends QB> (columns: Selection<QBP>[]): QB;
78
+ <QBP extends QB>(...columns: Selection<QBP>[]): QB
79
+ <QBP extends QB>(columns: Selection<QBP>[]): QB
66
80
  }
67
81
 
68
82
  export interface WhereMethod<QB extends AnyQueryBuilder> {
69
- (col: ColumnRef, op: Operator, expr: Expression<PrimitiveValue>): QB;
70
- (col: ColumnRef, expr: Expression<PrimitiveValue>): QB;
83
+ (col: ColumnRef, op: Operator, expr: Expression<PrimitiveValue>): QB
84
+ (col: ColumnRef, expr: Expression<PrimitiveValue>): QB
71
85
 
72
- (condition: boolean): QB;
73
- (cb: CallbackVoid<QB>): QB;
74
- (raw: Raw): QB;
75
- <QBA extends AnyQueryBuilder> (qb: QBA): QB;
86
+ (condition: boolean): QB
87
+ (cb: CallbackVoid<QB>): QB
88
+ (raw: Raw): QB
89
+ <QBA extends AnyQueryBuilder>(qb: QBA): QB
76
90
 
77
- (obj: object): QB;
91
+ (obj: object): QB
78
92
  }
79
93
 
80
94
  export interface WhereWrappedMethod<QB extends AnyQueryBuilder> {
81
- (cb: CallbackVoid<QB>): QB;
95
+ (cb: CallbackVoid<QB>): QB
82
96
  }
83
97
 
84
98
  export interface WhereFieldExpressionMethod<QB extends AnyQueryBuilder> {
85
- (fieldExpression: FieldExpression): QB;
99
+ (fieldExpression: FieldExpression): QB
86
100
  }
87
101
 
88
102
  export interface WhereExistsMethod<QB extends AnyQueryBuilder> {
89
- (cb: CallbackVoid<QB>): QB;
90
- (raw: Raw): QB;
91
- <QBA extends AnyQueryBuilder> (qb: QBA): QB;
103
+ (cb: CallbackVoid<QB>): QB
104
+ (raw: Raw): QB
105
+ <QBA extends AnyQueryBuilder>(qb: QBA): QB
92
106
  }
93
107
 
94
108
  export interface WhereInMethod<QB extends AnyQueryBuilder> {
95
- (col: ColumnRef | ColumnRef[], expr: Expression<PrimitiveValue>[]): QB;
96
- (col: ColumnRef | ColumnRef[], cb: CallbackVoid<QB>): QB;
97
- (col: ColumnRef | ColumnRef[], qb: AnyQueryBuilder): QB;
109
+ (col: ColumnRef | ColumnRef[], expr: Expression<PrimitiveValue>[]): QB
110
+ (col: ColumnRef | ColumnRef[], cb: CallbackVoid<QB>): QB
111
+ (col: ColumnRef | ColumnRef[], qb: AnyQueryBuilder): QB
98
112
  }
99
113
 
100
114
  export interface WhereBetweenMethod<QB extends AnyQueryBuilder> {
101
- (column: ColumnRef, range: [Expression<PrimitiveValue>, Expression<PrimitiveValue>]): QB;
115
+ (
116
+ column: ColumnRef,
117
+ range: [Expression<PrimitiveValue>, Expression<PrimitiveValue>],
118
+ ): QB
102
119
  }
103
120
 
104
121
  export interface WhereNullMethod<QB extends AnyQueryBuilder> {
105
- (column: ColumnRef): QB;
122
+ (column: ColumnRef): QB
106
123
  }
107
124
 
108
125
  export interface OrderByMethod<QB extends AnyQueryBuilder> {
109
- (column: ColumnRef, order?: OrderByDirection): QB;
110
- (columns: ColumnRefOrOrderByDescriptor[]): QB;
126
+ (column: ColumnRef, order?: OrderByDirection): QB
127
+ (columns: ColumnRefOrOrderByDescriptor[]): QB
111
128
  }
112
129
 
113
130
  export interface WhereJsonExpressionMethod<QB extends AnyQueryBuilder> {
114
- (fieldExpression: FieldExpression, keys: string | string[]): QB;
131
+ (fieldExpression: FieldExpression, keys: string | string[]): QB
115
132
  }
116
133
 
117
134
  export interface ReturningMethod<QB extends AnyQueryBuilder> {
118
- (key: FieldExpression | FieldExpression[], options?: { [key: string]: any }): QB;
135
+ (
136
+ key: FieldExpression | FieldExpression[],
137
+ options?: { [key: string]: any },
138
+ ): QB
119
139
  }
120
140
 
121
141
  export interface FirstOrFailMethod<QB extends AnyQueryBuilder> {
122
- (): Promise<QB>;
142
+ (): Promise<QB>
123
143
  }
124
144
 
125
145
  export interface AddSelectMethod<QB extends AnyQueryBuilder> {
126
- (params: string[]): QB;
146
+ (params: string[]): QB
127
147
  }
128
148
 
129
149
  export interface ForceDeleteMethod {
130
- (): Promise<boolean | number>;
150
+ (): Promise<boolean | number>
131
151
  }
132
152
 
133
153
  export interface RestoreMethod {
134
- (): Promise<number>;
154
+ (): Promise<number>
135
155
  }
136
156
 
137
157
  export interface WhereColumnMethod<QB extends AnyQueryBuilder> {
138
- (col1: ColumnRef, op: Operator, col2: ColumnRef): QB;
139
- (col1: ColumnRef, col2: ColumnRef): QB;
158
+ (col1: ColumnRef, op: Operator, col2: ColumnRef): QB
159
+ (col1: ColumnRef, col2: ColumnRef): QB
140
160
  }
141
161
 
142
162
  export interface JoinMethod<QB extends AnyQueryBuilder> {
143
- (table: TableRef<QB>, leftCol: ColumnRef, op: Operator, rightCol: ColumnRef): QB;
144
- (table: TableRef<QB>, leftCol: ColumnRef, rightCol: ColumnRef): QB;
145
- (table: TableRef<QB>, cb: CallbackVoid<Knex.JoinClause>): QB;
146
- (table: TableRef<QB>, raw: Raw): QB;
147
- (raw: Raw): QB;
163
+ (
164
+ table: TableRef<QB>,
165
+ leftCol: ColumnRef,
166
+ op: Operator,
167
+ rightCol: ColumnRef,
168
+ ): QB
169
+ (table: TableRef<QB>, leftCol: ColumnRef, rightCol: ColumnRef): QB
170
+ (table: TableRef<QB>, cb: CallbackVoid<Knex.JoinClause>): QB
171
+ (table: TableRef<QB>, raw: Raw): QB
172
+ (raw: Raw): QB
148
173
  }
149
174
 
150
175
  export interface WhereJsonMethod<QB extends AnyQueryBuilder> {
151
- (
152
- fieldExpression: FieldExpression,
153
- jsonObjectOrFieldExpression: JsonObjectOrFieldExpression
154
- ): QB;
155
- }
156
-
157
- export interface UnionMethod<QB extends AnyQueryBuilder> extends BaseSetOperations<QB> {
158
- (arg1: QBOrCallback<QB>, wrap?: boolean): QB;
159
- (arg1: QBOrCallback<QB>, arg2: QBOrCallback<QB>, wrap?: boolean): QB;
160
- (arg1: QBOrCallback<QB>, arg2: QBOrCallback<QB>, arg3: QBOrCallback<QB>, wrap?: boolean): QB;
161
- (
162
- arg1: QBOrCallback<QB>,
163
- arg2: QBOrCallback<QB>,
164
- arg3: QBOrCallback<QB>,
165
- arg4: QBOrCallback<QB>,
166
- wrap?: boolean
167
- ): QB;
168
- (
169
- arg1: QBOrCallback<QB>,
170
- arg2: QBOrCallback<QB>,
171
- arg3: QBOrCallback<QB>,
172
- arg4: QBOrCallback<QB>,
173
- arg5: QBOrCallback<QB>,
174
- wrap?: boolean
175
- ): QB;
176
- (
177
- arg1: QBOrCallback<QB>,
178
- arg2: QBOrCallback<QB>,
179
- arg3: QBOrCallback<QB>,
180
- arg4: QBOrCallback<QB>,
181
- arg5: QBOrCallback<QB>,
182
- arg6: QBOrCallback<QB>,
183
- wrap?: boolean
184
- ): QB;
185
- (
186
- arg1: QBOrCallback<QB>,
187
- arg2: QBOrCallback<QB>,
188
- arg3: QBOrCallback<QB>,
189
- arg4: QBOrCallback<QB>,
190
- arg5: QBOrCallback<QB>,
191
- arg6: QBOrCallback<QB>,
192
- arg7: QBOrCallback<QB>,
193
- wrap?: boolean
194
- ): QB;
176
+ (
177
+ fieldExpression: FieldExpression,
178
+ jsonObjectOrFieldExpression: JsonObjectOrFieldExpression,
179
+ ): QB
180
+ }
181
+
182
+ export interface UnionMethod<QB extends AnyQueryBuilder>
183
+ extends BaseSetOperations<QB> {
184
+ (arg1: QBOrCallback<QB>, wrap?: boolean): QB
185
+ (arg1: QBOrCallback<QB>, arg2: QBOrCallback<QB>, wrap?: boolean): QB
186
+ (
187
+ arg1: QBOrCallback<QB>,
188
+ arg2: QBOrCallback<QB>,
189
+ arg3: QBOrCallback<QB>,
190
+ wrap?: boolean,
191
+ ): QB
192
+ (
193
+ arg1: QBOrCallback<QB>,
194
+ arg2: QBOrCallback<QB>,
195
+ arg3: QBOrCallback<QB>,
196
+ arg4: QBOrCallback<QB>,
197
+ wrap?: boolean,
198
+ ): QB
199
+ (
200
+ arg1: QBOrCallback<QB>,
201
+ arg2: QBOrCallback<QB>,
202
+ arg3: QBOrCallback<QB>,
203
+ arg4: QBOrCallback<QB>,
204
+ arg5: QBOrCallback<QB>,
205
+ wrap?: boolean,
206
+ ): QB
207
+ (
208
+ arg1: QBOrCallback<QB>,
209
+ arg2: QBOrCallback<QB>,
210
+ arg3: QBOrCallback<QB>,
211
+ arg4: QBOrCallback<QB>,
212
+ arg5: QBOrCallback<QB>,
213
+ arg6: QBOrCallback<QB>,
214
+ wrap?: boolean,
215
+ ): QB
216
+ (
217
+ arg1: QBOrCallback<QB>,
218
+ arg2: QBOrCallback<QB>,
219
+ arg3: QBOrCallback<QB>,
220
+ arg4: QBOrCallback<QB>,
221
+ arg5: QBOrCallback<QB>,
222
+ arg6: QBOrCallback<QB>,
223
+ arg7: QBOrCallback<QB>,
224
+ wrap?: boolean,
225
+ ): QB
195
226
  }
196
227
 
197
228
  export interface JoinMethod<QB extends AnyQueryBuilder> {
198
- (table: TableRef<QB>, leftCol: ColumnRef, op: Operator, rightCol: ColumnRef): QB;
199
- (table: TableRef<QB>, leftCol: ColumnRef, rightCol: ColumnRef): QB;
200
- (table: TableRef<QB>, cb: CallbackVoid<Knex.JoinClause>): QB;
201
- (table: TableRef<QB>, raw: Raw): QB;
202
- (raw: Raw): QB;
229
+ (
230
+ table: TableRef<QB>,
231
+ leftCol: ColumnRef,
232
+ op: Operator,
233
+ rightCol: ColumnRef,
234
+ ): QB
235
+ (table: TableRef<QB>, leftCol: ColumnRef, rightCol: ColumnRef): QB
236
+ (table: TableRef<QB>, cb: CallbackVoid<Knex.JoinClause>): QB
237
+ (table: TableRef<QB>, raw: Raw): QB
238
+ (raw: Raw): QB
203
239
  }
package/types/utils.ts CHANGED
@@ -6,65 +6,73 @@ import type { IModel } from './modeling'
6
6
  import type Model from 'src/model'
7
7
  import type { TGeneric } from './generics'
8
8
 
9
- export interface ICollection<T extends Model | BModel> extends BaseCollection<T> {
10
- items?: T[];
11
- load (...relations: T[]): Promise<ICollection<T>>;
12
- loadAggregate (relations: T | T[], column: string, action?: string | null): Promise<this>;
13
- loadCount (relation: T, column: string): Promise<this>;
14
- loadMax (relation: T, column: string): Promise<this>;
15
- loadMin (relation: T, column: string): Promise<this>;
16
- loadSum (relation: T, column: string): Promise<this>;
17
- loadAvg (relation: T, column: string): Promise<this>;
18
- mapThen (callback: () => void): Promise<any>;
19
- modelKeys (): string[] | number[];
20
- contains (key: IModel | any, operator?: any, value?: any): boolean;
21
- diff (items: ICollection<T> | any[]): ICollection<T>;
22
- except (keys: any[]): ICollection<T>;
23
- intersect (items: T[]): ICollection<T>;
24
- unique (key?: any, strict?: boolean): ICollection<T>;
25
- find (key: any, defaultValue?: any): any;
26
- fresh (withs?: any[]): Promise<ICollection<T>>;
27
- makeVisible (attributes: string | string[]): this;
28
- makeHidden (attributes: string | string[]): this;
29
- append (attributes: string[]): this;
30
- only (keys: null | any[]): this;
31
- getDictionary (items?: any[]): TGeneric;
32
- toQuery (): IBuilder<T, any>;
33
- toData (): any;
34
- toJSON (): any;
35
- toJson (): string;
36
- toString (): string;
37
- [key: string]: any;
38
- [Symbol.iterator]: () => Iterator<T>;
9
+ export interface ICollection<T extends Model | BModel>
10
+ extends BaseCollection<T> {
11
+ items?: T[]
12
+ load(...relations: T[]): Promise<ICollection<T>>
13
+ loadAggregate(
14
+ relations: T | T[],
15
+ column: string,
16
+ action?: string | null,
17
+ ): Promise<this>
18
+ loadCount(relation: T, column: string): Promise<this>
19
+ loadMax(relation: T, column: string): Promise<this>
20
+ loadMin(relation: T, column: string): Promise<this>
21
+ loadSum(relation: T, column: string): Promise<this>
22
+ loadAvg(relation: T, column: string): Promise<this>
23
+ mapThen(callback: () => void): Promise<any>
24
+ modelKeys(): string[] | number[]
25
+ contains(key: IModel | any, operator?: any, value?: any): boolean
26
+ diff(items: ICollection<T> | any[]): ICollection<T>
27
+ except(keys: any[]): ICollection<T>
28
+ intersect(items: T[]): ICollection<T>
29
+ unique(key?: any, strict?: boolean): ICollection<T>
30
+ find(key: any, defaultValue?: any): any
31
+ fresh(withs?: any[]): Promise<ICollection<T>>
32
+ makeVisible(attributes: string | string[]): this
33
+ makeHidden(attributes: string | string[]): this
34
+ append(attributes: string[]): this
35
+ only(keys: null | any[]): this
36
+ getDictionary(items?: any[]): TGeneric
37
+ toQuery(): IBuilder<T, any>
38
+ toData(): any
39
+ toJSON(): any
40
+ toJson(): string
41
+ toString(): string
42
+ [key: string]: any
43
+ [Symbol.iterator]: () => Iterator<T>
39
44
  }
40
45
 
41
46
  export interface IPaginatorParams {
42
- current_page: number,
43
- data: any[],
44
- per_page: number,
45
- total: number,
46
- last_page: number,
47
- count: number,
48
- paginated?: boolean
47
+ current_page: number
48
+ data: any[]
49
+ per_page: number
50
+ total: number
51
+ last_page: number
52
+ count: number
53
+ paginated?: boolean
49
54
  }
50
55
 
51
- export interface IPaginator<T extends Model | BModel, K extends IPaginatorParams = IPaginatorParams> {
52
- formatter?(paginator: IPaginator<any>): any | null
53
- setFormatter?(formatter: (paginator: IPaginator<any>) => any | null): void;
54
- setItems (items: T[] | Collection<T>): void;
55
- hasMorePages (): boolean;
56
- get (index: number): T | null;
57
- count (): number;
58
- items (): Collection<T>;
59
- map (callback: (value: T, index: number) => T): Collection<T>;
60
- currentPage (): number;
61
- perPage (): number;
62
- lastPage (): number;
63
- firstItem (): number | null;
64
- lastItem (): number | null;
65
- total (): number;
66
- toData<U = K> (): U;
67
- toJSON<U = K> (): U;
68
- toJson (): string;
69
- [Symbol.iterator]?(): { next: () => { value: T; done: boolean } };
56
+ export interface IPaginator<
57
+ T extends Model | BModel,
58
+ K extends IPaginatorParams = IPaginatorParams,
59
+ > {
60
+ formatter?(paginator: IPaginator<any>): any | null
61
+ setFormatter?(formatter: (paginator: IPaginator<any>) => any | null): void
62
+ setItems(items: T[] | Collection<T>): void
63
+ hasMorePages(): boolean
64
+ get(index: number): T | null
65
+ count(): number
66
+ items(): Collection<T>
67
+ map(callback: (value: T, index: number) => T): Collection<T>
68
+ currentPage(): number
69
+ perPage(): number
70
+ lastPage(): number
71
+ firstItem(): number | null
72
+ lastItem(): number | null
73
+ total(): number
74
+ toData<U = K>(): U
75
+ toJSON<U = K>(): U
76
+ toJson(): string
77
+ [Symbol.iterator]?(): { next: () => { value: T; done: boolean } }
70
78
  }