@skillcdn/console 0.1.0 → 0.1.2

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 (80) hide show
  1. package/README.md +12 -10
  2. package/dist/api.d.ts +5 -5
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +4 -4
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli/cli.d.ts +5 -0
  7. package/dist/cli/cli.d.ts.map +1 -1
  8. package/dist/cli/cli.js +100 -43
  9. package/dist/cli/cli.js.map +1 -1
  10. package/dist/cli/directory.d.ts +14 -0
  11. package/dist/cli/directory.d.ts.map +1 -0
  12. package/dist/cli/directory.js +46 -0
  13. package/dist/cli/directory.js.map +1 -0
  14. package/dist/cli/format.d.ts +6 -3
  15. package/dist/cli/format.d.ts.map +1 -1
  16. package/dist/cli/format.js +17 -6
  17. package/dist/cli/format.js.map +1 -1
  18. package/dist/cli/help.d.ts +2 -2
  19. package/dist/cli/help.d.ts.map +1 -1
  20. package/dist/cli/help.js +25 -11
  21. package/dist/cli/help.js.map +1 -1
  22. package/dist/cli/main.js +9 -0
  23. package/dist/cli/main.js.map +1 -1
  24. package/dist/client.d.ts +39 -10
  25. package/dist/client.d.ts.map +1 -1
  26. package/dist/client.js +54 -33
  27. package/dist/client.js.map +1 -1
  28. package/dist/components/event-feed.d.ts.map +1 -1
  29. package/dist/components/event-feed.js +34 -14
  30. package/dist/components/event-feed.js.map +1 -1
  31. package/dist/components/projects.d.ts +41 -0
  32. package/dist/components/projects.d.ts.map +1 -0
  33. package/dist/components/projects.js +81 -0
  34. package/dist/components/projects.js.map +1 -0
  35. package/dist/components/runs.d.ts +2 -2
  36. package/dist/components/runs.d.ts.map +1 -1
  37. package/dist/components/runs.js +2 -2
  38. package/dist/components/runs.js.map +1 -1
  39. package/dist/components/shell.d.ts +5 -0
  40. package/dist/components/shell.d.ts.map +1 -1
  41. package/dist/components/shell.js +1 -1
  42. package/dist/components/shell.js.map +1 -1
  43. package/dist/components/task-view.d.ts +5 -1
  44. package/dist/components/task-view.d.ts.map +1 -1
  45. package/dist/components/task-view.js +2 -1
  46. package/dist/components/task-view.js.map +1 -1
  47. package/dist/console.css +91 -1
  48. package/dist/console.d.ts +3 -0
  49. package/dist/console.d.ts.map +1 -1
  50. package/dist/console.js +148 -39
  51. package/dist/console.js.map +1 -1
  52. package/dist/data.d.ts +33 -10
  53. package/dist/data.d.ts.map +1 -1
  54. package/dist/data.js +202 -81
  55. package/dist/data.js.map +1 -1
  56. package/dist/index.d.ts +2 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/limits.d.ts +7 -0
  61. package/dist/limits.d.ts.map +1 -1
  62. package/dist/limits.js +7 -0
  63. package/dist/limits.js.map +1 -1
  64. package/dist/router.d.ts +22 -7
  65. package/dist/router.d.ts.map +1 -1
  66. package/dist/router.js +36 -22
  67. package/dist/router.js.map +1 -1
  68. package/dist/routes.d.ts +14 -12
  69. package/dist/routes.d.ts.map +1 -1
  70. package/dist/routes.js +28 -11
  71. package/dist/routes.js.map +1 -1
  72. package/dist/schemas.d.ts +163 -28
  73. package/dist/schemas.d.ts.map +1 -1
  74. package/dist/schemas.js +99 -27
  75. package/dist/schemas.js.map +1 -1
  76. package/dist/vocabulary.d.ts +7 -1
  77. package/dist/vocabulary.d.ts.map +1 -1
  78. package/dist/vocabulary.js +9 -0
  79. package/dist/vocabulary.js.map +1 -1
  80. package/package.json +1 -1
