@lolkda/dsh-prompt-manager 3.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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +606 -0
  3. package/client/client.js +2320 -0
  4. package/cordis.patch.yml +20 -0
  5. package/environment.md +24 -0
  6. package/lib/entries.js +303 -0
  7. package/lib/entries.js.map +1 -0
  8. package/lib/guard.js +134 -0
  9. package/lib/guard.js.map +1 -0
  10. package/lib/index.js +959 -0
  11. package/lib/index.js.map +1 -0
  12. package/lib/net.js +179 -0
  13. package/lib/net.js.map +1 -0
  14. package/lib/pack.js +327 -0
  15. package/lib/pack.js.map +1 -0
  16. package/lib/probe.js +251 -0
  17. package/lib/probe.js.map +1 -0
  18. package/lib/routes.js +718 -0
  19. package/lib/routes.js.map +1 -0
  20. package/lib/scripts.js +803 -0
  21. package/lib/scripts.js.map +1 -0
  22. package/lib/source.js +308 -0
  23. package/lib/source.js.map +1 -0
  24. package/lib/store.js +223 -0
  25. package/lib/store.js.map +1 -0
  26. package/lib/subscriptions.js +269 -0
  27. package/lib/subscriptions.js.map +1 -0
  28. package/lib/sync.js +646 -0
  29. package/lib/sync.js.map +1 -0
  30. package/lib/types/entries.d.ts +194 -0
  31. package/lib/types/entries.d.ts.map +1 -0
  32. package/lib/types/guard.d.ts +63 -0
  33. package/lib/types/guard.d.ts.map +1 -0
  34. package/lib/types/index.d.ts +176 -0
  35. package/lib/types/index.d.ts.map +1 -0
  36. package/lib/types/net.d.ts +81 -0
  37. package/lib/types/net.d.ts.map +1 -0
  38. package/lib/types/pack.d.ts +298 -0
  39. package/lib/types/pack.d.ts.map +1 -0
  40. package/lib/types/probe.d.ts +150 -0
  41. package/lib/types/probe.d.ts.map +1 -0
  42. package/lib/types/routes.d.ts +85 -0
  43. package/lib/types/routes.d.ts.map +1 -0
  44. package/lib/types/scripts.d.ts +455 -0
  45. package/lib/types/scripts.d.ts.map +1 -0
  46. package/lib/types/source.d.ts +194 -0
  47. package/lib/types/source.d.ts.map +1 -0
  48. package/lib/types/store.d.ts +140 -0
  49. package/lib/types/store.d.ts.map +1 -0
  50. package/lib/types/subscriptions.d.ts +204 -0
  51. package/lib/types/subscriptions.d.ts.map +1 -0
  52. package/lib/types/sync.d.ts +248 -0
  53. package/lib/types/sync.d.ts.map +1 -0
  54. package/package.json +100 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../src/scripts.ts"],"names":[],"mappings":"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"}
