partial-content 1.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 (81) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/LICENSE +21 -0
  3. package/README.md +601 -0
  4. package/SECURITY.md +92 -0
  5. package/dist/azure.d.ts +79 -0
  6. package/dist/azure.d.ts.map +1 -0
  7. package/dist/azure.js +251 -0
  8. package/dist/azure.js.map +1 -0
  9. package/dist/content-disposition.d.ts +74 -0
  10. package/dist/content-disposition.d.ts.map +1 -0
  11. package/dist/content-disposition.js +253 -0
  12. package/dist/content-disposition.js.map +1 -0
  13. package/dist/fs.d.ts +86 -0
  14. package/dist/fs.d.ts.map +1 -0
  15. package/dist/fs.js +375 -0
  16. package/dist/fs.js.map +1 -0
  17. package/dist/gcs.d.ts +72 -0
  18. package/dist/gcs.d.ts.map +1 -0
  19. package/dist/gcs.js +202 -0
  20. package/dist/gcs.js.map +1 -0
  21. package/dist/hono.d.ts +92 -0
  22. package/dist/hono.d.ts.map +1 -0
  23. package/dist/hono.js +61 -0
  24. package/dist/hono.js.map +1 -0
  25. package/dist/http.d.ts +70 -0
  26. package/dist/http.d.ts.map +1 -0
  27. package/dist/http.js +281 -0
  28. package/dist/http.js.map +1 -0
  29. package/dist/index.d.ts +21 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +27 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/kernel.d.ts +541 -0
  34. package/dist/kernel.d.ts.map +1 -0
  35. package/dist/kernel.js +1218 -0
  36. package/dist/kernel.js.map +1 -0
  37. package/dist/memory.d.ts +55 -0
  38. package/dist/memory.d.ts.map +1 -0
  39. package/dist/memory.js +107 -0
  40. package/dist/memory.js.map +1 -0
  41. package/dist/mime.d.ts +49 -0
  42. package/dist/mime.d.ts.map +1 -0
  43. package/dist/mime.js +150 -0
  44. package/dist/mime.js.map +1 -0
  45. package/dist/node.d.ts +84 -0
  46. package/dist/node.d.ts.map +1 -0
  47. package/dist/node.js +215 -0
  48. package/dist/node.js.map +1 -0
  49. package/dist/object-store.d.ts +472 -0
  50. package/dist/object-store.d.ts.map +1 -0
  51. package/dist/object-store.js +335 -0
  52. package/dist/object-store.js.map +1 -0
  53. package/dist/r2.d.ts +94 -0
  54. package/dist/r2.d.ts.map +1 -0
  55. package/dist/r2.js +150 -0
  56. package/dist/r2.js.map +1 -0
  57. package/dist/s3.d.ts +49 -0
  58. package/dist/s3.d.ts.map +1 -0
  59. package/dist/s3.js +263 -0
  60. package/dist/s3.js.map +1 -0
  61. package/dist/web.d.ts +336 -0
  62. package/dist/web.d.ts.map +1 -0
  63. package/dist/web.js +1094 -0
  64. package/dist/web.js.map +1 -0
  65. package/docs/DESIGN.md +426 -0
  66. package/package.json +182 -0
  67. package/src/azure.ts +329 -0
  68. package/src/content-disposition.ts +300 -0
  69. package/src/fs.ts +469 -0
  70. package/src/gcs.ts +290 -0
  71. package/src/hono.ts +123 -0
  72. package/src/http.ts +351 -0
  73. package/src/index.ts +85 -0
  74. package/src/kernel.ts +1498 -0
  75. package/src/memory.ts +148 -0
  76. package/src/mime.ts +160 -0
  77. package/src/node.ts +261 -0
  78. package/src/object-store.ts +665 -0
  79. package/src/r2.ts +232 -0
  80. package/src/s3.ts +324 -0
  81. package/src/web.ts +1603 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * In-memory ObjectStore for partial-content.