package/dist/data.d.ts CHANGED
@@ -1,5 +1,12 @@
1
- import { type ConsoleClient, type RestAnswerInput, type RestDecision, type RestDecisionInput, type RestEvent, type RestMe, type RestPerson, type RestPersonPatch, type RestRun, type RestSkills, type RestTask, type RestTaskInput, type RestTaskPatch, type RestToken, type RestTokenCreated, type RestTokenInput } from "./api.js";
1
+ import { type ConsoleClient, type RestAnswerInput, type RestDecision, type RestDecisionInput, type RestEvent, type RestMe, type RestMember, type RestMemberInput, type RestMemberPatch, type RestPerson, type RestPersonPatch, type RestProject, type RestProjectInput, type RestProjectPatch, type RestRun, type RestSkills, type RestTask, type RestTaskInput, type RestTaskPatch, type RestToken, type RestTokenCreated, type RestTokenInput } from "./api.js";
2
2
  export interface ConsoleActions {
3
+ /** Makes a project, whose owner the person becomes. */
4
+ createProject(input: RestProjectInput): Promise<RestProject>;
5
+ /** Changes the settings of the project the page is on; for an owner. */
6
+ updateProject(patch: RestProjectPatch): Promise<RestProject>;
7
+ addMember(input: RestMemberInput): Promise<RestMember>;
8
+ updateMember(personId: string, patch: RestMemberPatch): Promise<RestMember>;
9
+ removeMember(personId: string): Promise<void>;
3
10
  createTask(input: RestTaskInput): Promise<RestTask>;
4
11
  updateTask(id: string, patch: RestTaskPatch): Promise<RestTask>;
5
12
  raiseDecision(input: RestDecisionInput): Promise<RestDecision>;
@@ -8,6 +15,8 @@ export interface ConsoleActions {
8
15
  updatePerson(id: string, patch: RestPersonPatch): Promise<RestPerson>;
9
16
  /** Marks a run that will not come back as abandoned. */
10
17
  abandonRun(id: string): Promise<RestRun>;
18
+ /** Everything that happened to one task of the project, oldest first. */
19
+ taskHistory(taskId: string, signal?: AbortSignal): Promise<RestEvent[]>;
11
20
  /** Makes a token for whoever is signed in; the answer carries the secret, this once. */
12
21
  createToken(input: RestTokenInput): Promise<RestTokenCreated>;
13
22
  revokeToken(id: string): Promise<void>;
@@ -18,24 +27,38 @@ export interface ConsoleData {
18
27
  readonly me: RestMe | undefined;
19
28
  /** What went wrong asking who is signed in, for a person. */
20
29
  readonly error: string | undefined;
21
- /** True once the board has been loaded for the first time. */
30
+ /** True once the workspace has been loaded for the first time: the projects, the people, the tokens. */
22
31
  readonly loaded: boolean;
23
- /** Whether the stream of events is connected. */
32
+ /** The projects the person may see, by name. */
33
+ readonly projects: readonly RestProject[];
34
+ readonly people: readonly RestPerson[];
35
+ /** The tokens of whoever is signed in, newest first. */
36
+ readonly tokens: readonly RestToken[];
37
+ /** The project the page is on, once loaded; `undefined` while loading, or when the page is on none. */
38
+ readonly project: RestProject | undefined;
39
+ /** True once the project the page is on has been loaded; false while it loads, or when there is none. */
40
+ readonly projectLoaded: boolean;
41
+ /** Why the project could not be loaded: not one the person may see, for instance. */
42
+ readonly projectError: string | undefined;
43
+ /** Whether the project's stream of events is connected. */
24
44
  readonly live: boolean;
25
45
  readonly tasks: readonly RestTask[];
26
46
  readonly decisions: readonly RestDecision[];
27
- readonly people: readonly RestPerson[];
28
- /** The runs of the board, newest first. */
47
+ /** The runs of the project, newest first. */
29
48
  readonly runs: readonly RestRun[];
30
- /** Oldest first. */
49
+ /** The project's events, oldest first. */
31
50
  readonly events: readonly RestEvent[];
32
- /** The tokens of whoever is signed in, newest first. */
33
- readonly tokens: readonly RestToken[];
34
- /** The organization's skills, as the console answered; `undefined` until it has. */
51
+ /** Those listed in the project, by login. */
52
+ readonly members: readonly RestMember[];
53
+ /** The project's skills, as the console answered; `undefined` until it has. */
35
54
  readonly skills: RestSkills | undefined;
36
55
  readonly actions: ConsoleActions;
37
56
  /** Asks everything again, from who is signed in on. */
38
57
  reload(): void;
39
58
  }
40
- export declare function useConsoleData(client: ConsoleClient): ConsoleData;
59
+ /**
60
+ * The data of the console: the workspace, and the project `projectKey` names, kept current.
61
+ * A composition of its own calls this with the key of the project its page is on, or none.
62
+ */
63
+ export declare function useConsoleData(client: ConsoleClient, projectKey: string | undefined): ConsoleData;
41
64
  //# sourceMappingURL=data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,UAAU,CAAC;AAalB,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChE,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1E,sDAAsD;IACtD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtE,wDAAwD;IACxD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,wFAAwF;IACxF,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9D,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,gGAAgG;IAChG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,oBAAoB;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,uDAAuD;IACvD,MAAM,IAAI,IAAI,CAAC;CAChB;AAiBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAoMjE"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
package/dist/data.js CHANGED
@@ -1,20 +1,21 @@
1
1
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
2
  import { ApiError, EVENT_KINDS, restEventSchema, } from "./api.js";
3
- // What the console shows, and how it stays current: the board is loaded whole, the feed is
4
- // read from the beginning, and from then on the server's stream says when something changed.
5
- // On every event the lists are loaded again, which is the boring way to be right.
3
+ // What the console shows, and how it stays current: the workspace (who is signed in, the
4
+ // projects, the people, the tokens) is loaded once; the project the page is on is loaded whole,
5
+ // its feed from the beginning, and from then on the project's stream says when something
6
+ // changed: on every event the lists are loaded again, which is the boring way to be right.
6
7
  /** How many events the feed keeps on the page. */
7
8
  const FEED_KEEP = 200;
8
9
  /** How many pages of the feed are read at the start before the stream takes over. */
9
10
  const FEED_MAX_PAGES = 20;
10
11
  /** How long changes that arrive together are gathered before the lists are loaded once. */
11
12
  const RELOAD_DELAY_MS = 150;
12
- /** The whole feed from the beginning, page by page, bounded. */
13
- async function readFeed(client, signal) {
13
+ /** The whole feed of a project from the beginning, page by page, bounded. */
14
+ async function readFeed(client, key, signal) {
14
15
  const events = [];
15
16
  let after = 0;
16
17
  for (let page = 0; page < FEED_MAX_PAGES; page += 1) {
17
- const result = await client.events(after, signal);
18
+ const result = await client.project(key).events(after, {}, signal);
18
19
  events.push(...result.items);
19
20
  after = result.items.at(-1)?.id ?? after;
20
21
  if (!result.more) {
@@ -23,44 +24,71 @@ async function readFeed(client, signal) {
23
24
  }
24
25
  return events.slice(-FEED_KEEP);
25
26
  }
26
- export function useConsoleData(client) {
27
+ const wordsOf = (failure, fallback) => failure instanceof ApiError ? failure.message : fallback;
28
+ /**
29
+ * The data of the console: the workspace, and the project `projectKey` names, kept current.
30
+ * A composition of its own calls this with the key of the project its page is on, or none.
31
+ */
32
+ export function useConsoleData(client, projectKey) {
27
33
  const [me, setMe] = useState(undefined);
28
34
  const [error, setError] = useState(undefined);
29
35
  const [loaded, setLoaded] = useState(false);
36
+ const [projects, setProjects] = useState([]);
37
+ const [people, setPeople] = useState([]);
38
+ const [tokens, setTokens] = useState([]);
39
+ const [project, setProject] = useState(undefined);
40
+ const [projectLoaded, setProjectLoaded] = useState(false);
41
+ const [projectError, setProjectError] = useState(undefined);
30
42
  const [live, setLive] = useState(false);
31
43
  const [tasks, setTasks] = useState([]);
32
44
  const [decisions, setDecisions] = useState([]);
33
- const [people, setPeople] = useState([]);
34
45
  const [runs, setRuns] = useState([]);
35
46
  const [events, setEvents] = useState([]);
36
- const [tokens, setTokens] = useState([]);
47
+ const [members, setMembers] = useState([]);
37
48
  const [skills, setSkills] = useState(undefined);
38
49
  const [generation, setGeneration] = useState(0);
39
50
  const lastEvent = useRef(0);
51
+ const signedIn = me?.person !== null && me !== undefined;
40
52
  const reload = useCallback(() => setGeneration((current) => current + 1), []);
41
- /** Loads the lists again. What fails stays as it was; the next event asks again. */
42
- const refreshLists = useCallback(async (signal) => {
43
- const [nextTasks, nextDecisions, nextPeople, nextRuns] = await Promise.all([
44
- client.tasks(undefined, signal),
45
- client.decisions(undefined, signal),
53
+ /** Loads the workspace's lists again. What fails stays as it was. */
54
+ const refreshWorkspace = useCallback(async (signal) => {
55
+ const [nextProjects, nextPeople] = await Promise.all([
56
+ client.projects(signal),
46
57
  client.people(signal),
47
- client.runs(undefined, signal),
48
58
  ]);
49
59
  if (signal?.aborted === true) {
50
60
  return;
51
61
  }
62
+ setProjects(nextProjects.items);
63
+ setPeople(nextPeople.items);
64
+ }, [client]);
65
+ /** Loads the project's lists again. What fails stays as it was; the next event asks again. */
66
+ const refreshProject = useCallback(async (signal) => {
67
+ if (projectKey === undefined) {
68
+ return;
69
+ }
70
+ const scope = client.project(projectKey);
71
+ const [nextProject, nextTasks, nextDecisions, nextRuns, nextMembers] = await Promise.all([
72
+ scope.get(signal),
73
+ scope.tasks(undefined, signal),
74
+ scope.decisions(undefined, signal),
75
+ scope.runs(undefined, signal),
76
+ scope.members(signal),
77
+ ]);
78
+ if (signal?.aborted === true) {
79
+ return;
80
+ }
81
+ setProject(nextProject);
52
82
  setTasks(nextTasks.items);
53
83
  setDecisions(nextDecisions.items);
54
- setPeople(nextPeople.items);
55
84
  setRuns(nextRuns.items);
56
- }, [client]);
57
- // Who is signed in, then the board, then the feed; and the stream from where the feed ends.
85
+ setMembers(nextMembers.items);
86
+ }, [client, projectKey]);
87
+ // Who is signed in, then the workspace: the projects, the people, the person's tokens.
58
88
  // biome-ignore lint/correctness/useExhaustiveDependencies: `generation` is the trigger
59
89
  useEffect(() => {
60
90
  const controller = new AbortController();
61
91
  const { signal } = controller;
62
- let source;
63
- let reloadTimer;
64
92
  setError(undefined);
65
93
  const run = async () => {
66
94
  let answer;
@@ -69,7 +97,7 @@ export function useConsoleData(client) {
69
97
  }
70
98
  catch (failure) {
71
99
  if (!signal.aborted) {
72
- setError(failure instanceof ApiError ? failure.message : "The server could not be reached.");
100
+ setError(wordsOf(failure, "The server could not be reached."));
73
101
  }
74
102
  return;
75
103
  }
@@ -82,28 +110,66 @@ export function useConsoleData(client) {
82
110
  return;
83
111
  }
84
112
  try {
85
- const [, feed, mine] = await Promise.all([
86
- refreshLists(signal),
87
- readFeed(client, signal),
88
- client.tokens(signal),
113
+ const [, mine] = await Promise.all([refreshWorkspace(signal), client.tokens(signal)]);
114
+ if (signal.aborted) {
115
+ return;
116
+ }
117
+ setTokens(mine.items);
118
+ setLoaded(true);
119
+ }
120
+ catch (failure) {
121
+ if (!signal.aborted) {
122
+ setError(wordsOf(failure, "The workspace could not be loaded."));
123
+ }
124
+ }
125
+ };
126
+ void run();
127
+ return () => controller.abort();
128
+ }, [client, generation, refreshWorkspace]);
129
+ // The project the page is on: its lists, its feed from the beginning, and its stream from
130
+ // where the feed ends. Another project, or none, starts over.
131
+ // biome-ignore lint/correctness/useExhaustiveDependencies: `generation` is the trigger
132
+ useEffect(() => {
133
+ setProject(undefined);
134
+ setProjectLoaded(false);
135
+ setProjectError(undefined);
136
+ setTasks([]);
137
+ setDecisions([]);
138
+ setRuns([]);
139
+ setEvents([]);
140
+ setMembers([]);
141
+ setSkills(undefined);
142
+ setLive(false);
143
+ if (projectKey === undefined || !signedIn) {
144
+ return;
145
+ }
146
+ const controller = new AbortController();
147
+ const { signal } = controller;
148
+ let source;
149
+ let reloadTimer;
150
+ const scope = client.project(projectKey);
151
+ const run = async () => {
152
+ try {
153
+ const [, feed] = await Promise.all([
154
+ refreshProject(signal),
155
+ readFeed(client, projectKey, signal),
89
156
  ]);
90
157
  if (signal.aborted) {
91
158
  return;
92
159
  }
93
160
  setEvents(feed);
94
- setTokens(mine.items);
95
161
  lastEvent.current = feed.at(-1)?.id ?? 0;
96
- setLoaded(true);
162
+ setProjectLoaded(true);
97
163
  }
98
164
  catch (failure) {
99
165
  if (!signal.aborted) {
100
- setError(failure instanceof ApiError ? failure.message : "The board could not be loaded.");
166
+ setProjectError(wordsOf(failure, "The project could not be loaded."));
101
167
  }
102
168
  return;
103
169
  }
104
170
  // The skills are someone else's to serve: asked for on their own, so that the board
105
171
  // stands without them.
106
- client
172
+ scope
107
173
  .skills(signal)
108
174
  .then((answer) => {
109
175
  if (!signal.aborted) {
@@ -114,7 +180,7 @@ export function useConsoleData(client) {
114
180
  if (typeof EventSource === "undefined") {
115
181
  return;
116
182
  }
117
- source = new EventSource(client.eventStreamUrl(lastEvent.current));
183
+ source = new EventSource(scope.eventStreamUrl(lastEvent.current));
118
184
  source.onopen = () => setLive(true);
119
185
  source.onerror = () => setLive(false);
120
186
  const arrived = (message) => {
@@ -127,7 +193,10 @@ export function useConsoleData(client) {
127
193
  setEvents((current) => [...current, event].slice(-FEED_KEEP));
128
194
  clearTimeout(reloadTimer);
129
195
  reloadTimer = setTimeout(() => {
130
- refreshLists(signal).catch(() => undefined);
196
+ refreshProject(signal).catch(() => undefined);
197
+ if (event.kind.startsWith("project.")) {
198
+ refreshWorkspace(signal).catch(() => undefined);
199
+ }
131
200
  }, RELOAD_DELAY_MS);
132
201
  };
133
202
  for (const kind of EVENT_KINDS) {
@@ -141,65 +210,117 @@ export function useConsoleData(client) {
141
210
  source?.close();
142
211
  setLive(false);
143
212
  };
144
- }, [client, generation, refreshLists]);
145
- const actions = useMemo(() => ({
146
- async createTask(input) {
147
- const task = await client.createTask(input);
148
- await refreshLists();
149
- return task;
150
- },
151
- async updateTask(id, patch) {
152
- const task = await client.updateTask(id, patch);
153
- setTasks((current) => current.map((candidate) => (candidate.id === id ? task : candidate)));
154
- return task;
155
- },
156
- async raiseDecision(input) {
157
- const decision = await client.raiseDecision(input);
158
- await refreshLists();
159
- return decision;
160
- },
161
- async answerDecision(id, input) {
162
- const decision = await client.answerDecision(id, input);
163
- await refreshLists();
164
- return decision;
165
- },
166
- async updatePerson(id, patch) {
167
- const person = await client.updatePerson(id, patch);
168
- setMe((current) => (current?.person?.id === id ? { ...current, person } : current));
169
- await refreshLists();
170
- return person;
171
- },
172
- async abandonRun(id) {
173
- const run = await client.endRun(id, { status: "abandoned" });
174
- await refreshLists();
175
- return run;
176
- },
177
- async createToken(input) {
178
- const made = await client.createToken(input);
179
- setTokens((await client.tokens()).items);
180
- return made;
181
- },
182
- async revokeToken(id) {
183
- await client.revokeToken(id);
184
- setTokens((current) => current.filter((token) => token.id !== id));
185
- },
186
- async signOut() {
187
- await client.signOut();
188
- setMe((current) => (current === undefined ? undefined : { ...current, person: null }));
189
- setLoaded(false);
190
- },
191
- }), [client, refreshLists]);
213
+ }, [client, projectKey, signedIn, generation, refreshProject, refreshWorkspace]);
214
+ const actions = useMemo(() => {
215
+ /** The project the page is on, for an action that needs one. */
216
+ const scope = () => {
217
+ if (projectKey === undefined) {
218
+ throw new ApiError(0, "no_project", "The page is on no project.");
219
+ }
220
+ return client.project(projectKey);
221
+ };
222
+ return {
223
+ async createProject(input) {
224
+ const made = await client.createProject(input);
225
+ await refreshWorkspace();
226
+ return made;
227
+ },
228
+ async updateProject(patch) {
229
+ const changed = await scope().update(patch);
230
+ setProject(changed);
231
+ await refreshWorkspace();
232
+ return changed;
233
+ },
234
+ async addMember(input) {
235
+ const member = await scope().addMember(input);
236
+ await refreshProject();
237
+ return member;
238
+ },
239
+ async updateMember(personId, patch) {
240
+ const member = await scope().updateMember(personId, patch);
241
+ await refreshProject();
242
+ return member;
243
+ },
244
+ async removeMember(personId) {
245
+ await scope().removeMember(personId);
246
+ await refreshProject();
247
+ },
248
+ async createTask(input) {
249
+ const task = await scope().createTask(input);
250
+ await refreshProject();
251
+ return task;
252
+ },
253
+ async updateTask(id, patch) {
254
+ const task = await scope().updateTask(id, patch);
255
+ setTasks((current) => current.map((candidate) => (candidate.id === id ? task : candidate)));
256
+ return task;
257
+ },
258
+ async raiseDecision(input) {
259
+ const decision = await scope().raiseDecision(input);
260
+ await refreshProject();
261
+ return decision;
262
+ },
263
+ async answerDecision(id, input) {
264
+ const decision = await scope().answerDecision(id, input);
265
+ await refreshProject();
266
+ return decision;
267
+ },
268
+ async updatePerson(id, patch) {
269
+ const person = await client.updatePerson(id, patch);
270
+ setMe((current) => (current?.person?.id === id ? { ...current, person } : current));
271
+ await refreshWorkspace();
272
+ return person;
273
+ },
274
+ async abandonRun(id) {
275
+ const run = await scope().endRun(id, { status: "abandoned" });
276
+ await refreshProject();
277
+ return run;
278
+ },
279
+ async taskHistory(taskId, signal) {
280
+ const history = [];
281
+ let after = 0;
282
+ for (let page = 0; page < FEED_MAX_PAGES; page += 1) {
283
+ const result = await scope().events(after, { task: taskId }, signal);
284
+ history.push(...result.items);
285
+ after = result.items.at(-1)?.id ?? after;
286
+ if (!result.more) {
287
+ break;
288
+ }
289
+ }
290
+ return history;
291
+ },
292
+ async createToken(input) {
293
+ const made = await client.createToken(input);
294
+ setTokens((await client.tokens()).items);
295
+ return made;
296
+ },
297
+ async revokeToken(id) {
298
+ await client.revokeToken(id);
299
+ setTokens((current) => current.filter((token) => token.id !== id));
300
+ },
301
+ async signOut() {
302
+ await client.signOut();
303
+ setMe((current) => (current === undefined ? undefined : { ...current, person: null }));
304
+ setLoaded(false);
305
+ },
306
+ };
307
+ }, [client, projectKey, refreshProject, refreshWorkspace]);
192
308
  return {
193
309
  me,
194
310
  error,
195
311
  loaded,
312
+ projects,
313
+ people,
314
+ tokens,
315
+ project,
316
+ projectLoaded,
317
+ projectError,
196
318
  live,
197
319
  tasks,
198
320
  decisions,
199
- people,
200
321
  runs,
201
322
  events,
202
- tokens,
323
+ members,
203
324
  skills,
204
325
  actions,
205
326
  reload,
package/dist/data.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export { DecisionCard, type DecisionCardProps, DecisionList, type DecisionListPr
5
5
  export { describeEvent, EventFeed, type EventFeedProps } from "./components/event-feed.js";
6
6
  export { Markdown } from "./components/markdown.js";
7
7
  export { PeopleList, type PeopleListProps } from "./components/people.js";
8
+ export { keyOf, MemberList, type MemberListProps, PROJECT_ROLE_LABELS, ProjectForm, type ProjectFormProps, ProjectList, type ProjectListProps, ProjectRoleBadge, VISIBILITY_LABELS, } from "./components/projects.js";
8
9
  export { RUN_STATUS_LABELS, RunCard, type RunCardProps, RunList, type RunListProps, RunStatusBadge, } from "./components/runs.js";
9
10
  export { type NavItem, Shell, type ShellProps } from "./components/shell.js";
10
11
  export { SignIn, type SignInProps } from "./components/sign-in.js";
@@ -15,5 +16,5 @@ export { NewToken, type NewTokenProps, TokenForm, type TokenFormProps, TokenList
15
16
  export { Avatar, Badge, Button, Callout, cx, EmptyState, formatBytes, formatInstant, PersonChip, PRIORITY_LABELS, PriorityBadge, ROLE_LABELS, RoleBadge, Spinner, STATE_LABELS, StateBadge, Time, } from "./components/ui.js";
16
17
  export { type ConsoleApp, type ConsoleComponents, type ConsoleConfig, createConsole, DEFAULT_COMPONENTS, } from "./console.js";
17
18
  export { type ConsoleActions, type ConsoleData, useConsoleData } from "./data.js";
18
- export { matchRoute, PATHS, type Route, signInFailureOf, taskHref, withoutSignInParam, } from "./router.js";
19
+ export { matchRoute, PATHS, type ProjectPage, projectHref, type Route, signInFailureOf, taskHref, withoutSignInParam, } from "./router.js";
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,KAAK,YAAY,EACjB,OAAO,EACP,KAAK,YAAY,EACjB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,EAClB,SAAS,EACT,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,EAAE,EACF,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,IAAI,GACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EACL,UAAU,EACV,KAAK,EACL,KAAK,KAAK,EACV,eAAe,EACf,QAAQ,EACR,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,KAAK,EACL,UAAU,EACV,KAAK,eAAe,EACpB,mBAAmB,EACnB,WAAW,EACX,KAAK,gBAAgB,EACrB,WAAW,EACX,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,KAAK,YAAY,EACjB,OAAO,EACP,KAAK,YAAY,EACjB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,EAClB,SAAS,EACT,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,EAAE,EACF,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,IAAI,GACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EACL,UAAU,EACV,KAAK,EACL,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,KAAK,EACV,eAAe,EACf,QAAQ,EACR,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ export { DecisionCard, DecisionList, } from "./components/decision-list.js";
9
9
  export { describeEvent, EventFeed } from "./components/event-feed.js";
10
10
  export { Markdown } from "./components/markdown.js";
11
11
  export { PeopleList } from "./components/people.js";
12
+ export { keyOf, MemberList, PROJECT_ROLE_LABELS, ProjectForm, ProjectList, ProjectRoleBadge, VISIBILITY_LABELS, } from "./components/projects.js";
12
13
  export { RUN_STATUS_LABELS, RunCard, RunList, RunStatusBadge, } from "./components/runs.js";
13
14
  export { Shell } from "./components/shell.js";
14
15
  export { SignIn } from "./components/sign-in.js";
@@ -19,5 +20,5 @@ export { NewToken, TokenForm, TokenList, } from "./components/tokens.js";
19
20
  export { Avatar, Badge, Button, Callout, cx, EmptyState, formatBytes, formatInstant, PersonChip, PRIORITY_LABELS, PriorityBadge, ROLE_LABELS, RoleBadge, Spinner, STATE_LABELS, StateBadge, Time, } from "./components/ui.js";
20
21
  export { createConsole, DEFAULT_COMPONENTS, } from "./console.js";
21
22
  export { useConsoleData } from "./data.js";
22
- export { matchRoute, PATHS, signInFailureOf, taskHref, withoutSignInParam, } from "./router.js";
23
+ export { matchRoute, PATHS, projectHref, signInFailureOf, taskHref, withoutSignInParam, } from "./router.js";
23
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,8FAA8F;AAC9F,kGAAkG;AAClG,yFAAyF;AAEzF,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,KAAK,EAAmB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EACL,YAAY,EAEZ,YAAY,GAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAuB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAwB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,OAAO,EAEP,OAAO,EAEP,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAgB,KAAK,EAAmB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAoB,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAuB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAsB,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAsB,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACL,QAAQ,EAER,SAAS,EAET,SAAS,GAEV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,EAAE,EACF,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,IAAI,GACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,aAAa,EACb,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAyC,cAAc,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EACL,UAAU,EACV,KAAK,EAEL,eAAe,EACf,QAAQ,EACR,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,8FAA8F;AAC9F,kGAAkG;AAClG,yFAAyF;AAEzF,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,KAAK,EAAmB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EACL,YAAY,EAEZ,YAAY,GAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAuB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAwB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,KAAK,EACL,UAAU,EAEV,mBAAmB,EACnB,WAAW,EAEX,WAAW,EAEX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,OAAO,EAEP,OAAO,EAEP,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAgB,KAAK,EAAmB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAoB,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAuB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAsB,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAsB,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACL,QAAQ,EAER,SAAS,EAET,SAAS,GAEV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,EAAE,EACF,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,IAAI,GACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,aAAa,EACb,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAyC,cAAc,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EACL,UAAU,EACV,KAAK,EAEL,WAAW,EAEX,eAAe,EACf,QAAQ,EACR,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
package/dist/limits.d.ts CHANGED
@@ -34,4 +34,11 @@ export declare const MAX_TOKEN_DAYS = 365;
34
34
  export declare const DEFAULT_TOKEN_DAYS = 90;
35
35
  /** How many tokens one person may hold at a time. */
36
36
  export declare const MAX_TOKENS_PER_PERSON = 25;
37
+ /** A project's key, what paths and the command say: lowercase letters, digits and hyphens. */
38
+ export declare const MAX_PROJECT_KEY_LENGTH = 40;
39
+ /** A project's name, one line, and its description, a paragraph. */
40
+ export declare const MAX_PROJECT_NAME_LENGTH = 100;
41
+ export declare const MAX_PROJECT_DESCRIPTION_LENGTH = 500;
42
+ /** The address of a project's skills, as the standard spells one; the console checks it as one. */
43
+ export declare const MAX_SKILLS_ADDRESS_LENGTH = 2048;
37
44
  //# sourceMappingURL=limits.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAIA,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,kEAAkE;AAClE,eAAO,MAAM,eAAe,QAAS,CAAC;AACtC,qEAAqE;AACrE,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,8DAA8D;AAC9D,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,uCAAuC;AACvC,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,4FAA4F;AAC5F,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,oFAAoF;AACpF,eAAO,MAAM,cAAc,QAAmB,CAAC;AAC/C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,2FAA2F;AAC3F,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
1
+ {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAIA,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,kEAAkE;AAClE,eAAO,MAAM,eAAe,QAAS,CAAC;AACtC,qEAAqE;AACrE,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,8DAA8D;AAC9D,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,uCAAuC;AACvC,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,4FAA4F;AAC5F,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,oFAAoF;AACpF,eAAO,MAAM,cAAc,QAAmB,CAAC;AAC/C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,2FAA2F;AAC3F,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,8FAA8F;AAC9F,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,mGAAmG;AACnG,eAAO,MAAM,yBAAyB,OAAO,CAAC"}
package/dist/limits.js CHANGED
@@ -37,4 +37,11 @@ export const MAX_TOKEN_DAYS = 365;
37
37
  export const DEFAULT_TOKEN_DAYS = 90;
38
38
  /** How many tokens one person may hold at a time. */
39
39
  export const MAX_TOKENS_PER_PERSON = 25;
40
+ /** A project's key, what paths and the command say: lowercase letters, digits and hyphens. */
41
+ export const MAX_PROJECT_KEY_LENGTH = 40;
42
+ /** A project's name, one line, and its description, a paragraph. */
43
+ export const MAX_PROJECT_NAME_LENGTH = 100;
44
+ export const MAX_PROJECT_DESCRIPTION_LENGTH = 500;
45
+ /** The address of a project's skills, as the standard spells one; the console checks it as one. */
46
+ export const MAX_SKILLS_ADDRESS_LENGTH = 2048;
40
47
  //# sourceMappingURL=limits.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,iGAAiG;AACjG,sDAAsD;AAEtD,uDAAuD;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,qEAAqE;AACrE,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,uCAAuC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,4FAA4F;AAC5F,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B,oDAAoD;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,uDAAuD;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,2FAA2F;AAC3F,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,qDAAqD;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,iGAAiG;AACjG,sDAAsD;AAEtD,uDAAuD;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,qEAAqE;AACrE,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,uCAAuC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,4FAA4F;AAC5F,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B,oDAAoD;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,uDAAuD;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,2FAA2F;AAC3F,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,qDAAqD;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,oEAAoE;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,mGAAmG;AACnG,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC"}