@insureco/docman 1.0.0 → 1.0.1

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/dist/mock.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { C as CreateHtmlTemplateOptions, H as HtmlTemplate, a as HtmlTemplateListQuery, L as ListResult, U as UpdateHtmlTemplateOptions, b as CreatePdfTemplateOptions, P as PdfTemplate, c as PdfTemplateListQuery, d as PdfField, e as UpdatePdfTemplateOptions, f as CreateTemplateGroupOptions, T as TemplateGroup, g as ListQuery, h as UpdateTemplateGroupOptions, G as GenerateOptions, i as GenerateResult, j as DocmanDocument, k as DocumentVersion, l as PageRange, S as SplitPart } from './types-xbeSIrNB.js';
1
+ import { C as CreateHtmlTemplateOptions, H as HtmlTemplate, f as HtmlTemplateListQuery, h as ListResult, U as UpdateHtmlTemplateOptions, a as CreatePdfTemplateOptions, j as PdfTemplate, k as PdfTemplateListQuery, i as PdfField, o as UpdatePdfTemplateOptions, b as CreateTemplateGroupOptions, m as TemplateGroup, g as ListQuery, p as UpdateTemplateGroupOptions, G as GenerateOptions, e as GenerateResult, c as DocmanDocument, d as DocumentVersion, P as PageRange, l as SplitPart } from './types-DvQ8gX3k.js';
2
2
 
3
3
  /**
4
4
  * In-memory implementation of DocmanClient for use in tests.
@@ -46,6 +46,7 @@ declare class MockDocmanClient {
46
46
  regenerate(id: string): Promise<GenerateResult>;
47
47
  merge(buffers: readonly (Buffer | Uint8Array)[]): Promise<Buffer>;
48
48
  split(_buffer: Buffer | Uint8Array, ranges: readonly PageRange[]): Promise<readonly SplitPart[]>;
49
+ introspectFields(templateIds: readonly string[]): Promise<Record<string, readonly PdfField[]>>;
49
50
  pageCount(_buffer: Buffer | Uint8Array): Promise<number>;
50
51
  /** Read all stored documents (for test assertions). */
51
52
  getDocuments(): ReadonlyMap<string, DocmanDocument>;
package/dist/mock.js CHANGED
@@ -282,6 +282,14 @@ var MockDocmanClient = class {
282
282
  sizeBytes: 20
283
283
  }));
284
284
  }
285
+ async introspectFields(templateIds) {
286
+ const result = {};
287
+ for (const id of templateIds) {
288
+ const template = this.pdfTemplates.get(id);
289
+ result[id] = template?.fields ?? [];
290
+ }
291
+ return result;
292
+ }
285
293
  async pageCount(_buffer) {
286
294
  return 1;
287
295
  }
