@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.
Files changed (120) hide show
  1. package/README.md +80 -32
  2. package/dist/_exploration/api-requester.d.ts +3 -4
  3. package/dist/_exploration/api-requester.js +2 -2
  4. package/dist/_exploration/create-hooks.d.ts +4313 -13097
  5. package/dist/_exploration/create-hooks.js +1 -1
  6. package/dist/_exploration/loader.d.ts +2 -2
  7. package/dist/_exploration/loader.js +1 -1
  8. package/dist/_exploration/store.d.ts +5 -4
  9. package/dist/_exploration/store.js +1 -1
  10. package/dist/{collection-utils-KmtGUuXm.js → collection-utils-y85xawyq.js} +4 -2
  11. package/dist/index-iEtXFnkY.d.ts +39 -0
  12. package/dist/index.d.ts +4 -19
  13. package/dist/index.js +26 -15
  14. package/dist/{loader-types-fd5tV0FD.d.ts → loader-types-CIO8hJAv.d.ts} +1 -1
  15. package/dist/loader-utils-DdrmVo0F.d.ts +2218 -0
  16. package/dist/query-helpers-DndWBcMF.js +1203 -0
  17. package/dist/{query-type-BqQ9oX_U.d.ts → query-type-CwrwqxUP.d.ts} +30 -15
  18. package/dist/store-Dpx1yvWU.d.ts +1203 -0
  19. package/package.json +2 -1
  20. package/schema/actions.md +789 -0
  21. package/schema/models/account.md +57 -90
  22. package/schema/models/attachment.md +15 -11
  23. package/schema/models/card.md +91 -65
  24. package/schema/models/cardHistory.md +15 -9
  25. package/schema/models/deck.md +41 -36
  26. package/schema/models/file.md +13 -15
  27. package/schema/models/handCard.md +8 -5
  28. package/schema/models/milestone.md +27 -22
  29. package/schema/models/milestoneProgress.md +9 -3
  30. package/schema/models/milestoneProject.md +6 -4
  31. package/schema/models/project.md +15 -39
  32. package/schema/models/projectTag.md +12 -7
  33. package/schema/models/queueEntry.md +12 -8
  34. package/schema/models/release.md +8 -6
  35. package/schema/models/resolvable.md +19 -15
  36. package/schema/models/resolvableEntry.md +16 -13
  37. package/schema/models/resolvableEntryReaction.md +16 -12
  38. package/schema/models/sprint.md +35 -25
  39. package/schema/models/sprintConfig.md +24 -20
  40. package/schema/models/sprintConfigProgress.md +9 -3
  41. package/schema/models/sprintProgress.md +9 -3
  42. package/schema/models/sprintProject.md +7 -5
  43. package/schema/models/user.md +15 -56
  44. package/schema/models/workflowItem.md +47 -31
  45. package/schema/overview.md +40 -93
  46. package/schema/query-syntax.md +1 -1
  47. package/schema/types.md +103 -0
  48. package/dist/_root-BW9uzB79.d.ts +0 -34
  49. package/dist/index-k-KPWV9R.d.ts +0 -2680
  50. package/dist/loader-utils-hvdC-xsQ.d.ts +0 -42
  51. package/dist/query-helpers-iX1fiqLv.js +0 -3062
  52. package/dist/store-BvEJzUVp.d.ts +0 -2667
  53. package/schema/models/accountOnboarding.md +0 -15
  54. package/schema/models/accountOnboardingStep.md +0 -14
  55. package/schema/models/accountRole.md +0 -19
  56. package/schema/models/accountUserAchievement.md +0 -17
  57. package/schema/models/accountUserSetting.md +0 -20
  58. package/schema/models/activeTimeTracker.md +0 -19
  59. package/schema/models/activity.md +0 -30
  60. package/schema/models/affiliateCode.md +0 -30
  61. package/schema/models/affiliateCodeStat.md +0 -19
  62. package/schema/models/app.md +0 -10
  63. package/schema/models/appInstallation.md +0 -19
  64. package/schema/models/assigneeAssignment.md +0 -18
  65. package/schema/models/assigneeDeckAssignment.md +0 -20
  66. package/schema/models/autoFinishedTimeTrackingSegment.md +0 -20
  67. package/schema/models/cardDiffNotification.md +0 -22
  68. package/schema/models/cardOrder.md +0 -17
  69. package/schema/models/cardOrderInDeck.md +0 -18
  70. package/schema/models/cardPreset.md +0 -19
  71. package/schema/models/cardSubscription.md +0 -19
  72. package/schema/models/cardUpvote.md +0 -21
  73. package/schema/models/cardsEffortHistory.md +0 -9
  74. package/schema/models/cardsFinishedHistory.md +0 -16
  75. package/schema/models/cardsStatusHistory.md +0 -9
  76. package/schema/models/cardsTimeToFinished.md +0 -18
  77. package/schema/models/dailyDiscordGuildVoteMembership.md +0 -15
  78. package/schema/models/dailyPublicProjectMembership.md +0 -15
  79. package/schema/models/deckAssignment.md +0 -18
  80. package/schema/models/deckGuardian.md +0 -17
  81. package/schema/models/deckSubscription.md +0 -18
  82. package/schema/models/discordGuild.md +0 -30
  83. package/schema/models/discordMember.md +0 -21
  84. package/schema/models/discordProjectNotification.md +0 -19
  85. package/schema/models/discordSlashCommand.md +0 -28
  86. package/schema/models/dueCard.md +0 -18
  87. package/schema/models/integration.md +0 -23
  88. package/schema/models/invoice.md +0 -21
  89. package/schema/models/lastSeenCardUpvote.md +0 -17
  90. package/schema/models/pinnedMilestone.md +0 -22
  91. package/schema/models/projectOrder.md +0 -18
  92. package/schema/models/projectSelection.md +0 -18
  93. package/schema/models/projectUser.md +0 -18
  94. package/schema/models/projectUserSetting.md +0 -15
  95. package/schema/models/publicProjectInfo.md +0 -20
  96. package/schema/models/publicProjectMembership.md +0 -17
  97. package/schema/models/publicProjectVisit.md +0 -16
  98. package/schema/models/queueSelection.md +0 -19
  99. package/schema/models/resolvableEntryHistory.md +0 -20
  100. package/schema/models/resolvableNotification.md +0 -30
  101. package/schema/models/resolvableParticipant.md +0 -25
  102. package/schema/models/resolvableParticipantHistory.md +0 -23
  103. package/schema/models/savedSearch.md +0 -18
  104. package/schema/models/stripeAccountSync.md +0 -29
  105. package/schema/models/timeTrackingSegment.md +0 -24
  106. package/schema/models/timeTrackingSum.md +0 -18
  107. package/schema/models/userDismissedHint.md +0 -16
  108. package/schema/models/userEmail.md +0 -18
  109. package/schema/models/userInvitation.md +0 -20
  110. package/schema/models/userInviteCode.md +0 -23
  111. package/schema/models/userOnboarding.md +0 -14
  112. package/schema/models/userProjectAccess.md +0 -17
  113. package/schema/models/userReportEmail.md +0 -19
  114. package/schema/models/userReportSetting.md +0 -23
  115. package/schema/models/userReportToken.md +0 -18
  116. package/schema/models/userTag.md +0 -18
  117. package/schema/models/visionBoard.md +0 -21
  118. package/schema/models/visionBoardQuery.md +0 -22
  119. package/schema/models/wizard.md +0 -19
  120. 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: TFk;
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 Order<T extends AnyDesc> = OneOrArray<OrderString<keyof T["fields"] extends string ? keyof T["fields"] : never>> | OneOrArray<OrderExpr<T["fields"]>>;
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<infer TFk> ? {
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
- fk: TFk;
186
- field: M["fields"][TFk] extends TypedField<"belongsTo", infer FieldType, infer FieldOpts> ? {
187
- type: FieldType;
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 HasManyQuery<M, TMap>> = 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]["field"]["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;
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;