@geekity/cms 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +163 -52
- package/admin/pages/documents/editor.njk +69 -0
- package/admin/pages/media/library.njk +4 -3
- package/admin/pages/settings/general.njk +44 -0
- package/admin/static/admin.css +33 -0
- package/dist/admin/documents.d.ts +3 -0
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +38 -5
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/enclosure-field.d.ts +91 -0
- package/dist/admin/enclosure-field.d.ts.map +1 -0
- package/dist/admin/enclosure-field.js +282 -0
- package/dist/admin/enclosure-field.js.map +1 -0
- package/dist/admin/media.d.ts +7 -2
- package/dist/admin/media.d.ts.map +1 -1
- package/dist/admin/media.js +4 -2
- package/dist/admin/media.js.map +1 -1
- package/dist/admin/settings-general.d.ts.map +1 -1
- package/dist/admin/settings-general.js +36 -2
- package/dist/admin/settings-general.js.map +1 -1
- package/dist/admin/settings-page.d.ts.map +1 -1
- package/dist/admin/settings-page.js +1 -2
- package/dist/admin/settings-page.js.map +1 -1
- package/dist/admin/settings.d.ts +26 -0
- package/dist/admin/settings.d.ts.map +1 -1
- package/dist/admin/settings.js +88 -2
- package/dist/admin/settings.js.map +1 -1
- package/dist/admin/uploads.d.ts +7 -2
- package/dist/admin/uploads.d.ts.map +1 -1
- package/dist/admin/uploads.js +23 -5
- package/dist/admin/uploads.js.map +1 -1
- package/dist/config.d.ts +17 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +11 -7
- package/dist/config.js.map +1 -1
- package/dist/content/enclosure.d.ts +69 -0
- package/dist/content/enclosure.d.ts.map +1 -0
- package/dist/content/enclosure.js +165 -0
- package/dist/content/enclosure.js.map +1 -0
- package/dist/content/index.d.ts +3 -1
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +1 -0
- package/dist/content/index.js.map +1 -1
- package/dist/content/media.d.ts +15 -2
- package/dist/content/media.d.ts.map +1 -1
- package/dist/content/media.js +92 -9
- package/dist/content/media.js.map +1 -1
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +35 -6
- package/dist/federation/article.js.map +1 -1
- package/dist/images/icons.d.ts +5 -0
- package/dist/images/icons.d.ts.map +1 -1
- package/dist/images/icons.js +13 -8
- package/dist/images/icons.js.map +1 -1
- package/dist/images/paths.d.ts +1 -1
- package/dist/images/paths.d.ts.map +1 -1
- package/dist/images/paths.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/web/assets.d.ts +14 -0
- package/dist/web/assets.d.ts.map +1 -1
- package/dist/web/assets.js +56 -1
- package/dist/web/assets.js.map +1 -1
- package/dist/web/context.d.ts +26 -0
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +15 -0
- package/dist/web/context.js.map +1 -1
- package/dist/web/feed-atom.d.ts.map +1 -1
- package/dist/web/feed-atom.js +20 -0
- package/dist/web/feed-atom.js.map +1 -1
- package/dist/web/feed-item.d.ts +19 -0
- package/dist/web/feed-item.d.ts.map +1 -1
- package/dist/web/feed-item.js +22 -0
- package/dist/web/feed-item.js.map +1 -1
- package/dist/web/feed-json.d.ts +13 -0
- package/dist/web/feed-json.d.ts.map +1 -1
- package/dist/web/feed-json.js +15 -0
- package/dist/web/feed-json.js.map +1 -1
- package/dist/web/feed-rss.d.ts.map +1 -1
- package/dist/web/feed-rss.js +59 -2
- package/dist/web/feed-rss.js.map +1 -1
- package/dist/web/feed-xml.d.ts +7 -1
- package/dist/web/feed-xml.d.ts.map +1 -1
- package/dist/web/feed-xml.js +8 -2
- package/dist/web/feed-xml.js.map +1 -1
- package/dist/web/feeds.d.ts +1 -1
- package/dist/web/feeds.d.ts.map +1 -1
- package/dist/web/feeds.js +6 -0
- package/dist/web/feeds.js.map +1 -1
- package/dist/web/index.d.ts +4 -1
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +2 -0
- package/dist/web/index.js.map +1 -1
- package/dist/web/license.d.ts +94 -0
- package/dist/web/license.d.ts.map +1 -0
- package/dist/web/license.js +116 -0
- package/dist/web/license.js.map +1 -0
- package/dist/web/oembed.d.ts.map +1 -1
- package/dist/web/oembed.js +1 -2
- package/dist/web/oembed.js.map +1 -1
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +11 -2
- package/dist/web/render.js.map +1 -1
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +8 -4
- package/dist/web/routes.js.map +1 -1
- package/dist/web/share-image.d.ts +7 -7
- package/dist/web/share-image.d.ts.map +1 -1
- package/dist/web/share-image.js +8 -7
- package/dist/web/share-image.js.map +1 -1
- package/package.json +1 -1
- package/themes/default/README.md +81 -28
- package/themes/default/layouts/base.njk +3 -4
- package/themes/default/layouts/post.njk +4 -0
- package/themes/default/partials/jsonld.njk +4 -6
- package/themes/default/partials/recording.njk +41 -0
- package/themes/default/src/style.css +16 -0
- package/themes/default/static/style.css +25 -0
package/dist/config.js
CHANGED
|
@@ -10,9 +10,12 @@ export const DEFAULT_THEMES_DIR = 'themes';
|
|
|
10
10
|
export const DEFAULT_SESSION_LIFETIME = 14 * 24 * 60 * 60;
|
|
11
11
|
/** Largest upload a site accepts by default: ten mebibytes. */
|
|
12
12
|
export const DEFAULT_UPLOAD_MAX_BYTES = 10 * 1024 * 1024;
|
|
13
|
+
/** Largest audio or video upload a site accepts by default: two hundred mebibytes. */
|
|
14
|
+
export const DEFAULT_UPLOAD_MEDIA_MAX_BYTES = 200 * 1024 * 1024;
|
|
13
15
|
/**
|
|
14
16
|
* What the editor may upload by default: the raster image formats a browser
|
|
15
|
-
* displays, PDFs,
|
|
17
|
+
* displays, PDFs, the text formats, captions, and the audio and video formats
|
|
18
|
+
* a browser plays. Everything the CMS knows about
|
|
16
19
|
* except SVG, which is script-bearing markup served from the site's own origin
|
|
17
20
|
* and so is opt-in.
|
|
18
21
|
*/
|
|
@@ -96,7 +99,8 @@ export function resolveConfig(config = {}, context = {}) {
|
|
|
96
99
|
baseUrlSource: baseUrlSource(env['GEEKITY_BASE_URL'], config.baseUrl),
|
|
97
100
|
watch: resolveBoolean('GEEKITY_WATCH', env['GEEKITY_WATCH'], config.watch, true),
|
|
98
101
|
sessionLifetime: resolveSessionLifetime(env['GEEKITY_SESSION_LIFETIME'], config.sessionLifetime),
|
|
99
|
-
uploadMaxBytes:
|
|
102
|
+
uploadMaxBytes: resolveByteLimit('GEEKITY_UPLOAD_MAX_BYTES', 'uploadMaxBytes', env['GEEKITY_UPLOAD_MAX_BYTES'], config.uploadMaxBytes, DEFAULT_UPLOAD_MAX_BYTES),
|
|
103
|
+
uploadMediaMaxBytes: resolveByteLimit('GEEKITY_UPLOAD_MEDIA_MAX_BYTES', 'uploadMediaMaxBytes', env['GEEKITY_UPLOAD_MEDIA_MAX_BYTES'], config.uploadMediaMaxBytes, DEFAULT_UPLOAD_MEDIA_MAX_BYTES),
|
|
100
104
|
uploadTypes: resolveUploadTypes(env['GEEKITY_UPLOAD_TYPES'], config.uploadTypes),
|
|
101
105
|
imageOptimization: resolveBoolean('GEEKITY_IMAGE_OPTIMIZATION', env['GEEKITY_IMAGE_OPTIMIZATION'], config.imageOptimization, true),
|
|
102
106
|
imageWidths: resolveImageWidths(env['GEEKITY_IMAGE_WIDTHS'], config.imageWidths),
|
|
@@ -149,19 +153,19 @@ function resolveSecurityHeaders(configured) {
|
|
|
149
153
|
}
|
|
150
154
|
return headers;
|
|
151
155
|
}
|
|
152
|
-
/** Bytes, a positive whole number of them. */
|
|
153
|
-
function
|
|
156
|
+
/** Bytes, a positive whole number of them, from the environment, else the option, else the default. */
|
|
157
|
+
function resolveByteLimit(variable, option, fromEnv, configured, fallback) {
|
|
154
158
|
if (fromEnv !== undefined && fromEnv !== '') {
|
|
155
159
|
const parsed = Number(fromEnv);
|
|
156
160
|
if (!isValidByteCount(parsed)) {
|
|
157
|
-
throw new TypeError(
|
|
161
|
+
throw new TypeError(`${variable} must be a positive whole number of bytes, received ${JSON.stringify(fromEnv)}`);
|
|
158
162
|
}
|
|
159
163
|
return parsed;
|
|
160
164
|
}
|
|
161
165
|
if (configured === undefined)
|
|
162
|
-
return
|
|
166
|
+
return fallback;
|
|
163
167
|
if (!isValidByteCount(configured)) {
|
|
164
|
-
throw new TypeError(`config
|
|
168
|
+
throw new TypeError(`config.${option} must be a positive whole number of bytes, received ${JSON.stringify(configured)}`);
|
|
165
169
|
}
|
|
166
170
|
return configured;
|
|
167
171
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/** The front matter key the recording is under. */
|
|
2
|
+
export declare const ENCLOSURE_FRONT_MATTER_KEY = "enclosure";
|
|
3
|
+
/** The longest title an alternate version may have, as the Podcasting 2.0 namespace says. */
|
|
4
|
+
export declare const ALTERNATE_TITLE_MAX_LENGTH = 32;
|
|
5
|
+
/** The transcript formats the Podcasting 2.0 namespace names, and so the ones a feed can carry. */
|
|
6
|
+
export declare const TRANSCRIPT_TYPES: readonly ['text/vtt', 'application/x-subrip', 'text/html', 'text/plain'];
|
|
7
|
+
/** One of {@link TRANSCRIPT_TYPES}. */
|
|
8
|
+
export type TranscriptType = (typeof TRANSCRIPT_TYPES)[number];
|
|
9
|
+
/** A transcript or captions file for the recording. */
|
|
10
|
+
export interface Transcript {
|
|
11
|
+
/** An upload's site-relative URL, or an absolute `http` or `https` one. */
|
|
12
|
+
url: string;
|
|
13
|
+
type: TranscriptType;
|
|
14
|
+
}
|
|
15
|
+
/** Another version of the recording: a video of an audio episode, a smaller file. */
|
|
16
|
+
export interface AlternateEnclosure {
|
|
17
|
+
/** An upload's site-relative URL, or an absolute `http` or `https` one. */
|
|
18
|
+
url: string;
|
|
19
|
+
/** Its media type, which a feed cannot leave out. */
|
|
20
|
+
type: string;
|
|
21
|
+
/** Bytes. Known for an upload; for a link, only when the author said. */
|
|
22
|
+
length?: number | undefined;
|
|
23
|
+
/** What a player calls it, at most {@link ALTERNATE_TITLE_MAX_LENGTH} characters. */
|
|
24
|
+
title?: string | undefined;
|
|
25
|
+
/** A video's height in pixels. */
|
|
26
|
+
height?: number | undefined;
|
|
27
|
+
/** The language it is in, as a language tag. */
|
|
28
|
+
lang?: string | undefined;
|
|
29
|
+
}
|
|
30
|
+
/** A post's recording, read from its front matter. */
|
|
31
|
+
export interface Enclosure {
|
|
32
|
+
/** The main file's site-relative URL. It is always an upload, so its length is known. */
|
|
33
|
+
url: string;
|
|
34
|
+
type: string;
|
|
35
|
+
/** Bytes, which RSS requires. */
|
|
36
|
+
length: number;
|
|
37
|
+
/** Seconds, when the author said. */
|
|
38
|
+
duration?: number | undefined;
|
|
39
|
+
transcript?: Transcript | undefined;
|
|
40
|
+
/** In the order the front matter lists them; empty when there are none. */
|
|
41
|
+
alternates: AlternateEnclosure[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The recording a post's front matter describes, or `undefined` when it has
|
|
45
|
+
* none worth printing.
|
|
46
|
+
*
|
|
47
|
+
* A main file without a URL under `/uploads/`, a media type, or a positive
|
|
48
|
+
* whole number of bytes is no enclosure at all: RSS requires all three, and a
|
|
49
|
+
* guessed one would send a podcast app the wrong file. Anything else that is
|
|
50
|
+
* wrong is dropped on its own — an alternate version with no media type, a
|
|
51
|
+
* transcript of a format nobody plays, a title too long to show — so one bad
|
|
52
|
+
* line in a hand-edited file costs that line and not the episode.
|
|
53
|
+
*/
|
|
54
|
+
export declare function enclosureOf(extra: Readonly<Record<string, unknown>>): Enclosure | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Whether a media type is played by a `<video>` and federated as a `Video`,
|
|
57
|
+
* rather than by an `<audio>` as an `Audio`. One answer for both, so the page
|
|
58
|
+
* and the fediverse never disagree about what a file is.
|
|
59
|
+
*/
|
|
60
|
+
export declare function playsAsVideo(type: string): boolean;
|
|
61
|
+
/** Whether a transcript is timed captions, which a player can show over the recording. */
|
|
62
|
+
export declare function isCaptions(transcript: Transcript): boolean;
|
|
63
|
+
/** Whether a value is an absolute `http` or `https` URL. */
|
|
64
|
+
export declare function isWebUrl(value: string): boolean;
|
|
65
|
+
/** Whether a value is a site-relative URL under `/uploads/` that cannot climb out of it. */
|
|
66
|
+
export declare function isUploadUrl(value: string): boolean;
|
|
67
|
+
/** Whether a value is a media type, `type/subtype`, with no parameters. */
|
|
68
|
+
export declare function isMediaType(value: string): boolean;
|
|
69
|
+
//# sourceMappingURL=enclosure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enclosure.d.ts","sourceRoot":"","sources":["../../src/content/enclosure.ts"],"names":[],"mappings":"AA6BA,mDAAmD;AACnD,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD,6FAA6F;AAC7F,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,mGAAmG;AACnG,eAAO,MAAM,gBAAgB,YAC3B,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,YAAY,CACJ,CAAC;AAEX,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,qFAAqF;AACrF,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,sDAAsD;AACtD,MAAM,WAAW,SAAS;IACxB,yFAAyF;IACzF,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,2EAA2E;IAC3E,UAAU,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,CAoB3F;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE1D;AAED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A post's recording: one main audio or video file, the other versions of it,
|
|
3
|
+
* and its transcript (TASK-213).
|
|
4
|
+
*
|
|
5
|
+
* The front matter spells it the way RSS does, so a person reading the file
|
|
6
|
+
* and a person reading the feed see the same names:
|
|
7
|
+
*
|
|
8
|
+
* ```yaml
|
|
9
|
+
* enclosure:
|
|
10
|
+
* url: /uploads/2026/10/episode-12.mp3
|
|
11
|
+
* type: audio/mpeg
|
|
12
|
+
* length: 23456789
|
|
13
|
+
* duration: 1834
|
|
14
|
+
* transcript:
|
|
15
|
+
* url: /uploads/2026/10/episode-12.vtt
|
|
16
|
+
* type: text/vtt
|
|
17
|
+
* alternates:
|
|
18
|
+
* - url: https://cdn.example.com/episode-12.mp4
|
|
19
|
+
* type: video/mp4
|
|
20
|
+
* title: Video
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* It is not a key the CMS models in {@link Document}: like `license`, it stays
|
|
24
|
+
* in {@link Document.extra}, so an admin save and an Eleventy build both see
|
|
25
|
+
* exactly what the file says. {@link enclosureOf} is the one reading of it,
|
|
26
|
+
* and the feeds, the theme and the federation read only what it returns.
|
|
27
|
+
*/
|
|
28
|
+
import { UPLOAD_ASSET_PREFIX } from '../web/assets.js';
|
|
29
|
+
/** The front matter key the recording is under. */
|
|
30
|
+
export const ENCLOSURE_FRONT_MATTER_KEY = 'enclosure';
|
|
31
|
+
/** The longest title an alternate version may have, as the Podcasting 2.0 namespace says. */
|
|
32
|
+
export const ALTERNATE_TITLE_MAX_LENGTH = 32;
|
|
33
|
+
/** The transcript formats the Podcasting 2.0 namespace names, and so the ones a feed can carry. */
|
|
34
|
+
export const TRANSCRIPT_TYPES = [
|
|
35
|
+
'text/vtt',
|
|
36
|
+
'application/x-subrip',
|
|
37
|
+
'text/html',
|
|
38
|
+
'text/plain',
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* The recording a post's front matter describes, or `undefined` when it has
|
|
42
|
+
* none worth printing.
|
|
43
|
+
*
|
|
44
|
+
* A main file without a URL under `/uploads/`, a media type, or a positive
|
|
45
|
+
* whole number of bytes is no enclosure at all: RSS requires all three, and a
|
|
46
|
+
* guessed one would send a podcast app the wrong file. Anything else that is
|
|
47
|
+
* wrong is dropped on its own — an alternate version with no media type, a
|
|
48
|
+
* transcript of a format nobody plays, a title too long to show — so one bad
|
|
49
|
+
* line in a hand-edited file costs that line and not the episode.
|
|
50
|
+
*/
|
|
51
|
+
export function enclosureOf(extra) {
|
|
52
|
+
const raw = record(extra[ENCLOSURE_FRONT_MATTER_KEY]);
|
|
53
|
+
if (raw === undefined)
|
|
54
|
+
return undefined;
|
|
55
|
+
const url = uploadUrl(raw['url']);
|
|
56
|
+
const type = mediaType(raw['type']);
|
|
57
|
+
const length = positiveInteger(raw['length']);
|
|
58
|
+
if (url === undefined || type === undefined || length === undefined)
|
|
59
|
+
return undefined;
|
|
60
|
+
const duration = typeof raw['duration'] === 'number' ? raw['duration'] : undefined;
|
|
61
|
+
return {
|
|
62
|
+
url,
|
|
63
|
+
type,
|
|
64
|
+
length,
|
|
65
|
+
...(duration !== undefined && Number.isFinite(duration) && duration > 0 ? { duration } : {}),
|
|
66
|
+
...optional('transcript', transcriptOf(raw['transcript'])),
|
|
67
|
+
alternates: Array.isArray(raw['alternates'])
|
|
68
|
+
? raw['alternates'].flatMap((entry) => alternateOf(entry) ?? [])
|
|
69
|
+
: [],
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Whether a media type is played by a `<video>` and federated as a `Video`,
|
|
74
|
+
* rather than by an `<audio>` as an `Audio`. One answer for both, so the page
|
|
75
|
+
* and the fediverse never disagree about what a file is.
|
|
76
|
+
*/
|
|
77
|
+
export function playsAsVideo(type) {
|
|
78
|
+
return type.toLowerCase().startsWith('video/');
|
|
79
|
+
}
|
|
80
|
+
/** Whether a transcript is timed captions, which a player can show over the recording. */
|
|
81
|
+
export function isCaptions(transcript) {
|
|
82
|
+
return transcript.type === 'text/vtt' || transcript.type === 'application/x-subrip';
|
|
83
|
+
}
|
|
84
|
+
/** Whether a value is an absolute `http` or `https` URL. */
|
|
85
|
+
export function isWebUrl(value) {
|
|
86
|
+
try {
|
|
87
|
+
const url = new URL(value);
|
|
88
|
+
return url.protocol === 'http:' || url.protocol === 'https:';
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Whether a value is a site-relative URL under `/uploads/` that cannot climb out of it. */
|
|
95
|
+
export function isUploadUrl(value) {
|
|
96
|
+
return (value.startsWith(UPLOAD_ASSET_PREFIX) &&
|
|
97
|
+
value.length > UPLOAD_ASSET_PREFIX.length &&
|
|
98
|
+
!/[?#\\]/.test(value) &&
|
|
99
|
+
!value.split('/').includes('..'));
|
|
100
|
+
}
|
|
101
|
+
/** Whether a value is a media type, `type/subtype`, with no parameters. */
|
|
102
|
+
export function isMediaType(value) {
|
|
103
|
+
return /^[a-z0-9][a-z0-9!#$&^_.+-]*\/[a-z0-9][a-z0-9!#$&^_.+-]*$/i.test(value);
|
|
104
|
+
}
|
|
105
|
+
function alternateOf(value) {
|
|
106
|
+
const raw = record(value);
|
|
107
|
+
if (raw === undefined)
|
|
108
|
+
return undefined;
|
|
109
|
+
const url = fileUrl(raw['url']);
|
|
110
|
+
const type = mediaType(raw['type']);
|
|
111
|
+
if (url === undefined || type === undefined)
|
|
112
|
+
return undefined;
|
|
113
|
+
const title = trimmed(raw['title']);
|
|
114
|
+
return {
|
|
115
|
+
url,
|
|
116
|
+
type,
|
|
117
|
+
...optional('length', positiveInteger(raw['length'])),
|
|
118
|
+
...(title !== undefined && title.length <= ALTERNATE_TITLE_MAX_LENGTH ? { title } : {}),
|
|
119
|
+
...optional('height', positiveInteger(raw['height'])),
|
|
120
|
+
...optional('lang', trimmed(raw['lang'])),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function transcriptOf(value) {
|
|
124
|
+
const raw = record(value);
|
|
125
|
+
if (raw === undefined)
|
|
126
|
+
return undefined;
|
|
127
|
+
const url = fileUrl(raw['url']);
|
|
128
|
+
const type = trimmed(raw['type'])?.toLowerCase();
|
|
129
|
+
if (url === undefined || type === undefined || !isTranscriptType(type))
|
|
130
|
+
return undefined;
|
|
131
|
+
return { url, type };
|
|
132
|
+
}
|
|
133
|
+
function isTranscriptType(value) {
|
|
134
|
+
return TRANSCRIPT_TYPES.includes(value);
|
|
135
|
+
}
|
|
136
|
+
function uploadUrl(value) {
|
|
137
|
+
const url = trimmed(value);
|
|
138
|
+
return url !== undefined && isUploadUrl(url) ? url : undefined;
|
|
139
|
+
}
|
|
140
|
+
function fileUrl(value) {
|
|
141
|
+
const url = trimmed(value);
|
|
142
|
+
return url !== undefined && (isUploadUrl(url) || isWebUrl(url)) ? url : undefined;
|
|
143
|
+
}
|
|
144
|
+
function mediaType(value) {
|
|
145
|
+
const type = trimmed(value)?.toLowerCase();
|
|
146
|
+
return type !== undefined && isMediaType(type) ? type : undefined;
|
|
147
|
+
}
|
|
148
|
+
function positiveInteger(value) {
|
|
149
|
+
return typeof value === 'number' && Number.isSafeInteger(value) && value > 0 ? value : undefined;
|
|
150
|
+
}
|
|
151
|
+
function trimmed(value) {
|
|
152
|
+
if (typeof value !== 'string')
|
|
153
|
+
return undefined;
|
|
154
|
+
const text = value.trim();
|
|
155
|
+
return text === '' ? undefined : text;
|
|
156
|
+
}
|
|
157
|
+
function record(value) {
|
|
158
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
159
|
+
? value
|
|
160
|
+
: undefined;
|
|
161
|
+
}
|
|
162
|
+
function optional(key, value) {
|
|
163
|
+
return value === undefined ? {} : { [key]: value };
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=enclosure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enclosure.js","sourceRoot":"","sources":["../../src/content/enclosure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,mDAAmD;AACnD,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;AAEtD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,mGAAmG;AACnG,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU;IACV,sBAAsB;IACtB,WAAW;IACX,YAAY;CACJ,CAAC;AA0CX;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,KAAwC;IAClE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACtD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAExC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEtF,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,OAAO;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,GAAG,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1D,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChE,CAAC,CAAC,EAAE;KACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,UAAU,CAAC,UAAsB;IAC/C,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,sBAAsB,CAAC;AACtF,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,CACL,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACrC,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;QACzC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACrB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,2DAA2D,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE9D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,OAAO;QACL,GAAG;QACH,IAAI;QACJ,GAAG,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,0BAA0B,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACjD,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAQ,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,GAAG,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,GAAG,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACpF,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3C,OAAO,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAsB,GAAM,EAAE,KAAoB;IACjE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAsB,CAAC;AAC1E,CAAC"}
|
package/dist/content/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { KNOWN_FRONT_MATTER_KEYS } from './document.ts';
|
|
2
2
|
export type { ActivityPubMetadata, Document, DocumentContent, DocumentType } from './document.ts';
|
|
3
|
+
export { ENCLOSURE_FRONT_MATTER_KEY, enclosureOf, isCaptions, playsAsVideo, TRANSCRIPT_TYPES, } from './enclosure.ts';
|
|
4
|
+
export type { AlternateEnclosure, Enclosure, Transcript, TranscriptType } from './enclosure.ts';
|
|
3
5
|
export { renderMarkdown } from './markdown.ts';
|
|
4
6
|
export { KNOWN_UPLOAD_TYPES, matchesSignature, normalizeUploadType, UPLOAD_MEDIA_TYPES, } from './media.ts';
|
|
5
|
-
export type { UploadMediaType, UploadSignature } from './media.ts';
|
|
7
|
+
export type { UploadKind, UploadMediaType, UploadSignature } from './media.ts';
|
|
6
8
|
export { hashDocument, parseDocument, typeForPath } from './parser.ts';
|
|
7
9
|
export type { ParseDocumentOptions } from './parser.ts';
|
|
8
10
|
export { discoverPostType, postLabel, postTypeOf } from './post-type.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EACL,0BAA0B,EAC1B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,SAAS,EACT,cAAc,EACd,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,aAAa,EACb,KAAK,EACL,aAAa,EACb,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,SAAS,EACT,QAAQ,GACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACnE,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,wBAAwB,EACxB,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,UAAU,GACX,MAAM,WAAW,CAAC"}
|
package/dist/content/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { KNOWN_FRONT_MATTER_KEYS } from './document.js';
|
|
2
|
+
export { ENCLOSURE_FRONT_MATTER_KEY, enclosureOf, isCaptions, playsAsVideo, TRANSCRIPT_TYPES, } from './enclosure.js';
|
|
2
3
|
export { renderMarkdown } from './markdown.js';
|
|
3
4
|
export { KNOWN_UPLOAD_TYPES, matchesSignature, normalizeUploadType, UPLOAD_MEDIA_TYPES, } from './media.js';
|
|
4
5
|
export { hashDocument, parseDocument, typeForPath } from './parser.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEpE,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AAQvB,OAAO,EACL,aAAa,EACb,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AAapB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EACL,0BAA0B,EAC1B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEpE,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AAQvB,OAAO,EACL,aAAa,EACb,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AAapB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/content/media.d.ts
CHANGED
|
@@ -18,6 +18,13 @@ export interface UploadSignature {
|
|
|
18
18
|
/** The bytes themselves. */
|
|
19
19
|
bytes: readonly number[];
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* What an upload is for, which decides what the CMS offers to do with it.
|
|
23
|
+
*
|
|
24
|
+
* An image is embedded and gets variants, audio and video can be a post's
|
|
25
|
+
* enclosure and are held to their own size limit, and a document is linked.
|
|
26
|
+
*/
|
|
27
|
+
export type UploadKind = 'image' | 'audio' | 'video' | 'document';
|
|
21
28
|
/** One kind of file the upload endpoint knows about. */
|
|
22
29
|
export interface UploadMediaType {
|
|
23
30
|
/**
|
|
@@ -26,8 +33,8 @@ export interface UploadMediaType {
|
|
|
26
33
|
* sends no type at all, and there is then nothing to disagree with.
|
|
27
34
|
*/
|
|
28
35
|
declared: readonly string[];
|
|
29
|
-
/**
|
|
30
|
-
|
|
36
|
+
/** What the file is for. */
|
|
37
|
+
kind: UploadKind;
|
|
31
38
|
/**
|
|
32
39
|
* Byte patterns that identify the format, as alternatives: a file matches
|
|
33
40
|
* when every part of any one of them matches. Absent for the text formats,
|
|
@@ -54,6 +61,12 @@ export declare const KNOWN_UPLOAD_TYPES: readonly string[];
|
|
|
54
61
|
* file, so they are the same thing here.
|
|
55
62
|
*/
|
|
56
63
|
export declare function normalizeUploadType(value: string): string;
|
|
64
|
+
/**
|
|
65
|
+
* The media type a feed or an attachment announces for this kind of file: the
|
|
66
|
+
* first one {@link UploadMediaType.declared} lists, which is the registered
|
|
67
|
+
* name where a browser may also send an older one.
|
|
68
|
+
*/
|
|
69
|
+
export declare function canonicalType(media: UploadMediaType): string | undefined;
|
|
57
70
|
/**
|
|
58
71
|
* Whether the first bytes of a file are the ones its extension implies.
|
|
59
72
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/content/media.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/content/media.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAElE,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,4BAA4B;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,eAAe,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;CAClE;AAgBD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CA+JlE,CAAC;AAEH,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAA0C,CAAC;AAE3F;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CASnF"}
|
package/dist/content/media.js
CHANGED
|
@@ -15,6 +15,13 @@
|
|
|
15
15
|
function ascii(value) {
|
|
16
16
|
return [...value].map((character) => character.charCodeAt(0));
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* An ISO base media file — MP4, M4A, M4V — whatever its brand: a box length,
|
|
20
|
+
* then `ftyp`.
|
|
21
|
+
*/
|
|
22
|
+
const ISO_BASE_MEDIA = [{ offset: 4, bytes: ascii('ftyp') }];
|
|
23
|
+
/** An Ogg page, whatever codec is inside it. */
|
|
24
|
+
const OGG = [{ offset: 0, bytes: ascii('OggS') }];
|
|
18
25
|
/**
|
|
19
26
|
* Every extension the upload endpoint can accept, and what it takes to be one.
|
|
20
27
|
*
|
|
@@ -29,7 +36,7 @@ export const UPLOAD_MEDIA_TYPES = new Map([
|
|
|
29
36
|
'.png',
|
|
30
37
|
{
|
|
31
38
|
declared: ['image/png'],
|
|
32
|
-
|
|
39
|
+
kind: 'image',
|
|
33
40
|
signatures: [[{ offset: 0, bytes: [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a] }]],
|
|
34
41
|
},
|
|
35
42
|
],
|
|
@@ -37,7 +44,7 @@ export const UPLOAD_MEDIA_TYPES = new Map([
|
|
|
37
44
|
'.jpg',
|
|
38
45
|
{
|
|
39
46
|
declared: ['image/jpeg', 'image/jpg'],
|
|
40
|
-
|
|
47
|
+
kind: 'image',
|
|
41
48
|
signatures: [[{ offset: 0, bytes: [0xff, 0xd8, 0xff] }]],
|
|
42
49
|
},
|
|
43
50
|
],
|
|
@@ -45,7 +52,7 @@ export const UPLOAD_MEDIA_TYPES = new Map([
|
|
|
45
52
|
'.jpeg',
|
|
46
53
|
{
|
|
47
54
|
declared: ['image/jpeg', 'image/jpg'],
|
|
48
|
-
|
|
55
|
+
kind: 'image',
|
|
49
56
|
signatures: [[{ offset: 0, bytes: [0xff, 0xd8, 0xff] }]],
|
|
50
57
|
},
|
|
51
58
|
],
|
|
@@ -53,7 +60,7 @@ export const UPLOAD_MEDIA_TYPES = new Map([
|
|
|
53
60
|
'.gif',
|
|
54
61
|
{
|
|
55
62
|
declared: ['image/gif'],
|
|
56
|
-
|
|
63
|
+
kind: 'image',
|
|
57
64
|
signatures: [
|
|
58
65
|
[{ offset: 0, bytes: ascii('GIF87a') }],
|
|
59
66
|
[{ offset: 0, bytes: ascii('GIF89a') }],
|
|
@@ -64,7 +71,7 @@ export const UPLOAD_MEDIA_TYPES = new Map([
|
|
|
64
71
|
'.webp',
|
|
65
72
|
{
|
|
66
73
|
declared: ['image/webp'],
|
|
67
|
-
|
|
74
|
+
kind: 'image',
|
|
68
75
|
// A WebP is a RIFF container whose form type is WEBP, so both halves of
|
|
69
76
|
// the header have to be there.
|
|
70
77
|
signatures: [
|
|
@@ -79,7 +86,7 @@ export const UPLOAD_MEDIA_TYPES = new Map([
|
|
|
79
86
|
'.avif',
|
|
80
87
|
{
|
|
81
88
|
declared: ['image/avif'],
|
|
82
|
-
|
|
89
|
+
kind: 'image',
|
|
83
90
|
// An ISO base media file: a length, then `ftyp`, then the brand.
|
|
84
91
|
signatures: [
|
|
85
92
|
[
|
|
@@ -97,19 +104,87 @@ export const UPLOAD_MEDIA_TYPES = new Map([
|
|
|
97
104
|
'.pdf',
|
|
98
105
|
{
|
|
99
106
|
declared: ['application/pdf'],
|
|
100
|
-
|
|
107
|
+
kind: 'document',
|
|
101
108
|
signatures: [[{ offset: 0, bytes: ascii('%PDF-') }]],
|
|
102
109
|
},
|
|
103
110
|
],
|
|
104
111
|
// The two text formats have no header. Nothing is sniffed, and nothing needs
|
|
105
112
|
// to be: they are served as text, and `application/octet-stream` is allowed
|
|
106
113
|
// because that is what a browser sends for a file type it does not know.
|
|
107
|
-
['.txt', { declared: ['text/plain', 'application/octet-stream'],
|
|
114
|
+
['.txt', { declared: ['text/plain', 'application/octet-stream'], kind: 'document' }],
|
|
108
115
|
[
|
|
109
116
|
'.md',
|
|
110
117
|
{
|
|
111
118
|
declared: ['text/markdown', 'text/x-markdown', 'text/plain', 'application/octet-stream'],
|
|
112
|
-
|
|
119
|
+
kind: 'document',
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
// WebVTT opens with its name, after a byte order mark when the editor that
|
|
123
|
+
// wrote it added one. SubRip has no header, so it is taken as text like the
|
|
124
|
+
// two formats above.
|
|
125
|
+
[
|
|
126
|
+
'.vtt',
|
|
127
|
+
{
|
|
128
|
+
declared: ['text/vtt', 'text/plain', 'application/octet-stream'],
|
|
129
|
+
kind: 'document',
|
|
130
|
+
signatures: [
|
|
131
|
+
[{ offset: 0, bytes: ascii('WEBVTT') }],
|
|
132
|
+
[{ offset: 0, bytes: [0xef, 0xbb, 0xbf, ...ascii('WEBVTT')] }],
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
[
|
|
137
|
+
'.srt',
|
|
138
|
+
{
|
|
139
|
+
declared: ['application/x-subrip', 'text/srt', 'text/plain', 'application/octet-stream'],
|
|
140
|
+
kind: 'document',
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
[
|
|
144
|
+
'.mp3',
|
|
145
|
+
{
|
|
146
|
+
declared: ['audio/mpeg', 'audio/mp3'],
|
|
147
|
+
kind: 'audio',
|
|
148
|
+
// An ID3 tag, or straight into an MPEG audio frame: eleven sync bits,
|
|
149
|
+
// then MPEG-1 or MPEG-2 layer III, with or without a CRC.
|
|
150
|
+
signatures: [
|
|
151
|
+
[{ offset: 0, bytes: ascii('ID3') }],
|
|
152
|
+
[{ offset: 0, bytes: [0xff, 0xfb] }],
|
|
153
|
+
[{ offset: 0, bytes: [0xff, 0xfa] }],
|
|
154
|
+
[{ offset: 0, bytes: [0xff, 0xf3] }],
|
|
155
|
+
[{ offset: 0, bytes: [0xff, 0xf2] }],
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
[
|
|
160
|
+
'.m4a',
|
|
161
|
+
{
|
|
162
|
+
declared: ['audio/mp4', 'audio/x-m4a', 'audio/m4a'],
|
|
163
|
+
kind: 'audio',
|
|
164
|
+
signatures: [ISO_BASE_MEDIA],
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
[
|
|
168
|
+
'.aac',
|
|
169
|
+
{
|
|
170
|
+
declared: ['audio/aac', 'audio/x-aac', 'audio/aacp'],
|
|
171
|
+
kind: 'audio',
|
|
172
|
+
// A raw ADTS stream: twelve sync bits, MPEG-4 or MPEG-2, no CRC.
|
|
173
|
+
signatures: [[{ offset: 0, bytes: [0xff, 0xf1] }], [{ offset: 0, bytes: [0xff, 0xf9] }]],
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
['.ogg', { declared: ['audio/ogg', 'application/ogg'], kind: 'audio', signatures: [OGG] }],
|
|
177
|
+
['.oga', { declared: ['audio/ogg', 'application/ogg'], kind: 'audio', signatures: [OGG] }],
|
|
178
|
+
['.opus', { declared: ['audio/ogg', 'audio/opus'], kind: 'audio', signatures: [OGG] }],
|
|
179
|
+
['.mp4', { declared: ['video/mp4'], kind: 'video', signatures: [ISO_BASE_MEDIA] }],
|
|
180
|
+
['.m4v', { declared: ['video/mp4', 'video/x-m4v'], kind: 'video', signatures: [ISO_BASE_MEDIA] }],
|
|
181
|
+
[
|
|
182
|
+
'.webm',
|
|
183
|
+
{
|
|
184
|
+
declared: ['video/webm', 'audio/webm'],
|
|
185
|
+
kind: 'video',
|
|
186
|
+
// The EBML header every Matroska file, WebM included, opens with.
|
|
187
|
+
signatures: [[{ offset: 0, bytes: [0x1a, 0x45, 0xdf, 0xa3] }]],
|
|
113
188
|
},
|
|
114
189
|
],
|
|
115
190
|
]);
|
|
@@ -127,6 +202,14 @@ export function normalizeUploadType(value) {
|
|
|
127
202
|
return '';
|
|
128
203
|
return trimmed.startsWith('.') ? trimmed : `.${trimmed}`;
|
|
129
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* The media type a feed or an attachment announces for this kind of file: the
|
|
207
|
+
* first one {@link UploadMediaType.declared} lists, which is the registered
|
|
208
|
+
* name where a browser may also send an older one.
|
|
209
|
+
*/
|
|
210
|
+
export function canonicalType(media) {
|
|
211
|
+
return media.declared[0];
|
|
212
|
+
}
|
|
130
213
|
/**
|
|
131
214
|
* Whether the first bytes of a file are the ones its extension implies.
|
|
132
215
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/content/media.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/content/media.ts"],"names":[],"mappings":"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"}
|