package/dist/mock.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mock.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto'\nimport { DocmanError } from './errors.js'\nimport type {\n HtmlTemplate,\n CreateHtmlTemplateOptions,\n UpdateHtmlTemplateOptions,\n HtmlTemplateListQuery,\n PdfTemplate,\n PdfField,\n CreatePdfTemplateOptions,\n UpdatePdfTemplateOptions,\n PdfTemplateListQuery,\n TemplateGroup,\n CreateTemplateGroupOptions,\n UpdateTemplateGroupOptions,\n DocmanDocument,\n DocumentVersion,\n GenerateOptions,\n GenerateResult,\n ListQuery,\n ListResult,\n PageRange,\n SplitPart,\n} from './types.js'\n\n// ─── Helpers ──────────────────────────────────────────────\n\nfunction now(): string {\n return new Date().toISOString()\n}\n\nfunction paginate<T>(items: readonly T[], query: ListQuery): ListResult<T> {\n const page = query.page ?? 1\n const limit = query.limit ?? 20\n const start = (page - 1) * limit\n return {\n data: items.slice(start, start + limit),\n meta: { total: items.length, page, limit },\n }\n}\n\nfunction findOrThrow<T extends { _id: string }>(\n map: Map<string, T>,\n id: string,\n label: string,\n): T {\n const item = map.get(id)\n if (!item) throw new DocmanError(`${label} not found`, 404, 'NOT_FOUND')\n return item\n}\n\n// ─── MockDocmanClient ────────────────────────────────────\n\n/**\n * In-memory implementation of DocmanClient for use in tests.\n *\n * Import from @insureco/docman/testing:\n * import { MockDocmanClient } from '@insureco/docman/testing'\n *\n * @example\n * const docman = new MockDocmanClient()\n * const template = await docman.createHtmlTemplate({ name: 'Quote', html: '<p>{{name}}</p>' })\n * const result = await docman.generate({ templateIds: [template._id], data: { name: 'Acme' }, name: 'test' })\n * expect(result.pages).toBe(1)\n */\nexport class MockDocmanClient {\n private readonly htmlTemplates = new Map<string, HtmlTemplate>()\n private readonly pdfTemplates = new Map<string, PdfTemplate>()\n private readonly templateGroups = new Map<string, TemplateGroup>()\n private readonly documents = new Map<string, DocmanDocument>()\n private readonly documentVersions = new Map<string, DocumentVersion[]>()\n\n /** Reset all in-memory state between tests. */\n reset(): void {\n this.htmlTemplates.clear()\n this.pdfTemplates.clear()\n this.templateGroups.clear()\n this.documents.clear()\n this.documentVersions.clear()\n }\n\n // ─── HTML Templates ────────────────────────────────────\n\n async createHtmlTemplate(options: CreateHtmlTemplateOptions): Promise<HtmlTemplate> {\n const template: HtmlTemplate = {\n _id: randomUUID(),\n name: options.name,\n description: options.description,\n org: 'mock-org',\n html: options.html,\n landscape: options.landscape ?? false,\n variables: [],\n isSystem: options.isSystem ?? false,\n archived: false,\n createdBy: 'mock-user',\n createdAt: now(),\n updatedAt: now(),\n }\n this.htmlTemplates.set(template._id, template)\n return template\n }\n\n async listHtmlTemplates(query: HtmlTemplateListQuery = {}): Promise<ListResult<HtmlTemplate>> {\n const archived = query.archived ?? false\n const items = [...this.htmlTemplates.values()].filter((t) => t.archived === archived)\n return paginate(items, query)\n }\n\n async getHtmlTemplate(id: string): Promise<HtmlTemplate> {\n return findOrThrow(this.htmlTemplates, id, 'HTML template')\n }\n\n async updateHtmlTemplate(id: string, options: UpdateHtmlTemplateOptions): Promise<HtmlTemplate> {\n const existing = findOrThrow(this.htmlTemplates, id, 'HTML template')\n const updated: HtmlTemplate = {\n ...existing,\n ...Object.fromEntries(Object.entries(options).filter(([, v]) => v !== undefined)),\n updatedAt: now(),\n }\n this.htmlTemplates.set(id, updated)\n return updated\n }\n\n async deleteHtmlTemplate(id: string): Promise<HtmlTemplate> {\n const existing = findOrThrow(this.htmlTemplates, id, 'HTML template')\n const archived: HtmlTemplate = { ...existing, archived: true, updatedAt: now() }\n this.htmlTemplates.set(id, archived)\n return archived\n }\n\n // ─── PDF Templates ────────────────────────────────────\n\n async uploadPdfTemplate(\n _file: Buffer | Uint8Array,\n options: CreatePdfTemplateOptions = {},\n ): Promise<PdfTemplate> {\n const template: PdfTemplate = {\n _id: randomUUID(),\n name: options.name ?? 'mock-template.pdf',\n description: options.description,\n org: 'mock-org',\n storageKey: `mock/templates/${randomUUID()}.pdf`,\n fields: [],\n pages: 1,\n coordinates: options.coordinates,\n isSystem: options.isSystem ?? false,\n archived: false,\n createdBy: 'mock-user',\n createdAt: now(),\n updatedAt: now(),\n }\n this.pdfTemplates.set(template._id, template)\n return template\n }\n\n async listPdfTemplates(query: PdfTemplateListQuery = {}): Promise<ListResult<PdfTemplate>> {\n const archived = query.archived ?? false\n const items = [...this.pdfTemplates.values()].filter((t) => t.archived === archived)\n return paginate(items, query)\n }\n\n async getPdfTemplate(id: string): Promise<PdfTemplate> {\n return findOrThrow(this.pdfTemplates, id, 'PDF template')\n }\n\n async getPdfTemplateFields(id: string): Promise<readonly PdfField[]> {\n const template = findOrThrow(this.pdfTemplates, id, 'PDF template')\n return template.fields\n }\n\n async getPdfTemplateDownloadUrl(id: string): Promise<string> {\n findOrThrow(this.pdfTemplates, id, 'PDF template')\n return `https://mock-s3.example.com/templates/${id}.pdf?token=mock`\n }\n\n async updatePdfTemplate(\n id: string,\n options: UpdatePdfTemplateOptions,\n _file?: Buffer | Uint8Array,\n ): Promise<PdfTemplate> {\n const existing = findOrThrow(this.pdfTemplates, id, 'PDF template')\n const updated: PdfTemplate = {\n ...existing,\n ...Object.fromEntries(Object.entries(options).filter(([, v]) => v !== undefined)),\n updatedAt: now(),\n }\n this.pdfTemplates.set(id, updated)\n return updated\n }\n\n async deletePdfTemplate(id: string): Promise<PdfTemplate> {\n const existing = findOrThrow(this.pdfTemplates, id, 'PDF template')\n const archived: PdfTemplate = { ...existing, archived: true, updatedAt: now() }\n this.pdfTemplates.set(id, archived)\n return archived\n }\n\n // ─── Template Groups ──────────────────────────────────\n\n async createTemplateGroup(options: CreateTemplateGroupOptions): Promise<TemplateGroup> {\n const group: TemplateGroup = {\n _id: randomUUID(),\n name: options.name,\n org: 'mock-org',\n templates: options.templates,\n terms: options.terms,\n coordinates: options.coordinates,\n createdBy: 'mock-user',\n createdAt: now(),\n updatedAt: now(),\n }\n this.templateGroups.set(group._id, group)\n return group\n }\n\n async listTemplateGroups(query: ListQuery = {}): Promise<ListResult<TemplateGroup>> {\n const items = [...this.templateGroups.values()]\n return paginate(items, query)\n }\n\n async getTemplateGroup(id: string): Promise<TemplateGroup> {\n return findOrThrow(this.templateGroups, id, 'Template group')\n }\n\n async updateTemplateGroup(id: string, options: UpdateTemplateGroupOptions): Promise<TemplateGroup> {\n const existing = findOrThrow(this.templateGroups, id, 'Template group')\n const updated: TemplateGroup = {\n ...existing,\n ...Object.fromEntries(Object.entries(options).filter(([, v]) => v !== undefined)),\n updatedAt: now(),\n }\n this.templateGroups.set(id, updated)\n return updated\n }\n\n async deleteTemplateGroup(id: string): Promise<void> {\n if (!this.templateGroups.has(id)) {\n throw new DocmanError('Template group not found', 404, 'NOT_FOUND')\n }\n this.templateGroups.delete(id)\n }\n\n // ─── Documents ────────────────────────────────────────\n\n async generate(options: GenerateOptions): Promise<GenerateResult> {\n const docId = randomUUID()\n const shareToken = randomUUID().replace(/-/g, '')\n\n const doc: DocmanDocument = {\n _id: docId,\n name: options.name,\n description: options.description,\n org: 'mock-org',\n storageKey: `mock/documents/${docId}/v1.pdf`,\n version: 1,\n sourceTemplates: options.templateIds.map((id) => ({ templateId: id, templateType: 'html' })),\n templateData: options.data,\n pages: 1,\n sizeBytes: 1024,\n deliveryMode: 'managed',\n shareToken,\n createdBy: 'mock-user',\n createdAt: now(),\n updatedAt: now(),\n }\n\n this.documents.set(docId, doc)\n this.documentVersions.set(docId, [{\n _id: docId,\n version: 1,\n pages: 1,\n sizeBytes: 1024,\n createdAt: doc.createdAt,\n createdBy: 'mock-user',\n }])\n\n return {\n documentId: docId,\n version: 1,\n downloadUrl: `https://mock-s3.example.com/documents/${docId}/v1.pdf?token=mock`,\n publicUrl: `http://localhost:3000/d/${shareToken}`,\n pages: 1,\n sizeBytes: 1024,\n }\n }\n\n async generatePassthrough(_options: GenerateOptions): Promise<Buffer> {\n return Buffer.from('%PDF-1.4 mock', 'utf8')\n }\n\n async listDocuments(query: ListQuery = {}): Promise<ListResult<DocmanDocument>> {\n const items = [...this.documents.values()].sort(\n (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(),\n )\n return paginate(items, query)\n }\n\n async getDocument(id: string): Promise<DocmanDocument> {\n return findOrThrow(this.documents, id, 'Document')\n }\n\n async downloadUrl(id: string): Promise<string> {\n findOrThrow(this.documents, id, 'Document')\n return `https://mock-s3.example.com/documents/${id}/v1.pdf?token=mock`\n }\n\n async getVersions(id: string): Promise<readonly DocumentVersion[]> {\n findOrThrow(this.documents, id, 'Document')\n return this.documentVersions.get(id) ?? []\n }\n\n async regenerate(id: string): Promise<GenerateResult> {\n const original = findOrThrow(this.documents, id, 'Document')\n const newVersion = original.version + 1\n const newDocId = randomUUID()\n const shareToken = randomUUID().replace(/-/g, '')\n\n const newDoc: DocmanDocument = {\n ...original,\n _id: newDocId,\n version: newVersion,\n shareToken,\n storageKey: `mock/documents/${newDocId}/v${newVersion}.pdf`,\n createdAt: now(),\n updatedAt: now(),\n }\n\n this.documents.set(newDocId, newDoc)\n\n const versions = this.documentVersions.get(id) ?? []\n this.documentVersions.set(newDocId, [\n ...versions,\n {\n _id: newDocId,\n version: newVersion,\n pages: original.pages,\n sizeBytes: original.sizeBytes,\n createdAt: newDoc.createdAt,\n createdBy: 'mock-user',\n },\n ])\n\n return {\n documentId: newDocId,\n version: newVersion,\n downloadUrl: `https://mock-s3.example.com/documents/${newDocId}/v${newVersion}.pdf?token=mock`,\n publicUrl: `http://localhost:3000/d/${shareToken}`,\n pages: original.pages,\n sizeBytes: original.sizeBytes,\n }\n }\n\n // ─── Operations ──────────────────────────────────────\n\n async merge(buffers: readonly (Buffer | Uint8Array)[]): Promise<Buffer> {\n if (buffers.length < 2) {\n throw new DocmanError('At least 2 PDF buffers are required for merge', 400, 'VALIDATION_ERROR')\n }\n return Buffer.from('%PDF-1.4 mock-merged', 'utf8')\n }\n\n async split(_buffer: Buffer | Uint8Array, ranges: readonly PageRange[]): Promise<readonly SplitPart[]> {\n if (ranges.length === 0) {\n throw new DocmanError('At least 1 page range is required', 400, 'VALIDATION_ERROR')\n }\n return ranges.map((range, index) => ({\n index,\n range,\n buffer: Buffer.from(`%PDF-1.4 mock-part-${index}`, 'utf8'),\n sizeBytes: 20,\n }))\n }\n\n async pageCount(_buffer: Buffer | Uint8Array): Promise<number> {\n return 1\n }\n\n // ─── Test Helpers ────────────────────────────────────\n\n /** Read all stored documents (for test assertions). */\n getDocuments(): ReadonlyMap<string, DocmanDocument> {\n return this.documents\n }\n\n /** Read all stored HTML templates (for test assertions). */\n getHtmlTemplates(): ReadonlyMap<string, HtmlTemplate> {\n return this.htmlTemplates\n }\n\n /** Read all stored PDF templates (for test assertions). */\n getPdfTemplates(): ReadonlyMap<string, PdfTemplate> {\n return this.pdfTemplates\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/mock.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto'\nimport { DocmanError } from './errors.js'\nimport type {\n HtmlTemplate,\n CreateHtmlTemplateOptions,\n UpdateHtmlTemplateOptions,\n HtmlTemplateListQuery,\n PdfTemplate,\n PdfField,\n CreatePdfTemplateOptions,\n UpdatePdfTemplateOptions,\n PdfTemplateListQuery,\n TemplateGroup,\n CreateTemplateGroupOptions,\n UpdateTemplateGroupOptions,\n DocmanDocument,\n DocumentVersion,\n GenerateOptions,\n GenerateResult,\n ListQuery,\n ListResult,\n PageRange,\n SplitPart,\n} from './types.js'\n\n// ─── Helpers ──────────────────────────────────────────────\n\nfunction now(): string {\n return new Date().toISOString()\n}\n\nfunction paginate<T>(items: readonly T[], query: ListQuery): ListResult<T> {\n const page = query.page ?? 1\n const limit = query.limit ?? 20\n const start = (page - 1) * limit\n return {\n data: items.slice(start, start + limit),\n meta: { total: items.length, page, limit },\n }\n}\n\nfunction findOrThrow<T extends { _id: string }>(\n map: Map<string, T>,\n id: string,\n label: string,\n): T {\n const item = map.get(id)\n if (!item) throw new DocmanError(`${label} not found`, 404, 'NOT_FOUND')\n return item\n}\n\n// ─── MockDocmanClient ────────────────────────────────────\n\n/**\n * In-memory implementation of DocmanClient for use in tests.\n *\n * Import from @insureco/docman/testing:\n * import { MockDocmanClient } from '@insureco/docman/testing'\n *\n * @example\n * const docman = new MockDocmanClient()\n * const template = await docman.createHtmlTemplate({ name: 'Quote', html: '<p>{{name}}</p>' })\n * const result = await docman.generate({ templateIds: [template._id], data: { name: 'Acme' }, name: 'test' })\n * expect(result.pages).toBe(1)\n */\nexport class MockDocmanClient {\n private readonly htmlTemplates = new Map<string, HtmlTemplate>()\n private readonly pdfTemplates = new Map<string, PdfTemplate>()\n private readonly templateGroups = new Map<string, TemplateGroup>()\n private readonly documents = new Map<string, DocmanDocument>()\n private readonly documentVersions = new Map<string, DocumentVersion[]>()\n\n /** Reset all in-memory state between tests. */\n reset(): void {\n this.htmlTemplates.clear()\n this.pdfTemplates.clear()\n this.templateGroups.clear()\n this.documents.clear()\n this.documentVersions.clear()\n }\n\n // ─── HTML Templates ────────────────────────────────────\n\n async createHtmlTemplate(options: CreateHtmlTemplateOptions): Promise<HtmlTemplate> {\n const template: HtmlTemplate = {\n _id: randomUUID(),\n name: options.name,\n description: options.description,\n org: 'mock-org',\n html: options.html,\n landscape: options.landscape ?? false,\n variables: [],\n isSystem: options.isSystem ?? false,\n archived: false,\n createdBy: 'mock-user',\n createdAt: now(),\n updatedAt: now(),\n }\n this.htmlTemplates.set(template._id, template)\n return template\n }\n\n async listHtmlTemplates(query: HtmlTemplateListQuery = {}): Promise<ListResult<HtmlTemplate>> {\n const archived = query.archived ?? false\n const items = [...this.htmlTemplates.values()].filter((t) => t.archived === archived)\n return paginate(items, query)\n }\n\n async getHtmlTemplate(id: string): Promise<HtmlTemplate> {\n return findOrThrow(this.htmlTemplates, id, 'HTML template')\n }\n\n async updateHtmlTemplate(id: string, options: UpdateHtmlTemplateOptions): Promise<HtmlTemplate> {\n const existing = findOrThrow(this.htmlTemplates, id, 'HTML template')\n const updated: HtmlTemplate = {\n ...existing,\n ...Object.fromEntries(Object.entries(options).filter(([, v]) => v !== undefined)),\n updatedAt: now(),\n }\n this.htmlTemplates.set(id, updated)\n return updated\n }\n\n async deleteHtmlTemplate(id: string): Promise<HtmlTemplate> {\n const existing = findOrThrow(this.htmlTemplates, id, 'HTML template')\n const archived: HtmlTemplate = { ...existing, archived: true, updatedAt: now() }\n this.htmlTemplates.set(id, archived)\n return archived\n }\n\n // ─── PDF Templates ────────────────────────────────────\n\n async uploadPdfTemplate(\n _file: Buffer | Uint8Array,\n options: CreatePdfTemplateOptions = {},\n ): Promise<PdfTemplate> {\n const template: PdfTemplate = {\n _id: randomUUID(),\n name: options.name ?? 'mock-template.pdf',\n description: options.description,\n org: 'mock-org',\n storageKey: `mock/templates/${randomUUID()}.pdf`,\n fields: [],\n pages: 1,\n coordinates: options.coordinates,\n isSystem: options.isSystem ?? false,\n archived: false,\n createdBy: 'mock-user',\n createdAt: now(),\n updatedAt: now(),\n }\n this.pdfTemplates.set(template._id, template)\n return template\n }\n\n async listPdfTemplates(query: PdfTemplateListQuery = {}): Promise<ListResult<PdfTemplate>> {\n const archived = query.archived ?? false\n const items = [...this.pdfTemplates.values()].filter((t) => t.archived === archived)\n return paginate(items, query)\n }\n\n async getPdfTemplate(id: string): Promise<PdfTemplate> {\n return findOrThrow(this.pdfTemplates, id, 'PDF template')\n }\n\n async getPdfTemplateFields(id: string): Promise<readonly PdfField[]> {\n const template = findOrThrow(this.pdfTemplates, id, 'PDF template')\n return template.fields\n }\n\n async getPdfTemplateDownloadUrl(id: string): Promise<string> {\n findOrThrow(this.pdfTemplates, id, 'PDF template')\n return `https://mock-s3.example.com/templates/${id}.pdf?token=mock`\n }\n\n async updatePdfTemplate(\n id: string,\n options: UpdatePdfTemplateOptions,\n _file?: Buffer | Uint8Array,\n ): Promise<PdfTemplate> {\n const existing = findOrThrow(this.pdfTemplates, id, 'PDF template')\n const updated: PdfTemplate = {\n ...existing,\n ...Object.fromEntries(Object.entries(options).filter(([, v]) => v !== undefined)),\n updatedAt: now(),\n }\n this.pdfTemplates.set(id, updated)\n return updated\n }\n\n async deletePdfTemplate(id: string): Promise<PdfTemplate> {\n const existing = findOrThrow(this.pdfTemplates, id, 'PDF template')\n const archived: PdfTemplate = { ...existing, archived: true, updatedAt: now() }\n this.pdfTemplates.set(id, archived)\n return archived\n }\n\n // ─── Template Groups ──────────────────────────────────\n\n async createTemplateGroup(options: CreateTemplateGroupOptions): Promise<TemplateGroup> {\n const group: TemplateGroup = {\n _id: randomUUID(),\n name: options.name,\n org: 'mock-org',\n templates: options.templates,\n terms: options.terms,\n coordinates: options.coordinates,\n createdBy: 'mock-user',\n createdAt: now(),\n updatedAt: now(),\n }\n this.templateGroups.set(group._id, group)\n return group\n }\n\n async listTemplateGroups(query: ListQuery = {}): Promise<ListResult<TemplateGroup>> {\n const items = [...this.templateGroups.values()]\n return paginate(items, query)\n }\n\n async getTemplateGroup(id: string): Promise<TemplateGroup> {\n return findOrThrow(this.templateGroups, id, 'Template group')\n }\n\n async updateTemplateGroup(id: string, options: UpdateTemplateGroupOptions): Promise<TemplateGroup> {\n const existing = findOrThrow(this.templateGroups, id, 'Template group')\n const updated: TemplateGroup = {\n ...existing,\n ...Object.fromEntries(Object.entries(options).filter(([, v]) => v !== undefined)),\n updatedAt: now(),\n }\n this.templateGroups.set(id, updated)\n return updated\n }\n\n async deleteTemplateGroup(id: string): Promise<void> {\n if (!this.templateGroups.has(id)) {\n throw new DocmanError('Template group not found', 404, 'NOT_FOUND')\n }\n this.templateGroups.delete(id)\n }\n\n // ─── Documents ────────────────────────────────────────\n\n async generate(options: GenerateOptions): Promise<GenerateResult> {\n const docId = randomUUID()\n const shareToken = randomUUID().replace(/-/g, '')\n\n const doc: DocmanDocument = {\n _id: docId,\n name: options.name,\n description: options.description,\n org: 'mock-org',\n storageKey: `mock/documents/${docId}/v1.pdf`,\n version: 1,\n sourceTemplates: options.templateIds.map((id) => ({ templateId: id, templateType: 'html' })),\n templateData: options.data,\n pages: 1,\n sizeBytes: 1024,\n deliveryMode: 'managed',\n shareToken,\n createdBy: 'mock-user',\n createdAt: now(),\n updatedAt: now(),\n }\n\n this.documents.set(docId, doc)\n this.documentVersions.set(docId, [{\n _id: docId,\n version: 1,\n pages: 1,\n sizeBytes: 1024,\n createdAt: doc.createdAt,\n createdBy: 'mock-user',\n }])\n\n return {\n documentId: docId,\n version: 1,\n downloadUrl: `https://mock-s3.example.com/documents/${docId}/v1.pdf?token=mock`,\n publicUrl: `http://localhost:3000/d/${shareToken}`,\n pages: 1,\n sizeBytes: 1024,\n }\n }\n\n async generatePassthrough(_options: GenerateOptions): Promise<Buffer> {\n return Buffer.from('%PDF-1.4 mock', 'utf8')\n }\n\n async listDocuments(query: ListQuery = {}): Promise<ListResult<DocmanDocument>> {\n const items = [...this.documents.values()].sort(\n (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(),\n )\n return paginate(items, query)\n }\n\n async getDocument(id: string): Promise<DocmanDocument> {\n return findOrThrow(this.documents, id, 'Document')\n }\n\n async downloadUrl(id: string): Promise<string> {\n findOrThrow(this.documents, id, 'Document')\n return `https://mock-s3.example.com/documents/${id}/v1.pdf?token=mock`\n }\n\n async getVersions(id: string): Promise<readonly DocumentVersion[]> {\n findOrThrow(this.documents, id, 'Document')\n return this.documentVersions.get(id) ?? []\n }\n\n async regenerate(id: string): Promise<GenerateResult> {\n const original = findOrThrow(this.documents, id, 'Document')\n const newVersion = original.version + 1\n const newDocId = randomUUID()\n const shareToken = randomUUID().replace(/-/g, '')\n\n const newDoc: DocmanDocument = {\n ...original,\n _id: newDocId,\n version: newVersion,\n shareToken,\n storageKey: `mock/documents/${newDocId}/v${newVersion}.pdf`,\n createdAt: now(),\n updatedAt: now(),\n }\n\n this.documents.set(newDocId, newDoc)\n\n const versions = this.documentVersions.get(id) ?? []\n this.documentVersions.set(newDocId, [\n ...versions,\n {\n _id: newDocId,\n version: newVersion,\n pages: original.pages,\n sizeBytes: original.sizeBytes,\n createdAt: newDoc.createdAt,\n createdBy: 'mock-user',\n },\n ])\n\n return {\n documentId: newDocId,\n version: newVersion,\n downloadUrl: `https://mock-s3.example.com/documents/${newDocId}/v${newVersion}.pdf?token=mock`,\n publicUrl: `http://localhost:3000/d/${shareToken}`,\n pages: original.pages,\n sizeBytes: original.sizeBytes,\n }\n }\n\n // ─── Operations ──────────────────────────────────────\n\n async merge(buffers: readonly (Buffer | Uint8Array)[]): Promise<Buffer> {\n if (buffers.length < 2) {\n throw new DocmanError('At least 2 PDF buffers are required for merge', 400, 'VALIDATION_ERROR')\n }\n return Buffer.from('%PDF-1.4 mock-merged', 'utf8')\n }\n\n async split(_buffer: Buffer | Uint8Array, ranges: readonly PageRange[]): Promise<readonly SplitPart[]> {\n if (ranges.length === 0) {\n throw new DocmanError('At least 1 page range is required', 400, 'VALIDATION_ERROR')\n }\n return ranges.map((range, index) => ({\n index,\n range,\n buffer: Buffer.from(`%PDF-1.4 mock-part-${index}`, 'utf8'),\n sizeBytes: 20,\n }))\n }\n\n async introspectFields(templateIds: readonly string[]): Promise<Record<string, readonly PdfField[]>> {\n const result: Record<string, readonly PdfField[]> = {}\n for (const id of templateIds) {\n const template = this.pdfTemplates.get(id)\n result[id] = template?.fields ?? []\n }\n return result\n }\n\n async pageCount(_buffer: Buffer | Uint8Array): Promise<number> {\n return 1\n }\n\n // ─── Test Helpers ────────────────────────────────────\n\n /** Read all stored documents (for test assertions). */\n getDocuments(): ReadonlyMap<string, DocmanDocument> {\n return this.documents\n }\n\n /** Read all stored HTML templates (for test assertions). */\n getHtmlTemplates(): ReadonlyMap<string, HtmlTemplate> {\n return this.htmlTemplates\n }\n\n /** Read all stored PDF templates (for test assertions). */\n getPdfTemplates(): ReadonlyMap<string, PdfTemplate> {\n return this.pdfTemplates\n }\n}\n"],"mappings":"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","names":[]}
@@ -182,4 +182,4 @@ interface SplitPart {
182
182
  readonly sizeBytes: number;
183
183
  }
