@dependabit/plugin-arxiv 0.1.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/CHANGELOG.md +9 -0
- package/LICENSE +21 -0
- package/README.md +31 -0
- package/dist/checker.d.ts +88 -0
- package/dist/checker.d.ts.map +1 -0
- package/dist/checker.js +199 -0
- package/dist/checker.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/package.json +38 -0
- package/src/checker.ts +283 -0
- package/src/index.ts +14 -0
- package/tsconfig.json +10 -0
- package/tsconfig.tsbuildinfo +1 -0
package/CHANGELOG.md
ADDED
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-present Pradeep Mouli
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# @dependabit/plugin-arxiv
|
|
2
|
+
|
|
3
|
+
arXiv API plugin for dependency tracking.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This plugin provides integration with the arXiv API for tracking research paper dependencies and versions.
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- arXiv API integration
|
|
12
|
+
- Paper version tracking
|
|
13
|
+
- Citation change detection
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @dependabit/plugin-arxiv
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { ArxivPlugin } from '@dependabit/plugin-arxiv';
|
|
25
|
+
|
|
26
|
+
// Coming soon in Phase 5
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## License
|
|
30
|
+
|
|
31
|
+
MIT
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* arXiv Checker
|
|
3
|
+
* Monitors arXiv preprints for version updates
|
|
4
|
+
*
|
|
5
|
+
* arXiv is an open-access repository for research papers.
|
|
6
|
+
* This checker tracks paper versions (v1, v2, etc.) using the arXiv API.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* arXiv API configuration
|
|
10
|
+
*/
|
|
11
|
+
export interface ArxivConfig {
|
|
12
|
+
url: string;
|
|
13
|
+
arxivId?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* arXiv paper metadata
|
|
17
|
+
*/
|
|
18
|
+
export interface ArxivPaper {
|
|
19
|
+
id: string;
|
|
20
|
+
title: string;
|
|
21
|
+
authors: string[];
|
|
22
|
+
abstract: string;
|
|
23
|
+
version: number;
|
|
24
|
+
publishedDate: string;
|
|
25
|
+
updatedDate: string;
|
|
26
|
+
pdfUrl: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* arXiv snapshot result
|
|
30
|
+
*/
|
|
31
|
+
export interface ArxivSnapshot {
|
|
32
|
+
version: string;
|
|
33
|
+
stateHash: string;
|
|
34
|
+
fetchedAt: Date;
|
|
35
|
+
metadata: {
|
|
36
|
+
arxivId: string;
|
|
37
|
+
title: string;
|
|
38
|
+
authors: string[];
|
|
39
|
+
abstract: string;
|
|
40
|
+
publishedDate: string;
|
|
41
|
+
updatedDate: string;
|
|
42
|
+
pdfUrl: string;
|
|
43
|
+
versionNumber: number;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* arXiv change detection result
|
|
48
|
+
*/
|
|
49
|
+
export interface ArxivChangeDetection {
|
|
50
|
+
hasChanged: boolean;
|
|
51
|
+
changes: string[];
|
|
52
|
+
oldVersion?: string;
|
|
53
|
+
newVersion?: string;
|
|
54
|
+
severity?: 'breaking' | 'major' | 'minor';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* arXiv checker implementation
|
|
58
|
+
*/
|
|
59
|
+
export declare class ArxivChecker {
|
|
60
|
+
private apiUrl;
|
|
61
|
+
/**
|
|
62
|
+
* Extract arXiv ID from URL or string
|
|
63
|
+
* Handles various formats:
|
|
64
|
+
* - https://arxiv.org/abs/1234.56789
|
|
65
|
+
* - https://arxiv.org/pdf/1234.56789.pdf
|
|
66
|
+
* - arxiv:1234.56789
|
|
67
|
+
* - 1234.56789
|
|
68
|
+
* - 1234.56789v2
|
|
69
|
+
*/
|
|
70
|
+
private extractArxivId;
|
|
71
|
+
/**
|
|
72
|
+
* Parse arXiv API XML response
|
|
73
|
+
*/
|
|
74
|
+
private parseArxivResponse;
|
|
75
|
+
/**
|
|
76
|
+
* Fetch paper information from arXiv API
|
|
77
|
+
*/
|
|
78
|
+
fetch(config: ArxivConfig): Promise<ArxivSnapshot>;
|
|
79
|
+
/**
|
|
80
|
+
* Compare two arXiv snapshots to detect changes
|
|
81
|
+
*/
|
|
82
|
+
compare(prev: ArxivSnapshot, curr: ArxivSnapshot): Promise<ArxivChangeDetection>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Create an arXiv checker instance
|
|
86
|
+
*/
|
|
87
|
+
export declare function createArxivChecker(): ArxivChecker;
|
|
88
|
+
//# sourceMappingURL=checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;CAC3C;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAwC;IAEtD;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiE1B;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAuDvD;IAED;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAiDrF;CACF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD"}
|
package/dist/checker.js
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* arXiv Checker
|
|
3
|
+
* Monitors arXiv preprints for version updates
|
|
4
|
+
*
|
|
5
|
+
* arXiv is an open-access repository for research papers.
|
|
6
|
+
* This checker tracks paper versions (v1, v2, etc.) using the arXiv API.
|
|
7
|
+
*/
|
|
8
|
+
import crypto from 'node:crypto';
|
|
9
|
+
/**
|
|
10
|
+
* arXiv checker implementation
|
|
11
|
+
*/
|
|
12
|
+
export class ArxivChecker {
|
|
13
|
+
apiUrl = 'https://export.arxiv.org/api/query';
|
|
14
|
+
/**
|
|
15
|
+
* Extract arXiv ID from URL or string
|
|
16
|
+
* Handles various formats:
|
|
17
|
+
* - https://arxiv.org/abs/1234.56789
|
|
18
|
+
* - https://arxiv.org/pdf/1234.56789.pdf
|
|
19
|
+
* - arxiv:1234.56789
|
|
20
|
+
* - 1234.56789
|
|
21
|
+
* - 1234.56789v2
|
|
22
|
+
*/
|
|
23
|
+
extractArxivId(input) {
|
|
24
|
+
const patterns = [
|
|
25
|
+
/arxiv\.org\/(?:abs|pdf)\/(\d+\.\d+)/i, // URLs
|
|
26
|
+
/arxiv:(\d+\.\d+)/i, // arxiv: prefix
|
|
27
|
+
/^(\d+\.\d+)(?:v\d+)?$/i // Raw ID with optional version
|
|
28
|
+
];
|
|
29
|
+
for (const pattern of patterns) {
|
|
30
|
+
const match = input.match(pattern);
|
|
31
|
+
if (match?.[1]) {
|
|
32
|
+
return match[1];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parse arXiv API XML response
|
|
39
|
+
*/
|
|
40
|
+
parseArxivResponse(xml) {
|
|
41
|
+
// Simple XML parsing for arXiv Atom feed
|
|
42
|
+
const getTagContent = (tag, content) => {
|
|
43
|
+
const regex = new RegExp(`<${tag}[^>]*>([\\s\\S]*?)</${tag}>`, 'i');
|
|
44
|
+
const match = content.match(regex);
|
|
45
|
+
return match?.[1]?.trim() || '';
|
|
46
|
+
};
|
|
47
|
+
const getAllTagContent = (tag, content) => {
|
|
48
|
+
const regex = new RegExp(`<${tag}[^>]*>([\\s\\S]*?)</${tag}>`, 'gi');
|
|
49
|
+
const matches = content.matchAll(regex);
|
|
50
|
+
return Array.from(matches).map((m) => m[1]?.trim() || '');
|
|
51
|
+
};
|
|
52
|
+
// Find the entry element
|
|
53
|
+
const entryMatch = xml.match(/<entry>([\s\S]*?)<\/entry>/);
|
|
54
|
+
if (!entryMatch) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const entry = entryMatch[1] || '';
|
|
58
|
+
// Extract ID and version
|
|
59
|
+
const id = getTagContent('id', entry);
|
|
60
|
+
const idMatch = id.match(/arxiv\.org\/abs\/(\d+\.\d+)(v(\d+))?/);
|
|
61
|
+
if (!idMatch) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const arxivId = idMatch[1] || '';
|
|
65
|
+
const version = parseInt(idMatch[3] || '1', 10);
|
|
66
|
+
// Extract metadata
|
|
67
|
+
const title = getTagContent('title', entry).replace(/\s+/g, ' ');
|
|
68
|
+
const abstract = getTagContent('summary', entry).replace(/\s+/g, ' ');
|
|
69
|
+
const published = getTagContent('published', entry);
|
|
70
|
+
const updated = getTagContent('updated', entry);
|
|
71
|
+
// Extract authors
|
|
72
|
+
const authorMatches = entry.matchAll(/<author[^>]*>[\s\S]*?<name>([^<]+)<\/name>[\s\S]*?<\/author>/gi);
|
|
73
|
+
const authors = Array.from(authorMatches).map((m) => m[1]?.trim() || '');
|
|
74
|
+
// Extract PDF link
|
|
75
|
+
const linkMatches = entry.matchAll(/<link[^>]*href=["']([^"']+)["'][^>]*>/gi);
|
|
76
|
+
let pdfUrl = '';
|
|
77
|
+
for (const match of linkMatches) {
|
|
78
|
+
if (match[1]?.includes('/pdf/')) {
|
|
79
|
+
pdfUrl = match[1];
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
id: arxivId,
|
|
85
|
+
title,
|
|
86
|
+
authors,
|
|
87
|
+
abstract,
|
|
88
|
+
version,
|
|
89
|
+
publishedDate: published,
|
|
90
|
+
updatedDate: updated,
|
|
91
|
+
pdfUrl: pdfUrl || `https://arxiv.org/pdf/${arxivId}.pdf`
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Fetch paper information from arXiv API
|
|
96
|
+
*/
|
|
97
|
+
async fetch(config) {
|
|
98
|
+
const { url, arxivId: providedId } = config;
|
|
99
|
+
// Extract or use provided arXiv ID
|
|
100
|
+
const arxivId = providedId || this.extractArxivId(url);
|
|
101
|
+
if (!arxivId) {
|
|
102
|
+
throw new Error(`Could not extract arXiv ID from: ${url}`);
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
// Query arXiv API
|
|
106
|
+
const queryUrl = `${this.apiUrl}?id_list=${arxivId}&max_results=1`;
|
|
107
|
+
const response = await fetch(queryUrl, {
|
|
108
|
+
headers: {
|
|
109
|
+
'User-Agent': 'dependabit-monitor/1.0'
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
if (!response.ok) {
|
|
113
|
+
throw new Error(`arXiv API error: ${response.status} ${response.statusText}`);
|
|
114
|
+
}
|
|
115
|
+
const xml = await response.text();
|
|
116
|
+
const paper = this.parseArxivResponse(xml);
|
|
117
|
+
if (!paper) {
|
|
118
|
+
throw new Error(`Could not parse arXiv response for ID: ${arxivId}`);
|
|
119
|
+
}
|
|
120
|
+
// Create state hash from paper metadata
|
|
121
|
+
const stateContent = JSON.stringify({
|
|
122
|
+
version: paper.version,
|
|
123
|
+
updatedDate: paper.updatedDate,
|
|
124
|
+
abstract: paper.abstract.substring(0, 500) // Use first 500 chars of abstract
|
|
125
|
+
});
|
|
126
|
+
const stateHash = crypto.createHash('sha256').update(stateContent).digest('hex');
|
|
127
|
+
return {
|
|
128
|
+
version: `v${paper.version}`,
|
|
129
|
+
stateHash,
|
|
130
|
+
fetchedAt: new Date(),
|
|
131
|
+
metadata: {
|
|
132
|
+
arxivId: paper.id,
|
|
133
|
+
title: paper.title,
|
|
134
|
+
authors: paper.authors,
|
|
135
|
+
abstract: paper.abstract,
|
|
136
|
+
publishedDate: paper.publishedDate,
|
|
137
|
+
updatedDate: paper.updatedDate,
|
|
138
|
+
pdfUrl: paper.pdfUrl,
|
|
139
|
+
versionNumber: paper.version
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
throw new Error(`Failed to fetch arXiv paper: ${error.message}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Compare two arXiv snapshots to detect changes
|
|
149
|
+
*/
|
|
150
|
+
async compare(prev, curr) {
|
|
151
|
+
const changes = [];
|
|
152
|
+
// Check version change (most important for arXiv)
|
|
153
|
+
const prevVersion = prev.metadata.versionNumber;
|
|
154
|
+
const currVersion = curr.metadata.versionNumber;
|
|
155
|
+
if (prevVersion !== currVersion) {
|
|
156
|
+
changes.push('version');
|
|
157
|
+
}
|
|
158
|
+
// Check updated date
|
|
159
|
+
if (prev.metadata.updatedDate !== curr.metadata.updatedDate) {
|
|
160
|
+
changes.push('updatedDate');
|
|
161
|
+
}
|
|
162
|
+
// Check abstract change (paper content may have been revised)
|
|
163
|
+
if (prev.metadata.abstract !== curr.metadata.abstract) {
|
|
164
|
+
changes.push('abstract');
|
|
165
|
+
}
|
|
166
|
+
// Check title change (rare but possible)
|
|
167
|
+
if (prev.metadata.title !== curr.metadata.title) {
|
|
168
|
+
changes.push('title');
|
|
169
|
+
}
|
|
170
|
+
// Determine severity
|
|
171
|
+
// For research papers, any version update is significant
|
|
172
|
+
let severity = 'minor';
|
|
173
|
+
if (changes.includes('version')) {
|
|
174
|
+
// New paper version is a major change
|
|
175
|
+
severity = 'major';
|
|
176
|
+
}
|
|
177
|
+
else if (changes.includes('abstract') || changes.includes('title')) {
|
|
178
|
+
// Content changes without version bump (metadata update)
|
|
179
|
+
severity = 'minor';
|
|
180
|
+
}
|
|
181
|
+
const result = {
|
|
182
|
+
hasChanged: changes.length > 0,
|
|
183
|
+
changes,
|
|
184
|
+
oldVersion: prev.version,
|
|
185
|
+
newVersion: curr.version
|
|
186
|
+
};
|
|
187
|
+
if (changes.length > 0) {
|
|
188
|
+
result.severity = severity;
|
|
189
|
+
}
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Create an arXiv checker instance
|
|
195
|
+
*/
|
|
196
|
+
export function createArxivChecker() {
|
|
197
|
+
return new ArxivChecker();
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dependabit/plugin-arxiv
|
|
3
|
+
*
|
|
4
|
+
* arXiv API plugin for monitoring research paper versions
|
|
5
|
+
*/
|
|
6
|
+
export { ArxivChecker, createArxivChecker, type ArxivConfig, type ArxivPaper, type ArxivSnapshot, type ArxivChangeDetection } from './checker.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,kBAAkB,EAKnB,MAAM,cAAc,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dependabit/plugin-arxiv",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "arXiv API plugin for dependency tracking",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"zod": "^4.3.6",
|
|
16
|
+
"@dependabit/manifest": "0.1.1"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@types/node": "^25.2.2",
|
|
20
|
+
"tsx": "^4.21.0",
|
|
21
|
+
"typescript": "^5.9.3",
|
|
22
|
+
"vitest": "^4.0.18"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"plugin",
|
|
26
|
+
"arxiv",
|
|
27
|
+
"api"
|
|
28
|
+
],
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsgo -p tsconfig.json",
|
|
32
|
+
"clean": "rm -rf dist",
|
|
33
|
+
"dev": "tsx watch src/index.ts",
|
|
34
|
+
"type-check": "tsgo --noEmit -p tsconfig.json",
|
|
35
|
+
"test": "vitest run",
|
|
36
|
+
"test:watch": "vitest"
|
|
37
|
+
}
|
|
38
|
+
}
|
package/src/checker.ts
ADDED
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* arXiv Checker
|
|
3
|
+
* Monitors arXiv preprints for version updates
|
|
4
|
+
*
|
|
5
|
+
* arXiv is an open-access repository for research papers.
|
|
6
|
+
* This checker tracks paper versions (v1, v2, etc.) using the arXiv API.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import crypto from 'node:crypto';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* arXiv API configuration
|
|
13
|
+
*/
|
|
14
|
+
export interface ArxivConfig {
|
|
15
|
+
url: string;
|
|
16
|
+
arxivId?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* arXiv paper metadata
|
|
21
|
+
*/
|
|
22
|
+
export interface ArxivPaper {
|
|
23
|
+
id: string;
|
|
24
|
+
title: string;
|
|
25
|
+
authors: string[];
|
|
26
|
+
abstract: string;
|
|
27
|
+
version: number;
|
|
28
|
+
publishedDate: string;
|
|
29
|
+
updatedDate: string;
|
|
30
|
+
pdfUrl: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* arXiv snapshot result
|
|
35
|
+
*/
|
|
36
|
+
export interface ArxivSnapshot {
|
|
37
|
+
version: string;
|
|
38
|
+
stateHash: string;
|
|
39
|
+
fetchedAt: Date;
|
|
40
|
+
metadata: {
|
|
41
|
+
arxivId: string;
|
|
42
|
+
title: string;
|
|
43
|
+
authors: string[];
|
|
44
|
+
abstract: string;
|
|
45
|
+
publishedDate: string;
|
|
46
|
+
updatedDate: string;
|
|
47
|
+
pdfUrl: string;
|
|
48
|
+
versionNumber: number;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* arXiv change detection result
|
|
54
|
+
*/
|
|
55
|
+
export interface ArxivChangeDetection {
|
|
56
|
+
hasChanged: boolean;
|
|
57
|
+
changes: string[];
|
|
58
|
+
oldVersion?: string;
|
|
59
|
+
newVersion?: string;
|
|
60
|
+
severity?: 'breaking' | 'major' | 'minor';
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* arXiv checker implementation
|
|
65
|
+
*/
|
|
66
|
+
export class ArxivChecker {
|
|
67
|
+
private apiUrl = 'https://export.arxiv.org/api/query';
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Extract arXiv ID from URL or string
|
|
71
|
+
* Handles various formats:
|
|
72
|
+
* - https://arxiv.org/abs/1234.56789
|
|
73
|
+
* - https://arxiv.org/pdf/1234.56789.pdf
|
|
74
|
+
* - arxiv:1234.56789
|
|
75
|
+
* - 1234.56789
|
|
76
|
+
* - 1234.56789v2
|
|
77
|
+
*/
|
|
78
|
+
private extractArxivId(input: string): string | null {
|
|
79
|
+
const patterns = [
|
|
80
|
+
/arxiv\.org\/(?:abs|pdf)\/(\d+\.\d+)/i, // URLs
|
|
81
|
+
/arxiv:(\d+\.\d+)/i, // arxiv: prefix
|
|
82
|
+
/^(\d+\.\d+)(?:v\d+)?$/i // Raw ID with optional version
|
|
83
|
+
];
|
|
84
|
+
|
|
85
|
+
for (const pattern of patterns) {
|
|
86
|
+
const match = input.match(pattern);
|
|
87
|
+
if (match?.[1]) {
|
|
88
|
+
return match[1];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Parse arXiv API XML response
|
|
97
|
+
*/
|
|
98
|
+
private parseArxivResponse(xml: string): ArxivPaper | null {
|
|
99
|
+
// Simple XML parsing for arXiv Atom feed
|
|
100
|
+
const getTagContent = (tag: string, content: string): string => {
|
|
101
|
+
const regex = new RegExp(`<${tag}[^>]*>([\\s\\S]*?)</${tag}>`, 'i');
|
|
102
|
+
const match = content.match(regex);
|
|
103
|
+
return match?.[1]?.trim() || '';
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
const getAllTagContent = (tag: string, content: string): string[] => {
|
|
107
|
+
const regex = new RegExp(`<${tag}[^>]*>([\\s\\S]*?)</${tag}>`, 'gi');
|
|
108
|
+
const matches = content.matchAll(regex);
|
|
109
|
+
return Array.from(matches).map((m) => m[1]?.trim() || '');
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// Find the entry element
|
|
113
|
+
const entryMatch = xml.match(/<entry>([\s\S]*?)<\/entry>/);
|
|
114
|
+
if (!entryMatch) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
const entry = entryMatch[1] || '';
|
|
118
|
+
|
|
119
|
+
// Extract ID and version
|
|
120
|
+
const id = getTagContent('id', entry);
|
|
121
|
+
const idMatch = id.match(/arxiv\.org\/abs\/(\d+\.\d+)(v(\d+))?/);
|
|
122
|
+
if (!idMatch) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const arxivId = idMatch[1] || '';
|
|
127
|
+
const version = parseInt(idMatch[3] || '1', 10);
|
|
128
|
+
|
|
129
|
+
// Extract metadata
|
|
130
|
+
const title = getTagContent('title', entry).replace(/\s+/g, ' ');
|
|
131
|
+
const abstract = getTagContent('summary', entry).replace(/\s+/g, ' ');
|
|
132
|
+
const published = getTagContent('published', entry);
|
|
133
|
+
const updated = getTagContent('updated', entry);
|
|
134
|
+
|
|
135
|
+
// Extract authors
|
|
136
|
+
const authorMatches = entry.matchAll(
|
|
137
|
+
/<author[^>]*>[\s\S]*?<name>([^<]+)<\/name>[\s\S]*?<\/author>/gi
|
|
138
|
+
);
|
|
139
|
+
const authors = Array.from(authorMatches).map((m) => m[1]?.trim() || '');
|
|
140
|
+
|
|
141
|
+
// Extract PDF link
|
|
142
|
+
const linkMatches = entry.matchAll(/<link[^>]*href=["']([^"']+)["'][^>]*>/gi);
|
|
143
|
+
let pdfUrl = '';
|
|
144
|
+
for (const match of linkMatches) {
|
|
145
|
+
if (match[1]?.includes('/pdf/')) {
|
|
146
|
+
pdfUrl = match[1];
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return {
|
|
152
|
+
id: arxivId,
|
|
153
|
+
title,
|
|
154
|
+
authors,
|
|
155
|
+
abstract,
|
|
156
|
+
version,
|
|
157
|
+
publishedDate: published,
|
|
158
|
+
updatedDate: updated,
|
|
159
|
+
pdfUrl: pdfUrl || `https://arxiv.org/pdf/${arxivId}.pdf`
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Fetch paper information from arXiv API
|
|
165
|
+
*/
|
|
166
|
+
async fetch(config: ArxivConfig): Promise<ArxivSnapshot> {
|
|
167
|
+
const { url, arxivId: providedId } = config;
|
|
168
|
+
|
|
169
|
+
// Extract or use provided arXiv ID
|
|
170
|
+
const arxivId = providedId || this.extractArxivId(url);
|
|
171
|
+
if (!arxivId) {
|
|
172
|
+
throw new Error(`Could not extract arXiv ID from: ${url}`);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
try {
|
|
176
|
+
// Query arXiv API
|
|
177
|
+
const queryUrl = `${this.apiUrl}?id_list=${arxivId}&max_results=1`;
|
|
178
|
+
const response = await fetch(queryUrl, {
|
|
179
|
+
headers: {
|
|
180
|
+
'User-Agent': 'dependabit-monitor/1.0'
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
if (!response.ok) {
|
|
185
|
+
throw new Error(`arXiv API error: ${response.status} ${response.statusText}`);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const xml = await response.text();
|
|
189
|
+
const paper = this.parseArxivResponse(xml);
|
|
190
|
+
|
|
191
|
+
if (!paper) {
|
|
192
|
+
throw new Error(`Could not parse arXiv response for ID: ${arxivId}`);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Create state hash from paper metadata
|
|
196
|
+
const stateContent = JSON.stringify({
|
|
197
|
+
version: paper.version,
|
|
198
|
+
updatedDate: paper.updatedDate,
|
|
199
|
+
abstract: paper.abstract.substring(0, 500) // Use first 500 chars of abstract
|
|
200
|
+
});
|
|
201
|
+
const stateHash = crypto.createHash('sha256').update(stateContent).digest('hex');
|
|
202
|
+
|
|
203
|
+
return {
|
|
204
|
+
version: `v${paper.version}`,
|
|
205
|
+
stateHash,
|
|
206
|
+
fetchedAt: new Date(),
|
|
207
|
+
metadata: {
|
|
208
|
+
arxivId: paper.id,
|
|
209
|
+
title: paper.title,
|
|
210
|
+
authors: paper.authors,
|
|
211
|
+
abstract: paper.abstract,
|
|
212
|
+
publishedDate: paper.publishedDate,
|
|
213
|
+
updatedDate: paper.updatedDate,
|
|
214
|
+
pdfUrl: paper.pdfUrl,
|
|
215
|
+
versionNumber: paper.version
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
} catch (error) {
|
|
219
|
+
throw new Error(`Failed to fetch arXiv paper: ${(error as Error).message}`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Compare two arXiv snapshots to detect changes
|
|
225
|
+
*/
|
|
226
|
+
async compare(prev: ArxivSnapshot, curr: ArxivSnapshot): Promise<ArxivChangeDetection> {
|
|
227
|
+
const changes: string[] = [];
|
|
228
|
+
|
|
229
|
+
// Check version change (most important for arXiv)
|
|
230
|
+
const prevVersion = prev.metadata.versionNumber;
|
|
231
|
+
const currVersion = curr.metadata.versionNumber;
|
|
232
|
+
|
|
233
|
+
if (prevVersion !== currVersion) {
|
|
234
|
+
changes.push('version');
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Check updated date
|
|
238
|
+
if (prev.metadata.updatedDate !== curr.metadata.updatedDate) {
|
|
239
|
+
changes.push('updatedDate');
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// Check abstract change (paper content may have been revised)
|
|
243
|
+
if (prev.metadata.abstract !== curr.metadata.abstract) {
|
|
244
|
+
changes.push('abstract');
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// Check title change (rare but possible)
|
|
248
|
+
if (prev.metadata.title !== curr.metadata.title) {
|
|
249
|
+
changes.push('title');
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
// Determine severity
|
|
253
|
+
// For research papers, any version update is significant
|
|
254
|
+
let severity: 'breaking' | 'major' | 'minor' = 'minor';
|
|
255
|
+
if (changes.includes('version')) {
|
|
256
|
+
// New paper version is a major change
|
|
257
|
+
severity = 'major';
|
|
258
|
+
} else if (changes.includes('abstract') || changes.includes('title')) {
|
|
259
|
+
// Content changes without version bump (metadata update)
|
|
260
|
+
severity = 'minor';
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
const result: ArxivChangeDetection = {
|
|
264
|
+
hasChanged: changes.length > 0,
|
|
265
|
+
changes,
|
|
266
|
+
oldVersion: prev.version,
|
|
267
|
+
newVersion: curr.version
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
if (changes.length > 0) {
|
|
271
|
+
result.severity = severity;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return result;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Create an arXiv checker instance
|
|
280
|
+
*/
|
|
281
|
+
export function createArxivChecker(): ArxivChecker {
|
|
282
|
+
return new ArxivChecker();
|
|
283
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dependabit/plugin-arxiv
|
|
3
|
+
*
|
|
4
|
+
* arXiv API plugin for monitoring research paper versions
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export {
|
|
8
|
+
ArxivChecker,
|
|
9
|
+
createArxivChecker,
|
|
10
|
+
type ArxivConfig,
|
|
11
|
+
type ArxivPaper,
|
|
12
|
+
type ArxivSnapshot,
|
|
13
|
+
type ArxivChangeDetection
|
|
14
|
+
} from './checker.js';
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"7.0.0-dev.20260209.1","root":[[66,67]],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.dom.d.ts","lib.dom.iterable.d.ts","lib.dom.asynciterable.d.ts","lib.webworker.importscripts.d.ts","lib.scripthost.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.esnext.disposable.d.ts","lib.esnext.float16.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","lib.es2022.full.d.ts","./src/checker.ts","./src/index.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/path/posix.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/path/win32.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/quic.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/test/reporters.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/util/types.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@25.2.2/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"df03312c77d1966d2a0a6f197374c05d","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"d4306fb2e47f74835e8674ffac07d76f","impliedNodeFormat":99},{"version":"e437c5c1302869326c3bb93da85bbbcf","impliedNodeFormat":99},{"version":"e4324975a566567b21d350615f1fc6ac","impliedNodeFormat":99},{"version":"333b1b9a2a9ac3b8497dba5c63b5ba50","impliedNodeFormat":99},{"version":"6cffacd662b6eb5fa7a36aa2ea366bfa","impliedNodeFormat":99},{"version":"b4c34f9c23304dbef2d23698637ed638","impliedNodeFormat":99},{"version":"e5cb86a5fc491796ecd1d2dd348d208f","impliedNodeFormat":99},{"version":"feb6c6fb19cdb246a5d8acb36a6901c7","impliedNodeFormat":99},{"version":"eac477d74cc026f6836df85e89cbf3d8","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"abad6dd56cc8caf095c165df8124d237","impliedNodeFormat":99},{"version":"abad6dd56cc8caf095c165df8124d237","impliedNodeFormat":99},{"version":"2a9941db0809c9ad0e8837ed629b1dcc","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"d051b93324f36bcc68d152a5ca0988cd","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"01ac052ec4a79e87229f90466a9645f8","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"019459eeccf7db234486aa4785caff64","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"ebbaac7e636b39a2ddebc2bdadb6b64d","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"bb3a710cbcda0533bb127712927cbe37","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"7a42de379b489e8f7b647455bebfc576","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"e62b1f4762f5ea7dcddc8ba588e5c0d6","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"8dd461ad1390d6b9a410d725abbc1538","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"692bcd75364db0f65d428801c7884466","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"105b781e6bc26ac78542ea8e2ca31f6e","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"be41035d7b941482a1e1ae6a5c5dcca5","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"0219894bfe5042c7e1aa2d22e4a91ed0","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"0eb5b8b97bde45c8fde5cd07c33f6631","impliedNodeFormat":99},{"version":"bde0727a8d10d544319ecbe39c929029","signature":"01c38275923511f877ef365823c14c82","impliedNodeFormat":1},{"version":"30d2118f3eb617495611f823e3a20e25","signature":"090fd71f23c2db3ef826da33f70464bc","impliedNodeFormat":1},{"version":"2514e9a2749c0fc18d2f478e9e1e641e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"014eb4d3e0618e548a7001fb52d9f78b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a852e3e448189a041957576c1c348a63","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"eedc66acd2ff4f27ca8fc1c10daf5304","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ec83150a952000d42a7e6ccedac2d892","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"494755686d9e421e630117d917760e4f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"c3f3d4053311f68af31e07f6e167faf6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"86013697f2045d357ef20d7a952cdc12","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9eca652586205dc5b07f9ba57b1c8500","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1ca5302f6fe11154128eef397b5a285b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"13835e9ba9b025ad7cab01fe7bad1fe3","affectsGlobalScope":true,"impliedNodeFormat":1},"49133c0dfbc32ab95668c3443dea49e5","85c2cf74d24d4069fac4686501a2d7e3","83f416ded62bb31c035580c3b5a8d334","d261ae135609468365bc2d32742d3e0d","60c67c092ae78d2e7858ca0a88f54659","9508c917bd7e458745e222a82dd24ef0","fcd1a513c1e5802916fa602e8b8e64bc","9cf55e98366383279869ace31be98079","8e2bc11d0328ba95e490a741c44a215d","f36661bccb8b9a0b5ccb8539ae751cb3","705645fe223430c696f47b708d592ca8","28d57c837c94adb42add03d499793cab","8c01a9bbae8449be21b3e018d59a74ac","705c3696b9d9681bf22181718bb08ffc","679024f8e9f58a112f4badf119c4d612","16f740a706028e841b09fb8b1aa8faaf","e6828eaf960f006eb1adb6e7df8913c0","6fdde11403da5129f4388a489f361535","d7e5f7a0f1f883f28458f684106e7643","c2364011a80b6a9e3cc0e77895bad577","38da5c670190f4a35cbc204ca6c616bf","d95cc0eb29beed58f5ce72db21398f53","ecd53256b1ec7379c73316eaf392a69c","db5a9211b779628398011a5b8f5b8b5d","69c7bb9c3befe9ae37eed0e6a6310fee","1cba93fafccb7b2655f0e75229185e83","094ecadae30f65a82b77343dde77a666","f75df12d75dd783b03a0329b95abdb25","b438b08b2f0ed94a95a75c8990d9021b","771a77c9bec862600c95f7a563871b5e","c665284a9cb3dd886b14663cd04742e0","1c3833453f6ed0acab1b4663ccdbd310","0468c0ccd0ec7770b76481b165564d62","188234d616a4f50ed9b14c8f84a39f33","4c116bcf0a47ea8fbf4072f380925fa7","1948703c2f27e582e0a0cc37bd67a868","add85ec26ba695fc99c698dbec065f8c","73ba12091cff7d4499df83bbe40d777b","b744265d8ad12b7d4d5c5dc35d18d44e","eff32168b8348b822afeed9cbf61afa7","af51e27e980746d79714b72188b3ee40",{"version":"3b4fc11e9a5d20c846f1ba38889cbc8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"53b0e86dfe96eb781a056e2662bf1e3b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d0bac56ae60094675c08a325b81d3b1a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"292c9398a407b33b1d9c9812b673387a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"83bc735c360e42b09f2b102d7b831ede","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"45df94b3c51b898624bacc2bcd6d9eb2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b1a6b0b0f8828c286f9ae2ba01c4a5c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8617a23553d74c31be6da303c668bd18","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3f2d808ba5f1ae3681bf7df616488dcd","affectsGlobalScope":true,"impliedNodeFormat":1},"ae44e436733473462c7d10a248dd5444","7fc38339eb8066ef7567eeca0efb7cf8","81142000562b1b15aa5750fb73f1c87f",{"version":"548edbb49da2d3131c4bb334501545b5","affectsGlobalScope":true,"impliedNodeFormat":1},"28654fb3a64057d43ddb28fa25aa3d2c","837adecd6f119b7fb51c6f33323f1d0d","aa6b2bc07eea267cb52b43b52d10156a","87ccca30acfc0b6f9a9cd426d9cd5ea2","69ed9ee63a9a2bc419dfdc2620ffaff4","e3b0c48fe67d62d1ad58b2ae9f7b15cc","8f9b52e23a13387ec1fc3a0278e92f54","afb17362525d34419ae6f156cbb798d0","99a7578ea3b7ff525223e5d327038dd8","7b5d85e1d12c1812cacfa261bd16b90a",{"version":"f02e75d4f05094db09571086b44a5e81","affectsGlobalScope":true,"impliedNodeFormat":1},"c84ceefffcc2db2bb4bde02a0c22c9c2","cf939e72a40fdeea14f66475ed6a73f8","3cdf4406209073e7455d252e67862814","93e765ec9a522b417b0e39ffa6d46e53","bea5cc8a9106cbee78ec42bd4c53cc13","1e5841f675843f64e8de4fcb830488ce","fa427f5530daabe1abf4590ccae90b6e","49f2c170a4aec8f1a6cdca6c8377090f",{"version":"25ca777235cb5b3f0c82b7ad556a88c5","affectsGlobalScope":true,"impliedNodeFormat":1},"87d97c5130c3989eee7f9e5b0f29862f","7cdd39c5f27c245e6f64513928c4e446","f3fbb84a93328524d615a9aa9f53a1d3","235cc33b85ac998f0f2df0807648acb8","c0c62035e8f8a0b6da47b6277fd6dbb2","054e3b0e88266393421cd8e2c18861a6",{"version":"7b76424a07871f13f917f4d2dbcbb29a","affectsGlobalScope":true,"impliedNodeFormat":1},"639eaae8ec61ef0b2f4e5ecf8f2245a3","543125f75eac2c9e75139807c045620d","7fc85ceeeec000d3f9d519fe0a5739af","3f0f9f18f88055f6942dafd0985107fb","fb99021d3801a2c43221d4a17fb3a766","b21c8d32a5db174dd7c8821c11833114","700c606d3d8f61e74b246a569ae6e225","7b829e7d2443373486d7c2595d1ebede",{"version":"bc1d68e52ec4c2f2afb0a03720994609","affectsGlobalScope":true,"impliedNodeFormat":1},"97697f29781aa9af441a4f739c942aa4","1141cefb566cc56833d97ff0504685ae","62322da3e15fd2c6af8cb640b041628d","741e0b7ff4dc69c0eed41387b5bc2867","6a79b54205830771ae752485b233106f","a062c647f6f3a3df91a19b44a7e2f1cf",{"version":"fe419bc933aba1f35709c31d498aff79","affectsGlobalScope":true,"impliedNodeFormat":1},"b06a9bb5bef3a20691fa550e4fc4d8c9","cc354df7b22181851ac0b5a093dff6ae","aa0040d8b926a3c1e92072a3d3931584","bb2fcaaa8543f63b369f0ebaeea7ebfc","bd03337162e0f23847b23896cae3515f","6c669d97ac29c37d0c71a40f7fa153c0","9a4cc72ff885f73bc8e862e4c5fd3e7c","d5756caef1a6e8f56f968f6fb9fc213c","c4af597e02c6754134cc637b736db3b8","8f56574819113544a9fe2aadc0194548","74eec4856e57704718f054359d74cf7a","92ee54f6af8d550e3a7dbacbc1eea666","0d3a56525fc9b908260cdd2c2d40cdde"],"fileIdsList":[[70,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,119,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[68,69,70,71,72,73,74,75,76,77,78,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,186,187],[70,119,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,119,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186],[70,85,88,91,92,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,88,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,88,92,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,82,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,86,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,84,85,88,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188],[70,82,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188],[70,84,88,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,79,80,81,83,87,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,88,96,104,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,80,86,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,88,113,114,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,80,83,88,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188],[70,79,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,82,83,84,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,118,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,88,106,109,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,88,96,97,98,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,86,88,97,99,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,87,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,80,82,88,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,88,92,97,99,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,92,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,86,88,91,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,80,84,88,96,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,88,106,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,99,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[70,82,88,113,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188],[66,70,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187]],"options":{"allowJs":false,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"module":99,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"strict":true,"sourceMap":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[129,1],[130,2],[131,3],[70,4],[132,5],[133,6],[134,7],[68,8],[135,9],[136,10],[137,11],[138,12],[139,13],[140,14],[141,15],[142,16],[143,17],[144,18],[145,19],[71,8],[69,8],[146,20],[147,21],[148,22],[188,23],[149,24],[150,25],[151,26],[152,27],[153,28],[154,29],[155,30],[156,31],[157,32],[158,33],[159,34],[160,35],[161,36],[162,37],[163,38],[164,39],[165,40],[166,41],[167,42],[168,43],[169,44],[170,45],[171,46],[172,47],[173,48],[174,49],[175,50],[176,51],[177,52],[178,53],[179,54],[180,55],[181,56],[182,57],[183,58],[184,59],[185,60],[72,8],[73,8],[74,8],[75,8],[76,8],[77,8],[78,8],[120,61],[121,8],[122,8],[123,8],[124,8],[125,8],[126,8],[127,8],[128,8],[186,62],[187,63],[63,8],[64,8],[12,8],[10,8],[11,8],[16,8],[15,8],[2,8],[17,8],[18,8],[19,8],[20,8],[21,8],[22,8],[23,8],[24,8],[3,8],[25,8],[26,8],[4,8],[27,8],[31,8],[28,8],[29,8],[30,8],[32,8],[33,8],[34,8],[5,8],[35,8],[36,8],[37,8],[38,8],[6,8],[42,8],[39,8],[40,8],[41,8],[43,8],[7,8],[44,8],[49,8],[50,8],[45,8],[46,8],[47,8],[48,8],[8,8],[54,8],[51,8],[52,8],[53,8],[55,8],[9,8],[56,8],[65,8],[57,8],[58,8],[60,8],[59,8],[1,8],[61,8],[62,8],[14,8],[13,8],[96,64],[108,65],[94,66],[109,8],[118,67],[85,68],[86,69],[84,8],[117,70],[112,71],[116,72],[88,73],[105,74],[87,75],[115,76],[82,77],[83,71],[89,65],[90,8],[95,72],[93,65],[80,78],[119,79],[110,80],[99,81],[98,65],[100,82],[103,83],[97,84],[101,85],[113,70],[91,86],[92,87],[104,88],[81,8],[107,89],[106,65],[102,90],[111,8],[79,8],[114,91],[66,8],[67,92]],"latestChangedDtsFile":"./dist/index.d.ts"}
|