@shuji-bonji/pdf-spec-mcp 0.2.4 → 0.3.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/README.ja.md +11 -3
- package/README.md +11 -3
- package/dist/config.d.ts +3 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -4
- package/dist/config.js.map +1 -1
- package/dist/services/pdf-registry.d.ts.map +1 -1
- package/dist/services/pdf-registry.js +11 -3
- package/dist/services/pdf-registry.js.map +1 -1
- package/package.json +1 -1
package/README.ja.md
CHANGED
|
@@ -7,6 +7,14 @@
|
|
|
7
7
|
|
|
8
8
|
ISO 32000(PDF)仕様書への構造化アクセスを提供する MCP(Model Context Protocol)サーバーです。LLM が PDF 仕様書をナビゲート・検索・分析するためのツールを提供します。
|
|
9
9
|
|
|
10
|
+
### PDF family
|
|
11
|
+
|
|
12
|
+
| サーバー | 役割 |
|
|
13
|
+
|---------|------|
|
|
14
|
+
| **pdf-spec-mcp**(本サーバー) | PDF 仕様知識(ISO 32000・PDF/A・PDF/UA) |
|
|
15
|
+
| [pdf-reader-mcp](https://github.com/shuji-bonji/pdf-reader-mcp) | PDF 内部構造の読取・検査 — 「何があるか」 |
|
|
16
|
+
| [pdf-verify-mcp](https://github.com/shuji-bonji/pdf-verify-mcp) | 真正性検証 — 「それが本物か」: 電子署名の暗号学的検証・改ざん検知・PAdES レベル判定・PDF/A 検証・暗号化PDF復号 |
|
|
17
|
+
|
|
10
18
|
> [!IMPORTANT]
|
|
11
19
|
> **PDF 仕様書ファイルは同梱されていません。**
|
|
12
20
|
> このサーバーを利用するには、PDF 仕様書を別途入手し、ローカルディレクトリに配置する必要があります。
|
|
@@ -127,14 +135,14 @@ graph LR
|
|
|
127
135
|
pdf-specs/
|
|
128
136
|
│
|
|
129
137
|
│ ── 標準 ──────────────────────────────────
|
|
130
|
-
├── ISO_32000-
|
|
138
|
+
├── ISO_32000-2_sponsored_EC3.pdf # iso32000-2 : PDF 2.0 EC3(推奨・主対象。EC2にもフォールバック)
|
|
131
139
|
├── ISO_32000-2-2020_sponsored.pdf # iso32000-2-2020 : PDF 2.0 原版
|
|
132
140
|
├── PDF32000_2008.pdf # pdf17 : PDF 1.7(バージョン比較用)
|
|
133
141
|
├── pdfreference1.7old.pdf # pdf17old : Adobe PDF Reference 1.7
|
|
134
142
|
│
|
|
135
143
|
│ ── 技術仕様(TS)──────────────────────────
|
|
136
|
-
├── ISO_TS_32001-
|
|
137
|
-
├── ISO_TS_32002-
|
|
144
|
+
├── ISO_TS_32001-2022_sponsored_EC3.pdf # ts32001 : ハッシュ拡張 (SHA-3)
|
|
145
|
+
├── ISO_TS_32002-2022_sponsored_EC3.pdf # ts32002 : 電子署名拡張 (ECC/PAdES)
|
|
138
146
|
├── ISO_TS_32003-2023_sponsored.pdf # ts32003 : AES-GCM 暗号化
|
|
139
147
|
├── ISO-TS-32004-2024_sponsored.pdf # ts32004 : 整合性保護
|
|
140
148
|
├── ISO-TS-32005-2023-sponsored.pdf # ts32005 : 名前空間マッピング
|
package/README.md
CHANGED
|
@@ -7,6 +7,14 @@
|
|
|
7
7
|
|
|
8
8
|
An MCP (Model Context Protocol) server that provides structured access to ISO 32000 (PDF) specification documents. Enables LLMs to navigate, search, and analyze PDF specifications through well-defined tools.
|
|
9
9
|
|
|
10
|
+
### PDF family
|
|
11
|
+
|
|
12
|
+
| Server | Role |
|
|
13
|
+
|--------|------|
|
|
14
|
+
| **pdf-spec-mcp** (this) | PDF specification knowledge (ISO 32000, PDF/A, PDF/UA) |
|
|
15
|
+
| [pdf-reader-mcp](https://github.com/shuji-bonji/pdf-reader-mcp) | Read and inspect PDF internal structure — *what is in* a PDF |
|
|
16
|
+
| [pdf-verify-mcp](https://github.com/shuji-bonji/pdf-verify-mcp) | Authenticity verification — *whether it is genuine*: cryptographic signature verification, tamper detection, PAdES level, PDF/A validation, encrypted-PDF decryption |
|
|
17
|
+
|
|
10
18
|
> [!IMPORTANT]
|
|
11
19
|
> **PDF specification files are NOT included in this package.**
|
|
12
20
|
> You must obtain the PDF specification documents separately and place them in a local directory.
|
|
@@ -127,14 +135,14 @@ All 17 files below are supported. You do not need all of them — place only the
|
|
|
127
135
|
pdf-specs/
|
|
128
136
|
│
|
|
129
137
|
│ ── Standards ─────────────────────────────
|
|
130
|
-
├── ISO_32000-
|
|
138
|
+
├── ISO_32000-2_sponsored_EC3.pdf # iso32000-2 : PDF 2.0 EC3 (recommended; falls back to -ec2.pdf)
|
|
131
139
|
├── ISO_32000-2-2020_sponsored.pdf # iso32000-2-2020 : PDF 2.0 original
|
|
132
140
|
├── PDF32000_2008.pdf # pdf17 : PDF 1.7 (for version comparison)
|
|
133
141
|
├── pdfreference1.7old.pdf # pdf17old : Adobe PDF Reference 1.7
|
|
134
142
|
│
|
|
135
143
|
│ ── Technical Specifications (TS) ─────────
|
|
136
|
-
├── ISO_TS_32001-
|
|
137
|
-
├── ISO_TS_32002-
|
|
144
|
+
├── ISO_TS_32001-2022_sponsored_EC3.pdf # ts32001 : Hash extensions (SHA-3)
|
|
145
|
+
├── ISO_TS_32002-2022_sponsored_EC3.pdf # ts32002 : Digital signature extensions (ECC/PAdES)
|
|
138
146
|
├── ISO_TS_32003-2023_sponsored.pdf # ts32003 : AES-GCM encryption
|
|
139
147
|
├── ISO-TS-32004-2024_sponsored.pdf # ts32004 : Integrity protection
|
|
140
148
|
├── ISO-TS-32005-2023-sponsored.pdf # ts32005 : Namespace mapping
|
package/dist/config.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare const PACKAGE_INFO: {
|
|
|
8
8
|
};
|
|
9
9
|
export declare const PDF_CONFIG: {
|
|
10
10
|
readonly envVar: "PDF_SPEC_DIR";
|
|
11
|
-
readonly primaryPdf: "ISO_32000-
|
|
11
|
+
readonly primaryPdf: "ISO_32000-2_sponsored_EC3.pdf";
|
|
12
12
|
};
|
|
13
13
|
export declare const CACHE_CONFIG: {
|
|
14
14
|
readonly sectionContent: {
|
|
@@ -54,7 +54,8 @@ export interface SpecPattern {
|
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Ordered list of filename patterns for auto-discovery.
|
|
57
|
-
*
|
|
57
|
+
* Array order = priority: when multiple files map to the same spec ID,
|
|
58
|
+
* the file matching the earlier pattern wins (see discoverSpecs).
|
|
58
59
|
* Primary spec (default) must be first.
|
|
59
60
|
*/
|
|
60
61
|
export declare const SPEC_PATTERNS: SpecPattern[];
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKrD,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;CAEf,CAAC;AAEX,yEAAyE;AACzE,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,uDAAuD;AACvD,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,wEAAwE;AACxE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAOpB,CAAC;AAEX,yDAAyD;AACzD,eAAO,MAAM,WAAW;IACtB,4DAA4D;;IAE5D,qEAAqE;;IAErE,4DAA4D;;CAEpD,CAAC;AAEX,8CAA8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKrD,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;CAEf,CAAC;AAEX,yEAAyE;AACzE,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,uDAAuD;AACvD,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,wEAAwE;AACxE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAOpB,CAAC;AAEX,yDAAyD;AACzD,eAAO,MAAM,WAAW;IACtB,4DAA4D;;IAE5D,qEAAqE;;IAErE,4DAA4D;;CAEpD,CAAC;AAEX,8CAA8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,EAwItC,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -10,7 +10,7 @@ export const PACKAGE_INFO = {
|
|
|
10
10
|
};
|
|
11
11
|
export const PDF_CONFIG = {
|
|
12
12
|
envVar: 'PDF_SPEC_DIR',
|
|
13
|
-
primaryPdf: 'ISO_32000-
|
|
13
|
+
primaryPdf: 'ISO_32000-2_sponsored_EC3.pdf',
|
|
14
14
|
};
|
|
15
15
|
export const CACHE_CONFIG = {
|
|
16
16
|
sectionContent: { maxSize: 50, name: 'SectionContentCache' },
|
|
@@ -39,13 +39,22 @@ export const CONCURRENCY = {
|
|
|
39
39
|
};
|
|
40
40
|
/**
|
|
41
41
|
* Ordered list of filename patterns for auto-discovery.
|
|
42
|
-
*
|
|
42
|
+
* Array order = priority: when multiple files map to the same spec ID,
|
|
43
|
+
* the file matching the earlier pattern wins (see discoverSpecs).
|
|
43
44
|
* Primary spec (default) must be first.
|
|
44
45
|
*/
|
|
45
46
|
export const SPEC_PATTERNS = [
|
|
46
|
-
// Primary: ISO 32000-2
|
|
47
|
+
// Primary: ISO 32000-2 EC3 (must be first — default spec)
|
|
47
48
|
{
|
|
48
|
-
pattern: /ISO_32000-2_sponsored-
|
|
49
|
+
pattern: /ISO_32000-2_sponsored[-_]ec3\.pdf$/i,
|
|
50
|
+
id: 'iso32000-2',
|
|
51
|
+
title: 'ISO 32000-2:2020 (PDF 2.0) with Errata Collection 3',
|
|
52
|
+
category: 'standard',
|
|
53
|
+
description: 'The current PDF 2.0 specification with errata corrections',
|
|
54
|
+
},
|
|
55
|
+
// Fallback: ISO 32000-2 EC2 (same ID — used only when no EC3 file exists)
|
|
56
|
+
{
|
|
57
|
+
pattern: /ISO_32000-2_sponsored[-_]ec2\.pdf$/i,
|
|
49
58
|
id: 'iso32000-2',
|
|
50
59
|
title: 'ISO 32000-2:2020 (PDF 2.0) with Errata Collection 2',
|
|
51
60
|
category: 'standard',
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAsC,CAAC;AAEpF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,OAAO,EAAE,WAAW,CAAC,OAAO;CACpB,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,+BAA+B;CACnC,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;CACpD,CAAC;AAEX,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,uDAAuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,wEAAwE;AACxE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG;IAClB,eAAe,EAAE,EAAE;IACnB,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAW;IAC3C,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAW;IAC7C,iBAAiB,EAAE,EAAE;CACb,CAAC;AAEX,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,4DAA4D;IAC5D,WAAW,EAAE,EAAE;IACf,qEAAqE;IACrE,iBAAiB,EAAE,EAAE;IACrB,4DAA4D;IAC5D,iBAAiB,EAAE,EAAE;CACb,CAAC;AAWX
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-registry.d.ts","sourceRoot":"","sources":["../../src/services/pdf-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAU,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAOxE;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxC;;OAEG;YACW,aAAa;
|
|
1
|
+
{"version":3,"file":"pdf-registry.d.ts","sourceRoot":"","sources":["../../src/services/pdf-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAU,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAOxE;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxC;;OAEG;YACW,aAAa;IA+D3B;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWnC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,QAAQ,EAAE;IAQ9C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAWtC;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAWxF;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAGrD,eAAO,MAAM,yBAAyB,qBAA4C,CAAC;AACnF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,WAAwC,CAAC;AACnF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,yBAAwC,CAAC;AACnF,eAAO,MAAM,SAAS,GAAI,WAAW,YAAY,eAAwC,CAAC;AAC1F,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,YAA4C,CAAC;AAC3F,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,WAA0C,CAAC;AACxF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,MAAM;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,SAClD,CAAC"}
|
|
@@ -48,13 +48,21 @@ export class RegistryService {
|
|
|
48
48
|
}
|
|
49
49
|
const pdfFiles = files.filter((f) => f.toLowerCase().endsWith('.pdf'));
|
|
50
50
|
let matched = 0;
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
// Process files in SPEC_PATTERNS priority order (not readdir order),
|
|
52
|
+
// so that for duplicate IDs the earlier pattern wins (e.g. EC3 over EC2).
|
|
53
|
+
const prioritized = pdfFiles
|
|
54
|
+
.map((filename) => ({
|
|
55
|
+
filename,
|
|
56
|
+
patternIndex: SPEC_PATTERNS.findIndex((p) => p.pattern.test(filename)),
|
|
57
|
+
}))
|
|
58
|
+
.sort((a, b) => a.patternIndex - b.patternIndex);
|
|
59
|
+
for (const { filename, patternIndex } of prioritized) {
|
|
60
|
+
const pattern = patternIndex >= 0 ? SPEC_PATTERNS[patternIndex] : undefined;
|
|
53
61
|
if (!pattern) {
|
|
54
62
|
logger.debug('PDFRegistry', `Skipping unrecognized PDF: ${filename}`);
|
|
55
63
|
continue;
|
|
56
64
|
}
|
|
57
|
-
// Skip if this ID is already registered (
|
|
65
|
+
// Skip if this ID is already registered (higher-priority pattern wins)
|
|
58
66
|
if (this.registry.has(pattern.id)) {
|
|
59
67
|
logger.debug('PDFRegistry', `Duplicate pattern match for "${pattern.id}", keeping first`);
|
|
60
68
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-registry.js","sourceRoot":"","sources":["../../src/services/pdf-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC5C,aAAa,GAAG,KAAK,CAAC;IACtB,gBAAgB,GAAyB,IAAI,CAAC;IAEtD;;;OAGG;IACH,KAAK,CAAC,iBAAiB;QACrB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,aAAa,CACrB,wBAAwB,UAAU,CAAC,MAAM,eAAe;gBACtD,6DAA6D,CAChE,CAAC;QACJ,CAAC;QAED,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CAAC,6BAA6B,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,
|
|
1
|
+
{"version":3,"file":"pdf-registry.js","sourceRoot":"","sources":["../../src/services/pdf-registry.ts"],"names":[],"mappings":"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"}
|