184
184
 
185
- export type { CreateHtmlTemplateOptions as C, DocmanClientConfig as D, GenerateOptions as G, HtmlTemplate as H, ListResult as L, PdfTemplate as P, SplitPart as S, TemplateGroup as T, UpdateHtmlTemplateOptions as U, HtmlTemplateListQuery as a, CreatePdfTemplateOptions as b, PdfTemplateListQuery as c, PdfField as d, UpdatePdfTemplateOptions as e, CreateTemplateGroupOptions as f, ListQuery as g, UpdateTemplateGroupOptions as h, GenerateResult as i, DocmanDocument as j, DocumentVersion as k, PageRange as l, ListMeta as m, SourceTemplate as n, TemplateCoordinates as o, TemplateGroupItem as p };
185
+ export type { CreateHtmlTemplateOptions as C, DocmanClientConfig as D, GenerateOptions as G, HtmlTemplate as H, ListMeta as L, PageRange as P, SourceTemplate as S, TemplateCoordinates as T, UpdateHtmlTemplateOptions as U, CreatePdfTemplateOptions as a, CreateTemplateGroupOptions as b, DocmanDocument as c, DocumentVersion as d, GenerateResult as e, HtmlTemplateListQuery as f, ListQuery as g, ListResult as h, PdfField as i, PdfTemplate as j, PdfTemplateListQuery as k, SplitPart as l, TemplateGroup as m, TemplateGroupItem as n, UpdatePdfTemplateOptions as o, UpdateTemplateGroupOptions as p };
@@ -182,4 +182,4 @@ interface SplitPart {
182
182
  readonly sizeBytes: number;
183
183
  }
