@geekity/cms 0.41.0 → 0.42.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 (199) hide show
  1. package/admin/components/blocks.njk +15 -1
  2. package/admin/pages/documents/editor.njk +1 -0
  3. package/admin/pages/settings/reading.njk +14 -0
  4. package/admin/pages/users/writing-goals.njk +64 -0
  5. package/admin/static/admin.css +5 -1
  6. package/admin/static/editor.js +21 -18
  7. package/dist/access-log.d.ts +3 -0
  8. package/dist/access-log.d.ts.map +1 -1
  9. package/dist/access-log.js +13 -9
  10. package/dist/access-log.js.map +1 -1
  11. package/dist/admin/autosave.d.ts +1 -0
  12. package/dist/admin/autosave.d.ts.map +1 -1
  13. package/dist/admin/autosave.js +20 -4
  14. package/dist/admin/autosave.js.map +1 -1
  15. package/dist/admin/blocks.d.ts +13 -1
  16. package/dist/admin/blocks.d.ts.map +1 -1
  17. package/dist/admin/blocks.js +40 -5
  18. package/dist/admin/blocks.js.map +1 -1
  19. package/dist/admin/core-widgets.d.ts.map +1 -1
  20. package/dist/admin/core-widgets.js +2 -0
  21. package/dist/admin/core-widgets.js.map +1 -1
  22. package/dist/admin/documents.d.ts.map +1 -1
  23. package/dist/admin/documents.js +18 -0
  24. package/dist/admin/documents.js.map +1 -1
  25. package/dist/admin/editor-word-counter.d.ts +8 -0
  26. package/dist/admin/editor-word-counter.d.ts.map +1 -0
  27. package/dist/admin/editor-word-counter.js +27 -0
  28. package/dist/admin/editor-word-counter.js.map +1 -0
  29. package/dist/admin/editor-words.d.ts +7 -0
  30. package/dist/admin/editor-words.d.ts.map +1 -0
  31. package/dist/admin/editor-words.js +9 -0
  32. package/dist/admin/editor-words.js.map +1 -0
  33. package/dist/admin/focus-mode.d.ts +0 -2
  34. package/dist/admin/focus-mode.d.ts.map +1 -1
  35. package/dist/admin/focus-mode.js +0 -10
  36. package/dist/admin/focus-mode.js.map +1 -1
  37. package/dist/admin/menu.d.ts.map +1 -1
  38. package/dist/admin/menu.js +2 -0
  39. package/dist/admin/menu.js.map +1 -1
  40. package/dist/admin/routes.d.ts.map +1 -1
  41. package/dist/admin/routes.js +2 -0
  42. package/dist/admin/routes.js.map +1 -1
  43. package/dist/admin/settings-fields.d.ts.map +1 -1
  44. package/dist/admin/settings-fields.js +1 -0
  45. package/dist/admin/settings-fields.js.map +1 -1
  46. package/dist/admin/settings-reading.d.ts.map +1 -1
  47. package/dist/admin/settings-reading.js +7 -1
  48. package/dist/admin/settings-reading.js.map +1 -1
  49. package/dist/admin/templates.d.ts +1 -0
  50. package/dist/admin/templates.d.ts.map +1 -1
  51. package/dist/admin/templates.js +1 -0
  52. package/dist/admin/templates.js.map +1 -1
  53. package/dist/admin/users.d.ts.map +1 -1
  54. package/dist/admin/users.js +2 -0
  55. package/dist/admin/users.js.map +1 -1
  56. package/dist/admin/widget-writing.d.ts +3 -0
  57. package/dist/admin/widget-writing.d.ts.map +1 -0
  58. package/dist/admin/widget-writing.js +102 -0
  59. package/dist/admin/widget-writing.js.map +1 -0
  60. package/dist/admin/widgets.d.ts +4 -1
  61. package/dist/admin/widgets.d.ts.map +1 -1
  62. package/dist/admin/widgets.js +19 -8
  63. package/dist/admin/widgets.js.map +1 -1
  64. package/dist/admin/writing-goals.d.ts +33 -0
  65. package/dist/admin/writing-goals.d.ts.map +1 -0
  66. package/dist/admin/writing-goals.js +149 -0
  67. package/dist/admin/writing-goals.js.map +1 -0
  68. package/dist/cli.d.ts +1 -1
  69. package/dist/cli.d.ts.map +1 -1
  70. package/dist/cli.js +64 -3
  71. package/dist/cli.js.map +1 -1
  72. package/dist/cms/create.d.ts +5 -2
  73. package/dist/cms/create.d.ts.map +1 -1
  74. package/dist/cms/create.js +60 -2
  75. package/dist/cms/create.js.map +1 -1
  76. package/dist/cms/server-error.d.ts.map +1 -1
  77. package/dist/cms/server-error.js +1 -0
  78. package/dist/cms/server-error.js.map +1 -1
  79. package/dist/cms/services.d.ts.map +1 -1
  80. package/dist/cms/services.js +5 -0
  81. package/dist/cms/services.js.map +1 -1
  82. package/dist/config.d.ts +20 -0
  83. package/dist/config.d.ts.map +1 -1
  84. package/dist/config.js +6 -2
  85. package/dist/config.js.map +1 -1
  86. package/dist/content/words.d.ts +3 -0
  87. package/dist/content/words.d.ts.map +1 -0
  88. package/dist/content/words.js +120 -0
  89. package/dist/content/words.js.map +1 -0
  90. package/dist/files/data-files.d.ts +3 -0
  91. package/dist/files/data-files.d.ts.map +1 -1
  92. package/dist/files/data-files.js +18 -0
  93. package/dist/files/data-files.js.map +1 -1
  94. package/dist/gemini/capsule.d.ts +4 -0
  95. package/dist/gemini/capsule.d.ts.map +1 -0
  96. package/dist/gemini/capsule.js +9 -0
  97. package/dist/gemini/capsule.js.map +1 -0
  98. package/dist/gemini/certificate.d.ts +34 -0
  99. package/dist/gemini/certificate.d.ts.map +1 -0
  100. package/dist/gemini/certificate.js +255 -0
  101. package/dist/gemini/certificate.js.map +1 -0
  102. package/dist/gemini/site-certificate.d.ts +8 -0
  103. package/dist/gemini/site-certificate.d.ts.map +1 -0
  104. package/dist/gemini/site-certificate.js +17 -0
  105. package/dist/gemini/site-certificate.js.map +1 -0
  106. package/dist/micropub/endpoint.d.ts.map +1 -1
  107. package/dist/micropub/endpoint.js +12 -0
  108. package/dist/micropub/endpoint.js.map +1 -1
  109. package/dist/plugin.d.ts +14 -1
  110. package/dist/plugin.d.ts.map +1 -1
  111. package/dist/plugin.js.map +1 -1
  112. package/dist/site/namespace.d.ts +1 -0
  113. package/dist/site/namespace.d.ts.map +1 -1
  114. package/dist/site/namespace.js +6 -0
  115. package/dist/site/namespace.js.map +1 -1
  116. package/dist/site/users.d.ts +7 -0
  117. package/dist/site/users.d.ts.map +1 -1
  118. package/dist/site/users.js +7 -0
  119. package/dist/site/users.js.map +1 -1
  120. package/dist/site/writing-goals.d.ts +22 -0
  121. package/dist/site/writing-goals.d.ts.map +1 -0
  122. package/dist/site/writing-goals.js +42 -0
  123. package/dist/site/writing-goals.js.map +1 -0
  124. package/dist/util/public-address.d.ts +1 -0
  125. package/dist/util/public-address.d.ts.map +1 -1
  126. package/dist/util/public-address.js +38 -30
  127. package/dist/util/public-address.js.map +1 -1
  128. package/dist/web/access-line.d.ts +2 -0
  129. package/dist/web/access-line.d.ts.map +1 -0
  130. package/dist/web/access-line.js +6 -0
  131. package/dist/web/access-line.js.map +1 -0
  132. package/dist/web/document-page.d.ts.map +1 -1
  133. package/dist/web/document-page.js +3 -4
  134. package/dist/web/document-page.js.map +1 -1
  135. package/dist/web/feed-routes.d.ts.map +1 -1
  136. package/dist/web/feed-routes.js +4 -4
  137. package/dist/web/feed-routes.js.map +1 -1
  138. package/dist/web/gemini-listener.d.ts +30 -0
  139. package/dist/web/gemini-listener.d.ts.map +1 -0
  140. package/dist/web/gemini-listener.js +186 -0
  141. package/dist/web/gemini-listener.js.map +1 -0
  142. package/dist/web/gemini-request.d.ts +23 -0
  143. package/dist/web/gemini-request.d.ts.map +1 -0
  144. package/dist/web/gemini-request.js +127 -0
  145. package/dist/web/gemini-request.js.map +1 -0
  146. package/dist/web/listing-pages.d.ts.map +1 -1
  147. package/dist/web/listing-pages.js +7 -5
  148. package/dist/web/listing-pages.js.map +1 -1
  149. package/dist/web/llms.d.ts +1 -0
  150. package/dist/web/llms.d.ts.map +1 -1
  151. package/dist/web/llms.js +3 -0
  152. package/dist/web/llms.js.map +1 -1
  153. package/dist/web/maintenance.js +1 -0
  154. package/dist/web/maintenance.js.map +1 -1
  155. package/dist/web/markdown-representation.d.ts +11 -20
  156. package/dist/web/markdown-representation.d.ts.map +1 -1
  157. package/dist/web/markdown-representation.js +57 -58
  158. package/dist/web/markdown-representation.js.map +1 -1
  159. package/dist/web/negotiate.d.ts +4 -16
  160. package/dist/web/negotiate.d.ts.map +1 -1
  161. package/dist/web/negotiate.js +23 -18
  162. package/dist/web/negotiate.js.map +1 -1
  163. package/dist/web/proxy-protocol.d.ts +13 -0
  164. package/dist/web/proxy-protocol.d.ts.map +1 -0
  165. package/dist/web/proxy-protocol.js +79 -0
  166. package/dist/web/proxy-protocol.js.map +1 -0
  167. package/dist/web/render.d.ts +33 -20
  168. package/dist/web/render.d.ts.map +1 -1
  169. package/dist/web/render.js +64 -27
  170. package/dist/web/render.js.map +1 -1
  171. package/dist/web/routes.d.ts.map +1 -1
  172. package/dist/web/routes.js +4 -8
  173. package/dist/web/routes.js.map +1 -1
  174. package/dist/web/site-index.d.ts.map +1 -1
  175. package/dist/web/site-index.js +6 -2
  176. package/dist/web/site-index.js.map +1 -1
  177. package/dist/web/status-pages.d.ts +2 -3
  178. package/dist/web/status-pages.d.ts.map +1 -1
  179. package/dist/web/status-pages.js +14 -11
  180. package/dist/web/status-pages.js.map +1 -1
  181. package/dist/web/throttle.d.ts +9 -0
  182. package/dist/web/throttle.d.ts.map +1 -1
  183. package/dist/web/throttle.js +17 -0
  184. package/dist/web/throttle.js.map +1 -1
  185. package/dist/writing/ledger.d.ts +15 -0
  186. package/dist/writing/ledger.d.ts.map +1 -0
  187. package/dist/writing/ledger.js +70 -0
  188. package/dist/writing/ledger.js.map +1 -0
  189. package/dist/writing/progress.d.ts +25 -0
  190. package/dist/writing/progress.d.ts.map +1 -0
  191. package/dist/writing/progress.js +83 -0
  192. package/dist/writing/progress.js.map +1 -0
  193. package/package.json +2 -1
  194. package/themes/default/layouts/404.gmi.njk +10 -0
  195. package/themes/default/layouts/410.gmi.njk +8 -0
  196. package/themes/default/layouts/500.gmi.njk +9 -0
  197. package/themes/default/layouts/503.gmi.njk +9 -0
  198. package/themes/default/layouts/base.njk +3 -0
  199. package/themes/default/partials/markdown-footer.md.njk +9 -1