3
+ *
4
+ * A complete, spec-faithful store over a plain object map. Built for:
5
+ * - **Consumer test suites** -- exercise your serving routes (ranges,
6
+ * conditionals, pinned-read retries) without a storage backend.
7
+ * - **Demos and examples** -- a working store in three lines.
8
+ * - **Small embedded assets** -- serve a handful of in-process files with
9
+ * the full 200/206/304 protocol.
10
+ *
11
+ * Faithful to the contract: real Content-Range fabrication, `ifMatch`
12
+ * pinning (mismatch throws {@link ObjectChangedError}, so retry logic is
13
+ * testable), and per-object validators.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { memoryStore } from "partial-content/memory";
18
+ * import { serveObject } from "partial-content/web";
19
+ *
20
+ * const store = memoryStore({
21
+ * objects: {
22
+ * "hello.txt": { body: "Hello, world!", etag: '"v1"' },
23
+ * },
24
+ * });
25
+ * const handler = serveObject(store);
26
+ * ```
27
+ *
28
+ * @packageDocumentation
29
+ */
30
+ import { ObjectNotFoundError, ObjectChangedError, type ObjectStore } from "./index.js";
31
+ export { ObjectNotFoundError, ObjectChangedError };
32
+ /** A stored object: body plus optional validators and integrity metadata. */
33
+ export interface MemoryObject {
34
+ /** Object content. Strings are encoded as UTF-8. */
35
+ body: Uint8Array | string;
36
+ /** Raw ETag (quoted, like a backend would return). */
37
+ etag?: string;
38
+ /** Last-Modified (any `Date.parse`-able string). */
39
+ lastModified?: string;
40
+ /** RFC 9530 raw base64 SHA-256 digest of the body. */
41
+ digest?: string;
42
+ }
43
+ export interface MemoryStoreOptions {
44
+ /**
45
+ * Key -> object map. Held BY REFERENCE: mutate it between requests to
46
+ * simulate uploads, overwrites (change `etag` to trigger pinned-read
47
+ * retries), and deletions.
48
+ */
49
+ objects: Record<string, MemoryObject>;
50
+ }
51
+ /**
52
+ * Create an {@link ObjectStore} over an in-memory object map.
53
+ */
54
+ export declare function memoryStore(opts: MemoryStoreOptions): ObjectStore;
55
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,WAAW,EAIjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;AAInD,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACvC;AAID;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,WAAW,CA6EjE"}
package/dist/memory.js ADDED
@@ -0,0 +1,107 @@
1
+ /**
2
+ * In-memory ObjectStore for partial-content.
3
+ *
4
+ * A complete, spec-faithful store over a plain object map. Built for:
5
+ * - **Consumer test suites** -- exercise your serving routes (ranges,
6
+ * conditionals, pinned-read retries) without a storage backend.
7
+ * - **Demos and examples** -- a working store in three lines.
8
+ * - **Small embedded assets** -- serve a handful of in-process files with
9
+ * the full 200/206/304 protocol.
10
+ *
11
+ * Faithful to the contract: real Content-Range fabrication, `ifMatch`
12
+ * pinning (mismatch throws {@link ObjectChangedError}, so retry logic is
13
+ * testable), and per-object validators.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { memoryStore } from "partial-content/memory";
18
+ * import { serveObject } from "partial-content/web";
19
+ *
20
+ * const store = memoryStore({
21
+ * objects: {
22
+ * "hello.txt": { body: "Hello, world!", etag: '"v1"' },
23
+ * },
24
+ * });
25
+ * const handler = serveObject(store);
26
+ * ```
27
+ *
28
+ * @packageDocumentation
29
+ */
30
+ import { ObjectNotFoundError, ObjectChangedError, } from "./index.js";
31
+ // Re-export for convenience
32
+ export { ObjectNotFoundError, ObjectChangedError };
33
+ // ─── Factory ────────────────────────────────────────────────────────────────
34
+ /**
35
+ * Create an {@link ObjectStore} over an in-memory object map.
36
+ */
37
+ export function memoryStore(opts) {
38
+ const encoder = new TextEncoder();
39
+ // Cache the UTF-8 encoding of string bodies so a hot-served asset is not
40
+ // re-encoded on every head + get. The map is keyed by the entry and holds
41
+ // the exact string it encoded: the objects map is mutable by reference
42
+ // (the documented way to simulate overwrites), so a changed body misses
43
+ // the cache and re-encodes rather than serving stale bytes.
44
+ const encodeCache = new WeakMap();
45
+ function lookup(key) {
46
+ // Own-property check: the map is a caller-supplied plain object, so an
47
+ // inherited key ("constructor", "__proto__", "toString") would otherwise
48
+ // return a truthy prototype member and crash downstream as a 502 instead
49
+ // of answering the honest 404.
50
+ const entry = Object.hasOwn(opts.objects, key) ? opts.objects[key] : undefined;
51
+ if (!entry)
52
+ throw new ObjectNotFoundError(key);
53
+ if (typeof entry.body !== "string")
54
+ return { entry, bytes: entry.body };
55
+ const cached = encodeCache.get(entry);
56
+ if (cached && cached.source === entry.body)
57
+ return { entry, bytes: cached.bytes };
58
+ const bytes = encoder.encode(entry.body);
59
+ encodeCache.set(entry, { source: entry.body, bytes });
60
+ return { entry, bytes };
61
+ }
62
+ return {
63
+ supportsRange: true,
64
+ async headObject(key, opts) {
65
+ opts?.signal?.throwIfAborted();
66
+ const { entry, bytes } = lookup(key);
67
+ return {
68
+ contentLength: bytes.length,
69
+ etag: entry.etag,
70
+ lastModified: entry.lastModified,
71
+ digest: entry.digest,
72
+ };
73
+ },
74
+ async getObject(key, getOpts) {
75
+ const { range, signal, ifMatch } = getOpts ?? {};
76
+ signal?.throwIfAborted();
77
+ const { entry, bytes } = lookup(key);
78
+ // Pinned read: the object must still match the caller's validator.
79
+ if (ifMatch && entry.etag !== ifMatch) {
80
+ throw new ObjectChangedError(key);
81
+ }
82
+ if (range && range.start >= bytes.length) {
83
+ // Unsatisfiable ranges are the orchestrator's job to reject
84
+ // (parseRangeHeader 416s them first); a direct caller gets a loud
85
+ // error instead of an empty body with lying bounds.
86
+ throw new RangeError(`memoryStore ${key}: range start ${range.start} is beyond object size ${bytes.length}`);
87
+ }
88
+ // subarray() clamps to the object size and returns a view (no copy);
89
+ // the served bytes are read-only, so a view is safe. Derive the reported
90
+ // range from the actual slice so ObjectStream.range is the SERVED bounds.
91
+ const slice = range ? bytes.subarray(range.start, range.end + 1) : bytes;
92
+ return {
93
+ // In-memory bytes are ArrayBuffer-backed (TextEncoder output or the
94
+ // caller's view); narrow so the body is `new Response(...)`-assignable
95
+ // under DOM lib (F5).
96
+ body: slice,
97
+ contentLength: slice.length,
98
+ totalSize: bytes.length,
99
+ range: range ? { start: range.start, end: range.start + slice.length - 1 } : undefined,
100
+ etag: entry.etag,
101
+ lastModified: entry.lastModified,
102
+ digest: entry.digest,
103
+ };
104
+ },
105
+ };
106
+ }
107
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
package/dist/mime.d.ts ADDED
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Minimal MIME type lookup for file serving.
3
+ *
4
+ * A curated extension -> MIME map covering the formats that actually flow
5
+ * through document/media serving: office documents, images, audio/video,
6
+ * archives, fonts, and web assets. Deliberately small and auditable rather
7
+ * than exhaustive -- for the long tail, pass an explicit `mime` to the
8
+ * serve handler or bring a full database (`mime-types`, `mrmime`).
9
+ *
10
+ * Zero dependencies, aligned with IANA registrations and the WHATWG
11
+ * mimesniff living standard.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { serveObject } from "partial-content/node";
16
+ * import { fsStore } from "partial-content/fs";
17
+ * import { lookupMime } from "partial-content/mime";
18
+ *
19
+ * const handler = serveObject(fsStore({ root: "/data" }), {
20
+ * key: (req) => req.params.key,
21
+ * mime: (req) => lookupMime(req.params.key),
22
+ * });
23
+ * ```
24
+ *
25
+ * @packageDocumentation
26
+ */
27
+ /**
28
+ * Look up the MIME type for a filename, path, storage key, or bare extension.
29
+ *
30
+ * Matching is case-insensitive and uses the LAST dot segment, so keys like
31
+ * `2025/reports/Q4 Report.PDF` and `archive.tar.gz` resolve correctly
32
+ * (`application/pdf`, `application/gzip`).
33
+ *
34
+ * Returns `undefined` for unknown or missing extensions so the caller
35
+ * controls the fallback (the serve handlers default to
36
+ * `application/octet-stream`, the safe choice for unknown content).
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * lookupMime("report.pdf"); // "application/pdf"
41
+ * lookupMime("Q4 Report.PDF"); // "application/pdf"
42
+ * lookupMime("archive.tar.gz"); // "application/gzip"
43
+ * lookupMime("pdf"); // "application/pdf" (bare extension)
44
+ * lookupMime("unknown.xyz"); // undefined
45
+ * lookupMime("no-extension"); // undefined (unless it IS an extension)
46
+ * ```
47
+ */
48
+ export declare function lookupMime(filenameOrExt: string | null | undefined): string | undefined;
49
+ //# sourceMappingURL=mime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAqGH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAYvF"}
package/dist/mime.js ADDED
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Minimal MIME type lookup for file serving.
3
+ *
4
+ * A curated extension -> MIME map covering the formats that actually flow
5
+ * through document/media serving: office documents, images, audio/video,
6
+ * archives, fonts, and web assets. Deliberately small and auditable rather
7
+ * than exhaustive -- for the long tail, pass an explicit `mime` to the
8
+ * serve handler or bring a full database (`mime-types`, `mrmime`).
9
+ *
10
+ * Zero dependencies, aligned with IANA registrations and the WHATWG
11
+ * mimesniff living standard.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { serveObject } from "partial-content/node";
16
+ * import { fsStore } from "partial-content/fs";
17
+ * import { lookupMime } from "partial-content/mime";
18
+ *
19
+ * const handler = serveObject(fsStore({ root: "/data" }), {
20
+ * key: (req) => req.params.key,
21
+ * mime: (req) => lookupMime(req.params.key),
22
+ * });
23
+ * ```
24
+ *
25
+ * @packageDocumentation
26
+ */
27
+ // ─── Extension Map ──────────────────────────────────────────────────────────
28
+ /**
29
+ * Extension (lowercase, no dot) -> MIME type.
30
+ *
31
+ * Security-relevant choices:
32
+ * - `html`/`htm`/`xhtml` are intentionally ABSENT: serving stored user
33
+ * uploads as `text/html` is stored XSS. If you serve trusted HTML, pass
34
+ * the MIME explicitly so the decision is visible at the call site.
35
+ * - Several mapped types are ACTIVE CONTENT that can execute script when
36
+ * rendered `inline` from your own origin. For untrusted uploads serve
37
+ * them `attachment` (the library's default disposition) or behind a
38
+ * strict CSP -- never plain `inline`:
39
+ * - `svg` -> `image/svg+xml` (embedded `<script>`, event handlers)
40
+ * - `pdf` -> `application/pdf` (embedded JavaScript in the viewer)
41
+ * - `xml` -> `application/xml` (`<?xml-stylesheet?>` can run XSLT)
42
+ * `X-Content-Type-Options: nosniff` and the default `attachment`
43
+ * disposition already protect the built-in serve path; the warning
44
+ * matters when a caller overrides `disposition: "inline"`.
45
+ */
46
+ const MIME_TYPES = {
47
+ // Documents
48
+ pdf: "application/pdf",
49
+ txt: "text/plain",
50
+ md: "text/markdown",
51
+ csv: "text/csv",
52
+ json: "application/json",
53
+ xml: "application/xml",
54
+ rtf: "application/rtf",
55
+ epub: "application/epub+zip",
56
+ ics: "text/calendar",
57
+ vcf: "text/vcard",
58
+ // Office (OOXML + legacy + OpenDocument)
59
+ doc: "application/msword",
60
+ docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
61
+ xls: "application/vnd.ms-excel",
62
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
63
+ ppt: "application/vnd.ms-powerpoint",
64
+ pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
65
+ odt: "application/vnd.oasis.opendocument.text",
66
+ ods: "application/vnd.oasis.opendocument.spreadsheet",
67
+ odp: "application/vnd.oasis.opendocument.presentation",
68
+ // Images
69
+ png: "image/png",
70
+ jpg: "image/jpeg",
71
+ jpeg: "image/jpeg",
72
+ gif: "image/gif",
73
+ webp: "image/webp",
74
+ avif: "image/avif",
75
+ svg: "image/svg+xml",
76
+ ico: "image/x-icon",
77
+ bmp: "image/bmp",
78
+ tif: "image/tiff",
79
+ tiff: "image/tiff",
80
+ heic: "image/heic",
81
+ // Audio
82
+ mp3: "audio/mpeg",
83
+ wav: "audio/wav",
84
+ ogg: "audio/ogg",
85
+ oga: "audio/ogg",
86
+ m4a: "audio/mp4",
87
+ aac: "audio/aac",
88
+ flac: "audio/flac",
89
+ opus: "audio/opus",
90
+ // Video
91
+ mp4: "video/mp4",
92
+ m4v: "video/mp4",
93
+ webm: "video/webm",
94
+ mov: "video/quicktime",
95
+ avi: "video/x-msvideo",
96
+ mkv: "video/x-matroska",
97
+ ogv: "video/ogg",
98
+ // Archives
99
+ zip: "application/zip",
100
+ gz: "application/gzip",
101
+ tar: "application/x-tar",
102
+ "7z": "application/x-7z-compressed",
103
+ rar: "application/vnd.rar",
104
+ // Fonts
105
+ woff: "font/woff",
106
+ woff2: "font/woff2",
107
+ ttf: "font/ttf",
108
+ otf: "font/otf",
109
+ // Web assets
110
+ js: "text/javascript",
111
+ mjs: "text/javascript",
112
+ css: "text/css",
113
+ wasm: "application/wasm",
114
+ };
115
+ // ─── Public API ─────────────────────────────────────────────────────────────
116
+ /**
117
+ * Look up the MIME type for a filename, path, storage key, or bare extension.
118
+ *
119
+ * Matching is case-insensitive and uses the LAST dot segment, so keys like
120
+ * `2025/reports/Q4 Report.PDF` and `archive.tar.gz` resolve correctly
121
+ * (`application/pdf`, `application/gzip`).
122
+ *
123
+ * Returns `undefined` for unknown or missing extensions so the caller
124
+ * controls the fallback (the serve handlers default to
125
+ * `application/octet-stream`, the safe choice for unknown content).
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * lookupMime("report.pdf"); // "application/pdf"
130
+ * lookupMime("Q4 Report.PDF"); // "application/pdf"
131
+ * lookupMime("archive.tar.gz"); // "application/gzip"
132
+ * lookupMime("pdf"); // "application/pdf" (bare extension)
133
+ * lookupMime("unknown.xyz"); // undefined
134
+ * lookupMime("no-extension"); // undefined (unless it IS an extension)
135
+ * ```
136
+ */
137
+ export function lookupMime(filenameOrExt) {
138
+ if (!filenameOrExt)
139
+ return undefined;
140
+ const lastDot = filenameOrExt.lastIndexOf(".");
141
+ // No dot: treat the whole input as a bare extension ("pdf" -> pdf).
142
+ // Trailing dot ("file.") yields an empty extension -> undefined.
143
+ const ext = lastDot === -1
144
+ ? filenameOrExt
145
+ : filenameOrExt.slice(lastDot + 1);
146
+ if (!ext)
147
+ return undefined;
148
+ return MIME_TYPES[ext.toLowerCase()];
149
+ }
150
+ //# sourceMappingURL=mime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime.js","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,GAA2B;IACzC,YAAY;IACZ,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,YAAY;IACjB,EAAE,EAAE,eAAe;IACnB,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,sBAAsB;IAC5B,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,YAAY;IAEjB,yCAAyC;IACzC,GAAG,EAAE,oBAAoB;IACzB,IAAI,EAAE,yEAAyE;IAC/E,GAAG,EAAE,0BAA0B;IAC/B,IAAI,EAAE,mEAAmE;IACzE,GAAG,EAAE,+BAA+B;IACpC,IAAI,EAAE,2EAA2E;IACjF,GAAG,EAAE,yCAAyC;IAC9C,GAAG,EAAE,gDAAgD;IACrD,GAAG,EAAE,iDAAiD;IAEtD,SAAS;IACT,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAElB,QAAQ;IACR,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAElB,QAAQ;IACR,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,WAAW;IAEhB,WAAW;IACX,GAAG,EAAE,iBAAiB;IACtB,EAAE,EAAE,kBAAkB;IACtB,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,6BAA6B;IACnC,GAAG,EAAE,qBAAqB;IAE1B,QAAQ;IACR,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IAEf,aAAa;IACb,EAAE,EAAE,iBAAiB;IACrB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,kBAAkB;CACzB,CAAC;AAEF,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,UAAU,CAAC,aAAwC;IACjE,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAErC,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/C,oEAAoE;IACpE,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAErC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AACvC,CAAC"}
package/dist/node.d.ts ADDED
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Node.js HTTP adapter for partial-content.
3
+ *
4
+ * Bridges the gap between Node.js `IncomingMessage`/`ServerResponse` and the
5
+ * Fetch-based `partial-content/web` handler. Works with Express, Fastify
6
+ * (in compatibility mode), Koa, raw `http.createServer`, and any Node.js
7
+ * HTTP framework that exposes the standard request/response objects.
8
+ *
9
+ * @example Express
10
+ * ```typescript
11
+ * import express from "express";
12
+ * import { serveObject } from "partial-content/node";
13
+ * import { fsStore } from "partial-content/fs";
14
+ *
15
+ * const store = fsStore({ root: "./uploads" });
16
+ * const app = express();
17
+ *
18
+ * app.get("/files/:key", serveObject(store, {
19
+ * key: (req) => req.params.key,
20
+ * disposition: "inline",
21
+ * }));
22
+ * ```
23
+ *
24
+ * @example raw http.createServer
25
+ * ```typescript
26
+ * import { createServer } from "node:http";
27
+ * import { serveObject } from "partial-content/node";
28
+ * import { s3Store } from "partial-content/s3";
29
+ *
30
+ * const store = s3Store({ client, bucket: "docs" });
31
+ * const handler = serveObject(store, {
32
+ * key: (req) => new URL(req.url!, `http://${req.headers.host}`).pathname.slice(1),
33
+ * });
34
+ *
35
+ * createServer((req, res) => handler(req, res)).listen(3000);
36
+ * ```
37
+ *
38
+ * @packageDocumentation
39
+ */
40
+ import type { IncomingMessage, ServerResponse } from "node:http";
41
+ import { type ServeObjectOptions } from "./web.js";
42
+ import type { ObjectStore } from "./index.js";
43
+ export interface NodeServeOptions extends ServeObjectOptions {
44
+ /**
45
+ * Extract the storage key from the incoming request.
46
+ * The request object is the raw Node.js IncomingMessage, so you have
47
+ * access to URL, params (if using Express/Fastify), headers, etc.
48
+ */
49
+ key: (req: IncomingMessage) => string | Promise<string>;
50
+ /**
51
+ * Extract the MIME type from the request.
52
+ * When omitted, defaults to "application/octet-stream".
53
+ */
54
+ mime?: (req: IncomingMessage) => string | undefined;
55
+ /**
56
+ * Extract the filename from the request (for Content-Disposition).
57
+ * When omitted, no filename is set.
58
+ */
59
+ filename?: (req: IncomingMessage) => string | undefined;
60
+ /**
61
+ * Max milliseconds to wait for a single backpressure `drain` while streaming
62
+ * before treating the client as stalled and tearing the transfer down.
63
+ *
64
+ * A client that stops reading but holds its socket open (a slow-read attack)
65
+ * fills the send buffer, so `res.write()` returns false and `drain` never
66
+ * fires. Without a bound the stream pump would wait forever, pinning the
67
+ * backend storage socket (and its connection-pool slot). A stall reliably
68
+ * tears down via the existing error path (cancel the reader, destroy the
69
+ * response). Set to `0` to disable and rely on an upstream proxy / socket
70
+ * timeout instead.
71
+ *
72
+ * @default 60000
73
+ */
74
+ writeStallTimeoutMs?: number;
75
+ }
76
+ /**
77
+ * Create a Node.js request handler that serves files from an {@link ObjectStore}.
78
+ *
79
+ * Converts Node.js `IncomingMessage` to a Fetch `Request`, delegates to the
80
+ * web adapter's `serveObject`, then writes the Fetch `Response` back to the
81
+ * Node.js `ServerResponse`.
82
+ */
83
+ export declare function serveObject(store: ObjectStore, opts: NodeServeOptions): (req: IncomingMessage, res: ServerResponse) => Promise<void>;
84
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAyC,KAAK,kBAAkB,EAAqB,MAAM,UAAU,CAAC;AAC7G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D;;;;OAIG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,SAAS,CAAC;IAEpD;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,SAAS,CAAC;IAExD;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAOD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,gBAAgB,IAOpB,KAAK,eAAe,EACpB,KAAK,cAAc,KAClB,OAAO,CAAC,IAAI,CAAC,CA0JjB"}