184
184
 
185
- export type { CreateHtmlTemplateOptions as C, DocmanClientConfig as D, GenerateOptions as G, HtmlTemplate as H, ListResult as L, PdfTemplate as P, SplitPart as S, TemplateGroup as T, UpdateHtmlTemplateOptions as U, HtmlTemplateListQuery as a, CreatePdfTemplateOptions as b, PdfTemplateListQuery as c, PdfField as d, UpdatePdfTemplateOptions as e, CreateTemplateGroupOptions as f, ListQuery as g, UpdateTemplateGroupOptions as h, GenerateResult as i, DocmanDocument as j, DocumentVersion as k, PageRange as l, ListMeta as m, SourceTemplate as n, TemplateCoordinates as o, TemplateGroupItem as p };
185
+ export type { CreateHtmlTemplateOptions as C, DocmanClientConfig as D, GenerateOptions as G, HtmlTemplate as H, ListMeta as L, PageRange as P, SourceTemplate as S, TemplateCoordinates as T, UpdateHtmlTemplateOptions as U, CreatePdfTemplateOptions as a, CreateTemplateGroupOptions as b, DocmanDocument as c, DocumentVersion as d, GenerateResult as e, HtmlTemplateListQuery as f, ListQuery as g, ListResult as h, PdfField as i, PdfTemplate as j, PdfTemplateListQuery as k, SplitPart as l, TemplateGroup as m, TemplateGroupItem as n, UpdatePdfTemplateOptions as o, UpdateTemplateGroupOptions as p };