@akanjs/store 0.0.40 → 0.0.42

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akanjs/store",
3
- "version": "0.0.40",
3
+ "version": "0.0.42",
4
4
  "type": "commonjs",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -14,5 +14,15 @@
14
14
  "engines": {
15
15
  "node": ">=22"
16
16
  },
17
- "dependencies": {}
17
+ "dependencies": {
18
+ "@urql/core": "^5.1.0",
19
+ "dayjs": "^1.11.13",
20
+ "immer": "^10.1.1",
21
+ "next": "^15.3.2",
22
+ "pluralize": "^8.0.0",
23
+ "react": "^18.3.1",
24
+ "reflect-metadata": "^0.2.2",
25
+ "socket.io-client": "^4.8.1",
26
+ "zustand": "^5.0.2"
27
+ }
18
28
  }
package/src/index.d.ts CHANGED
@@ -1,9 +1,2 @@
1
- export { Submit } from './types.js';
2
- export { CreateOption, Get, MixStore, NewOption, SetGet, SetPick, State, Store, StoreOf, Toast, createActions, createState, makeStore, rootStoreOf, scalarStateOf, st, stateOf } from './storeDecorators.js';
3
- import 'dayjs';
4
- import 'fs';
5
- import 'stream';
6
- import '@urql/core';
7
- import 'mongoose';
8
- import 'react';
9
- import 'zustand';
1
+ export * from "./types";
2
+ export * from "./storeDecorators";
@@ -1,273 +1,11 @@
1
- import { Submit } from './types.js';
2
- import { Dayjs } from 'dayjs';
3
- import { ReadStream } from 'fs';
4
- import { Readable } from 'stream';
5
- import { RequestPolicy } from '@urql/core';
6
- import { FilterQuery } from 'mongoose';
7
- import { MutableRefObject } from 'react';
8
- import { Mutate, StoreApi } from 'zustand';
9
-
10
- declare class DataList<Light extends {
11
- id: string;
12
- }> {
13
- #private;
14
- length: number;
15
- values: Light[];
16
- constructor(data?: Light[] | DataList<Light>);
17
- indexOf(id: string): number;
18
- set(value: Light): this;
19
- delete(id: string): this;
20
- get(id: string): Light | undefined;
21
- at(idx: number): Light | undefined;
22
- pickAt(idx: number): Light;
23
- pick(id: string): Light;
24
- has(id: string): boolean;
25
- find(fn: (value: Light, idx: number) => boolean): Light | undefined;
26
- findIndex(fn: (value: Light, idx: number) => boolean): number;
27
- some(fn: (value: Light, idx: number) => boolean): boolean;
28
- every(fn: (value: Light, idx: number) => boolean): boolean;
29
- forEach(fn: (value: Light, idx: number) => void): void;
30
- map<T>(fn: (value: Light, idx: number) => T): T[];
31
- flatMap<T>(fn: (value: Light, idx: number, array: Light[]) => T | readonly T[]): T[];
32
- sort(fn: (a: Light, b: Light) => number): DataList<Light>;
33
- filter(fn: (value: Light, idx: number) => boolean): DataList<Light>;
34
- reduce<T>(fn: (acc: T, value: Light, idx: number) => T, initialValue: T): T;
35
- slice(start: number, end?: number): DataList<Light>;
36
- save(): DataList<Light>;
37
- [Symbol.iterator](): ArrayIterator<Light>;
38
- }
39
-
40
- type Type<T = any> = new (...args: any[]) => T;
41
-
42
- declare class BaseObject {
43
- id: string;
44
- createdAt: Dayjs;
45
- updatedAt: Dayjs;
46
- removedAt: Dayjs | null;
47
- }
48
- declare class Upload {
49
- __Scalar__: "upload";
50
- filename: string;
51
- mimetype: string;
52
- encoding: string;
53
- createReadStream: () => ReadStream | Readable;
54
- }
55
-
56
- interface FetchPolicy<Returns = any> {
57
- cache?: boolean | number | RequestPolicy;
58
- crystalize?: boolean;
59
- url?: string;
60
- onError?: (error: string) => void;
61
- token?: string;
62
- partial?: string[];
63
- transport?: "udp" | "websocket" | "graphql" | "restapi";
64
- }
65
-
66
- type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
67
- type OptionalKeys<T> = T extends {
68
- [key: string]: any;
69
- } ? {
70
- [K in keyof T]-?: null extends T[K] ? K : never;
71
- }[keyof T] : never;
72
- type ObjectToId<O, D = Dayjs> = O extends BaseObject ? string : O extends BaseObject[] ? string[] : O extends Dayjs ? D : O extends {
73
- [key: string]: any;
74
- } ? DocumentModel<O> : O;
75
- type SortOf<Filter> = keyof GetStateObject<Filter>;
76
- type FilterType = Record<string, any>;
77
- type DocumentModel<T, D = Dayjs> = T extends (infer S)[] ? DocumentModel<S>[] : T extends string ? T : T extends number ? T : T extends boolean ? T : T extends Dayjs ? T : T extends Map<infer K, infer V> ? Map<K, DocumentModel<V, D>> : Optional<{
78
- [K in keyof GetStateObject<T>]: T[K] extends infer S ? S extends null ? undefined : ObjectToId<T[K], D> : never;
79
- }, OptionalKeys<GetStateObject<T>>>;
80
- type GetStateObject<T> = Omit<{
81
- [K in keyof T as T[K] extends (...args: any) => any ? never : K]: T[K];
82
- }, "prototype">;
83
- interface ProtoFile {
84
- id: string;
85
- filename: string;
86
- abstractData: string | null;
87
- imageSize: [number, number];
88
- progress: number | null;
89
- url: string;
90
- size: number;
91
- status: string;
92
- createdAt: Dayjs;
93
- updatedAt: Dayjs;
94
- removedAt: Dayjs | null;
95
- mimetype: string;
96
- encoding: string;
97
- origin: string | null;
98
- lastModifiedAt: Dayjs;
99
- }
100
-
101
- interface SliceMeta {
102
- refName: string;
103
- sliceName: string;
104
- argLength: number;
105
- defaultArgs: any[];
106
- }
107
-
108
- type PurifyFunc<I, M> = (self: DefaultOf<Pick<M, keyof I extends keyof M ? keyof I : never>>, isChild?: boolean) => DocumentModel<I> | null;
109
- type CrystalizeFunc<M> = (self: {
110
- [K in keyof M as M[K] extends (...args: any) => any ? never : K]: M[K];
111
- }, isChild?: boolean) => M;
112
- type FieldState<T> = T extends string ? T : T extends number ? T : T extends boolean ? T : T extends Dayjs ? T : T extends any[] ? T : T extends {
113
- id: string;
114
- } ? T | null : T;
115
- type DefaultOf<S> = S extends infer T ? {
116
- [K in keyof T]: FieldState<T[K]>;
117
- } : never;
118
- interface FetchInitForm<Input, Full, Filter extends FilterType> {
119
- page?: number;
120
- limit?: number;
121
- sort?: SortOf<Filter> | symbol;
122
- default?: Partial<DefaultOf<Input>>;
123
- invalidate?: boolean;
124
- insight?: boolean;
125
- }
126
- type ServerInit<T extends string, Light, Insight = any, QueryArgs = any[], Filter extends FilterType = any> = SliceMeta & {
127
- [K in `${Uncapitalize<T>}ObjList`]: Light[];
128
- } & {
129
- [K in `${Uncapitalize<T>}ObjInsight`]: Insight;
130
- } & {
131
- [K in `pageOf${Capitalize<T>}`]: number;
132
- } & {
133
- [K in `lastPageOf${Capitalize<T>}`]: number;
134
- } & {
135
- [K in `limitOf${Capitalize<T>}`]: number;
136
- } & {
137
- [K in `queryArgsOf${Capitalize<T>}`]: QueryArgs;
138
- } & {
139
- [K in `sortOf${Capitalize<T>}`]: SortOf<Filter>;
140
- } & {
141
- [K in `${Uncapitalize<T>}InitAt`]: Date;
142
- };
143
- type ClientInit<T extends string, Light, Insight = any, QueryArgs = any[], Filter extends FilterType = any> = Promise<ServerInit<T, Light, Insight, QueryArgs, Filter>> | ServerInit<T, Light, Insight, QueryArgs, Filter>;
144
- type ServerView<T extends string, M> = {
145
- refName: T;
146
- } & {
147
- [K in `${Uncapitalize<T>}Obj`]: M;
148
- } & {
149
- [K in `${Uncapitalize<T>}ViewAt`]: Date;
150
- };
151
- type ClientView<T extends string, M> = Promise<ServerView<T, M>> | ServerView<T, M>;
152
- type ServerEdit<T extends string, M> = {
153
- refName: T;
154
- } & {
155
- [K in `${Uncapitalize<T>}Obj`]: M;
156
- } & {
157
- [K in `${Uncapitalize<T>}ViewAt`]: Date;
158
- };
159
- type ClientEdit<T extends string, M> = Promise<ServerEdit<T, M>> | ServerEdit<T, M>;
160
- type GqlScalarUtil<T extends string, M, I = M> = {
161
- [K in `default${Capitalize<T>}`]: DefaultOf<M>;
162
- } & {
163
- [K in `purify${Capitalize<T>}`]: PurifyFunc<DocumentModel<I>, M>;
164
- } & {
165
- [K in `crystalize${Capitalize<T>}`]: CrystalizeFunc<M>;
166
- };
167
- type FilterSkipLimitSort<Args, Filter> = Args extends [
168
- ...args: infer QueryArgs,
169
- skip: number | null,
170
- limit: number | null,
171
- sort: string | null
172
- ] ? QueryArgs : never;
173
- type FilterListArgs<Args, Filter> = FilterOutInternalArgs<FilterSkipLimitSort<FilterOutInternalArgs<Args>, Filter>>;
174
- type FilterStateArgs<Args, Filter> = FilterSkipLimitSort<FilterOutInternalArgs<Args>, Filter>;
175
- type DbGraphQL<T extends string, Input, Full, Light extends {
176
- id: string;
177
- }, Insight, Filter extends FilterType, Fetch, Signal> = {
178
- refName: string;
179
- slices: SliceMeta[];
180
- } & GetWsMessageOf<Signal> & GetWsPubsubOf<Signal> & GqlScalarUtil<T, Full> & {
181
- [K in `lightCrystalize${Capitalize<T>}`]: CrystalizeFunc<Light>;
182
- } & {
183
- [K in `default${Capitalize<T>}Insight`]: Insight;
184
- } & {
185
- [K in `add${Capitalize<T>}Files`]: (fileList: FileList, parentId?: string, option?: FetchPolicy) => Promise<ProtoFile[]>;
186
- } & {
187
- [K in `merge${Capitalize<T>}`]: (modelOrId: Full | string, data: Partial<DocumentModel<Input>>, option?: FetchPolicy) => Promise<Full>;
188
- } & {
189
- [K in `view${Capitalize<T>}`]: (id: string, option?: FetchPolicy) => Promise<{
190
- [K in Uncapitalize<T>]: Full;
191
- } & {
192
- [K in `${Uncapitalize<T>}View`]: ServerView<T, Full>;
193
- }>;
194
- } & {
195
- [K in `get${Capitalize<T>}View`]: (id: string, option?: FetchPolicy) => ClientView<T, Full>;
196
- } & {
197
- [K in `edit${Capitalize<T>}`]: (id: string, option?: FetchPolicy) => Promise<{
198
- [K in Uncapitalize<T>]: Full;
199
- } & {
200
- [K in `${Uncapitalize<T>}Edit`]: ServerEdit<T, Full>;
201
- }>;
202
- } & {
203
- [K in `get${Capitalize<T>}Edit`]: (id: string, option?: FetchPolicy) => ClientEdit<T, Full>;
204
- } & Fetch & {
205
- [K in `init${Capitalize<T>}`]: (query?: FilterQuery<DocumentModel<Full>>, option?: FetchPolicy & FetchInitForm<Input, Full, Filter>) => Promise<{
206
- [K in `${Uncapitalize<T>}Init`]: ServerInit<T, Light, Insight, [query?: FilterQuery<DocumentModel<Full>>], Filter>;
207
- } & {
208
- [K in `${Uncapitalize<T>}List`]: DataList<Light>;
209
- } & {
210
- [K in `${Uncapitalize<T>}Insight`]: Insight;
211
- }>;
212
- } & {
213
- [K in `get${Capitalize<T>}Init`]: (query?: FilterQuery<DocumentModel<Full>>, option?: FetchPolicy & FetchInitForm<Input, Full, Filter>) => ClientInit<T, Light, Insight, [query?: FilterQuery<DocumentModel<Full>>], Filter>;
214
- } & {
215
- [K in keyof Signal as K extends `${T}List${infer Suffix}` ? `init${Capitalize<T>}${Suffix}` : never]: K extends `${T}List${infer Suffix}` ? Signal[K] extends (...args: infer Args) => Promise<Full[]> ? (...args: [
216
- ...queryArgs: FilterListArgs<Args, Filter>,
217
- option?: FetchPolicy & FetchInitForm<Input, Full, Filter>
218
- ]) => Promise<{
219
- [K in `${Uncapitalize<T>}Init${Suffix}`]: ServerInit<T, Light, Insight, FilterListArgs<Args, Filter>, Filter>;
220
- } & {
221
- [K in `${Uncapitalize<T>}List${Suffix}`]: DataList<Light>;
222
- } & {
223
- [K in `${Uncapitalize<T>}Insight${Suffix}`]: Insight;
224
- }> : never : never;
225
- } & {
226
- [K in keyof Signal as K extends `${T}List${infer Suffix}` ? `get${Capitalize<T>}Init${Suffix}` : never]: K extends `${T}List${infer Suffix}` ? Signal[K] extends (...args: infer Args) => Promise<Full[]> ? (...args: [
227
- ...queryArgs: FilterListArgs<Args, Filter>,
228
- option?: FetchPolicy & FetchInitForm<Input, Full, Filter>
229
- ]) => ClientInit<T, Light, Insight, FilterListArgs<Args, Filter>, Filter> : never : never;
230
- };
231
- type ConvertArg<T> = T extends Upload[] ? FileList : T;
232
- type IsInternalArgs<T> = T extends {
233
- __InternalArg__: any;
234
- } ? true : T extends {
235
- __InternalArg__: any;
236
- } | null ? true : false;
237
- type FilterOutInternalArgs<T> = T extends [arg: infer Head, ...args: infer Rest] ? IsInternalArgs<Head> extends true ? FilterOutInternalArgs<Rest> : Head extends undefined ? [arg?: ConvertArg<Head> | undefined, ...args: FilterOutInternalArgs<Rest>] : Head extends null ? [arg?: ConvertArg<Head> | undefined, ...args: FilterOutInternalArgs<Rest>] : [
238
- arg: ConvertArg<Head>,
239
- ...args: FilterOutInternalArgs<Rest>
240
- ] : [];
241
- type FunctionToTuple<F extends (...args: any) => any> = F extends (...args: infer A) => any ? A : never;
242
- type TupleToFunction<T extends any[], R> = (...args: [...args: T, option?: FetchPolicy]) => R;
243
- type RemoveInternalArgs<F extends (...args: any) => any, Returns = ReturnType<F>> = TupleToFunction<FilterOutInternalArgs<FunctionToTuple<F>>, Returns>;
244
- type ApplyVoidReturn<T> = T extends (...args: infer Args) => any ? (...args: Args) => void : never;
245
- type GetWsMessageOf<Sig> = {
246
- [K in keyof Sig as Sig[K] extends (...args: any) => Promise<{
247
- __Returns__: "Emit";
248
- }> ? K : Sig[K] extends (...args: any) => {
249
- __Returns__: "Emit";
250
- } ? K : never]: Sig[K] extends (...args: any) => any ? ApplyVoidReturn<RemoveInternalArgs<Sig[K], void>> : never;
251
- } & {
252
- [K in keyof Sig as K extends string ? Sig[K] extends (...args: any) => Promise<{
253
- __Returns__: "Emit";
254
- }> | {
255
- __Returns__: "Emit";
256
- } ? `listen${Capitalize<K>}` : never : never]: Sig[K] extends (...args: any) => any ? (handleEvent: (data: Awaited<ReturnType<Sig[K]>>) => any, options?: FetchPolicy) => () => void : never;
257
- };
258
- type GetWsPubsubOf<Sig> = {
259
- [K in keyof Sig as K extends string ? Sig[K] extends (...args: any) => Promise<{
260
- __Returns__: "Subscribe";
261
- }> ? `subscribe${Capitalize<K>}` : Sig[K] extends (...args: any) => {
262
- __Returns__: "Subscribe";
263
- } ? `subscribe${Capitalize<K>}` : never : never]: Sig[K] extends (...args: infer Args) => Promise<{
264
- __Returns__: "Subscribe";
265
- } & infer Return> ? (...args: [...args: FilterOutInternalArgs<Args>, onData: (data: Return) => void, fetchPolicy?: FetchPolicy]) => () => void : Sig[K] extends (...args: infer Args) => {
266
- __Returns__: "Subscribe";
267
- } & infer Return ? (...args: [...args: FilterOutInternalArgs<Args>, onData: (data: Return) => void, fetchPolicy?: FetchPolicy]) => () => void : never;
268
- };
269
-
270
- declare const st: WithSelectors<any>;
1
+ import { DataList, type Dayjs, Type } from "@akanjs/base";
2
+ import { type FetchPolicy } from "@akanjs/common";
3
+ import { DocumentModel, type FilterType, type GetStateObject, ProtoFile, QueryOf, type SortOf } from "@akanjs/constant";
4
+ import { DbGraphQL, DefaultOf, FetchInitForm, FieldState, FilterListArgs, FilterStateArgs, SliceMeta } from "@akanjs/signal";
5
+ import { MutableRefObject } from "react";
6
+ import { Mutate, StoreApi } from "zustand";
7
+ import type { Submit } from "./types";
8
+ export declare const st: WithSelectors<any>;
271
9
  type BaseState<T extends string, Full> = {
272
10
  [K in Uncapitalize<T>]: Full | null;
273
11
  } & {
@@ -318,10 +56,10 @@ type MergeFields<T> = {
318
56
  type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
319
57
  type DefaultState<T extends string, Full, Light extends {
320
58
  id: string;
321
- }, Insight, Filter extends FilterType, Signal> = BaseState<T, Full> & SliceState<T, Full, Light, [query: FilterQuery<DocumentModel<Full>>], Insight, Filter> & UnionToIntersection<MergeFields<{
59
+ }, Insight, Filter extends FilterType, Signal> = BaseState<T, Full> & SliceState<T, Full, Light, [query: QueryOf<DocumentModel<Full>>], Insight, Filter> & UnionToIntersection<MergeFields<{
322
60
  [K in keyof Signal as K extends `${T}List${infer Suffix}` ? K : never]: K extends `${T}List${infer Suffix}` ? Signal[K] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, FilterStateArgs<Args, Filter>, Insight, Filter, Suffix> : never : never;
323
61
  }>>;
324
- declare const createState: <T extends string, Input, Full, Light extends {
62
+ export declare const createState: <T extends string, Input, Full, Light extends {
325
63
  id: string;
326
64
  }, Insight, Filter extends FilterType, Fetch, Signal>(gql: DbGraphQL<T, Input, Full, Light, Insight, Filter, Fetch, Signal>) => DefaultState<T, Full, Light, Insight, Filter, Signal>;
327
65
  type GetState<T, K> = K extends keyof T ? T[K] : never;
@@ -330,18 +68,18 @@ type PickFunc<T, F extends keyof T = keyof T> = (...fields: F[]) => {
330
68
  [K in (typeof fields)[number]]: Exclude<T[K], null | undefined | "loading">;
331
69
  };
332
70
  type MakeState<Maker> = Maker extends (...args: any) => infer S ? S : Maker;
333
- interface SetGet<State> {
71
+ export interface SetGet<State> {
334
72
  set: (state: Partial<MakeState<State>> | ((state: MakeState<State>) => any)) => void;
335
73
  get: GetState<Mutate<StoreApi<MakeState<State>>, []>, "getState">;
336
74
  pick: PickState<GetState<Mutate<StoreApi<MakeState<State>>, []>, "getState">>;
337
75
  }
338
- interface SetPick<State> {
76
+ export interface SetPick<State> {
339
77
  set: (state: Partial<MakeState<State>> | ((state: MakeState<State>) => any)) => void;
340
78
  pick: PickState<GetState<Mutate<StoreApi<MakeState<State>>, []>, "getState">>;
341
79
  }
342
- type State<StateMaker, Actions = () => Record<string, never>> = (StateMaker extends (...args: any) => infer R ? R : StateMaker) & (Actions extends (...args: any) => infer R ? R : never);
343
- type Get<State, Actions> = MakeState<State> & MakeState<Actions>;
344
- interface CreateOption<Full extends {
80
+ export type State<StateMaker, Actions = () => Record<string, never>> = (StateMaker extends (...args: any) => infer R ? R : StateMaker) & (Actions extends (...args: any) => infer R ? R : never);
81
+ export type Get<State, Actions> = MakeState<State> & MakeState<Actions>;
82
+ export interface CreateOption<Full extends {
345
83
  id: string;
346
84
  }> {
347
85
  idx?: number;
@@ -351,7 +89,7 @@ interface CreateOption<Full extends {
351
89
  onError?: (e: string) => void;
352
90
  onSuccess?: (model: Full) => void | Promise<void>;
353
91
  }
354
- interface NewOption {
92
+ export interface NewOption {
355
93
  modal?: string;
356
94
  setDefault?: boolean;
357
95
  sliceName?: string;
@@ -418,10 +156,10 @@ type SliceAction<T extends string, Input, Full extends {
418
156
  };
419
157
  type DefaultActions<T extends string, Input, Full extends {
420
158
  id: string;
421
- }, Light, Filter extends FilterType, Fetch, Signal> = BaseAction<T, Input, Full, Light> & FormSetter<Full, T> & SliceAction<T, Input, Full, Light, [query: FilterQuery<DocumentModel<Full>>], Filter> & UnionToIntersection<MergeFields<{
159
+ }, Light, Filter extends FilterType, Fetch, Signal> = BaseAction<T, Input, Full, Light> & FormSetter<Full, T> & SliceAction<T, Input, Full, Light, [query: QueryOf<DocumentModel<Full>>], Filter> & UnionToIntersection<MergeFields<{
422
160
  [K in keyof Signal as K extends `${T}List${infer Suffix}` ? K : never]: K extends `${T}List${infer Suffix}` ? Signal[K] extends (...args: infer Args) => Promise<Full[]> ? SliceAction<T, Input, Full, Light, FilterListArgs<Args, Filter>, Filter, Suffix> : never : never;
423
161
  }>>;
424
- declare const createActions: <T extends string, Input, Full extends {
162
+ export declare const createActions: <T extends string, Input, Full extends {
425
163
  id: string;
426
164
  }, Light extends {
427
165
  id: string;
@@ -447,21 +185,21 @@ type FormSetter<Full, S extends string> = {
447
185
  } & {
448
186
  [K in `writeOn${Capitalize<S>}`]: (path: string | (string | number)[], value: any) => void;
449
187
  };
450
- declare const stateOf: <T extends string, Input, Full extends {
188
+ export declare const stateOf: <T extends string, Input, Full extends {
451
189
  id: string;
452
190
  }, Light extends {
453
191
  id: string;
454
192
  }, Insight, Filter extends FilterType, Fetch, Signal, State extends {
455
193
  [key: string]: any;
456
194
  }>(gql: DbGraphQL<T, Input, Full, Light, Insight, Filter, Fetch, Signal>, state: State) => Type<{
457
- readonly get: () => State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: FilterQuery<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, FilterOutInternalArgs<Args> extends infer T_1 ? T_1 extends FilterOutInternalArgs<Args> ? T_1 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>;
458
- readonly set: (state: Partial<MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: FilterQuery<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, FilterOutInternalArgs<Args> extends infer T_1 ? T_1 extends FilterOutInternalArgs<Args> ? T_1 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>>> | ((state: MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: FilterQuery<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, FilterOutInternalArgs<Args> extends infer T_2 ? T_2 extends FilterOutInternalArgs<Args> ? T_2 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>>) => any)) => void;
459
- readonly pick: PickState<GetState<Mutate<StoreApi<MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: FilterQuery<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, FilterOutInternalArgs<Args> extends infer T_1 ? T_1 extends FilterOutInternalArgs<Args> ? T_1 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>>>, []>, "getState">>;
460
- } & (State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: FilterQuery<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, FilterOutInternalArgs<Args> extends infer T_2 ? T_2 extends FilterOutInternalArgs<Args> ? T_2 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>) & DefaultActions<T, Input, Full, Light, Filter, Fetch, Signal> & { [K_22 in keyof Fetch as K_22 extends `${T}List${infer Suffix_2}` ? `__SLICE__${T}${Suffix_2}` : never]: K_22 extends `${T}List${infer Suffix_3}` ? Fetch[K_22] extends (...args: [...args: infer QueryArgs_1, skip: null | undefined, limit: null | undefined, sort: null | undefined, option?: FetchPolicy]) => Promise<Light[]> ? StoreOf<T, RemoveSuffix<{ [K_23 in `default${Capitalize<T>}${Suffix_3}`]: DefaultOf<Full>; } & { [K_24 in `${Uncapitalize<T>}List${Suffix_3}`]: DataList<Light>; } & { [K_25 in `${Uncapitalize<T>}ListLoading${Suffix_3}`]: boolean; } & { [K_26 in `${Uncapitalize<T>}InitList${Suffix_3}`]: DataList<Light>; } & { [K_27 in `${Uncapitalize<T>}InitAt${Suffix_3}`]: Date; } & { [K_28 in `${Uncapitalize<T>}Selection${Suffix_3}`]: DataList<Light>; } & { [K_29 in `${Uncapitalize<T>}Insight${Suffix_3}`]: Insight; } & { [K_30 in `lastPageOf${Capitalize<T>}${Suffix_3}`]: number; } & { [K_31 in `pageOf${Capitalize<T>}${Suffix_3}`]: number; } & { [K_32 in `limitOf${Capitalize<T>}${Suffix_3}`]: number; } & { [K_33 in `queryArgsOf${Capitalize<T>}${Suffix_3}`]: QueryArgs_1; } & { [K_34 in `sortOf${Capitalize<T>}${Suffix_3}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & { [K_35 in `init${Capitalize<T>}${Suffix_3}`]: (...args: [...args: QueryArgs_1, initForm?: (FetchInitForm<Input, Full, Filter> & FetchPolicy<any>) | undefined]) => Promise<void>; } & { [K_36 in `refresh${Capitalize<T>}${Suffix_3}`]: (...args: [...args: QueryArgs_1, initForm?: (FetchInitForm<Input, Full, Filter> & FetchPolicy<any>) | undefined]) => Promise<void>; } & { [K_37 in `select${Capitalize<T>}${Suffix_3}`]: (model: Light | Light[], options?: {
195
+ readonly get: () => State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_1 ? T_1 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_1 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>;
196
+ readonly set: (state: Partial<MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_1 ? T_1 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_1 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>>> | ((state: MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_2 ? T_2 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_2 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>>) => any)) => void;
197
+ readonly pick: PickState<GetState<Mutate<StoreApi<MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_1 ? T_1 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_1 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>>>, []>, "getState">>;
198
+ } & (State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_2 ? T_2 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_2 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>) & DefaultActions<T, Input, Full, Light, Filter, Fetch, Signal> & { [K_22 in keyof Fetch as K_22 extends `${T}List${infer Suffix_2}` ? `__SLICE__${T}${Suffix_2}` : never]: K_22 extends `${T}List${infer Suffix_3}` ? Fetch[K_22] extends (...args: [...args: infer QueryArgs_1, skip: null | undefined, limit: null | undefined, sort: null | undefined, option?: FetchPolicy]) => Promise<Light[]> ? StoreOf<T, RemoveSuffix<{ [K_23 in `default${Capitalize<T>}${Suffix_3}`]: DefaultOf<Full>; } & { [K_24 in `${Uncapitalize<T>}List${Suffix_3}`]: DataList<Light>; } & { [K_25 in `${Uncapitalize<T>}ListLoading${Suffix_3}`]: boolean; } & { [K_26 in `${Uncapitalize<T>}InitList${Suffix_3}`]: DataList<Light>; } & { [K_27 in `${Uncapitalize<T>}InitAt${Suffix_3}`]: Date; } & { [K_28 in `${Uncapitalize<T>}Selection${Suffix_3}`]: DataList<Light>; } & { [K_29 in `${Uncapitalize<T>}Insight${Suffix_3}`]: Insight; } & { [K_30 in `lastPageOf${Capitalize<T>}${Suffix_3}`]: number; } & { [K_31 in `pageOf${Capitalize<T>}${Suffix_3}`]: number; } & { [K_32 in `limitOf${Capitalize<T>}${Suffix_3}`]: number; } & { [K_33 in `queryArgsOf${Capitalize<T>}${Suffix_3}`]: QueryArgs_1; } & { [K_34 in `sortOf${Capitalize<T>}${Suffix_3}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & { [K_35 in `init${Capitalize<T>}${Suffix_3}`]: (...args: [...args: QueryArgs_1, initForm?: (FetchInitForm<Input, Full, Filter> & FetchPolicy<any>) | undefined]) => Promise<void>; } & { [K_36 in `refresh${Capitalize<T>}${Suffix_3}`]: (...args: [...args: QueryArgs_1, initForm?: (FetchInitForm<Input, Full, Filter> & FetchPolicy<any>) | undefined]) => Promise<void>; } & { [K_37 in `select${Capitalize<T>}${Suffix_3}`]: (model: Light | Light[], options?: {
461
199
  refresh?: boolean;
462
200
  remove?: boolean;
463
201
  }) => void; } & { [K_38 in `setPageOf${Capitalize<T>}${Suffix_3}`]: (page: number, options?: FetchPolicy) => Promise<void>; } & { [K_39 in `addPageOf${Capitalize<T>}${Suffix_3}`]: (page: number, options?: FetchPolicy) => Promise<void>; } & { [K_40 in `setLimitOf${Capitalize<T>}${Suffix_3}`]: (limit: number, options?: FetchPolicy) => Promise<void>; } & { [K_41 in `setQueryArgsOf${Capitalize<T>}${Suffix_3}`]: (...args: [...args: QueryArgs_1, options?: FetchPolicy<any> | undefined]) => Promise<void>; } & { [K_42 in `setSortOf${Capitalize<T>}${Suffix_3}`]: (sort: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">, options?: FetchPolicy) => Promise<void>; }, Suffix_3>> : never : never; }>;
464
- declare const scalarStateOf: <T extends string, State extends {
202
+ export declare const scalarStateOf: <T extends string, State extends {
465
203
  [key: string]: any;
466
204
  }>(refName: string, state: State) => Type<{
467
205
  readonly get: () => State;
@@ -471,6 +209,7 @@ declare const scalarStateOf: <T extends string, State extends {
471
209
  interface StoreDecoratorInput {
472
210
  name: string;
473
211
  }
212
+ export declare const Store: (returnsOrObj: (() => Type) | StoreDecoratorInput) => (target: Type) => void;
474
213
  type SetKey<T extends string> = `set${Capitalize<T>}`;
475
214
  type WithSelectors<SA> = {
476
215
  sub: {
@@ -506,10 +245,10 @@ type WithSelectors<SA> = {
506
245
  interface MakeStoreOption {
507
246
  library?: boolean;
508
247
  }
509
- declare const makeStore: <SA extends {
248
+ export declare const makeStore: <SA extends {
510
249
  [key: string]: any;
511
250
  }>(st: WithSelectors<any>, storeRef: Type<SA>, { library }?: MakeStoreOption) => WithSelectors<SA>;
512
- type StoreOf<T extends string, State> = SliceMeta & {
251
+ export type StoreOf<T extends string, State> = SliceMeta & {
513
252
  use: {
514
253
  [K in keyof State as State[K] extends (...args: any) => any ? never : K]: () => State[K];
515
254
  };
@@ -525,15 +264,13 @@ type StoreOf<T extends string, State> = SliceMeta & {
525
264
  type RemoveSuffix<State, Suffix extends string> = {
526
265
  [K in keyof State as K extends `${infer Prefix}${Suffix}` ? Prefix : never]: State[K];
527
266
  };
528
- declare const Store: (returnsOrObj: (() => Type) | StoreDecoratorInput) => (target: Type) => void;
529
- type Store<State> = WithSelectors<State>;
267
+ export type Store<State> = WithSelectors<State>;
530
268
  type OmitGetSetPick<T> = Omit<T, "get" | "set" | "pick">;
531
- declare const MixStore: <S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30>(s1: Type<S1>, s2?: Type<S2>, s3?: Type<S3>, s4?: Type<S4>, s5?: Type<S5>, s6?: Type<S6>, s7?: Type<S7>, s8?: Type<S8>, s9?: Type<S9>, s10?: Type<S10>, s11?: Type<S11>, s12?: Type<S12>, s13?: Type<S13>, s14?: Type<S14>, s15?: Type<S15>, s16?: Type<S16>, s17?: Type<S17>, s18?: Type<S18>, s19?: Type<S19>, s20?: Type<S20>, s21?: Type<S21>, s22?: Type<S22>, s23?: Type<S23>, s24?: Type<S24>, s25?: Type<S25>, s26?: Type<S26>, s27?: Type<S27>, s28?: Type<S28>, s29?: Type<S29>, s30?: Type<S30>) => Type<OmitGetSetPick<S1> & OmitGetSetPick<S2> & OmitGetSetPick<S3> & OmitGetSetPick<S4> & OmitGetSetPick<S5> & OmitGetSetPick<S6> & OmitGetSetPick<S7> & OmitGetSetPick<S8> & OmitGetSetPick<S9> & OmitGetSetPick<S10> & OmitGetSetPick<S11> & OmitGetSetPick<S12> & OmitGetSetPick<S13> & OmitGetSetPick<S14> & OmitGetSetPick<S15> & OmitGetSetPick<S16> & OmitGetSetPick<S17> & OmitGetSetPick<S18> & OmitGetSetPick<S19> & OmitGetSetPick<S20> & OmitGetSetPick<S21> & OmitGetSetPick<S22> & OmitGetSetPick<S23> & OmitGetSetPick<S24> & OmitGetSetPick<S25> & OmitGetSetPick<S26> & OmitGetSetPick<S27> & OmitGetSetPick<S28> & OmitGetSetPick<S29> & OmitGetSetPick<S30> & SetGet<OmitGetSetPick<S1> & OmitGetSetPick<S2> & OmitGetSetPick<S3> & OmitGetSetPick<S4> & OmitGetSetPick<S5> & OmitGetSetPick<S6> & OmitGetSetPick<S7> & OmitGetSetPick<S8> & OmitGetSetPick<S9> & OmitGetSetPick<S10> & OmitGetSetPick<S11> & OmitGetSetPick<S12> & OmitGetSetPick<S13> & OmitGetSetPick<S14> & OmitGetSetPick<S15> & OmitGetSetPick<S16> & OmitGetSetPick<S17> & OmitGetSetPick<S18> & OmitGetSetPick<S19> & OmitGetSetPick<S20> & OmitGetSetPick<S21> & OmitGetSetPick<S22> & OmitGetSetPick<S23> & OmitGetSetPick<S24> & OmitGetSetPick<S25> & OmitGetSetPick<S26> & OmitGetSetPick<S27> & OmitGetSetPick<S28> & OmitGetSetPick<S29> & OmitGetSetPick<S30>>>;
532
- declare const rootStoreOf: <Store>(store: Type<Store>) => Type<Store>;
269
+ export declare const MixStore: <S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30>(s1: Type<S1>, s2?: Type<S2>, s3?: Type<S3>, s4?: Type<S4>, s5?: Type<S5>, s6?: Type<S6>, s7?: Type<S7>, s8?: Type<S8>, s9?: Type<S9>, s10?: Type<S10>, s11?: Type<S11>, s12?: Type<S12>, s13?: Type<S13>, s14?: Type<S14>, s15?: Type<S15>, s16?: Type<S16>, s17?: Type<S17>, s18?: Type<S18>, s19?: Type<S19>, s20?: Type<S20>, s21?: Type<S21>, s22?: Type<S22>, s23?: Type<S23>, s24?: Type<S24>, s25?: Type<S25>, s26?: Type<S26>, s27?: Type<S27>, s28?: Type<S28>, s29?: Type<S29>, s30?: Type<S30>) => Type<OmitGetSetPick<S1> & OmitGetSetPick<S2> & OmitGetSetPick<S3> & OmitGetSetPick<S4> & OmitGetSetPick<S5> & OmitGetSetPick<S6> & OmitGetSetPick<S7> & OmitGetSetPick<S8> & OmitGetSetPick<S9> & OmitGetSetPick<S10> & OmitGetSetPick<S11> & OmitGetSetPick<S12> & OmitGetSetPick<S13> & OmitGetSetPick<S14> & OmitGetSetPick<S15> & OmitGetSetPick<S16> & OmitGetSetPick<S17> & OmitGetSetPick<S18> & OmitGetSetPick<S19> & OmitGetSetPick<S20> & OmitGetSetPick<S21> & OmitGetSetPick<S22> & OmitGetSetPick<S23> & OmitGetSetPick<S24> & OmitGetSetPick<S25> & OmitGetSetPick<S26> & OmitGetSetPick<S27> & OmitGetSetPick<S28> & OmitGetSetPick<S29> & OmitGetSetPick<S30> & SetGet<OmitGetSetPick<S1> & OmitGetSetPick<S2> & OmitGetSetPick<S3> & OmitGetSetPick<S4> & OmitGetSetPick<S5> & OmitGetSetPick<S6> & OmitGetSetPick<S7> & OmitGetSetPick<S8> & OmitGetSetPick<S9> & OmitGetSetPick<S10> & OmitGetSetPick<S11> & OmitGetSetPick<S12> & OmitGetSetPick<S13> & OmitGetSetPick<S14> & OmitGetSetPick<S15> & OmitGetSetPick<S16> & OmitGetSetPick<S17> & OmitGetSetPick<S18> & OmitGetSetPick<S19> & OmitGetSetPick<S20> & OmitGetSetPick<S21> & OmitGetSetPick<S22> & OmitGetSetPick<S23> & OmitGetSetPick<S24> & OmitGetSetPick<S25> & OmitGetSetPick<S26> & OmitGetSetPick<S27> & OmitGetSetPick<S28> & OmitGetSetPick<S29> & OmitGetSetPick<S30>>>;
270
+ export declare const rootStoreOf: <Store>(store: Type<Store>) => Type<Store>;
533
271
  interface ToastProps {
534
272
  root?: string;
535
273
  duration?: number;
536
274
  }
537
- declare const Toast: ({ root, duration }?: ToastProps) => (target: any, key: string, descriptor: PropertyDescriptor) => void;
538
-
539
- export { type CreateOption, type Get, MixStore, type NewOption, type SetGet, type SetPick, type State, Store, type StoreOf, Toast, createActions, createState, makeStore, rootStoreOf, scalarStateOf, st, stateOf };
275
+ export declare const Toast: ({ root, duration }?: ToastProps) => (target: any, key: string, descriptor: PropertyDescriptor) => void;
276
+ export {};
package/src/types.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- interface Submit {
1
+ export interface Submit {
2
2
  disabled: boolean;
3
3
  loading: boolean;
4
4
  times: number;
5
5
  }
6
-
7
- export type { Submit };
package/src/index.js DELETED
@@ -1,23 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
- var src_exports = {};
16
- module.exports = __toCommonJS(src_exports);
17
- __reExport(src_exports, require("./types"), module.exports);
18
- __reExport(src_exports, require("./storeDecorators"), module.exports);
19
- // Annotate the CommonJS export names for ESM import in node:
20
- 0 && (module.exports = {
21
- ...require("./types"),
22
- ...require("./storeDecorators")
23
- });