@h3ravel/arquebus 0.4.1 → 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 +225 -171
  3. package/bin/index.js +208 -122
  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 +3655 -183
  10. package/dist/browser/index.d.ts +3655 -183
  11. package/dist/browser/index.js +9 -9
  12. package/dist/index.cjs +270 -135
  13. package/dist/index.d.cts +3797 -294
  14. package/dist/index.d.ts +3797 -294
  15. package/dist/index.js +263 -133
  16. package/dist/inspector/index.cjs +122 -46
  17. package/dist/inspector/index.js +119 -46
  18. package/dist/migrations/index.cjs +171 -151
  19. package/dist/migrations/index.d.cts +3510 -27
  20. package/dist/migrations/index.d.ts +3510 -27
  21. package/dist/migrations/index.js +177 -150
  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 +15 -4
  39. package/types/builder.ts +158 -80
  40. package/types/container.ts +79 -66
  41. package/types/generics.ts +75 -36
  42. package/types/modeling.ts +213 -158
  43. package/types/query-builder.ts +223 -186
  44. package/types/query-methods.ts +160 -104
  45. package/types/utils.ts +64 -55
@@ -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,136 +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
132
+ }
133
+
134
+ export interface ReturningMethod<QB extends AnyQueryBuilder> {
135
+ (
136
+ key: FieldExpression | FieldExpression[],
137
+ options?: { [key: string]: any },
138
+ ): QB
139
+ }
140
+
141
+ export interface FirstOrFailMethod<QB extends AnyQueryBuilder> {
142
+ (): Promise<QB>
143
+ }
144
+
145
+ export interface AddSelectMethod<QB extends AnyQueryBuilder> {
146
+ (params: string[]): QB
147
+ }
148
+
149
+ export interface ForceDeleteMethod {
150
+ (): Promise<boolean | number>
151
+ }
152
+
153
+ export interface RestoreMethod {
154
+ (): Promise<number>
115
155
  }
116
156
 
117
157
  export interface WhereColumnMethod<QB extends AnyQueryBuilder> {
118
- (col1: ColumnRef, op: Operator, col2: ColumnRef): QB;
119
- (col1: ColumnRef, col2: ColumnRef): QB;
158
+ (col1: ColumnRef, op: Operator, col2: ColumnRef): QB
159
+ (col1: ColumnRef, col2: ColumnRef): QB
120
160
  }
121
161
 
122
162
  export interface JoinMethod<QB extends AnyQueryBuilder> {
123
- (table: TableRef<QB>, leftCol: ColumnRef, op: Operator, rightCol: ColumnRef): QB;
124
- (table: TableRef<QB>, leftCol: ColumnRef, rightCol: ColumnRef): QB;
125
- (table: TableRef<QB>, cb: CallbackVoid<Knex.JoinClause>): QB;
126
- (table: TableRef<QB>, raw: Raw): QB;
127
- (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
128
173
  }
129
174
 
130
175
  export interface WhereJsonMethod<QB extends AnyQueryBuilder> {
131
- (
132
- fieldExpression: FieldExpression,
133
- jsonObjectOrFieldExpression: JsonObjectOrFieldExpression
134
- ): QB;
135
- }
136
-
137
- export interface UnionMethod<QB extends AnyQueryBuilder> extends BaseSetOperations<QB> {
138
- (arg1: QBOrCallback<QB>, wrap?: boolean): QB;
139
- (arg1: QBOrCallback<QB>, arg2: QBOrCallback<QB>, wrap?: boolean): QB;
140
- (arg1: QBOrCallback<QB>, arg2: QBOrCallback<QB>, arg3: QBOrCallback<QB>, wrap?: boolean): QB;
141
- (
142
- arg1: QBOrCallback<QB>,
143
- arg2: QBOrCallback<QB>,
144
- arg3: QBOrCallback<QB>,
145
- arg4: QBOrCallback<QB>,
146
- wrap?: boolean
147
- ): QB;
148
- (
149
- arg1: QBOrCallback<QB>,
150
- arg2: QBOrCallback<QB>,
151
- arg3: QBOrCallback<QB>,
152
- arg4: QBOrCallback<QB>,
153
- arg5: QBOrCallback<QB>,
154
- wrap?: boolean
155
- ): QB;
156
- (
157
- arg1: QBOrCallback<QB>,
158
- arg2: QBOrCallback<QB>,
159
- arg3: QBOrCallback<QB>,
160
- arg4: QBOrCallback<QB>,
161
- arg5: QBOrCallback<QB>,
162
- arg6: QBOrCallback<QB>,
163
- wrap?: boolean
164
- ): QB;
165
- (
166
- arg1: QBOrCallback<QB>,
167
- arg2: QBOrCallback<QB>,
168
- arg3: QBOrCallback<QB>,
169
- arg4: QBOrCallback<QB>,
170
- arg5: QBOrCallback<QB>,
171
- arg6: QBOrCallback<QB>,
172
- arg7: QBOrCallback<QB>,
173
- wrap?: boolean
174
- ): 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
175
226
  }
176
227
 
177
228
  export interface JoinMethod<QB extends AnyQueryBuilder> {
178
- (table: TableRef<QB>, leftCol: ColumnRef, op: Operator, rightCol: ColumnRef): QB;
179
- (table: TableRef<QB>, leftCol: ColumnRef, rightCol: ColumnRef): QB;
180
- (table: TableRef<QB>, cb: CallbackVoid<Knex.JoinClause>): QB;
181
- (table: TableRef<QB>, raw: Raw): QB;
182
- (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
183
239
  }
package/types/utils.ts CHANGED
@@ -6,64 +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,
47
+ current_page: number
48
+ data: any[]
49
+ per_page: number
50
+ total: number
51
+ last_page: number
52
+ count: number
53
+ paginated?: boolean
48
54
  }
49
55
 
50
- export interface IPaginator<T extends Model | BModel, K extends IPaginatorParams = IPaginatorParams> {
51
- formatter?(paginator: IPaginator<any>): any | null
52
- setFormatter?(formatter: (paginator: IPaginator<any>) => any | null): void;
53
- setItems (items: T[] | Collection<T>): void;
54
- hasMorePages (): boolean;
55
- get (index: number): T | null;
56
- count (): number;
57
- items (): Collection<T>;
58
- map (callback: (value: T, index: number) => T): Collection<T>;
59
- currentPage (): number;
60
- perPage (): number;
61
- lastPage (): number;
62
- firstItem (): number | null;
63
- lastItem (): number | null;
64
- total (): number;
65
- toData<U = K> (): U;
66
- toJSON<U = K> (): U;
67
- toJson (): string;
68
- [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 } }
69
78
  }