@codecks/fetch 1.0.1 → 2.0.1
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 +80 -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-y85xawyq.js} +4 -2
- package/dist/index-iEtXFnkY.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-CIO8hJAv.d.ts} +1 -1
- package/dist/loader-utils-DdrmVo0F.d.ts +2218 -0
- package/dist/query-helpers-DndWBcMF.js +1203 -0
- package/dist/{query-type-BqQ9oX_U.d.ts → query-type-CwrwqxUP.d.ts} +30 -15
- package/dist/store-Dpx1yvWU.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
|
@@ -12,32 +12,47 @@ type TypedField<K extends string, X, Opts extends BaseOpts> = {
|
|
|
12
12
|
};
|
|
13
13
|
type BaseOpts = {
|
|
14
14
|
optional?: boolean;
|
|
15
|
-
};
|
|
15
|
+
} & TierOpts;
|
|
16
16
|
type FieldEntry = TypedField<string, any, any>;
|
|
17
17
|
type InferSimpleFieldEntry<T extends FieldEntry> = T extends TypedField<any, infer X, infer Opts> ? Opts extends {
|
|
18
18
|
optional: true;
|
|
19
19
|
} ? X | null : X : never;
|
|
20
20
|
//#endregion
|
|
21
21
|
//#region src/models/_desc.d.ts
|
|
22
|
+
/** What the Codecks API promises; the models only hold `stable` and `preview` items. */
|
|
23
|
+
type Stability = "stable" | "preview";
|
|
24
|
+
/** Dates are `YYYY-MM-DD`. `use` names what to read instead. */
|
|
25
|
+
type Deprecation = {
|
|
26
|
+
since: string;
|
|
27
|
+
removeAfter: string;
|
|
28
|
+
use?: string;
|
|
29
|
+
};
|
|
30
|
+
/** Left out for `stable` items that aren't deprecated. */
|
|
31
|
+
type TierOpts = {
|
|
32
|
+
stability?: Stability;
|
|
33
|
+
deprecated?: Deprecation;
|
|
34
|
+
};
|
|
22
35
|
type ModelDesc<TName extends string, TFields extends FieldDesc, TRelations extends RelationsDesc, TKey extends (keyof TFields & string)[]> = {
|
|
23
36
|
name: TName;
|
|
24
37
|
keys: TKey;
|
|
25
38
|
fields: TFields;
|
|
26
39
|
relations: TRelations;
|
|
27
|
-
};
|
|
40
|
+
} & TierOpts;
|
|
28
41
|
type AnyDesc = ModelDesc<any, any, any, any[]>;
|
|
29
42
|
type FieldDesc = Record<string, FieldEntry>;
|
|
43
|
+
/** Without an `fk` the relation is its own field, like `resolvable.closedBy`. */
|
|
30
44
|
type BelongsToOpts<TFk extends string> = {
|
|
31
45
|
type: "belongsTo";
|
|
32
|
-
fk
|
|
33
|
-
|
|
46
|
+
fk?: TFk;
|
|
47
|
+
optional?: boolean;
|
|
48
|
+
} & TierOpts;
|
|
34
49
|
type HasManyOpts = {
|
|
35
50
|
type: "hasMany";
|
|
36
51
|
fkAsArray?: boolean;
|
|
37
|
-
};
|
|
52
|
+
} & TierOpts;
|
|
38
53
|
type HasOneOpts = {
|
|
39
54
|
type: "hasOne";
|
|
40
|
-
};
|
|
55
|
+
} & TierOpts;
|
|
41
56
|
type RelationOpts = BelongsToOpts<any> | HasManyOpts | HasOneOpts;
|
|
42
57
|
type RelationEntry<TRelName extends string, TOpts extends RelationOpts> = {
|
|
43
58
|
relName: TRelName;
|
|
@@ -55,7 +70,8 @@ type OrderExpr<T> = {
|
|
|
55
70
|
field: T;
|
|
56
71
|
dir: "asc" | "desc";
|
|
57
72
|
};
|
|
58
|
-
type
|
|
73
|
+
type FieldName<T extends AnyDesc> = keyof T["fields"] & string;
|
|
74
|
+
type Order<T extends AnyDesc> = OneOrArray<OrderString<FieldName<T>>> | OneOrArray<OrderExpr<FieldName<T>>>;
|
|
59
75
|
type Operators<T> = {
|
|
60
76
|
op: "lt" | "lte" | "gt" | "gte";
|
|
61
77
|
value: T;
|
|
@@ -180,12 +196,11 @@ type RelQueryEntry<T extends AnyDesc, TMap extends ModelMap, K extends keyof T["
|
|
|
180
196
|
type RelQuery<T extends AnyDesc, TMap extends ModelMap> = { [K in keyof T["relations"]]?: RelQueryEntry<T, TMap, K> };
|
|
181
197
|
type EnsureModelQuery<T> = T extends ModelQuery<any, any> ? T : never;
|
|
182
198
|
type EnsureHasManyQuery<T> = T extends AbstractHasManyQuery ? T : never;
|
|
183
|
-
type EnrichBelongsTo<M extends AnyDesc, TMap extends ModelMap> = FilterNeverKeys<{ [K in keyof M["relations"]]: M["relations"][K] extends RelationEntry<any, infer Opts> ? Opts extends BelongsToOpts<
|
|
199
|
+
type EnrichBelongsTo<M extends AnyDesc, TMap extends ModelMap> = FilterNeverKeys<{ [K in keyof M["relations"]]: M["relations"][K] extends RelationEntry<any, infer Opts> ? Opts extends BelongsToOpts<any> ? {
|
|
184
200
|
model: TMap[M["relations"][K]["relName"]];
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
} & FieldOpts : never;
|
|
201
|
+
optional: Opts extends {
|
|
202
|
+
optional: true;
|
|
203
|
+
} ? true : false;
|
|
189
204
|
} : never : never }>;
|
|
190
205
|
type ExtractHasMany<M extends AnyDesc, TMap extends ModelMap> = FilterNeverKeys<{ [K in keyof M["relations"]]: M["relations"][K] extends RelationEntry<infer RelName, infer Opts> ? Opts extends {
|
|
191
206
|
type: "hasMany";
|
|
@@ -200,21 +215,21 @@ type ExtractHasOne<M extends AnyDesc, TMap extends ModelMap> = FilterNeverKeys<{
|
|
|
200
215
|
}> ? {
|
|
201
216
|
model: TMap[RelName];
|
|
202
217
|
} : never }>;
|
|
203
|
-
type InferModelQuery<M extends AnyDesc, Q extends ModelQuery<M, TMap>, TMap extends ModelMap> = (Q["fields"] extends (keyof M["fields"])[] ? { [K in Q["fields"][number]]: InferFieldType<M["fields"][K]> } : {}) & (Q["relations"] extends RelQuery<M, TMap> ? InferRelQuery<M, Q["relations"], TMap> : {}) & { [K in M["keys"][number] & string]: InferFieldType<M["fields"][K]> } & {
|
|
218
|
+
type InferModelQuery<M extends AnyDesc, Q extends ModelQuery<M, TMap>, TMap extends ModelMap> = (Q["fields"] extends (keyof M["fields"])[] ? { [K in keyof M["fields"] as K extends Q["fields"][number] ? K : never]: InferFieldType<M["fields"][K]> } : {}) & (Q["relations"] extends RelQuery<M, TMap> ? InferRelQuery<M, Q["relations"], TMap> : {}) & { [K in M["keys"][number] & string]: InferFieldType<M["fields"][K]> } & {
|
|
204
219
|
"~model": M["name"];
|
|
205
220
|
"~key": string;
|
|
206
221
|
};
|
|
207
222
|
type IsOptional<T, Test> = Test extends true ? T | null : T;
|
|
208
223
|
type EmptyObjIfNever<T> = [T] extends [never] ? {} : T;
|
|
209
224
|
type ExtractRelQueryArray<M extends AnyDesc, TMap extends ModelMap, Q extends RelQuery<M, TMap>> = { [K in keyof Q]: K extends keyof ExtractHasMany<M, TMap> ? Q[K] extends HasManyQueryWithAs<any, any>[] ? { [Item in Q[K][number] as Item["as"]]: InferHasMany<ExtractHasMany<M, TMap>[K]["model"], TMap, Item> } : never : never }[keyof Q];
|
|
210
|
-
type InferHasMany<M extends AnyDesc, TMap extends ModelMap, QM extends
|
|
225
|
+
type InferHasMany<M extends AnyDesc, TMap extends ModelMap, QM extends AbstractHasManyQuery> = QM extends {
|
|
211
226
|
type: "count";
|
|
212
227
|
} ? number : QM extends {
|
|
213
228
|
type: "exists";
|
|
214
229
|
} ? boolean : QM extends {
|
|
215
230
|
type: "first";
|
|
216
231
|
} ? InferModelQuery<M, EnsureModelQuery<QM>, TMap> | null : InferModelQuery<M, EnsureModelQuery<QM>, TMap>[];
|
|
217
|
-
type InferRelEntry<M extends AnyDesc, TMap extends ModelMap, Q extends RelQuery<any, any>, K extends keyof Q> = K extends keyof EnrichBelongsTo<M, TMap> ? IsOptional<InferModelQuery<EnrichBelongsTo<M, TMap>[K]["model"], EnsureModelQuery<Q[K]>, TMap>, EnrichBelongsTo<M, TMap>[K]["
|
|
232
|
+
type InferRelEntry<M extends AnyDesc, TMap extends ModelMap, Q extends RelQuery<any, any>, K extends keyof Q> = K extends keyof EnrichBelongsTo<M, TMap> ? IsOptional<InferModelQuery<EnrichBelongsTo<M, TMap>[K]["model"], EnsureModelQuery<Q[K]>, TMap>, EnrichBelongsTo<M, TMap>[K]["optional"]> : K extends keyof ExtractHasMany<M, TMap> ? InferHasMany<ExtractHasMany<M, TMap>[K]["model"], TMap, EnsureHasManyQuery<Q[K]>> : K extends keyof ExtractHasOne<M, TMap> ? InferModelQuery<ExtractHasOne<M, TMap>[K]["model"], EnsureModelQuery<Q[K]>, TMap> : never;
|
|
218
233
|
type InferKeyName<Q extends RelQuery<any, any>, K extends keyof Q> = Q[K] extends Array<any> ? never : Q[K] extends {
|
|
219
234
|
as: string;
|
|
220
235
|
} ? K extends keyof ExtractHasMany<any, any> ? Q[K]["as"] : K : K;
|