@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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "../query-type-
|
|
2
|
-
import { BaseLoader, BaseRequester, MissingDataRequest, OnLoadedFn } from "../loader-types-
|
|
1
|
+
import "../query-type-DPNcQFpZ.js";
|
|
2
|
+
import { BaseLoader, BaseRequester, MissingDataRequest, OnLoadedFn } from "../loader-types-D2Pf8qzH.js";
|
|
3
3
|
|
|
4
4
|
//#region src/_exploration/loader.d.ts
|
|
5
5
|
type DataRequestWithKey = {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import "../query-type-
|
|
2
|
-
import "../
|
|
3
|
-
import "../loader-types-
|
|
4
|
-
import
|
|
1
|
+
import "../query-type-DPNcQFpZ.js";
|
|
2
|
+
import "../loader-utils-BZWanWDZ.js";
|
|
3
|
+
import "../loader-types-D2Pf8qzH.js";
|
|
4
|
+
import "../index-g5c30upI.js";
|
|
5
|
+
import { Store } from "../store-ztk8y6Pm.js";
|
|
5
6
|
export { Store };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getRelKey, makeRelQuerySerializable, modelMap } from "../query-helpers-
|
|
1
|
+
import { getRelKey, makeRelQuerySerializable, modelMap } from "../query-helpers-DndWBcMF.js";
|
|
2
2
|
import { ImmediateCache } from "../immediate-cache-DiH8tpJM.js";
|
|
3
3
|
|
|
4
4
|
//#region src/_exploration/store.ts
|
|
@@ -33,7 +33,8 @@ var CodecksApiError = class extends Error {
|
|
|
33
33
|
const str = (v) => typeof v === "string" ? v : null;
|
|
34
34
|
const isCode = (v) => v !== null && /^[a-z][a-z0-9_]*$/.test(v);
|
|
35
35
|
const code = [str(obj.error), str(obj.message)].find(isCode) ?? null;
|
|
36
|
-
|
|
36
|
+
const actionError = str(obj.payload?.error);
|
|
37
|
+
super(`[${status}] ${str(obj.message) ?? code ?? actionError ?? (str(body) || "request failed")}`);
|
|
37
38
|
this.name = "CodecksApiError";
|
|
38
39
|
this.status = status;
|
|
39
40
|
this.code = code;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { InferModelQuery, InferRelQuery, Instance, ModelDesc, ModelQuery, RelQuery, RelationEntry } from "./query-type-DPNcQFpZ.js";
|
|
2
|
+
import { ActionName, ActionParams, ActionResponse, DataLoader, FetchOptions, LegacyFetchOptions, modelMap$1 as modelMap } from "./loader-utils-BZWanWDZ.js";
|
|
3
|
+
|
|
4
|
+
//#region src/models/_root.d.ts
|
|
5
|
+
/** The starting point of every query. */
|
|
6
|
+
declare const _rootDesc: ModelDesc<"_root", {}, {
|
|
7
|
+
/** The organization the request is for. */
|
|
8
|
+
account: RelationEntry<"account", {
|
|
9
|
+
readonly type: "hasOne";
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* The user the request acts as. For an organization's API token it's the token's own user.
|
|
13
|
+
* `null` when nobody is signed in.
|
|
14
|
+
*/
|
|
15
|
+
loggedInUser: RelationEntry<"user", {
|
|
16
|
+
readonly type: "hasOne";
|
|
17
|
+
}>;
|
|
18
|
+
/** The entries of the Codecks changelog. */
|
|
19
|
+
releases: RelationEntry<"release", {
|
|
20
|
+
readonly type: "hasMany";
|
|
21
|
+
}>;
|
|
22
|
+
}, []>;
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region src/index.d.ts
|
|
25
|
+
type ModelMap = typeof modelMap;
|
|
26
|
+
type Fetchers = {
|
|
27
|
+
fetchFromRoot: <const Q extends RelQuery<typeof _rootDesc, ModelMap>>(q: Q) => Promise<InferRelQuery<typeof _rootDesc, Q, ModelMap>>;
|
|
28
|
+
fetchFromInstance: <M extends keyof ModelMap, const Q extends ModelQuery<ModelMap[M], ModelMap>>(instance: Instance<M>, q: Q) => Promise<InferModelQuery<ModelMap[M], Q, ModelMap>>;
|
|
29
|
+
fetchInstance: <K extends keyof ModelMap, const Q extends ModelQuery<ModelMap[K], ModelMap>>(model: K, id: string, q: Q) => Promise<InferModelQuery<ModelMap[K], Q, ModelMap>>;
|
|
30
|
+
fetchInstances: <K extends keyof ModelMap, Id extends string, const Q extends ModelQuery<ModelMap[K], ModelMap>>(model: K, id: Id[], q: Q) => Promise<Record<Id, InferModelQuery<ModelMap[K], Q, ModelMap>>>;
|
|
31
|
+
/** Calls an action, e.g. `dispatch("cards/update", {id, status: "done"})`. */
|
|
32
|
+
dispatch: <N extends ActionName>(name: N, params: ActionParams<N>) => Promise<ActionResponse<N>>;
|
|
33
|
+
};
|
|
34
|
+
declare const buildFetchers: (opts: FetchOptions) => Fetchers;
|
|
35
|
+
/** @deprecated `X-Auth-Token` stops working on 2026-12-31. Use `buildFetchers` with an API token. */
|
|
36
|
+
declare const buildLegacyFetchers: (opts: LegacyFetchOptions) => Fetchers;
|
|
37
|
+
declare const buildFetchersFromLoader: (loader: DataLoader) => Fetchers;
|
|
38
|
+
//#endregion
|
|
39
|
+
export { _rootDesc, buildFetchers, buildFetchersFromLoader, buildLegacyFetchers };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
//#region src/index.d.ts
|
|
7
|
-
type ModelMap = typeof modelMap;
|
|
8
|
-
type Fetchers = {
|
|
9
|
-
fetchFromRoot: <const Q extends RelQuery<typeof _rootDesc, ModelMap>>(q: Q) => Promise<InferRelQuery<typeof _rootDesc, Q, ModelMap>>;
|
|
10
|
-
fetchFromInstance: <M extends keyof ModelMap, const Q extends ModelQuery<ModelMap[M], ModelMap>>(instance: Instance<M>, q: Q) => Promise<InferModelQuery<ModelMap[M], Q, ModelMap>>;
|
|
11
|
-
fetchInstance: <K extends keyof ModelMap, const Q extends ModelQuery<ModelMap[K], ModelMap>>(model: K, id: string, q: Q) => Promise<InferModelQuery<ModelMap[K], Q, ModelMap>>;
|
|
12
|
-
fetchInstances: <K extends keyof ModelMap, Id extends string, const Q extends ModelQuery<ModelMap[K], ModelMap>>(model: K, id: Id[], q: Q) => Promise<Record<Id, InferModelQuery<ModelMap[K], Q, ModelMap>>>;
|
|
13
|
-
};
|
|
14
|
-
declare const buildFetchers: (opts: FetchOptions) => Fetchers;
|
|
15
|
-
/** @deprecated `X-Auth-Token` stops working on 2026-12-31. Use `buildFetchers` with an API token. */
|
|
16
|
-
declare const buildLegacyFetchers: (opts: LegacyFetchOptions) => Fetchers;
|
|
17
|
-
declare const buildFetchersFromLoader: (loader: DataLoader) => Fetchers;
|
|
18
|
-
//#endregion
|
|
19
|
-
export { CodecksApiError, type DataLoader, type FetchOptions, type LegacyFetchOptions, buildFetchers, buildFetchersFromLoader, buildLegacyFetchers };
|
|
1
|
+
import "./query-type-DPNcQFpZ.js";
|
|
2
|
+
import { AccountId, ActionMap, ActionName, ActionParams, ActionResponse, AttachmentId, CardId, CardVisibility, Checkbox, CheckboxStats, CodecksApiError$1 as CodecksApiError, DataLoader, DeckId, DefaultCard, DerivedStatus, FetchOptions, FileId, LegacyFetchOptions, MilestoneColor, MilestoneId, Priority, ProjectId, ProjectTagId, QueueEntryId, ReleaseId, ResolvableEntryId, ResolvableEntryReactionId, ResolvableId, SprintConfigId, SprintId, StartWeekday, TimeTrackingMode, TimelineScaleType, UserId, Workdays, WorkflowItemId, WorkflowMode } from "./loader-utils-BZWanWDZ.js";
|
|
3
|
+
import { buildFetchers, buildFetchersFromLoader, buildLegacyFetchers } from "./index-g5c30upI.js";
|
|
4
|
+
export { AccountId, ActionMap, ActionName, ActionParams, ActionResponse, AttachmentId, CardId, CardVisibility, Checkbox, CheckboxStats, CodecksApiError, DataLoader, DeckId, DefaultCard, DerivedStatus, FetchOptions, FileId, LegacyFetchOptions, MilestoneColor, MilestoneId, Priority, ProjectId, ProjectTagId, QueueEntryId, ReleaseId, ResolvableEntryId, ResolvableEntryReactionId, ResolvableId, SprintConfigId, SprintId, StartWeekday, TimeTrackingMode, TimelineScaleType, UserId, Workdays, WorkflowItemId, WorkflowMode, buildFetchers, buildFetchersFromLoader, buildLegacyFetchers };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CodecksApiError, bearerTransport, configuredFetch, ensureMapValue, legacyTransport } from "./collection-utils-
|
|
2
|
-
import { _rootDesc, getRelKey, makeModelQuerySerializable, modelMap, serializeInstanceQuery } from "./query-helpers-
|
|
1
|
+
import { CodecksApiError, bearerTransport, configuredFetch, ensureMapValue, legacyTransport } from "./collection-utils-Ia_ahcpI.js";
|
|
2
|
+
import { _rootDesc$1 as _rootDesc, getRelKey, makeModelQuerySerializable, modelMap, serializeInstanceQuery } from "./query-helpers-DndWBcMF.js";
|
|
3
3
|
|
|
4
4
|
//#region src/model-pool.ts
|
|
5
5
|
const ROOT_ID = "";
|
|
@@ -81,7 +81,7 @@ const reconcileInstanceQuery = (query, response, instanceModel, key, store) => {
|
|
|
81
81
|
const relModel = modelMap[relDesc.relName];
|
|
82
82
|
switch (opts.type) {
|
|
83
83
|
case "belongsTo":
|
|
84
|
-
result[opts.fk] = instance[relName];
|
|
84
|
+
if (opts.fk) result[opts.fk] = instance[relName];
|
|
85
85
|
result[`~${relName}`] = instance[relName] != null ? `${instance[relName]}` : null;
|
|
86
86
|
result[relName] = instance[relName] != null ? reconcileInstanceQuery(relEntry, response, relModel, `${instance[relName]}`, store) : null;
|
|
87
87
|
break;
|
|
@@ -134,17 +134,27 @@ const createSimpleLoader = (opts) => {
|
|
|
134
134
|
body: JSON.stringify({ query })
|
|
135
135
|
});
|
|
136
136
|
};
|
|
137
|
-
return {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
137
|
+
return {
|
|
138
|
+
fetchModel: async (model, ids, q) => {
|
|
139
|
+
const modelDesc = modelMap[model];
|
|
140
|
+
const instances = ids.map((id) => ({
|
|
141
|
+
"~model": model,
|
|
142
|
+
"~key": id
|
|
143
|
+
}));
|
|
144
|
+
const response = await fetchWithQuery(serializeInstanceQuery(makeModelQuerySerializable(q), instances));
|
|
145
|
+
const pool = new ModelPool(modelMap);
|
|
146
|
+
pool.add(response);
|
|
147
|
+
return Object.fromEntries(ids.map((id) => [id, reconcileInstanceQuery(q, response, modelDesc, id, pool)]));
|
|
148
|
+
},
|
|
149
|
+
dispatch: async (name, params) => {
|
|
150
|
+
const { payload } = await configuredFetch(opts, `dispatch/${name}`, {
|
|
151
|
+
method: "POST",
|
|
152
|
+
headers: { "Content-Type": "application/json" },
|
|
153
|
+
body: JSON.stringify(params)
|
|
154
|
+
});
|
|
155
|
+
return payload ?? void 0;
|
|
156
|
+
}
|
|
157
|
+
};
|
|
148
158
|
};
|
|
149
159
|
|
|
150
160
|
//#endregion
|
|
@@ -167,7 +177,8 @@ const buildFetchersFromLoader = (loader) => {
|
|
|
167
177
|
const res = await loader.fetchModel(model, [key], q);
|
|
168
178
|
return res[key];
|
|
169
179
|
},
|
|
170
|
-
fetchInstances: loader.fetchModel
|
|
180
|
+
fetchInstances: loader.fetchModel,
|
|
181
|
+
dispatch: loader.dispatch
|
|
171
182
|
};
|
|
172
183
|
};
|
|
173
184
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SerializableRelationQuery } from "./query-type-
|
|
1
|
+
import { SerializableRelationQuery } from "./query-type-DPNcQFpZ.js";
|
|
2
2
|
|
|
3
3
|
//#region src/_exploration/loader-types.d.ts
|
|
4
4
|
type OnLoadedFn = (model: string, key: string, partialInstance: Record<string, unknown>) => void;
|