package/lib/source.js ADDED
@@ -0,0 +1,308 @@
1
+ /**
2
+ * Subscription sources: where a prompt set comes from, and what the repository
3
+ * manifest says is inside it.
4
+ *
5
+ * Everything in this module is pure: string and JSON work only. The network
6
+ * lives in `net.ts`, the files and their history live in `sync.ts`, and the two
7
+ * are joined by the engine in `subscriptions.ts`.
8
+ *
9
+ * @module @lolkda/dsh-prompt-manager/source
10
+ */
11
+ import { MAX_ID_LENGTH } from './entries.js';
12
+ /** Manifest every subscribed repository must carry at its root. */
13
+ export const MANIFEST_FILE = 'prompt-manager.json';
14
+ /** Largest manifest accepted, in bytes. */
15
+ export const MAX_MANIFEST_BYTES = 64 * 1024;
16
+ /** Largest single prompt body accepted, in bytes. Mirrors the store's limit. */
17
+ export const MAX_FILE_BYTES = 256 * 1024;
18
+ /** At most this many prompts may come from one source. */
19
+ export const MAX_SOURCE_FILES = 50;
20
+ /** At most this many sources may be configured. */
21
+ export const MAX_SOURCES = 20;
22
+ /** `owner/name` as GitHub writes it. */
23
+ const REPO_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,38}\/[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/;
24
+ /** A branch, tag, or commit sha: no spaces, no traversal, no scheme. */
25
+ const REF_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._/-]{0,99}$/;
26
+ /** Source ids reuse the entry-id grammar: lowercase, hyphenated, path-safe. */
27
+ const SLUG_PATTERN = /^[a-z0-9][a-z0-9-]{0,63}$/;
28
+ /** A manifest that cannot be used, with the reason a person needs. */
29
+ export class ManifestError extends Error {
30
+ /** Machine-readable reason. */
31
+ reason;
32
+ /**
33
+ * @param reason - machine-readable reason.
34
+ * @param message - human-facing detail.
35
+ */
36
+ constructor(reason, message) {
37
+ super(message);
38
+ this.name = 'ManifestError';
39
+ this.reason = reason;
40
+ }
41
+ }
42
+ /**
43
+ * Whether a value is a usable `owner/name`.
44
+ * @param value - candidate repository.
45
+ * @returns `true` when the shape is acceptable.
46
+ */
47
+ export function isRepo(value) {
48
+ return typeof value === 'string' && REPO_PATTERN.test(value);
49
+ }
50
+ /**
51
+ * Whether a value is a usable ref. Path-shaped refs (`release/notes`) are
52
+ * allowed; anything with `..`, a leading dash, or a scheme is not.
53
+ * @param value - candidate ref.
54
+ * @returns `true` when the shape is acceptable.
55
+ */
56
+ export function isRef(value) {
57
+ if (typeof value !== 'string' || !REF_PATTERN.test(value))
58
+ return false;
59
+ return !value.includes('..');
60
+ }
61
+ /**
62
+ * Whether a value is a usable source slug.
63
+ * @param value - candidate slug.
64
+ * @returns `true` when the shape is acceptable.
65
+ */
66
+ export function isSourceId(value) {
67
+ return typeof value === 'string' && SLUG_PATTERN.test(value);
68
+ }
69
+ /**
70
+ * Derive a source slug from `owner/name`.
71
+ * @param repo - a validated `owner/name`.
72
+ * @returns a lowercase, hyphenated slug.
73
+ */
74
+ export function sourceSlug(repo) {
75
+ const slug = repo.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');
76
+ return SLUG_PATTERN.test(slug) ? slug.slice(0, 64) : 'source';
77
+ }
78
+ /**
79
+ * The id stem of one manifest file: its basename without the extension.
80
+ * @param file - repository-relative path.
81
+ * @returns a lowercase slug.
82
+ */
83
+ export function stemOf(file) {
84
+ const base = file.split('/').at(-1) ?? file;
85
+ const stem = base.replace(/\.md$/i, '').toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');
86
+ return stem.length > 0 ? stem.slice(0, 48) : 'prompt';
87
+ }
88
+ /**
89
+ * The local entry id a manifest file becomes.
90
+ *
91
+ * The id is capped at {@link MAX_ID_LENGTH}, so the source half gives up exactly
92
+ * the room its stem needs. Truncating the tail instead would collapse every file
93
+ * of a long-named source onto one id, and the index would silently keep only the
94
+ * first of them.
95
+ *
96
+ * @param sourceId - owning source slug.
97
+ * @param file - repository-relative path.
98
+ * @returns `<sourceId>-<stem>`, within the entry-id grammar.
99
+ */
100
+ export function entryIdFor(sourceId, file) {
101
+ return entryIdForStem(sourceId, stemOf(file));
102
+ }
103
+ /**
104
+ * The local entry id one stem becomes.
105
+ *
106
+ * Kept separate from {@link entryIdFor} because a manifest may declare the stem
107
+ * itself: `id` is the file's identity, not a label, so a file may be renamed in
108
+ * the repository while its local entry — and every preset naming it — stays put.
109
+ *
110
+ * @param sourceId - owning source slug.
111
+ * @param stem - declared id, or a file's own stem.
112
+ * @returns `<sourceId>-<stem>`, within the entry-id grammar.
113
+ */
114
+ export function entryIdForStem(sourceId, stem) {
115
+ const clean = stem.length > 0 ? stem.slice(0, 48) : 'prompt';
116
+ return `${sourceId.slice(0, MAX_ID_LENGTH - clean.length - 1)}-${clean}`;
117
+ }
118
+ /**
119
+ * The entry id one manifest prompt becomes, its own declaration first.
120
+ *
121
+ * @param sourceId - owning source slug.
122
+ * @param prompt - the manifest entry.
123
+ * @returns the local entry id.
124
+ */
125
+ export function entryIdForPrompt(sourceId, prompt) {
126
+ return prompt.id === undefined ? entryIdFor(sourceId, prompt.file) : entryIdForStem(sourceId, prompt.id);
127
+ }
128
+ /**
129
+ * Validate and normalize a repository manifest.
130
+ *
131
+ * The manifest is untrusted input from the internet: every field is checked,
132
+ * unknown fields are dropped, and a manifest that declares nothing usable is
133
+ * refused rather than silently producing an empty import.
134
+ *
135
+ * @param raw - parsed JSON from the repository.
136
+ * @returns the usable prompts, in manifest order.
137
+ * @throws {ManifestError} when the manifest cannot be used at all.
138
+ */
139
+ export function parseManifest(raw) {
140
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
141
+ throw new ManifestError('not-object', 'manifest must be a JSON object');
142
+ }
143
+ const list = raw['prompts'];
144
+ if (!Array.isArray(list))
145
+ throw new ManifestError('no-prompts', 'manifest must carry a "prompts" array');
146
+ if (list.length === 0)
147
+ throw new ManifestError('no-prompts', 'manifest declares no prompts');
148
+ if (list.length > MAX_SOURCE_FILES) {
149
+ throw new ManifestError('too-many', `manifest declares ${String(list.length)} prompts; the limit is ${String(MAX_SOURCE_FILES)}`);
150
+ }
151
+ const prompts = [];
152
+ const seen = new Set();
153
+ for (const candidate of list) {
154
+ if (typeof candidate !== 'object' || candidate === null || Array.isArray(candidate)) {
155
+ throw new ManifestError('bad-entry', 'every manifest prompt must be an object');
156
+ }
157
+ const record = candidate;
158
+ const file = record['file'];
159
+ if (typeof file !== 'string' || file.length === 0 || file.startsWith('/') || file.includes('..') || !file.toLowerCase().endsWith('.md')) {
160
+ throw new ManifestError('bad-entry', `unusable "file" in manifest: ${JSON.stringify(file)}`);
161
+ }
162
+ if (seen.has(file))
163
+ throw new ManifestError('bad-entry', `manifest lists ${file} twice`);
164
+ seen.add(file);
165
+ const prompt = { file };
166
+ const id = record['id'];
167
+ if (typeof id === 'string' && id.trim().length > 0)
168
+ prompt.id = stemOf(id.trim());
169
+ const title = record['title'];
170
+ if (typeof title === 'string' && title.trim().length > 0)
171
+ prompt.title = title.trim().slice(0, 120);
172
+ const order = record['order'];
173
+ if (typeof order === 'number' && Number.isFinite(order))
174
+ prompt.order = order;
175
+ const enabled = record['enabled'];
176
+ if (typeof enabled === 'boolean')
177
+ prompt.enabled = enabled;
178
+ prompts.push(prompt);
179
+ }
180
+ return prompts;
181
+ }
182
+ /**
183
+ * Normalize a URL-prefix mirror. Only an absolute `https` origin (plus an
184
+ * optional path) is accepted, with no query, fragment, or credentials — the
185
+ * same bar the market plugin applies to its `githubProxy`.
186
+ * @param value - the configured value.
187
+ * @returns the normalized mirror, or `undefined` when it is unusable.
188
+ */
189
+ export function normalizeMirror(value) {
190
+ if (typeof value !== 'string')
191
+ return undefined;
192
+ const trimmed = value.trim();
193
+ if (trimmed.length === 0)
194
+ return '';
195
+ try {
196
+ const url = new URL(trimmed);
197
+ if (url.protocol !== 'https:')
198
+ return undefined;
199
+ if (url.username !== '' || url.password !== '')
200
+ return undefined;
201
+ if (url.search !== '' || url.hash !== '')
202
+ return undefined;
203
+ return `${url.origin}${url.pathname.replace(/\/+$/, '')}`;
204
+ }
205
+ catch {
206
+ return undefined;
207
+ }
208
+ }
209
+ /**
210
+ * Rewrite an upstream URL for a mirror.
211
+ *
212
+ * Both shapes are accepted so an existing configuration keeps working: a
213
+ * template containing `{url}` gets the URL substituted, and anything else is
214
+ * treated as a prefix, giving `<prefix>/<url>` — exactly what the market plugin
215
+ * writes into its `githubProxy`.
216
+ *
217
+ * @param mirror - normalized mirror; empty means no rewrite.
218
+ * @param url - the absolute upstream URL.
219
+ * @returns the URL to request.
220
+ */
221
+ export function withMirror(mirror, url) {
222
+ if (mirror.length === 0)
223
+ return url;
224
+ if (mirror.includes('{url}'))
225
+ return mirror.split('{url}').join(url);
226
+ return `${mirror}/${url}`;
227
+ }
228
+ /**
229
+ * The raw-content URL of one repository file.
230
+ * @param repo - `owner/name`.
231
+ * @param ref - branch, tag, or commit.
232
+ * @param file - repository-relative path.
233
+ * @returns an absolute `raw.githubusercontent.com` URL.
234
+ */
235
+ export function rawUrl(repo, ref, file) {
236
+ const path = file.split('/').map((segment) => encodeURIComponent(segment)).join('/');
237
+ return `https://raw.githubusercontent.com/${repo}/${encodeURIComponent(ref)}/${path}`;
238
+ }
239
+ /**
240
+ * The commits feed that carries a branch's head sha without spending API quota.
241
+ * @param repo - `owner/name`.
242
+ * @param ref - branch name.
243
+ * @returns an absolute `github.com` atom URL.
244
+ */
245
+ export function headAtomUrl(repo, ref) {
246
+ return `https://github.com/${repo}/commits/${encodeURIComponent(ref)}.atom`;
247
+ }
248
+ /**
249
+ * Read the newest commit sha out of a commits atom feed.
250
+ * @param atom - the feed's XML.
251
+ * @returns the sha, or `undefined` when the feed does not carry one.
252
+ */
253
+ export function parseHeadSha(atom) {
254
+ const tagged = /Grit::Commit\/([0-9a-f]{40})/.exec(atom);
255
+ if (tagged?.[1] !== undefined)
256
+ return tagged[1];
257
+ return /[0-9a-f]{40}/.exec(atom)?.[0];
258
+ }
259
+ /**
260
+ * Whether a ref is worth probing for changes: a branch moves, a tag or commit
261
+ * does not.
262
+ * @param ref - the configured ref.
263
+ * @returns `true` when the ref should be probed.
264
+ */
265
+ export function isMovableRef(ref) {
266
+ return !/^[0-9a-f]{40}$/.test(ref);
267
+ }
268
+ /**
269
+ * Narrow one settings value into a source, dropping unknown fields.
270
+ * @param raw - a candidate from the `sources` array.
271
+ * @returns the source, or `undefined` when it is unusable.
272
+ */
273
+ export function parseSource(raw) {
274
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
275
+ return undefined;
276
+ const record = raw;
277
+ const { id, repo, ref } = record;
278
+ if (!isSourceId(id) || !isRepo(repo) || !isRef(ref))
279
+ return undefined;
280
+ // An absent mirror means "inherit the global one"; a present-but-unusable one
281
+ // means the source itself is unusable.
282
+ const mirror = record['mirror'] === undefined ? '' : normalizeMirror(record['mirror']);
283
+ if (mirror === undefined)
284
+ return undefined;
285
+ return { id, repo, ref, mirror, enabled: record['enabled'] !== false };
286
+ }
287
+ /**
288
+ * Narrow a settings value into a source list, dropping unusable entries.
289
+ * @param raw - the resolved `sources` field.
290
+ * @returns the usable sources, capped at {@link MAX_SOURCES}.
291
+ */
292
+ export function parseSources(raw) {
293
+ if (!Array.isArray(raw))
294
+ return [];
295
+ const sources = [];
296
+ const seen = new Set();
297
+ for (const candidate of raw) {
298
+ const source = parseSource(candidate);
299
+ if (source === undefined || seen.has(source.id))
300
+ continue;
301
+ seen.add(source.id);
302
+ sources.push(source);
303
+ if (sources.length >= MAX_SOURCES)
304
+ break;
305
+ }
306
+ return sources;
307
+ }
308
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
package/lib/store.js ADDED
@@ -0,0 +1,223 @@
1
+ /**
2
+ * The on-disk half of the prompt index: one markdown file per entry under a
3
+ * single directory, addressed by entry id.
4
+ *
5
+ * Everything a caller can name is validated before it reaches the filesystem —
6
+ * the id grammar is the only path segment this store ever accepts — and writes
7
+ * land through a temporary file plus a rename, so a crashed or interrupted
8
+ * write cannot leave a half-written body in the prompt.
9
+ *
10
+ * @module @lolkda/dsh-prompt-manager/store
11
+ */
12
+ import { createHash } from 'node:crypto';
13
+ import { accessSync, constants, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync, } from 'node:fs';
14
+ import { dirname, join, resolve } from 'node:path';
15
+ import { isEntryId, MAX_BODY_BYTES } from './entries.js';
16
+ /** Monotonic suffix keeping concurrent temporary names distinct within one process. */
17
+ let temporaryCounter = 0;
18
+ /** A store operation the caller should report, not retry blindly. */
19
+ export class PromptStoreError extends Error {
20
+ /** Machine-readable reason. */
21
+ code;
22
+ /**
23
+ * @param code - machine-readable reason.
24
+ * @param message - human-facing detail.
25
+ */
26
+ constructor(code, message) {
27
+ super(message);
28
+ this.name = 'PromptStoreError';
29
+ this.code = code;
30
+ }
31
+ }
32
+ /**
33
+ * sha1 of one body, the value the settings page round-trips to fence writes.
34
+ * @param body - exact UTF-8 contents.
35
+ * @returns a lowercase hex digest.
36
+ */
37
+ export function bodyHash(body) {
38
+ return createHash('sha1').update(body, 'utf8').digest('hex');
39
+ }
40
+ /**
41
+ * Body files for prompt entries, confined to one directory.
42
+ *
43
+ * The same guards back the user-script directory, where `id` is a script name
44
+ * and the file is `<name>.js`: one id grammar, one fence, one atomic write.
45
+ */
46
+ export class PromptStore {
47
+ /** Absolute directory holding the body files. */
48
+ dir;
49
+ /** File extension the store owns, leading dot included. */
50
+ extension;
51
+ /** Largest body this store accepts, in bytes. */
52
+ maxBytes;
53
+ /**
54
+ * @param dir - directory holding `<id><extension>`; created on first write.
55
+ * @param options - file extension and size cap; the prompt-body defaults are
56
+ * `.md` at 256 KiB, so the script store reuses every guard below unchanged.
57
+ */
58
+ constructor(dir, options = {}) {
59
+ this.dir = resolve(dir);
60
+ this.extension = options.extension ?? '.md';
61
+ this.maxBytes = options.maxBytes ?? MAX_BODY_BYTES;
62
+ }
63
+ /**
64
+ * Absolute path of one entry's body file.
65
+ * @param id - entry id; validated against the id grammar.
66
+ * @returns the absolute file path.
67
+ * @throws {PromptStoreError} when the id is unusable or escapes {@link dir}.
68
+ */
69
+ bodyPath(id) {
70
+ if (!isEntryId(id))
71
+ throw new PromptStoreError('invalid-id', `invalid prompt entry id ${JSON.stringify(id)}`);
72
+ const file = resolve(this.dir, `${id}${this.extension}`);
73
+ if (dirname(file) !== this.dir)
74
+ throw new PromptStoreError('invalid-id', `prompt entry id ${JSON.stringify(id)} escapes the store directory`);
75
+ return file;
76
+ }
77
+ /**
78
+ * Whether a body file exists.
79
+ * @param id - entry id.
80
+ * @returns `true` when the file is present.
81
+ */
82
+ has(id) {
83
+ try {
84
+ return existsSync(this.bodyPath(id));
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ /**
91
+ * Read one stored body.
92
+ * @param id - entry id.
93
+ * @returns the body and its hash, or `undefined` when no file exists.
94
+ * @throws {PromptStoreError} when the file exists but cannot be read.
95
+ */
96
+ read(id) {
97
+ const file = this.bodyPath(id);
98
+ if (!existsSync(file))
99
+ return undefined;
100
+ try {
101
+ const body = readFileSync(file, 'utf8');
102
+ return { body, sha1: bodyHash(body) };
103
+ }
104
+ catch (error) {
105
+ throw new PromptStoreError('unreadable', `cannot read ${file}: ${messageOf(error)}`);
106
+ }
107
+ }
108
+ /**
109
+ * Write one body, refusing a stale editor.
110
+ *
111
+ * The fence is judged against the file as it stands when the write reaches
112
+ * the disk, so two editors holding the same draft cannot both land.
113
+ *
114
+ * @param id - entry id.
115
+ * @param body - exact UTF-8 contents to store.
116
+ * @param fence - what the caller expects to find; defaults to overwriting.
117
+ * @returns the hash of what was written.
118
+ * @throws {PromptStoreError} on an invalid id, oversized body, fence mismatch, or failed write.
119
+ */
120
+ write(id, body, fence = { kind: 'any' }) {
121
+ const file = this.bodyPath(id);
122
+ const size = Buffer.byteLength(body, 'utf8');
123
+ if (size > this.maxBytes) {
124
+ throw new PromptStoreError('too-large', `prompt body is ${String(size)} bytes; the limit is ${String(this.maxBytes)}`);
125
+ }
126
+ if (fence.kind !== 'any') {
127
+ const current = this.read(id);
128
+ if (fence.kind === 'absent' && current !== undefined) {
129
+ throw new PromptStoreError('conflict', `${id}${this.extension} appeared while this draft was open`);
130
+ }
131
+ if (fence.kind === 'sha1' && current?.sha1 !== fence.sha1) {
132
+ throw new PromptStoreError('conflict', `${id}${this.extension} changed on disk while this draft was open`);
133
+ }
134
+ }
135
+ this.ensureDirectory();
136
+ temporaryCounter += 1;
137
+ const temporary = join(this.dir, `.${id}${this.extension}.${String(process.pid)}.${String(temporaryCounter)}.tmp`);
138
+ try {
139
+ writeFileSync(temporary, body, 'utf8');
140
+ renameSync(temporary, file);
141
+ }
142
+ catch (error) {
143
+ try {
144
+ rmSync(temporary, { force: true });
145
+ }
146
+ catch {
147
+ /* the temporary file is best-effort cleanup; the write error is what matters */
148
+ }
149
+ throw new PromptStoreError('unwritable', `cannot write ${file}: ${messageOf(error)}`);
150
+ }
151
+ return { body, sha1: bodyHash(body) };
152
+ }
153
+ /**
154
+ * Remove one stored body, which restores the bundled default.
155
+ * @param id - entry id.
156
+ * @returns `true` when a file was removed.
157
+ * @throws {PromptStoreError} when the removal fails.
158
+ */
159
+ remove(id) {
160
+ const file = this.bodyPath(id);
161
+ if (!existsSync(file))
162
+ return false;
163
+ try {
164
+ rmSync(file);
165
+ return true;
166
+ }
167
+ catch (error) {
168
+ throw new PromptStoreError('unwritable', `cannot remove ${file}: ${messageOf(error)}`);
169
+ }
170
+ }
171
+ /**
172
+ * The directory's situation, for the settings page.
173
+ * @returns the directory, whether writing is possible, and the stored ids.
174
+ */
175
+ status() {
176
+ let writable = false;
177
+ try {
178
+ this.ensureDirectory();
179
+ accessSync(this.dir, constants.W_OK);
180
+ writable = true;
181
+ }
182
+ catch {
183
+ writable = false;
184
+ }
185
+ return { dir: this.dir, writable, ids: this.ids() };
186
+ }
187
+ /**
188
+ * Ids that currently have a body file.
189
+ * @returns the stored ids, in directory order; empty when the directory is absent.
190
+ */
191
+ ids() {
192
+ if (!existsSync(this.dir))
193
+ return [];
194
+ try {
195
+ return readdirSync(this.dir)
196
+ .filter((name) => name.endsWith(this.extension))
197
+ .map((name) => name.slice(0, -this.extension.length))
198
+ .filter((id) => isEntryId(id))
199
+ .sort();
200
+ }
201
+ catch {
202
+ return [];
203
+ }
204
+ }
205
+ /** Create {@link dir} when it is missing. */
206
+ ensureDirectory() {
207
+ try {
208
+ mkdirSync(this.dir, { recursive: true });
209
+ }
210
+ catch (error) {
211
+ throw new PromptStoreError('unwritable', `cannot create ${this.dir}: ${messageOf(error)}`);
212
+ }
213
+ }
214
+ }
215
+ /**
216
+ * Message text of an unknown thrown value.
217
+ * @param error - the caught value.
218
+ * @returns a human-facing message.
219
+ */
220
+ function messageOf(error) {
221
+ return error instanceof Error ? error.message : String(error);
222
+ }
223
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAExD,uFAAuF;AACvF,IAAI,gBAAgB,GAAG,CAAC,CAAA;AAKxB,qEAAqE;AACrE,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,+BAA+B;IACtB,IAAI,CAAsB;IAEnC;;;OAGG;IACH,YAAY,IAA0B,EAAE,OAAe;QACrD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AA6BD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9D,CAAC;AAUD;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACtB,iDAAiD;IACxC,GAAG,CAAQ;IAEpB,2DAA2D;IAC1C,SAAS,CAAQ;IAElC,iDAAiD;IAChC,QAAQ,CAAQ;IAEjC;;;;OAIG;IACH,YAAY,GAAW,EAAE,UAA8B,EAAE;QACvD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAA;IACpD,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,EAAU;QACjB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,gBAAgB,CAAC,YAAY,EAAE,2BAA2B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7G,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACxD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,gBAAgB,CAAC,YAAY,EAAE,mBAAmB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAA;QAC7I,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,EAAU;QACZ,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,EAAU;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAA;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACvC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAA;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CAAC,YAAY,EAAE,eAAe,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACtF,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAU,EAAE,IAAY,EAAE,QAAoB,EAAE,IAAI,EAAE,KAAK,EAAE;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,MAAM,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACxH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACrD,MAAM,IAAI,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,qCAAqC,CAAC,CAAA;YACrG,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,4CAA4C,CAAC,CAAA;YAC5G,CAAC;QACH,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,gBAAgB,IAAI,CAAC,CAAA;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAClH,IAAI,CAAC;YACH,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YACtC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,gFAAgF;YAClF,CAAC;YACD,MAAM,IAAI,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACvF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAA;IACvC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAA;QACnC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,CAAA;YACZ,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CAAC,YAAY,EAAE,iBAAiB,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;YACpC,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,KAAK,CAAA;QAClB,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IACrD,CAAC;IAED;;;OAGG;IACH,GAAG;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAA;QACpC,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;iBACzB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;iBACpD,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iBAC7B,IAAI,EAAE,CAAA;QACX,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED,6CAA6C;IACrC,eAAe;QACrB,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CAAC,YAAY,EAAE,iBAAiB,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5F,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC"}