@@ -125,6 +125,16 @@ export const ACTOR_KEYS = declareDataFile({
125
125
  dataClass: KEPT,
126
126
  lost: "The actors' signing keys: remote servers reject signatures until they fetch the actor again, and proofs on objects already sent stop verifying.",
127
127
  });
128
+ export const GEMINI_CERTIFICATE = declareDataFile({
129
+ pattern: 'gemini/cert.pem',
130
+ dataClass: KEPT,
131
+ lost: 'The certificate Gemini clients pinned on first visit: a new one is generated, and every client that has visited warns that the capsule changed identity.',
132
+ });
133
+ export const GEMINI_KEY = declareDataFile({
134
+ pattern: 'gemini/key.pem',
135
+ dataClass: KEPT,
136
+ lost: "The Gemini certificate's private key, without which the certificate is useless and a new pair is generated.",
137
+ });
128
138
  export const USERS = declareDataFile({
129
139
  pattern: 'users.json',
130
140
  dataClass: KEPT,
@@ -170,6 +180,11 @@ export const KEPT_PROPERTIES = declareDataFile({
170
180
  dataClass: KEPT,
171
181
  lost: 'Micropub properties the site does not understand, such as an RSVP.',
172
182
  });
183
+ export const WRITING_LEDGERS = declareDataFile({
184
+ pattern: 'writing/*.json',
185
+ dataClass: KEPT,
186
+ lost: "Each user's words written per day, which writing goals and streaks are counted from. Nothing else holds it.",
187
+ });
173
188
  export const PLUGIN_CHANGES = declareDataFile({
174
189
  pattern: 'plugin-changes.json',
175
190
  dataClass: KEPT,
@@ -254,6 +269,8 @@ export const CORE_DATA_FILES = [
254
269
  IMPORT_ASIDE,
255
270
  EXPORTS,
256
271
  ACTOR_KEYS,
272
+ GEMINI_CERTIFICATE,
273
+ GEMINI_KEY,
257
274
  USERS,
258
275
  NOTIFICATION_SECRET,
259
276
  COMMENT_SALT,
@@ -263,6 +280,7 @@ export const CORE_DATA_FILES = [
263
280
  INDIEAUTH_TOKENS,
264
281
  LOCATIONS,
265
282
  KEPT_PROPERTIES,
283
+ WRITING_LEDGERS,
266
284
  PLUGIN_CHANGES,
267
285
  JOBS,
268
286
  DEV_MODE_RECORD,
@@ -1 +1 @@
1
- {"version":3,"file":"data-files.js","sourceRoot":"","sources":["../../src/files/data-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-files.js","sourceRoot":"","sources":["../../src/files/data-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ResolvedConfig } from '../config.ts';
2
+ import type { SiteSettings } from '../site/settings.ts';
3
+ export declare function capsuleUrl(config: Pick<ResolvedConfig, 'baseUrl' | 'baseUrlSource' | 'geminiPort'>, site: SiteSettings, path: string): string | undefined;
4
+ //# sourceMappingURL=capsule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capsule.d.ts","sourceRoot":"","sources":["../../src/gemini/capsule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,wBAAgB,UAAU,CACxB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,eAAe,GAAG,YAAY,CAAC,EACxE,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAIpB"}
@@ -0,0 +1,9 @@
1
+ import { DEFAULT_GEMINI_PORT } from '../config.js';
2
+ import { geminiHost } from './site-certificate.js';
3
+ export function capsuleUrl(config, site, path) {
4
+ if (!site.gemini)
5
+ return undefined;
6
+ const port = config.geminiPort === DEFAULT_GEMINI_PORT ? '' : `:${String(config.geminiPort)}`;
7
+ return `gemini://${geminiHost(config, site)}${port}${path}`;
8
+ }
9
+ //# sourceMappingURL=capsule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capsule.js","sourceRoot":"","sources":["../../src/gemini/capsule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,UAAU,UAAU,CACxB,MAAwE,EACxE,IAAkB,EAClB,IAAY;IAEZ,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,KAAK,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;IAC9F,OAAO,YAAY,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { ResolvedConfig } from '../config.ts';
2
+ export type GeminiCertificateConfig = Pick<ResolvedConfig, 'dataDir' | 'geminiCert' | 'geminiKey'>;
3
+ export interface GeminiCertificate {
4
+ readonly source: 'generated' | 'operator';
5
+ readonly certFile: string;
6
+ readonly keyFile: string;
7
+ readonly cert: string;
8
+ readonly key: string;
9
+ readonly subject: string;
10
+ readonly validTo: Date;
11
+ readonly fingerprint256: string;
12
+ readonly coversHost: boolean;
13
+ }
14
+ export type GeminiCertificateResult = {
15
+ readonly ok: true;
16
+ readonly certificate: GeminiCertificate;
17
+ } | {
18
+ readonly ok: false;
19
+ readonly problem: string;
20
+ };
21
+ export declare function readGeminiCertificate(config: GeminiCertificateConfig, host: string): Promise<GeminiCertificateResult>;
22
+ export declare function ensureGeminiCertificate(config: GeminiCertificateConfig, host: string, now: Date): Promise<GeminiCertificateResult>;
23
+ export declare function regenerateGeminiCertificate(config: GeminiCertificateConfig, host: string, now: Date): Promise<GeminiCertificateResult>;
24
+ /**
25
+ * An X.509 v3 certificate signed by its own ECDSA P-256 key, naming `host`
26
+ * as its common name and its one subject alternative name. Node can sign but
27
+ * not build a certificate, so the few DER structures it needs are written
28
+ * here rather than taken from a dependency.
29
+ */
30
+ export declare function selfSignedCertificate(host: string, now: Date): {
31
+ cert: string;
32
+ key: string;
33
+ };
34
+ //# sourceMappingURL=certificate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.d.ts","sourceRoot":"","sources":["../../src/gemini/certificate.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAMnD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC;AAEnG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAYrD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,uBAAuB,EAC/B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,uBAAuB,CAAC,CAWlC;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,uBAAuB,EAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,uBAAuB,CAAC,CAOlC;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,uBAAuB,EAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,uBAAuB,CAAC,CAWlC;AAgID;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAuB5F"}
@@ -0,0 +1,255 @@
1
+ import { X509Certificate, createPrivateKey, generateKeyPairSync, randomBytes, sign, } from 'node:crypto';
2
+ import { mkdirSync } from 'node:fs';
3
+ import { readFile } from 'node:fs/promises';
4
+ import { isIP } from 'node:net';
5
+ import { readFileIfPresentSync, writeFileAtomicallySync } from '../files/atomic.js';
6
+ import { GEMINI_CERTIFICATE, GEMINI_KEY, dataFolder, dataPath } from '../files/data-files.js';
7
+ import { lockFileFor, withLockFile } from '../jobs/lock-file.js';
8
+ import { messageOf } from '../util/errors.js';
9
+ /**
10
+ * Long enough that no client sees it expire. Gemini clients pin a certificate
11
+ * on first sight (decision-60), so an expiry is a forced change of identity.
12
+ */
13
+ const VALID_YEARS = 50;
14
+ const DAY_MS = 24 * 60 * 60 * 1000;
15
+ const KEY_MODE = 0o600;
16
+ const CERT_MODE = 0o644;
17
+ const FOLDER_MODE = 0o700;
18
+ export async function readGeminiCertificate(config, host) {
19
+ const operator = operatorFiles(config);
20
+ if (operator !== undefined)
21
+ return await readOperator(operator, host);
22
+ const files = generatedFiles(config.dataDir);
23
+ if (readFileIfPresentSync(files.cert) === undefined) {
24
+ return {
25
+ ok: false,
26
+ problem: `There is no Gemini certificate yet. One is generated at ${files.cert} when the site starts with Gemini on.`,
27
+ };
28
+ }
29
+ return readGenerated(files, host);
30
+ }
31
+ export async function ensureGeminiCertificate(config, host, now) {
32
+ const operator = operatorFiles(config);
33
+ if (operator !== undefined)
34
+ return await readOperator(operator, host);
35
+ return await underLock(config.dataDir, (files) => {
36
+ if (readFileIfPresentSync(files.cert) === undefined)
37
+ writePair(config.dataDir, host, now);
38
+ return readGenerated(files, host);
39
+ });
40
+ }
41
+ export async function regenerateGeminiCertificate(config, host, now) {
42
+ if (operatorFiles(config) !== undefined) {
43
+ return {
44
+ ok: false,
45
+ problem: `The Gemini certificate is the operator's own, named by ${CERT_SETTING} and ${KEY_SETTING}. Replace those files instead.`,
46
+ };
47
+ }
48
+ return await underLock(config.dataDir, (files) => {
49
+ writePair(config.dataDir, host, now);
50
+ return readGenerated(files, host);
51
+ });
52
+ }
53
+ const CERT_SETTING = 'GEEKITY_GEMINI_CERT (geminiCert)';
54
+ const KEY_SETTING = 'GEEKITY_GEMINI_KEY (geminiKey)';
55
+ function operatorFiles(config) {
56
+ const { geminiCert: cert, geminiKey: key } = config;
57
+ return cert === undefined && key === undefined ? undefined : { cert, key };
58
+ }
59
+ function generatedFiles(dataDir) {
60
+ return { cert: dataPath(dataDir, GEMINI_CERTIFICATE), key: dataPath(dataDir, GEMINI_KEY) };
61
+ }
62
+ async function underLock(dataDir, task) {
63
+ mkdirSync(dataDir, { recursive: true });
64
+ mkdirSync(dataFolder(dataDir, GEMINI_KEY), { recursive: true, mode: FOLDER_MODE });
65
+ const files = generatedFiles(dataDir);
66
+ return await withLockFile(lockFileFor(files.cert), () => Promise.resolve(task(files)));
67
+ }
68
+ async function readOperator(files, host) {
69
+ const { cert: certFile, key: keyFile } = files;
70
+ if (certFile === undefined || keyFile === undefined) {
71
+ const [set, unset] = certFile === undefined ? [KEY_SETTING, CERT_SETTING] : [CERT_SETTING, KEY_SETTING];
72
+ return {
73
+ ok: false,
74
+ problem: `${set} is set without ${unset}. Set both, or neither to use the generated certificate.`,
75
+ };
76
+ }
77
+ const texts = [];
78
+ for (const [file, setting] of [
79
+ [certFile, CERT_SETTING],
80
+ [keyFile, KEY_SETTING],
81
+ ]) {
82
+ try {
83
+ texts.push(await readFile(file, 'utf8'));
84
+ }
85
+ catch (error) {
86
+ return {
87
+ ok: false,
88
+ problem: `${setting} names ${file}, which cannot be read: ${messageOf(error)}`,
89
+ };
90
+ }
91
+ }
92
+ const [cert = '', key = ''] = texts;
93
+ return parsePair({ cert: certFile, key: keyFile }, { cert, key }, 'operator', host);
94
+ }
95
+ function readGenerated(files, host) {
96
+ const cert = readFileIfPresentSync(files.cert);
97
+ const key = readFileIfPresentSync(files.key);
98
+ if (cert === undefined)
99
+ return { ok: false, problem: `${files.cert} cannot be read.` };
100
+ if (key === undefined)
101
+ return { ok: false, problem: `${files.key} cannot be read.` };
102
+ return parsePair(files, { cert, key }, 'generated', host);
103
+ }
104
+ function parsePair(files, pem, source, host) {
105
+ let x509;
106
+ try {
107
+ x509 = new X509Certificate(pem.cert);
108
+ }
109
+ catch (error) {
110
+ return { ok: false, problem: `${files.cert} is not a PEM certificate: ${messageOf(error)}` };
111
+ }
112
+ let matches;
113
+ try {
114
+ matches = x509.checkPrivateKey(createPrivateKey(pem.key));
115
+ }
116
+ catch (error) {
117
+ return { ok: false, problem: `${files.key} is not a PEM private key: ${messageOf(error)}` };
118
+ }
119
+ if (!matches) {
120
+ return { ok: false, problem: `${files.key} is not the key of the certificate ${files.cert}.` };
121
+ }
122
+ return {
123
+ ok: true,
124
+ certificate: {
125
+ source,
126
+ certFile: files.cert,
127
+ keyFile: files.key,
128
+ cert: pem.cert,
129
+ key: pem.key,
130
+ subject: x509.subject,
131
+ validTo: new Date(x509.validTo),
132
+ fingerprint256: x509.fingerprint256,
133
+ coversHost: covers(x509, host),
134
+ },
135
+ };
136
+ }
137
+ function covers(x509, host) {
138
+ const bare = unbracketed(host);
139
+ return isIP(bare) === 0 ? x509.checkHost(bare) !== undefined : x509.checkIP(bare) !== undefined;
140
+ }
141
+ function unbracketed(host) {
142
+ return host.startsWith('[') && host.endsWith(']') ? host.slice(1, -1) : host;
143
+ }
144
+ function writePair(dataDir, host, now) {
145
+ const { cert, key } = selfSignedCertificate(unbracketed(host).toLowerCase(), now);
146
+ writeFileAtomicallySync(dataPath(dataDir, GEMINI_KEY), key, { mode: KEY_MODE });
147
+ writeFileAtomicallySync(dataPath(dataDir, GEMINI_CERTIFICATE), cert, { mode: CERT_MODE });
148
+ }
149
+ const OID = {
150
+ ecdsaWithSha256: '1.2.840.10045.4.3.2',
151
+ commonName: '2.5.4.3',
152
+ subjectAltName: '2.5.29.17',
153
+ };
154
+ /**
155
+ * An X.509 v3 certificate signed by its own ECDSA P-256 key, naming `host`
156
+ * as its common name and its one subject alternative name. Node can sign but
157
+ * not build a certificate, so the few DER structures it needs are written
158
+ * here rather than taken from a dependency.
159
+ */
160
+ export function selfSignedCertificate(host, now) {
161
+ const { privateKey, publicKey } = generateKeyPairSync('ec', { namedCurve: 'prime256v1' });
162
+ const name = sequence(set(sequence(oid(OID.commonName), utf8(host))));
163
+ const notBefore = new Date(now.getTime() - DAY_MS);
164
+ const notAfter = new Date(now);
165
+ notAfter.setUTCFullYear(notAfter.getUTCFullYear() + VALID_YEARS);
166
+ const algorithm = sequence(oid(OID.ecdsaWithSha256));
167
+ const tbs = sequence(explicit(0, integer(Buffer.from([2]))), integer(randomBytes(16)), algorithm, name, sequence(time(notBefore), time(notAfter)), name, publicKey.export({ type: 'spki', format: 'der' }), explicit(3, sequence(sequence(oid(OID.subjectAltName), octets(sequence(altName(host)))))));
168
+ const signature = sign('sha256', tbs, privateKey);
169
+ const der = sequence(tbs, algorithm, bitString(signature));
170
+ return {
171
+ cert: pem('CERTIFICATE', der),
172
+ key: privateKey.export({ type: 'pkcs8', format: 'pem' }).toString(),
173
+ };
174
+ }
175
+ function altName(host) {
176
+ const family = isIP(host);
177
+ if (family === 4)
178
+ return tagged(0x87, Buffer.from(host.split('.').map(Number)));
179
+ if (family === 6)
180
+ return tagged(0x87, ipv6Bytes(host));
181
+ return tagged(0x82, Buffer.from(host, 'ascii'));
182
+ }
183
+ function ipv6Bytes(address) {
184
+ const [head = '', tail] = address.split('::');
185
+ const groups = (part) => (part === '' ? [] : part.split(':'));
186
+ const left = groups(head);
187
+ const right = tail === undefined ? [] : groups(tail);
188
+ const middle = Array.from({ length: 8 - left.length - right.length }, () => '0');
189
+ const bytes = Buffer.alloc(16);
190
+ [...left, ...middle, ...right].forEach((group, index) => {
191
+ bytes.writeUInt16BE(Number.parseInt(group, 16), index * 2);
192
+ });
193
+ return bytes;
194
+ }
195
+ function tagged(tag, content) {
196
+ return Buffer.concat([Buffer.from([tag]), length(content.length), content]);
197
+ }
198
+ function length(size) {
199
+ if (size < 0x80)
200
+ return Buffer.from([size]);
201
+ const bytes = [];
202
+ for (let rest = size; rest > 0; rest >>= 8)
203
+ bytes.unshift(rest & 0xff);
204
+ return Buffer.from([0x80 | bytes.length, ...bytes]);
205
+ }
206
+ function sequence(...parts) {
207
+ return tagged(0x30, Buffer.concat(parts));
208
+ }
209
+ function set(...parts) {
210
+ return tagged(0x31, Buffer.concat(parts));
211
+ }
212
+ function explicit(number, content) {
213
+ return tagged(0xa0 + number, content);
214
+ }
215
+ /** DER wants the fewest bytes: no leading zeros, and one zero only to keep a high bit positive. */
216
+ function integer(bytes) {
217
+ let start = 0;
218
+ while (start < bytes.length - 1 && bytes[start] === 0)
219
+ start += 1;
220
+ const minimal = bytes.subarray(start);
221
+ return tagged(0x02, (minimal[0] ?? 0) & 0x80 ? Buffer.concat([Buffer.from([0]), minimal]) : minimal);
222
+ }
223
+ function octets(content) {
224
+ return tagged(0x04, content);
225
+ }
226
+ function bitString(content) {
227
+ return tagged(0x03, Buffer.concat([Buffer.from([0]), content]));
228
+ }
229
+ function utf8(text) {
230
+ return tagged(0x0c, Buffer.from(text, 'utf8'));
231
+ }
232
+ function oid(dotted) {
233
+ const [first = 0, second = 0, ...rest] = dotted.split('.').map(Number);
234
+ const bytes = [first * 40 + second];
235
+ for (const arc of rest) {
236
+ const base128 = [arc & 0x7f];
237
+ for (let value = arc >> 7; value > 0; value >>= 7)
238
+ base128.unshift((value & 0x7f) | 0x80);
239
+ bytes.push(...base128);
240
+ }
241
+ return tagged(0x06, Buffer.from(bytes));
242
+ }
243
+ /** UTCTime until 2049, GeneralizedTime from 2050, as RFC 5280 requires. */
244
+ function time(at) {
245
+ const iso = at.toISOString();
246
+ const digits = `${iso.slice(0, 4)}${iso.slice(5, 7)}${iso.slice(8, 10)}${iso.slice(11, 13)}${iso.slice(14, 16)}${iso.slice(17, 19)}Z`;
247
+ return at.getUTCFullYear() < 2050
248
+ ? tagged(0x17, Buffer.from(digits.slice(2), 'ascii'))
249
+ : tagged(0x18, Buffer.from(digits, 'ascii'));
250
+ }
251
+ function pem(label, der) {
252
+ const lines = der.toString('base64').match(/.{1,64}/g) ?? [];
253
+ return `-----BEGIN ${label}-----\n${lines.join('\n')}\n-----END ${label}-----\n`;
254
+ }
255
+ //# sourceMappingURL=certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../src/gemini/certificate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ResolvedConfig } from '../config.ts';
2
+ import type { SettingsRegistry } from '../settings/types.ts';
3
+ import type { SiteSettings } from '../site/settings.ts';
4
+ import type { GeminiCertificateResult } from './certificate.ts';
5
+ export declare function geminiHost(config: Pick<ResolvedConfig, 'baseUrl' | 'baseUrlSource'>, site: SiteSettings): string;
6
+ export declare function ensureSiteGeminiCertificate(config: ResolvedConfig, settings: SettingsRegistry): Promise<GeminiCertificateResult | undefined>;
7
+ export declare function warnAboutGeminiCertificate(config: ResolvedConfig, settings: SettingsRegistry): Promise<void>;
8
+ //# sourceMappingURL=site-certificate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-certificate.d.ts","sourceRoot":"","sources":["../../src/gemini/site-certificate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,wBAAgB,UAAU,CACxB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,eAAe,CAAC,EACzD,IAAI,EAAE,YAAY,GACjB,MAAM,CAER;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAI9C;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -0,0 +1,17 @@
1
+ import { SITE, effectiveBaseUrl } from '../site/settings.js';
2
+ import { ensureGeminiCertificate } from './certificate.js';
3
+ export function geminiHost(config, site) {
4
+ return new URL(effectiveBaseUrl(config, site)).hostname;
5
+ }
6
+ export async function ensureSiteGeminiCertificate(config, settings) {
7
+ const site = await settings.values(SITE);
8
+ if (!site.gemini)
9
+ return undefined;
10
+ return await ensureGeminiCertificate(config, geminiHost(config, site), config.now());
11
+ }
12
+ export async function warnAboutGeminiCertificate(config, settings) {
13
+ const result = await ensureSiteGeminiCertificate(config, settings);
14
+ if (result !== undefined && !result.ok)
15
+ console.warn(`Gemini is not served: ${result.problem}`);
16
+ }
17
+ //# sourceMappingURL=site-certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-certificate.js","sourceRoot":"","sources":["../../src/gemini/site-certificate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,MAAM,UAAU,UAAU,CACxB,MAAyD,EACzD,IAAkB;IAElB,OAAO,IAAI,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAsB,EACtB,QAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACnC,OAAO,MAAM,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAsB,EACtB,QAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAClG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/micropub/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAmB7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA4MhD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAc9E;AAwND;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAsCzD"}
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/micropub/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAoB7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA4MhD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAc9E;AAoOD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAsCzD"}
@@ -5,6 +5,7 @@ import { isTrashedPath } from '../content/store.js';
5
5
  import { moveDocumentFile } from '../content/trash.js';
6
6
  import { VISIBILITIES } from '../content/visibility.js';
7
7
  import { writeDocument } from '../content/write.js';
8
+ import { creditWriting } from '../writing/ledger.js';
8
9
  import { documentSiteFrom } from '../web/document-site.js';
9
10
  import { logMicropubRequest } from '../web/indieauth-activity-log.js';
10
11
  import { insufficientScope, requireBearer } from '../web/indieauth-bearer.js';
@@ -299,6 +300,7 @@ const ACTIONS = {
299
300
  }
300
301
  if (written.outcome === 'conflict')
301
302
  throw new Error('A new post has no file to conflict with.');
303
+ await credit(c, '', written.saved.body);
302
304
  c.header('cache-control', 'no-store');
303
305
  c.header('location', absoluteUrl(written.saved.permalink, c.var.config.baseUrl));
304
306
  return c.body(null, 201);
@@ -332,6 +334,7 @@ const ACTIONS = {
332
334
  if (written.outcome === 'conflict') {
333
335
  return new Refusal(409, 'conflict', `${url ?? ''} changed on disk; read it again.`).answer(c);
334
336
  }
337
+ await credit(c, document.body, written.saved.body);
335
338
  c.header('cache-control', 'no-store');
336
339
  if (written.saved.permalink === document.permalink)
337
340
  return c.body(null, 204);
@@ -341,6 +344,15 @@ const ACTIONS = {
341
344
  delete: async (c, { url }) => await moved(c, url, 'trash'),
342
345
  undelete: async (c, { url }) => await moved(c, url, 'restore'),
343
346
  };
347
+ async function credit(c, before, after) {
348
+ await creditWriting(c.var.config.dataDir, {
349
+ userId: c.var.bearer.user.id,
350
+ before,
351
+ after,
352
+ at: c.var.store.now(),
353
+ timezone: c.var.siteAtRequestStart.timezone,
354
+ });
355
+ }
344
356
  function postFor(c, url) {
345
357
  const { store, config, bearer } = c.var;
346
358
  return postAt(url, {
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/micropub/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/micropub/endpoint.ts"],"names":[],"mappings":"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"}
package/dist/plugin.d.ts CHANGED
@@ -391,14 +391,27 @@ export type PluginBlock = {
391
391
  }[];
392
392
  };
393
393
  } | {
394
- /** A count for each day; days between the first and the last that are left out count none. */
394
+ /**
395
+ * A count for each day; days between the first and the last that are
396
+ * left out count none. A day with `marked: true` is outlined, and
397
+ * `mark` names what the outline means, `Marked` when left out.
398
+ */
395
399
  readonly calendar: {
396
400
  readonly caption: string;
401
+ readonly mark?: string;
397
402
  readonly days: readonly {
398
403
  readonly day: string;
399
404
  readonly count: number;
405
+ readonly marked?: boolean;
400
406
  }[];
401
407
  };
408
+ } | {
409
+ /** A bar filled to `value` out of `max`, with both numbers and the percentage. */
410
+ readonly progress: {
411
+ readonly label: string;
412
+ readonly value: number;
413
+ readonly max: number;
414
+ };
402
415
  };
403
416
  /** One block of a plugin screen's card, the same blocks a widget draws. */
404
417
  export type PluginScreenBlock = PluginBlock;