@codecks/fetch 1.0.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -32
- package/dist/_exploration/api-requester.d.ts +3 -4
- package/dist/_exploration/api-requester.js +2 -2
- package/dist/_exploration/create-hooks.d.ts +4313 -13097
- package/dist/_exploration/create-hooks.js +1 -1
- package/dist/_exploration/loader.d.ts +2 -2
- package/dist/_exploration/loader.js +1 -1
- package/dist/_exploration/store.d.ts +5 -4
- package/dist/_exploration/store.js +1 -1
- package/dist/{collection-utils-KmtGUuXm.js → collection-utils-Ia_ahcpI.js} +2 -1
- package/dist/index-g5c30upI.d.ts +39 -0
- package/dist/index.d.ts +4 -19
- package/dist/index.js +26 -15
- package/dist/{loader-types-fd5tV0FD.d.ts → loader-types-D2Pf8qzH.d.ts} +1 -1
- package/dist/loader-utils-BZWanWDZ.d.ts +2218 -0
- package/dist/query-helpers-DndWBcMF.js +1203 -0
- package/dist/{query-type-BqQ9oX_U.d.ts → query-type-DPNcQFpZ.d.ts} +27 -13
- package/dist/store-ztk8y6Pm.d.ts +1203 -0
- package/package.json +2 -1
- package/schema/actions.md +789 -0
- package/schema/models/account.md +57 -90
- package/schema/models/attachment.md +15 -11
- package/schema/models/card.md +91 -65
- package/schema/models/cardHistory.md +15 -9
- package/schema/models/deck.md +41 -36
- package/schema/models/file.md +13 -15
- package/schema/models/handCard.md +8 -5
- package/schema/models/milestone.md +27 -22
- package/schema/models/milestoneProgress.md +9 -3
- package/schema/models/milestoneProject.md +6 -4
- package/schema/models/project.md +15 -39
- package/schema/models/projectTag.md +12 -7
- package/schema/models/queueEntry.md +12 -8
- package/schema/models/release.md +8 -6
- package/schema/models/resolvable.md +19 -15
- package/schema/models/resolvableEntry.md +16 -13
- package/schema/models/resolvableEntryReaction.md +16 -12
- package/schema/models/sprint.md +35 -25
- package/schema/models/sprintConfig.md +24 -20
- package/schema/models/sprintConfigProgress.md +9 -3
- package/schema/models/sprintProgress.md +9 -3
- package/schema/models/sprintProject.md +7 -5
- package/schema/models/user.md +15 -56
- package/schema/models/workflowItem.md +47 -31
- package/schema/overview.md +40 -93
- package/schema/query-syntax.md +1 -1
- package/schema/types.md +103 -0
- package/dist/_root-BW9uzB79.d.ts +0 -34
- package/dist/index-k-KPWV9R.d.ts +0 -2680
- package/dist/loader-utils-hvdC-xsQ.d.ts +0 -42
- package/dist/query-helpers-iX1fiqLv.js +0 -3062
- package/dist/store-BvEJzUVp.d.ts +0 -2667
- package/schema/models/accountOnboarding.md +0 -15
- package/schema/models/accountOnboardingStep.md +0 -14
- package/schema/models/accountRole.md +0 -19
- package/schema/models/accountUserAchievement.md +0 -17
- package/schema/models/accountUserSetting.md +0 -20
- package/schema/models/activeTimeTracker.md +0 -19
- package/schema/models/activity.md +0 -30
- package/schema/models/affiliateCode.md +0 -30
- package/schema/models/affiliateCodeStat.md +0 -19
- package/schema/models/app.md +0 -10
- package/schema/models/appInstallation.md +0 -19
- package/schema/models/assigneeAssignment.md +0 -18
- package/schema/models/assigneeDeckAssignment.md +0 -20
- package/schema/models/autoFinishedTimeTrackingSegment.md +0 -20
- package/schema/models/cardDiffNotification.md +0 -22
- package/schema/models/cardOrder.md +0 -17
- package/schema/models/cardOrderInDeck.md +0 -18
- package/schema/models/cardPreset.md +0 -19
- package/schema/models/cardSubscription.md +0 -19
- package/schema/models/cardUpvote.md +0 -21
- package/schema/models/cardsEffortHistory.md +0 -9
- package/schema/models/cardsFinishedHistory.md +0 -16
- package/schema/models/cardsStatusHistory.md +0 -9
- package/schema/models/cardsTimeToFinished.md +0 -18
- package/schema/models/dailyDiscordGuildVoteMembership.md +0 -15
- package/schema/models/dailyPublicProjectMembership.md +0 -15
- package/schema/models/deckAssignment.md +0 -18
- package/schema/models/deckGuardian.md +0 -17
- package/schema/models/deckSubscription.md +0 -18
- package/schema/models/discordGuild.md +0 -30
- package/schema/models/discordMember.md +0 -21
- package/schema/models/discordProjectNotification.md +0 -19
- package/schema/models/discordSlashCommand.md +0 -28
- package/schema/models/dueCard.md +0 -18
- package/schema/models/integration.md +0 -23
- package/schema/models/invoice.md +0 -21
- package/schema/models/lastSeenCardUpvote.md +0 -17
- package/schema/models/pinnedMilestone.md +0 -22
- package/schema/models/projectOrder.md +0 -18
- package/schema/models/projectSelection.md +0 -18
- package/schema/models/projectUser.md +0 -18
- package/schema/models/projectUserSetting.md +0 -15
- package/schema/models/publicProjectInfo.md +0 -20
- package/schema/models/publicProjectMembership.md +0 -17
- package/schema/models/publicProjectVisit.md +0 -16
- package/schema/models/queueSelection.md +0 -19
- package/schema/models/resolvableEntryHistory.md +0 -20
- package/schema/models/resolvableNotification.md +0 -30
- package/schema/models/resolvableParticipant.md +0 -25
- package/schema/models/resolvableParticipantHistory.md +0 -23
- package/schema/models/savedSearch.md +0 -18
- package/schema/models/stripeAccountSync.md +0 -29
- package/schema/models/timeTrackingSegment.md +0 -24
- package/schema/models/timeTrackingSum.md +0 -18
- package/schema/models/userDismissedHint.md +0 -16
- package/schema/models/userEmail.md +0 -18
- package/schema/models/userInvitation.md +0 -20
- package/schema/models/userInviteCode.md +0 -23
- package/schema/models/userOnboarding.md +0 -14
- package/schema/models/userProjectAccess.md +0 -17
- package/schema/models/userReportEmail.md +0 -19
- package/schema/models/userReportSetting.md +0 -23
- package/schema/models/userReportToken.md +0 -18
- package/schema/models/userTag.md +0 -18
- package/schema/models/visionBoard.md +0 -21
- package/schema/models/visionBoardQuery.md +0 -22
- package/schema/models/wizard.md +0 -19
- package/schema/models/workflowItemHistory.md +0 -18
|
@@ -0,0 +1,1203 @@
|
|
|
1
|
+
import { ModelDesc, ModelQuery, RelationEntry, TypedField } from "./query-type-DPNcQFpZ.js";
|
|
2
|
+
import { AccountId, AttachmentId, CardId, CardVisibility, Checkbox, CheckboxStats, DeckId, DefaultCard, DerivedStatus, FileId, MilestoneColor, MilestoneId, Priority, ProjectId, ProjectTagId, QueueEntryId, ReleaseId, ResolvableEntryId, ResolvableEntryReactionId, ResolvableId, SprintConfigId, SprintId, StartWeekday, TimeTrackingMode, TimelineScaleType, UserId, Workdays, WorkflowItemId, WorkflowMode, modelMap$1 as modelMap } from "./loader-utils-BZWanWDZ.js";
|
|
3
|
+
import { BaseLoader, LoaderResult, MissingDataRequest } from "./loader-types-D2Pf8qzH.js";
|
|
4
|
+
|
|
5
|
+
//#region src/_exploration/optimistic-manager.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Represents a single optimistic update layer
|
|
9
|
+
* Contains field updates for one mutation
|
|
10
|
+
* Internal implementation - wrapped by ImmediateCache to provide full OptimisticUpdater interface
|
|
11
|
+
*/
|
|
12
|
+
declare class OptimisticLayer {
|
|
13
|
+
private data;
|
|
14
|
+
private affectedFields;
|
|
15
|
+
setField(model: string, id: string, field: string, value: any): void;
|
|
16
|
+
hasChanges(): boolean;
|
|
17
|
+
getAffectedFieldKeys(): Iterable<string>;
|
|
18
|
+
entries(): IterableIterator<[string, any]>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Manages a stack of optimistic layers with O(1) lookups
|
|
22
|
+
*
|
|
23
|
+
* Design:
|
|
24
|
+
* - Maintains a stack of layers (one per in-flight mutation)
|
|
25
|
+
* - Rebuilds flattened view when layers added/removed for fast reads
|
|
26
|
+
* - Later layers override earlier ones (parallel updates supported)
|
|
27
|
+
* - Auto-cleanup via promise lifecycle
|
|
28
|
+
*/
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/_exploration/immediate-cache.d.ts
|
|
31
|
+
type FieldMeta = {
|
|
32
|
+
state: "optimistic";
|
|
33
|
+
} | {
|
|
34
|
+
state: "fresh";
|
|
35
|
+
} | {
|
|
36
|
+
state: "dirty";
|
|
37
|
+
};
|
|
38
|
+
interface FieldCache<T = any> {
|
|
39
|
+
value: T;
|
|
40
|
+
partKeys: string[];
|
|
41
|
+
meta: FieldMeta;
|
|
42
|
+
}
|
|
43
|
+
type FieldLocation = {
|
|
44
|
+
model: string;
|
|
45
|
+
id: string;
|
|
46
|
+
field: string;
|
|
47
|
+
fieldKey: string;
|
|
48
|
+
type: "field" | "relation";
|
|
49
|
+
cache: FieldCache;
|
|
50
|
+
};
|
|
51
|
+
type ModelInstance = Map<string, FieldCache>;
|
|
52
|
+
type ModelCache = Map<string, ModelInstance>;
|
|
53
|
+
type FieldSub = () => void;
|
|
54
|
+
/**
|
|
55
|
+
* Wrapper that provides full OptimisticUpdater interface
|
|
56
|
+
* Delegates writes to OptimisticLayer and reads to ImmediateCache
|
|
57
|
+
*/
|
|
58
|
+
declare class OptimisticUpdater {
|
|
59
|
+
private layer;
|
|
60
|
+
private cache;
|
|
61
|
+
constructor(layer: OptimisticLayer,
|
|
62
|
+
// OptimisticLayer from optimistic-manager
|
|
63
|
+
cache: ImmediateCache);
|
|
64
|
+
setField(model: string, id: string, field: string, value: any): void;
|
|
65
|
+
getField(model: string, id: string, field: string): FieldCache | undefined;
|
|
66
|
+
}
|
|
67
|
+
declare class ImmediateCache {
|
|
68
|
+
cache: ModelCache;
|
|
69
|
+
partKeyToFields: Map<string, FieldLocation[]>;
|
|
70
|
+
private fieldSubscriptions;
|
|
71
|
+
private optimisticManager;
|
|
72
|
+
private getInstanceKey;
|
|
73
|
+
get(model: string, key: string, field: string): FieldCache | undefined;
|
|
74
|
+
subscribe(fieldKey: string, notifyFn: FieldSub): () => void;
|
|
75
|
+
set(model: string, key: string, partialInstance: Record<string, {
|
|
76
|
+
value: unknown;
|
|
77
|
+
partKeys: string[];
|
|
78
|
+
type: "field" | "relation";
|
|
79
|
+
}>, meta: FieldMeta): FieldSub[];
|
|
80
|
+
markDirty(partKeys: string[]): MissingDataRequest[];
|
|
81
|
+
/**
|
|
82
|
+
* Create a new optimistic layer bound to a promise and apply updates
|
|
83
|
+
* The layer will be automatically removed when the promise settles
|
|
84
|
+
* @param promise - Promise to bind the layer lifecycle to
|
|
85
|
+
* @param updateFn - Function to apply optimistic updates to the layer
|
|
86
|
+
* @returns The updater object with both read and write capabilities
|
|
87
|
+
*/
|
|
88
|
+
createOptimisticLayer(promise: Promise<any>, updateFn: (updater: OptimisticUpdater) => void): OptimisticUpdater;
|
|
89
|
+
}
|
|
90
|
+
//#endregion
|
|
91
|
+
//#region src/_exploration/store.d.ts
|
|
92
|
+
type QueryDep = {
|
|
93
|
+
keys: string[];
|
|
94
|
+
};
|
|
95
|
+
type ModelMap = typeof modelMap;
|
|
96
|
+
declare class Store {
|
|
97
|
+
private loader;
|
|
98
|
+
cache: ImmediateCache;
|
|
99
|
+
modelMap: {
|
|
100
|
+
_root: ModelDesc<"_root", {}, {
|
|
101
|
+
account: RelationEntry<"account", {
|
|
102
|
+
readonly type: "hasOne";
|
|
103
|
+
}>;
|
|
104
|
+
loggedInUser: RelationEntry<"user", {
|
|
105
|
+
readonly type: "hasOne";
|
|
106
|
+
}>;
|
|
107
|
+
releases: RelationEntry<"release", {
|
|
108
|
+
readonly type: "hasMany";
|
|
109
|
+
}>;
|
|
110
|
+
}, []>;
|
|
111
|
+
account: ModelDesc<"account", {
|
|
112
|
+
allowInheritHeroCover: TypedField<"bool", boolean, {
|
|
113
|
+
readonly stability: "preview";
|
|
114
|
+
}>;
|
|
115
|
+
attachmentCoverMode: TypedField<"typed", (string & {}) | "none" | "first" | "last", {
|
|
116
|
+
readonly stability: "preview";
|
|
117
|
+
}>;
|
|
118
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
119
|
+
dependenciesEnabled: TypedField<"bool", boolean, {}>;
|
|
120
|
+
dueDateEnabled: TypedField<"bool", boolean, {}>;
|
|
121
|
+
effortScale: TypedField<"typed", number[], {}>;
|
|
122
|
+
fallbackEffort: TypedField<"int", number, {
|
|
123
|
+
readonly stability: "preview";
|
|
124
|
+
}>;
|
|
125
|
+
hideCompletedCardCountForDecks: TypedField<"bool", boolean, {
|
|
126
|
+
readonly stability: "preview";
|
|
127
|
+
}>;
|
|
128
|
+
id: TypedField<"id", AccountId, {}>;
|
|
129
|
+
maxHandSlotCount: TypedField<"int", number, {
|
|
130
|
+
readonly stability: "preview";
|
|
131
|
+
}>;
|
|
132
|
+
milestonesEnabled: TypedField<"bool", boolean, {}>;
|
|
133
|
+
name: TypedField<"string", string, {}>;
|
|
134
|
+
priorityLabels: TypedField<"typed", {
|
|
135
|
+
a: string;
|
|
136
|
+
b: string;
|
|
137
|
+
c: string;
|
|
138
|
+
}, {}>;
|
|
139
|
+
sprintsEnabled: TypedField<"bool", boolean, {}>;
|
|
140
|
+
startWeekday: TypedField<"typed", StartWeekday, {}>;
|
|
141
|
+
statusChangeDurations: TypedField<"typed", {
|
|
142
|
+
snooze: number;
|
|
143
|
+
archive: number | null;
|
|
144
|
+
}, {
|
|
145
|
+
readonly stability: "preview";
|
|
146
|
+
}>;
|
|
147
|
+
subdomain: TypedField<"string", string, {}>;
|
|
148
|
+
timeTrackingMode: TypedField<"typed", TimeTrackingMode, {
|
|
149
|
+
readonly stability: "preview";
|
|
150
|
+
}>;
|
|
151
|
+
timelineScaleType: TypedField<"typed", TimelineScaleType, {
|
|
152
|
+
readonly stability: "preview";
|
|
153
|
+
}>;
|
|
154
|
+
visionBoardEnabled: TypedField<"bool", boolean, {
|
|
155
|
+
readonly stability: "preview";
|
|
156
|
+
}>;
|
|
157
|
+
workdays: TypedField<"typed", Workdays, {}>;
|
|
158
|
+
workflowMode: TypedField<"typed", WorkflowMode, {
|
|
159
|
+
readonly stability: "preview";
|
|
160
|
+
}>;
|
|
161
|
+
}, {
|
|
162
|
+
archivedProjects: RelationEntry<"project", {
|
|
163
|
+
readonly type: "hasMany";
|
|
164
|
+
}>;
|
|
165
|
+
attachments: RelationEntry<"attachment", {
|
|
166
|
+
readonly type: "hasMany";
|
|
167
|
+
}>;
|
|
168
|
+
cards: RelationEntry<"card", {
|
|
169
|
+
readonly type: "hasMany";
|
|
170
|
+
}>;
|
|
171
|
+
decks: RelationEntry<"deck", {
|
|
172
|
+
readonly type: "hasMany";
|
|
173
|
+
}>;
|
|
174
|
+
files: RelationEntry<"file", {
|
|
175
|
+
readonly type: "hasMany";
|
|
176
|
+
}>;
|
|
177
|
+
handCards: RelationEntry<"handCard", {
|
|
178
|
+
readonly type: "hasMany";
|
|
179
|
+
}>;
|
|
180
|
+
milestones: RelationEntry<"milestone", {
|
|
181
|
+
readonly type: "hasMany";
|
|
182
|
+
}>;
|
|
183
|
+
projects: RelationEntry<"project", {
|
|
184
|
+
readonly type: "hasMany";
|
|
185
|
+
}>;
|
|
186
|
+
queueEntries: RelationEntry<"queueEntry", {
|
|
187
|
+
readonly type: "hasMany";
|
|
188
|
+
}>;
|
|
189
|
+
resolvables: RelationEntry<"resolvable", {
|
|
190
|
+
readonly type: "hasMany";
|
|
191
|
+
}>;
|
|
192
|
+
sprintConfigs: RelationEntry<"sprintConfig", {
|
|
193
|
+
readonly type: "hasMany";
|
|
194
|
+
}>;
|
|
195
|
+
sprints: RelationEntry<"sprint", {
|
|
196
|
+
readonly type: "hasMany";
|
|
197
|
+
}>;
|
|
198
|
+
workflowItems: RelationEntry<"workflowItem", {
|
|
199
|
+
readonly type: "hasMany";
|
|
200
|
+
readonly stability: "preview";
|
|
201
|
+
}>;
|
|
202
|
+
}, ["id"]>;
|
|
203
|
+
attachment: ModelDesc<"attachment", {
|
|
204
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
205
|
+
cardId: TypedField<"belongsTo", CardId, {}>;
|
|
206
|
+
content: TypedField<"string", string, {}>;
|
|
207
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
208
|
+
creatorId: TypedField<"belongsTo", UserId, {
|
|
209
|
+
readonly optional: true;
|
|
210
|
+
}>;
|
|
211
|
+
fileId: TypedField<"belongsTo", FileId, {}>;
|
|
212
|
+
id: TypedField<"id", AttachmentId, {}>;
|
|
213
|
+
title: TypedField<"string", string, {}>;
|
|
214
|
+
}, {
|
|
215
|
+
account: RelationEntry<"account", {
|
|
216
|
+
readonly type: "belongsTo";
|
|
217
|
+
readonly fk: "accountId";
|
|
218
|
+
}>;
|
|
219
|
+
card: RelationEntry<"card", {
|
|
220
|
+
readonly type: "belongsTo";
|
|
221
|
+
readonly fk: "cardId";
|
|
222
|
+
}>;
|
|
223
|
+
creator: RelationEntry<"user", {
|
|
224
|
+
readonly type: "belongsTo";
|
|
225
|
+
readonly fk: "creatorId";
|
|
226
|
+
readonly optional: true;
|
|
227
|
+
}>;
|
|
228
|
+
file: RelationEntry<"file", {
|
|
229
|
+
readonly type: "belongsTo";
|
|
230
|
+
readonly fk: "fileId";
|
|
231
|
+
}>;
|
|
232
|
+
}, ["id"]>;
|
|
233
|
+
card: ModelDesc<"card", {
|
|
234
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
235
|
+
accountSeq: TypedField<"int", number, {}>;
|
|
236
|
+
assigneeId: TypedField<"belongsTo", UserId, {
|
|
237
|
+
readonly optional: true;
|
|
238
|
+
}>;
|
|
239
|
+
cardId: TypedField<"id", CardId, {}>;
|
|
240
|
+
checkboxInfo: TypedField<"typed", Checkbox[], {
|
|
241
|
+
readonly stability: "preview";
|
|
242
|
+
}>;
|
|
243
|
+
checkboxStats: TypedField<"typed", CheckboxStats, {}>;
|
|
244
|
+
content: TypedField<"string", string, {}>;
|
|
245
|
+
coverFileId: TypedField<"belongsTo", FileId, {
|
|
246
|
+
readonly optional: true;
|
|
247
|
+
}>;
|
|
248
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
249
|
+
creatorId: TypedField<"belongsTo", UserId, {
|
|
250
|
+
readonly optional: true;
|
|
251
|
+
}>;
|
|
252
|
+
deckId: TypedField<"belongsTo", DeckId, {
|
|
253
|
+
readonly optional: true;
|
|
254
|
+
}>;
|
|
255
|
+
derivedStatus: TypedField<"typed", DerivedStatus, {
|
|
256
|
+
readonly stability: "preview";
|
|
257
|
+
}>;
|
|
258
|
+
dueDate: TypedField<"day", {
|
|
259
|
+
day: number;
|
|
260
|
+
month: number;
|
|
261
|
+
year: number;
|
|
262
|
+
}, {
|
|
263
|
+
readonly optional: true;
|
|
264
|
+
}>;
|
|
265
|
+
effort: TypedField<"int", number, {
|
|
266
|
+
readonly optional: true;
|
|
267
|
+
}>;
|
|
268
|
+
hasBlockingDeps: TypedField<"bool", boolean, {
|
|
269
|
+
readonly stability: "preview";
|
|
270
|
+
}>;
|
|
271
|
+
isBlockingDep: TypedField<"bool", boolean, {
|
|
272
|
+
readonly stability: "preview";
|
|
273
|
+
}>;
|
|
274
|
+
isDoc: TypedField<"bool", boolean, {
|
|
275
|
+
readonly optional: true;
|
|
276
|
+
}>;
|
|
277
|
+
lastUpdatedAt: TypedField<"date", Date, {}>;
|
|
278
|
+
masterTags: TypedField<"typed", string[], {}>;
|
|
279
|
+
mentionedUsers: TypedField<"typed", UserId[], {
|
|
280
|
+
readonly stability: "preview";
|
|
281
|
+
}>;
|
|
282
|
+
milestoneId: TypedField<"belongsTo", MilestoneId, {
|
|
283
|
+
readonly optional: true;
|
|
284
|
+
}>;
|
|
285
|
+
parentCardId: TypedField<"belongsTo", CardId, {
|
|
286
|
+
readonly optional: true;
|
|
287
|
+
}>;
|
|
288
|
+
priority: TypedField<"typed", Priority, {
|
|
289
|
+
readonly optional: true;
|
|
290
|
+
}>;
|
|
291
|
+
sourceWorkflowItemId: TypedField<"belongsTo", WorkflowItemId, {
|
|
292
|
+
readonly optional: true;
|
|
293
|
+
readonly stability: "preview";
|
|
294
|
+
}>;
|
|
295
|
+
sprintId: TypedField<"belongsTo", SprintId, {
|
|
296
|
+
readonly optional: true;
|
|
297
|
+
}>;
|
|
298
|
+
status: TypedField<"typed", (string & {}) | "started" | "done" | "snoozing" | "not_started", {}>;
|
|
299
|
+
tags: TypedField<"typed", string[], {}>;
|
|
300
|
+
title: TypedField<"string", string, {}>;
|
|
301
|
+
version: TypedField<"int", number, {}>;
|
|
302
|
+
visibility: TypedField<"typed", CardVisibility, {}>;
|
|
303
|
+
}, {
|
|
304
|
+
account: RelationEntry<"account", {
|
|
305
|
+
readonly type: "belongsTo";
|
|
306
|
+
readonly fk: "accountId";
|
|
307
|
+
}>;
|
|
308
|
+
assignee: RelationEntry<"user", {
|
|
309
|
+
readonly type: "belongsTo";
|
|
310
|
+
readonly fk: "assigneeId";
|
|
311
|
+
readonly optional: true;
|
|
312
|
+
}>;
|
|
313
|
+
attachments: RelationEntry<"attachment", {
|
|
314
|
+
readonly type: "hasMany";
|
|
315
|
+
readonly fkAsArray: true;
|
|
316
|
+
}>;
|
|
317
|
+
cardReferences: RelationEntry<"card", {
|
|
318
|
+
readonly type: "hasMany";
|
|
319
|
+
readonly fkAsArray: true;
|
|
320
|
+
readonly stability: "preview";
|
|
321
|
+
}>;
|
|
322
|
+
childCards: RelationEntry<"card", {
|
|
323
|
+
readonly type: "hasMany";
|
|
324
|
+
readonly fkAsArray: true;
|
|
325
|
+
}>;
|
|
326
|
+
coverFile: RelationEntry<"file", {
|
|
327
|
+
readonly type: "belongsTo";
|
|
328
|
+
readonly fk: "coverFileId";
|
|
329
|
+
readonly optional: true;
|
|
330
|
+
}>;
|
|
331
|
+
creator: RelationEntry<"user", {
|
|
332
|
+
readonly type: "belongsTo";
|
|
333
|
+
readonly fk: "creatorId";
|
|
334
|
+
readonly optional: true;
|
|
335
|
+
}>;
|
|
336
|
+
deck: RelationEntry<"deck", {
|
|
337
|
+
readonly type: "belongsTo";
|
|
338
|
+
readonly fk: "deckId";
|
|
339
|
+
readonly optional: true;
|
|
340
|
+
}>;
|
|
341
|
+
diffs: RelationEntry<"cardHistory", {
|
|
342
|
+
readonly type: "hasMany";
|
|
343
|
+
readonly stability: "preview";
|
|
344
|
+
}>;
|
|
345
|
+
handCards: RelationEntry<"handCard", {
|
|
346
|
+
readonly type: "hasMany";
|
|
347
|
+
}>;
|
|
348
|
+
inDeps: RelationEntry<"card", {
|
|
349
|
+
readonly type: "hasMany";
|
|
350
|
+
readonly fkAsArray: true;
|
|
351
|
+
readonly stability: "preview";
|
|
352
|
+
}>;
|
|
353
|
+
milestone: RelationEntry<"milestone", {
|
|
354
|
+
readonly type: "belongsTo";
|
|
355
|
+
readonly fk: "milestoneId";
|
|
356
|
+
readonly optional: true;
|
|
357
|
+
}>;
|
|
358
|
+
outDeps: RelationEntry<"card", {
|
|
359
|
+
readonly type: "hasMany";
|
|
360
|
+
readonly fkAsArray: true;
|
|
361
|
+
readonly stability: "preview";
|
|
362
|
+
}>;
|
|
363
|
+
parentCard: RelationEntry<"card", {
|
|
364
|
+
readonly type: "belongsTo";
|
|
365
|
+
readonly fk: "parentCardId";
|
|
366
|
+
readonly optional: true;
|
|
367
|
+
}>;
|
|
368
|
+
queueEntries: RelationEntry<"queueEntry", {
|
|
369
|
+
readonly type: "hasMany";
|
|
370
|
+
}>;
|
|
371
|
+
resolvableEntries: RelationEntry<"resolvableEntry", {
|
|
372
|
+
readonly type: "hasMany";
|
|
373
|
+
}>;
|
|
374
|
+
resolvables: RelationEntry<"resolvable", {
|
|
375
|
+
readonly type: "hasMany";
|
|
376
|
+
}>;
|
|
377
|
+
sourceWorkflowItem: RelationEntry<"workflowItem", {
|
|
378
|
+
readonly type: "belongsTo";
|
|
379
|
+
readonly fk: "sourceWorkflowItemId";
|
|
380
|
+
readonly optional: true;
|
|
381
|
+
readonly stability: "preview";
|
|
382
|
+
}>;
|
|
383
|
+
sprint: RelationEntry<"sprint", {
|
|
384
|
+
readonly type: "belongsTo";
|
|
385
|
+
readonly fk: "sprintId";
|
|
386
|
+
readonly optional: true;
|
|
387
|
+
}>;
|
|
388
|
+
}, ["cardId"]>;
|
|
389
|
+
cardHistory: ModelDesc<"cardHistory", {
|
|
390
|
+
accountId: TypedField<"belongsTo", AccountId, {
|
|
391
|
+
readonly stability: "preview";
|
|
392
|
+
}>;
|
|
393
|
+
cardId: TypedField<"belongsTo", CardId, {
|
|
394
|
+
readonly stability: "preview";
|
|
395
|
+
}>;
|
|
396
|
+
changerId: TypedField<"belongsTo", UserId, {
|
|
397
|
+
readonly optional: true;
|
|
398
|
+
readonly stability: "preview";
|
|
399
|
+
}>;
|
|
400
|
+
diff: TypedField<"typed", {
|
|
401
|
+
[key: string]: unknown;
|
|
402
|
+
}, {
|
|
403
|
+
readonly stability: "preview";
|
|
404
|
+
}>;
|
|
405
|
+
version: TypedField<"int", number, {
|
|
406
|
+
readonly stability: "preview";
|
|
407
|
+
}>;
|
|
408
|
+
versionCreatedAt: TypedField<"date", Date, {
|
|
409
|
+
readonly stability: "preview";
|
|
410
|
+
}>;
|
|
411
|
+
}, {
|
|
412
|
+
account: RelationEntry<"account", {
|
|
413
|
+
readonly type: "belongsTo";
|
|
414
|
+
readonly fk: "accountId";
|
|
415
|
+
readonly stability: "preview";
|
|
416
|
+
}>;
|
|
417
|
+
card: RelationEntry<"card", {
|
|
418
|
+
readonly type: "belongsTo";
|
|
419
|
+
readonly fk: "cardId";
|
|
420
|
+
readonly stability: "preview";
|
|
421
|
+
}>;
|
|
422
|
+
changer: RelationEntry<"user", {
|
|
423
|
+
readonly type: "belongsTo";
|
|
424
|
+
readonly fk: "changerId";
|
|
425
|
+
readonly optional: true;
|
|
426
|
+
readonly stability: "preview";
|
|
427
|
+
}>;
|
|
428
|
+
}, ["cardId", "version"]>;
|
|
429
|
+
deck: ModelDesc<"deck", {
|
|
430
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
431
|
+
accountSeq: TypedField<"int", number, {}>;
|
|
432
|
+
coverColor: TypedField<"string", string, {
|
|
433
|
+
readonly optional: true;
|
|
434
|
+
readonly stability: "preview";
|
|
435
|
+
}>;
|
|
436
|
+
coverFileId: TypedField<"belongsTo", FileId, {
|
|
437
|
+
readonly optional: true;
|
|
438
|
+
readonly stability: "preview";
|
|
439
|
+
}>;
|
|
440
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
441
|
+
creatorId: TypedField<"belongsTo", UserId, {}>;
|
|
442
|
+
deckType: TypedField<"typed", (string & {}) | "doc" | "hero" | "task" | "mixed", {}>;
|
|
443
|
+
defaultCard: TypedField<"typed", DefaultCard, {
|
|
444
|
+
readonly stability: "preview";
|
|
445
|
+
}>;
|
|
446
|
+
defaultProjectTagId: TypedField<"belongsTo", ProjectTagId, {
|
|
447
|
+
readonly optional: true;
|
|
448
|
+
}>;
|
|
449
|
+
description: TypedField<"string", string, {}>;
|
|
450
|
+
handSyncEnabled: TypedField<"bool", boolean, {
|
|
451
|
+
readonly stability: "preview";
|
|
452
|
+
}>;
|
|
453
|
+
hasGuardians: TypedField<"bool", boolean, {
|
|
454
|
+
readonly stability: "preview";
|
|
455
|
+
}>;
|
|
456
|
+
id: TypedField<"id", DeckId, {}>;
|
|
457
|
+
isDeleted: TypedField<"bool", boolean, {}>;
|
|
458
|
+
manualOrderLabels: TypedField<"typed", (string | null)[], {
|
|
459
|
+
readonly stability: "preview";
|
|
460
|
+
}>;
|
|
461
|
+
milestoneId: TypedField<"belongsTo", MilestoneId, {
|
|
462
|
+
readonly optional: true;
|
|
463
|
+
}>;
|
|
464
|
+
projectId: TypedField<"belongsTo", ProjectId, {}>;
|
|
465
|
+
sortValue: TypedField<"string", string, {
|
|
466
|
+
readonly stability: "preview";
|
|
467
|
+
}>;
|
|
468
|
+
spaceId: TypedField<"int", number, {
|
|
469
|
+
readonly optional: true;
|
|
470
|
+
readonly stability: "preview";
|
|
471
|
+
}>;
|
|
472
|
+
title: TypedField<"string", string, {}>;
|
|
473
|
+
}, {
|
|
474
|
+
account: RelationEntry<"account", {
|
|
475
|
+
readonly type: "belongsTo";
|
|
476
|
+
readonly fk: "accountId";
|
|
477
|
+
}>;
|
|
478
|
+
cards: RelationEntry<"card", {
|
|
479
|
+
readonly type: "hasMany";
|
|
480
|
+
}>;
|
|
481
|
+
coverFile: RelationEntry<"file", {
|
|
482
|
+
readonly type: "belongsTo";
|
|
483
|
+
readonly fk: "coverFileId";
|
|
484
|
+
readonly optional: true;
|
|
485
|
+
readonly stability: "preview";
|
|
486
|
+
}>;
|
|
487
|
+
creator: RelationEntry<"user", {
|
|
488
|
+
readonly type: "belongsTo";
|
|
489
|
+
readonly fk: "creatorId";
|
|
490
|
+
}>;
|
|
491
|
+
defaultProjectTag: RelationEntry<"projectTag", {
|
|
492
|
+
readonly type: "belongsTo";
|
|
493
|
+
readonly fk: "defaultProjectTagId";
|
|
494
|
+
readonly optional: true;
|
|
495
|
+
}>;
|
|
496
|
+
milestone: RelationEntry<"milestone", {
|
|
497
|
+
readonly type: "belongsTo";
|
|
498
|
+
readonly fk: "milestoneId";
|
|
499
|
+
readonly optional: true;
|
|
500
|
+
}>;
|
|
501
|
+
project: RelationEntry<"project", {
|
|
502
|
+
readonly type: "belongsTo";
|
|
503
|
+
readonly fk: "projectId";
|
|
504
|
+
}>;
|
|
505
|
+
workflowItems: RelationEntry<"workflowItem", {
|
|
506
|
+
readonly type: "hasMany";
|
|
507
|
+
readonly stability: "preview";
|
|
508
|
+
}>;
|
|
509
|
+
}, ["id"]>;
|
|
510
|
+
file: ModelDesc<"file", {
|
|
511
|
+
accountId: TypedField<"belongsTo", AccountId, {
|
|
512
|
+
readonly optional: true;
|
|
513
|
+
}>;
|
|
514
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
515
|
+
id: TypedField<"id", FileId, {}>;
|
|
516
|
+
name: TypedField<"string", string, {}>;
|
|
517
|
+
size: TypedField<"int", number, {}>;
|
|
518
|
+
uploaderId: TypedField<"belongsTo", UserId, {
|
|
519
|
+
readonly optional: true;
|
|
520
|
+
}>;
|
|
521
|
+
url: TypedField<"string", string, {}>;
|
|
522
|
+
}, {
|
|
523
|
+
account: RelationEntry<"account", {
|
|
524
|
+
readonly type: "belongsTo";
|
|
525
|
+
readonly fk: "accountId";
|
|
526
|
+
readonly optional: true;
|
|
527
|
+
}>;
|
|
528
|
+
uploader: RelationEntry<"user", {
|
|
529
|
+
readonly type: "belongsTo";
|
|
530
|
+
readonly fk: "uploaderId";
|
|
531
|
+
readonly optional: true;
|
|
532
|
+
}>;
|
|
533
|
+
}, ["id"]>;
|
|
534
|
+
handCard: ModelDesc<"handCard", {
|
|
535
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
536
|
+
cardId: TypedField<"belongsTo", CardId, {}>;
|
|
537
|
+
sortIndex: TypedField<"int", number, {}>;
|
|
538
|
+
userId: TypedField<"belongsTo", UserId, {}>;
|
|
539
|
+
}, {
|
|
540
|
+
account: RelationEntry<"account", {
|
|
541
|
+
readonly type: "belongsTo";
|
|
542
|
+
readonly fk: "accountId";
|
|
543
|
+
}>;
|
|
544
|
+
card: RelationEntry<"card", {
|
|
545
|
+
readonly type: "belongsTo";
|
|
546
|
+
readonly fk: "cardId";
|
|
547
|
+
}>;
|
|
548
|
+
user: RelationEntry<"user", {
|
|
549
|
+
readonly type: "belongsTo";
|
|
550
|
+
readonly fk: "userId";
|
|
551
|
+
}>;
|
|
552
|
+
}, ["cardId", "userId", "accountId"]>;
|
|
553
|
+
milestone: ModelDesc<"milestone", {
|
|
554
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
555
|
+
accountSeq: TypedField<"int", number, {}>;
|
|
556
|
+
color: TypedField<"typed", MilestoneColor, {}>;
|
|
557
|
+
coverFileId: TypedField<"belongsTo", FileId, {
|
|
558
|
+
readonly optional: true;
|
|
559
|
+
readonly stability: "preview";
|
|
560
|
+
}>;
|
|
561
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
562
|
+
creatorId: TypedField<"belongsTo", UserId, {}>;
|
|
563
|
+
date: TypedField<"day", {
|
|
564
|
+
day: number;
|
|
565
|
+
month: number;
|
|
566
|
+
year: number;
|
|
567
|
+
}, {}>;
|
|
568
|
+
description: TypedField<"string", string, {
|
|
569
|
+
readonly optional: true;
|
|
570
|
+
}>;
|
|
571
|
+
handSyncEnabled: TypedField<"bool", boolean, {
|
|
572
|
+
readonly stability: "preview";
|
|
573
|
+
}>;
|
|
574
|
+
id: TypedField<"id", MilestoneId, {}>;
|
|
575
|
+
isDeleted: TypedField<"bool", boolean, {}>;
|
|
576
|
+
isGlobal: TypedField<"bool", boolean, {}>;
|
|
577
|
+
manualOrderLabels: TypedField<"typed", (string | null)[], {
|
|
578
|
+
readonly stability: "preview";
|
|
579
|
+
}>;
|
|
580
|
+
name: TypedField<"string", string, {}>;
|
|
581
|
+
startDate: TypedField<"day", {
|
|
582
|
+
day: number;
|
|
583
|
+
month: number;
|
|
584
|
+
year: number;
|
|
585
|
+
}, {
|
|
586
|
+
readonly optional: true;
|
|
587
|
+
}>;
|
|
588
|
+
userCapacities: TypedField<"typed", {
|
|
589
|
+
[userId: UserId]: number;
|
|
590
|
+
}, {
|
|
591
|
+
readonly stability: "preview";
|
|
592
|
+
}>;
|
|
593
|
+
}, {
|
|
594
|
+
account: RelationEntry<"account", {
|
|
595
|
+
readonly type: "belongsTo";
|
|
596
|
+
readonly fk: "accountId";
|
|
597
|
+
}>;
|
|
598
|
+
cards: RelationEntry<"card", {
|
|
599
|
+
readonly type: "hasMany";
|
|
600
|
+
}>;
|
|
601
|
+
coverFile: RelationEntry<"file", {
|
|
602
|
+
readonly type: "belongsTo";
|
|
603
|
+
readonly fk: "coverFileId";
|
|
604
|
+
readonly optional: true;
|
|
605
|
+
readonly stability: "preview";
|
|
606
|
+
}>;
|
|
607
|
+
creator: RelationEntry<"user", {
|
|
608
|
+
readonly type: "belongsTo";
|
|
609
|
+
readonly fk: "creatorId";
|
|
610
|
+
}>;
|
|
611
|
+
milestoneProjects: RelationEntry<"milestoneProject", {
|
|
612
|
+
readonly type: "hasMany";
|
|
613
|
+
}>;
|
|
614
|
+
progress: RelationEntry<"milestoneProgress", {
|
|
615
|
+
readonly type: "hasMany";
|
|
616
|
+
readonly stability: "preview";
|
|
617
|
+
}>;
|
|
618
|
+
}, ["id"]>;
|
|
619
|
+
milestoneProgress: ModelDesc<"milestoneProgress", {
|
|
620
|
+
date: TypedField<"string", string, {
|
|
621
|
+
readonly stability: "preview";
|
|
622
|
+
}>;
|
|
623
|
+
milestoneId: TypedField<"belongsTo", MilestoneId, {
|
|
624
|
+
readonly stability: "preview";
|
|
625
|
+
}>;
|
|
626
|
+
progress: TypedField<"typed", unknown, {
|
|
627
|
+
readonly stability: "preview";
|
|
628
|
+
}>;
|
|
629
|
+
}, {
|
|
630
|
+
milestone: RelationEntry<"milestone", {
|
|
631
|
+
readonly type: "belongsTo";
|
|
632
|
+
readonly fk: "milestoneId";
|
|
633
|
+
readonly stability: "preview";
|
|
634
|
+
}>;
|
|
635
|
+
}, ["milestoneId", "date"]>;
|
|
636
|
+
milestoneProject: ModelDesc<"milestoneProject", {
|
|
637
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
638
|
+
milestoneId: TypedField<"belongsTo", MilestoneId, {}>;
|
|
639
|
+
projectId: TypedField<"belongsTo", ProjectId, {}>;
|
|
640
|
+
}, {
|
|
641
|
+
account: RelationEntry<"account", {
|
|
642
|
+
readonly type: "belongsTo";
|
|
643
|
+
readonly fk: "accountId";
|
|
644
|
+
}>;
|
|
645
|
+
milestone: RelationEntry<"milestone", {
|
|
646
|
+
readonly type: "belongsTo";
|
|
647
|
+
readonly fk: "milestoneId";
|
|
648
|
+
}>;
|
|
649
|
+
project: RelationEntry<"project", {
|
|
650
|
+
readonly type: "belongsTo";
|
|
651
|
+
readonly fk: "projectId";
|
|
652
|
+
}>;
|
|
653
|
+
}, ["milestoneId", "projectId"]>;
|
|
654
|
+
project: ModelDesc<"project", {
|
|
655
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
656
|
+
coverFileId: TypedField<"belongsTo", FileId, {
|
|
657
|
+
readonly optional: true;
|
|
658
|
+
}>;
|
|
659
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
660
|
+
id: TypedField<"id", ProjectId, {}>;
|
|
661
|
+
name: TypedField<"string", string, {}>;
|
|
662
|
+
spaces: TypedField<"typed", unknown, {
|
|
663
|
+
readonly stability: "preview";
|
|
664
|
+
}>;
|
|
665
|
+
visibility: TypedField<"typed", (string & {}) | "deleted" | "archived" | "default", {}>;
|
|
666
|
+
}, {
|
|
667
|
+
account: RelationEntry<"account", {
|
|
668
|
+
readonly type: "belongsTo";
|
|
669
|
+
readonly fk: "accountId";
|
|
670
|
+
}>;
|
|
671
|
+
coverFile: RelationEntry<"file", {
|
|
672
|
+
readonly type: "belongsTo";
|
|
673
|
+
readonly fk: "coverFileId";
|
|
674
|
+
readonly optional: true;
|
|
675
|
+
}>;
|
|
676
|
+
decks: RelationEntry<"deck", {
|
|
677
|
+
readonly type: "hasMany";
|
|
678
|
+
}>;
|
|
679
|
+
milestoneProjects: RelationEntry<"milestoneProject", {
|
|
680
|
+
readonly type: "hasMany";
|
|
681
|
+
}>;
|
|
682
|
+
sprintProjects: RelationEntry<"sprintProject", {
|
|
683
|
+
readonly type: "hasMany";
|
|
684
|
+
}>;
|
|
685
|
+
tags: RelationEntry<"projectTag", {
|
|
686
|
+
readonly type: "hasMany";
|
|
687
|
+
}>;
|
|
688
|
+
}, ["id"]>;
|
|
689
|
+
projectTag: ModelDesc<"projectTag", {
|
|
690
|
+
color: TypedField<"string", string, {
|
|
691
|
+
readonly optional: true;
|
|
692
|
+
}>;
|
|
693
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
694
|
+
description: TypedField<"string", string, {
|
|
695
|
+
readonly optional: true;
|
|
696
|
+
}>;
|
|
697
|
+
emoji: TypedField<"string", string, {
|
|
698
|
+
readonly optional: true;
|
|
699
|
+
}>;
|
|
700
|
+
id: TypedField<"id", ProjectTagId, {}>;
|
|
701
|
+
projectId: TypedField<"belongsTo", ProjectId, {}>;
|
|
702
|
+
tag: TypedField<"string", string, {}>;
|
|
703
|
+
}, {
|
|
704
|
+
project: RelationEntry<"project", {
|
|
705
|
+
readonly type: "belongsTo";
|
|
706
|
+
readonly fk: "projectId";
|
|
707
|
+
}>;
|
|
708
|
+
}, ["id"]>;
|
|
709
|
+
queueEntry: ModelDesc<"queueEntry", {
|
|
710
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
711
|
+
cardDoneAt: TypedField<"date", Date, {
|
|
712
|
+
readonly optional: true;
|
|
713
|
+
}>;
|
|
714
|
+
cardId: TypedField<"belongsTo", CardId, {}>;
|
|
715
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
716
|
+
id: TypedField<"id", QueueEntryId, {}>;
|
|
717
|
+
sortIndex: TypedField<"int", number, {
|
|
718
|
+
readonly optional: true;
|
|
719
|
+
}>;
|
|
720
|
+
userId: TypedField<"belongsTo", UserId, {}>;
|
|
721
|
+
}, {
|
|
722
|
+
account: RelationEntry<"account", {
|
|
723
|
+
readonly type: "belongsTo";
|
|
724
|
+
readonly fk: "accountId";
|
|
725
|
+
}>;
|
|
726
|
+
card: RelationEntry<"card", {
|
|
727
|
+
readonly type: "belongsTo";
|
|
728
|
+
readonly fk: "cardId";
|
|
729
|
+
}>;
|
|
730
|
+
user: RelationEntry<"user", {
|
|
731
|
+
readonly type: "belongsTo";
|
|
732
|
+
readonly fk: "userId";
|
|
733
|
+
}>;
|
|
734
|
+
}, ["id"]>;
|
|
735
|
+
release: ModelDesc<"release", {
|
|
736
|
+
content: TypedField<"string", string, {}>;
|
|
737
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
738
|
+
id: TypedField<"id", ReleaseId, {}>;
|
|
739
|
+
title: TypedField<"string", string, {}>;
|
|
740
|
+
version: TypedField<"string", string, {}>;
|
|
741
|
+
}, {}, ["id"]>;
|
|
742
|
+
resolvable: ModelDesc<"resolvable", {
|
|
743
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
744
|
+
cardId: TypedField<"belongsTo", CardId, {}>;
|
|
745
|
+
closedAt: TypedField<"date", Date, {
|
|
746
|
+
readonly optional: true;
|
|
747
|
+
}>;
|
|
748
|
+
context: TypedField<"typed", (string & {}) | "review" | "block" | "comment", {}>;
|
|
749
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
750
|
+
creatorId: TypedField<"belongsTo", UserId, {}>;
|
|
751
|
+
id: TypedField<"id", ResolvableId, {}>;
|
|
752
|
+
isClosed: TypedField<"bool", boolean, {}>;
|
|
753
|
+
reopenedAt: TypedField<"date", Date, {
|
|
754
|
+
readonly optional: true;
|
|
755
|
+
}>;
|
|
756
|
+
}, {
|
|
757
|
+
account: RelationEntry<"account", {
|
|
758
|
+
readonly type: "belongsTo";
|
|
759
|
+
readonly fk: "accountId";
|
|
760
|
+
}>;
|
|
761
|
+
card: RelationEntry<"card", {
|
|
762
|
+
readonly type: "belongsTo";
|
|
763
|
+
readonly fk: "cardId";
|
|
764
|
+
}>;
|
|
765
|
+
closedBy: RelationEntry<"user", {
|
|
766
|
+
readonly type: "belongsTo";
|
|
767
|
+
readonly optional: true;
|
|
768
|
+
}>;
|
|
769
|
+
creator: RelationEntry<"user", {
|
|
770
|
+
readonly type: "belongsTo";
|
|
771
|
+
readonly fk: "creatorId";
|
|
772
|
+
}>;
|
|
773
|
+
entries: RelationEntry<"resolvableEntry", {
|
|
774
|
+
readonly type: "hasMany";
|
|
775
|
+
}>;
|
|
776
|
+
reopenedBy: RelationEntry<"user", {
|
|
777
|
+
readonly type: "belongsTo";
|
|
778
|
+
readonly optional: true;
|
|
779
|
+
}>;
|
|
780
|
+
}, ["id"]>;
|
|
781
|
+
resolvableEntry: ModelDesc<"resolvableEntry", {
|
|
782
|
+
authorId: TypedField<"belongsTo", UserId, {}>;
|
|
783
|
+
cardId: TypedField<"belongsTo", CardId, {}>;
|
|
784
|
+
content: TypedField<"string", string, {}>;
|
|
785
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
786
|
+
entryId: TypedField<"id", ResolvableEntryId, {}>;
|
|
787
|
+
lastChangedAt: TypedField<"date", Date, {}>;
|
|
788
|
+
resolvableId: TypedField<"belongsTo", ResolvableId, {}>;
|
|
789
|
+
version: TypedField<"int", number, {
|
|
790
|
+
readonly stability: "preview";
|
|
791
|
+
}>;
|
|
792
|
+
}, {
|
|
793
|
+
author: RelationEntry<"user", {
|
|
794
|
+
readonly type: "belongsTo";
|
|
795
|
+
readonly fk: "authorId";
|
|
796
|
+
}>;
|
|
797
|
+
card: RelationEntry<"card", {
|
|
798
|
+
readonly type: "belongsTo";
|
|
799
|
+
readonly fk: "cardId";
|
|
800
|
+
}>;
|
|
801
|
+
reactions: RelationEntry<"resolvableEntryReaction", {
|
|
802
|
+
readonly type: "hasMany";
|
|
803
|
+
readonly stability: "preview";
|
|
804
|
+
}>;
|
|
805
|
+
resolvable: RelationEntry<"resolvable", {
|
|
806
|
+
readonly type: "belongsTo";
|
|
807
|
+
readonly fk: "resolvableId";
|
|
808
|
+
}>;
|
|
809
|
+
}, ["entryId"]>;
|
|
810
|
+
resolvableEntryReaction: ModelDesc<"resolvableEntryReaction", {
|
|
811
|
+
accountId: TypedField<"belongsTo", AccountId, {
|
|
812
|
+
readonly stability: "preview";
|
|
813
|
+
}>;
|
|
814
|
+
createdAt: TypedField<"date", Date, {
|
|
815
|
+
readonly stability: "preview";
|
|
816
|
+
}>;
|
|
817
|
+
entryId: TypedField<"belongsTo", ResolvableEntryId, {
|
|
818
|
+
readonly stability: "preview";
|
|
819
|
+
}>;
|
|
820
|
+
id: TypedField<"id", ResolvableEntryReactionId, {}>;
|
|
821
|
+
resolvableId: TypedField<"belongsTo", ResolvableId, {
|
|
822
|
+
readonly stability: "preview";
|
|
823
|
+
}>;
|
|
824
|
+
userId: TypedField<"belongsTo", UserId, {
|
|
825
|
+
readonly stability: "preview";
|
|
826
|
+
}>;
|
|
827
|
+
value: TypedField<"typed", {
|
|
828
|
+
type: "emoji" | (string & {});
|
|
829
|
+
value: string;
|
|
830
|
+
}, {
|
|
831
|
+
readonly stability: "preview";
|
|
832
|
+
}>;
|
|
833
|
+
}, {
|
|
834
|
+
account: RelationEntry<"account", {
|
|
835
|
+
readonly type: "belongsTo";
|
|
836
|
+
readonly fk: "accountId";
|
|
837
|
+
readonly stability: "preview";
|
|
838
|
+
}>;
|
|
839
|
+
resolvable: RelationEntry<"resolvable", {
|
|
840
|
+
readonly type: "belongsTo";
|
|
841
|
+
readonly fk: "resolvableId";
|
|
842
|
+
readonly stability: "preview";
|
|
843
|
+
}>;
|
|
844
|
+
resolvableEntry: RelationEntry<"resolvableEntry", {
|
|
845
|
+
readonly type: "belongsTo";
|
|
846
|
+
readonly fk: "entryId";
|
|
847
|
+
readonly stability: "preview";
|
|
848
|
+
}>;
|
|
849
|
+
user: RelationEntry<"user", {
|
|
850
|
+
readonly type: "belongsTo";
|
|
851
|
+
readonly fk: "userId";
|
|
852
|
+
readonly stability: "preview";
|
|
853
|
+
}>;
|
|
854
|
+
}, ["id"]>;
|
|
855
|
+
sprint: ModelDesc<"sprint", {
|
|
856
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
857
|
+
accountSeq: TypedField<"int", number, {}>;
|
|
858
|
+
autoMilestoneId: TypedField<"belongsTo", MilestoneId, {
|
|
859
|
+
readonly optional: true;
|
|
860
|
+
readonly stability: "preview";
|
|
861
|
+
}>;
|
|
862
|
+
completedAt: TypedField<"date", Date, {
|
|
863
|
+
readonly optional: true;
|
|
864
|
+
}>;
|
|
865
|
+
coverFileId: TypedField<"belongsTo", FileId, {
|
|
866
|
+
readonly optional: true;
|
|
867
|
+
readonly stability: "preview";
|
|
868
|
+
}>;
|
|
869
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
870
|
+
description: TypedField<"string", string, {
|
|
871
|
+
readonly optional: true;
|
|
872
|
+
}>;
|
|
873
|
+
endDate: TypedField<"day", {
|
|
874
|
+
day: number;
|
|
875
|
+
month: number;
|
|
876
|
+
year: number;
|
|
877
|
+
}, {}>;
|
|
878
|
+
handSyncEnabled: TypedField<"bool", boolean, {
|
|
879
|
+
readonly stability: "preview";
|
|
880
|
+
}>;
|
|
881
|
+
id: TypedField<"id", SprintId, {}>;
|
|
882
|
+
index: TypedField<"int", number, {}>;
|
|
883
|
+
isDeleted: TypedField<"bool", boolean, {}>;
|
|
884
|
+
lockedAt: TypedField<"date", Date, {
|
|
885
|
+
readonly optional: true;
|
|
886
|
+
readonly stability: "preview";
|
|
887
|
+
}>;
|
|
888
|
+
manualOrderLabels: TypedField<"typed", (string | null)[], {
|
|
889
|
+
readonly stability: "preview";
|
|
890
|
+
}>;
|
|
891
|
+
name: TypedField<"string", string, {
|
|
892
|
+
readonly optional: true;
|
|
893
|
+
}>;
|
|
894
|
+
sprintConfigId: TypedField<"belongsTo", SprintConfigId, {}>;
|
|
895
|
+
startDate: TypedField<"day", {
|
|
896
|
+
day: number;
|
|
897
|
+
month: number;
|
|
898
|
+
year: number;
|
|
899
|
+
}, {}>;
|
|
900
|
+
userCapacities: TypedField<"typed", {
|
|
901
|
+
[userId: UserId]: number;
|
|
902
|
+
}, {
|
|
903
|
+
readonly stability: "preview";
|
|
904
|
+
}>;
|
|
905
|
+
}, {
|
|
906
|
+
account: RelationEntry<"account", {
|
|
907
|
+
readonly type: "belongsTo";
|
|
908
|
+
readonly fk: "accountId";
|
|
909
|
+
}>;
|
|
910
|
+
autoMilestone: RelationEntry<"milestone", {
|
|
911
|
+
readonly type: "belongsTo";
|
|
912
|
+
readonly fk: "autoMilestoneId";
|
|
913
|
+
readonly optional: true;
|
|
914
|
+
readonly stability: "preview";
|
|
915
|
+
}>;
|
|
916
|
+
cards: RelationEntry<"card", {
|
|
917
|
+
readonly type: "hasMany";
|
|
918
|
+
}>;
|
|
919
|
+
coverFile: RelationEntry<"file", {
|
|
920
|
+
readonly type: "belongsTo";
|
|
921
|
+
readonly fk: "coverFileId";
|
|
922
|
+
readonly optional: true;
|
|
923
|
+
readonly stability: "preview";
|
|
924
|
+
}>;
|
|
925
|
+
progress: RelationEntry<"sprintProgress", {
|
|
926
|
+
readonly type: "hasMany";
|
|
927
|
+
readonly stability: "preview";
|
|
928
|
+
}>;
|
|
929
|
+
sprintConfig: RelationEntry<"sprintConfig", {
|
|
930
|
+
readonly type: "belongsTo";
|
|
931
|
+
readonly fk: "sprintConfigId";
|
|
932
|
+
}>;
|
|
933
|
+
}, ["id"]>;
|
|
934
|
+
sprintConfig: ModelDesc<"sprintConfig", {
|
|
935
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
936
|
+
autoAssignNewCard: TypedField<"bool", boolean, {
|
|
937
|
+
readonly stability: "preview";
|
|
938
|
+
}>;
|
|
939
|
+
autoAssignStartedCard: TypedField<"bool", boolean, {
|
|
940
|
+
readonly stability: "preview";
|
|
941
|
+
}>;
|
|
942
|
+
autoBeastModeDurationHours: TypedField<"int", number, {
|
|
943
|
+
readonly optional: true;
|
|
944
|
+
readonly stability: "preview";
|
|
945
|
+
}>;
|
|
946
|
+
beastGracePeriodHours: TypedField<"int", number, {
|
|
947
|
+
readonly stability: "preview";
|
|
948
|
+
}>;
|
|
949
|
+
color: TypedField<"typed", MilestoneColor, {}>;
|
|
950
|
+
createdAt: TypedField<"date", Date, {}>;
|
|
951
|
+
creatorId: TypedField<"belongsTo", UserId, {}>;
|
|
952
|
+
id: TypedField<"id", SprintConfigId, {}>;
|
|
953
|
+
isGlobal: TypedField<"bool", boolean, {}>;
|
|
954
|
+
moveOnFinish: TypedField<"typed", ((string & {}) | "blocked" | "review" | "undone")[], {
|
|
955
|
+
readonly stability: "preview";
|
|
956
|
+
}>;
|
|
957
|
+
name: TypedField<"string", string, {}>;
|
|
958
|
+
runLabelTemplate: TypedField<"string", string, {
|
|
959
|
+
readonly optional: true;
|
|
960
|
+
readonly stability: "preview";
|
|
961
|
+
}>;
|
|
962
|
+
}, {
|
|
963
|
+
account: RelationEntry<"account", {
|
|
964
|
+
readonly type: "belongsTo";
|
|
965
|
+
readonly fk: "accountId";
|
|
966
|
+
}>;
|
|
967
|
+
creator: RelationEntry<"user", {
|
|
968
|
+
readonly type: "belongsTo";
|
|
969
|
+
readonly fk: "creatorId";
|
|
970
|
+
}>;
|
|
971
|
+
progress: RelationEntry<"sprintConfigProgress", {
|
|
972
|
+
readonly type: "hasMany";
|
|
973
|
+
readonly stability: "preview";
|
|
974
|
+
}>;
|
|
975
|
+
sprintProjects: RelationEntry<"sprintProject", {
|
|
976
|
+
readonly type: "hasMany";
|
|
977
|
+
}>;
|
|
978
|
+
sprints: RelationEntry<"sprint", {
|
|
979
|
+
readonly type: "hasMany";
|
|
980
|
+
}>;
|
|
981
|
+
}, ["id"]>;
|
|
982
|
+
sprintConfigProgress: ModelDesc<"sprintConfigProgress", {
|
|
983
|
+
date: TypedField<"string", string, {
|
|
984
|
+
readonly stability: "preview";
|
|
985
|
+
}>;
|
|
986
|
+
progress: TypedField<"typed", unknown, {
|
|
987
|
+
readonly stability: "preview";
|
|
988
|
+
}>;
|
|
989
|
+
sprintConfigId: TypedField<"belongsTo", SprintConfigId, {
|
|
990
|
+
readonly stability: "preview";
|
|
991
|
+
}>;
|
|
992
|
+
}, {
|
|
993
|
+
sprintConfig: RelationEntry<"sprintConfig", {
|
|
994
|
+
readonly type: "belongsTo";
|
|
995
|
+
readonly fk: "sprintConfigId";
|
|
996
|
+
readonly stability: "preview";
|
|
997
|
+
}>;
|
|
998
|
+
}, ["sprintConfigId", "date"]>;
|
|
999
|
+
sprintProgress: ModelDesc<"sprintProgress", {
|
|
1000
|
+
date: TypedField<"string", string, {
|
|
1001
|
+
readonly stability: "preview";
|
|
1002
|
+
}>;
|
|
1003
|
+
progress: TypedField<"typed", unknown, {
|
|
1004
|
+
readonly stability: "preview";
|
|
1005
|
+
}>;
|
|
1006
|
+
sprintId: TypedField<"belongsTo", SprintId, {
|
|
1007
|
+
readonly stability: "preview";
|
|
1008
|
+
}>;
|
|
1009
|
+
}, {
|
|
1010
|
+
sprint: RelationEntry<"sprint", {
|
|
1011
|
+
readonly type: "belongsTo";
|
|
1012
|
+
readonly fk: "sprintId";
|
|
1013
|
+
readonly stability: "preview";
|
|
1014
|
+
}>;
|
|
1015
|
+
}, ["sprintId", "date"]>;
|
|
1016
|
+
sprintProject: ModelDesc<"sprintProject", {
|
|
1017
|
+
accountId: TypedField<"belongsTo", AccountId, {}>;
|
|
1018
|
+
projectId: TypedField<"belongsTo", ProjectId, {}>;
|
|
1019
|
+
sprintConfigId: TypedField<"belongsTo", SprintConfigId, {}>;
|
|
1020
|
+
}, {
|
|
1021
|
+
account: RelationEntry<"account", {
|
|
1022
|
+
readonly type: "belongsTo";
|
|
1023
|
+
readonly fk: "accountId";
|
|
1024
|
+
}>;
|
|
1025
|
+
project: RelationEntry<"project", {
|
|
1026
|
+
readonly type: "belongsTo";
|
|
1027
|
+
readonly fk: "projectId";
|
|
1028
|
+
}>;
|
|
1029
|
+
sprintConfig: RelationEntry<"sprintConfig", {
|
|
1030
|
+
readonly type: "belongsTo";
|
|
1031
|
+
readonly fk: "sprintConfigId";
|
|
1032
|
+
}>;
|
|
1033
|
+
}, ["sprintConfigId", "projectId"]>;
|
|
1034
|
+
user: ModelDesc<"user", {
|
|
1035
|
+
fullName: TypedField<"string", string, {
|
|
1036
|
+
readonly optional: true;
|
|
1037
|
+
}>;
|
|
1038
|
+
id: TypedField<"id", UserId, {}>;
|
|
1039
|
+
isIntegration: TypedField<"bool", boolean, {}>;
|
|
1040
|
+
kind: TypedField<"typed", (string & {}) | "human" | "integration" | "api_token", {}>;
|
|
1041
|
+
name: TypedField<"string", string, {}>;
|
|
1042
|
+
profileImageId: TypedField<"belongsTo", FileId, {
|
|
1043
|
+
readonly optional: true;
|
|
1044
|
+
}>;
|
|
1045
|
+
timezone: TypedField<"string", string, {
|
|
1046
|
+
readonly optional: true;
|
|
1047
|
+
readonly stability: "preview";
|
|
1048
|
+
}>;
|
|
1049
|
+
}, {
|
|
1050
|
+
profileImage: RelationEntry<"file", {
|
|
1051
|
+
readonly type: "belongsTo";
|
|
1052
|
+
readonly fk: "profileImageId";
|
|
1053
|
+
readonly optional: true;
|
|
1054
|
+
}>;
|
|
1055
|
+
}, ["id"]>;
|
|
1056
|
+
workflowItem: ModelDesc<"workflowItem", {
|
|
1057
|
+
accountId: TypedField<"belongsTo", AccountId, {
|
|
1058
|
+
readonly stability: "preview";
|
|
1059
|
+
}>;
|
|
1060
|
+
accountSeq: TypedField<"int", number, {
|
|
1061
|
+
readonly stability: "preview";
|
|
1062
|
+
}>;
|
|
1063
|
+
assigneeId: TypedField<"belongsTo", UserId, {
|
|
1064
|
+
readonly optional: true;
|
|
1065
|
+
readonly stability: "preview";
|
|
1066
|
+
}>;
|
|
1067
|
+
checkboxInfo: TypedField<"typed", Checkbox[], {
|
|
1068
|
+
readonly stability: "preview";
|
|
1069
|
+
}>;
|
|
1070
|
+
checkboxStats: TypedField<"typed", CheckboxStats, {
|
|
1071
|
+
readonly stability: "preview";
|
|
1072
|
+
}>;
|
|
1073
|
+
content: TypedField<"string", string, {
|
|
1074
|
+
readonly stability: "preview";
|
|
1075
|
+
}>;
|
|
1076
|
+
createdAt: TypedField<"date", Date, {
|
|
1077
|
+
readonly stability: "preview";
|
|
1078
|
+
}>;
|
|
1079
|
+
creatorId: TypedField<"belongsTo", UserId, {
|
|
1080
|
+
readonly stability: "preview";
|
|
1081
|
+
}>;
|
|
1082
|
+
deckId: TypedField<"belongsTo", DeckId, {
|
|
1083
|
+
readonly stability: "preview";
|
|
1084
|
+
}>;
|
|
1085
|
+
effort: TypedField<"int", number, {
|
|
1086
|
+
readonly optional: true;
|
|
1087
|
+
readonly stability: "preview";
|
|
1088
|
+
}>;
|
|
1089
|
+
itemId: TypedField<"id", WorkflowItemId, {}>;
|
|
1090
|
+
label: TypedField<"string", string, {
|
|
1091
|
+
readonly optional: true;
|
|
1092
|
+
readonly stability: "preview";
|
|
1093
|
+
}>;
|
|
1094
|
+
lastUpdatedAt: TypedField<"date", Date, {
|
|
1095
|
+
readonly stability: "preview";
|
|
1096
|
+
}>;
|
|
1097
|
+
masterTags: TypedField<"typed", string[], {
|
|
1098
|
+
readonly stability: "preview";
|
|
1099
|
+
}>;
|
|
1100
|
+
mentionedUsers: TypedField<"typed", UserId[], {
|
|
1101
|
+
readonly stability: "preview";
|
|
1102
|
+
}>;
|
|
1103
|
+
priority: TypedField<"typed", Priority, {
|
|
1104
|
+
readonly optional: true;
|
|
1105
|
+
readonly stability: "preview";
|
|
1106
|
+
}>;
|
|
1107
|
+
sortValue: TypedField<"string", string, {
|
|
1108
|
+
readonly stability: "preview";
|
|
1109
|
+
}>;
|
|
1110
|
+
tags: TypedField<"typed", string[], {
|
|
1111
|
+
readonly stability: "preview";
|
|
1112
|
+
}>;
|
|
1113
|
+
targetDeckId: TypedField<"belongsTo", DeckId, {
|
|
1114
|
+
readonly optional: true;
|
|
1115
|
+
readonly stability: "preview";
|
|
1116
|
+
}>;
|
|
1117
|
+
title: TypedField<"string", string, {
|
|
1118
|
+
readonly stability: "preview";
|
|
1119
|
+
}>;
|
|
1120
|
+
version: TypedField<"int", number, {
|
|
1121
|
+
readonly stability: "preview";
|
|
1122
|
+
}>;
|
|
1123
|
+
visibility: TypedField<"typed", CardVisibility, {
|
|
1124
|
+
readonly stability: "preview";
|
|
1125
|
+
}>;
|
|
1126
|
+
}, {
|
|
1127
|
+
account: RelationEntry<"account", {
|
|
1128
|
+
readonly type: "belongsTo";
|
|
1129
|
+
readonly fk: "accountId";
|
|
1130
|
+
readonly stability: "preview";
|
|
1131
|
+
}>;
|
|
1132
|
+
assignee: RelationEntry<"user", {
|
|
1133
|
+
readonly type: "belongsTo";
|
|
1134
|
+
readonly fk: "assigneeId";
|
|
1135
|
+
readonly optional: true;
|
|
1136
|
+
readonly stability: "preview";
|
|
1137
|
+
}>;
|
|
1138
|
+
creator: RelationEntry<"user", {
|
|
1139
|
+
readonly type: "belongsTo";
|
|
1140
|
+
readonly fk: "creatorId";
|
|
1141
|
+
readonly stability: "preview";
|
|
1142
|
+
}>;
|
|
1143
|
+
deck: RelationEntry<"deck", {
|
|
1144
|
+
readonly type: "belongsTo";
|
|
1145
|
+
readonly fk: "deckId";
|
|
1146
|
+
readonly stability: "preview";
|
|
1147
|
+
}>;
|
|
1148
|
+
inDeps: RelationEntry<"workflowItem", {
|
|
1149
|
+
readonly type: "hasMany";
|
|
1150
|
+
readonly fkAsArray: true;
|
|
1151
|
+
readonly stability: "preview";
|
|
1152
|
+
}>;
|
|
1153
|
+
outDeps: RelationEntry<"workflowItem", {
|
|
1154
|
+
readonly type: "hasMany";
|
|
1155
|
+
readonly fkAsArray: true;
|
|
1156
|
+
readonly stability: "preview";
|
|
1157
|
+
}>;
|
|
1158
|
+
targetDeck: RelationEntry<"deck", {
|
|
1159
|
+
readonly type: "belongsTo";
|
|
1160
|
+
readonly fk: "targetDeckId";
|
|
1161
|
+
readonly optional: true;
|
|
1162
|
+
readonly stability: "preview";
|
|
1163
|
+
}>;
|
|
1164
|
+
}, ["itemId"]>;
|
|
1165
|
+
};
|
|
1166
|
+
requestedRelationKeys: Map<string, QueryDep>;
|
|
1167
|
+
constructor(loader: BaseLoader);
|
|
1168
|
+
subscribeToField(fieldKey: string, notifyFn: () => void): () => void;
|
|
1169
|
+
invalidate(partKeyPatterns: string[]): void;
|
|
1170
|
+
loadData(model: keyof ModelMap, ids: string[], q: ModelQuery<any, any>, acceptDirty?: boolean, iteration?: number): LoaderResult;
|
|
1171
|
+
onLoaded(model: string, key: string, partialInstance: Record<string, unknown>): void;
|
|
1172
|
+
/**
|
|
1173
|
+
* Recursively check if query data is in cache
|
|
1174
|
+
* Accumulates missing requests in the missingRequests array
|
|
1175
|
+
*/
|
|
1176
|
+
private checkQueryRecursive;
|
|
1177
|
+
/**
|
|
1178
|
+
* Execute a mutation with optimistic updates
|
|
1179
|
+
*
|
|
1180
|
+
* @example
|
|
1181
|
+
* ```typescript
|
|
1182
|
+
* await store.mutate(
|
|
1183
|
+
* () => api.updateCard('123', {title: 'New Title'}),
|
|
1184
|
+
* {
|
|
1185
|
+
* onMutate: (layer) => {
|
|
1186
|
+
* layer.setField('Card', '123', 'title', 'New Title');
|
|
1187
|
+
* },
|
|
1188
|
+
* onSuccess: () => {
|
|
1189
|
+
* // Optional: invalidate related queries
|
|
1190
|
+
* store.invalidate(['Card:123:title']);
|
|
1191
|
+
* }
|
|
1192
|
+
* }
|
|
1193
|
+
* );
|
|
1194
|
+
* ```
|
|
1195
|
+
*/
|
|
1196
|
+
mutate<T>(mutationFn: () => Promise<T>, options?: {
|
|
1197
|
+
onMutate?: (updater: OptimisticUpdater) => void;
|
|
1198
|
+
onSuccess?: (data: T) => void;
|
|
1199
|
+
onError?: (error: unknown) => void;
|
|
1200
|
+
}): Promise<T>;
|
|
1201
|
+
}
|
|
1202
|
+
//#endregion
|
|
1203
|
+
export { Store };
|