cite-sight 0.2.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.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,278 @@
1
+ #!/usr/bin/env node
2
+ import { program } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { resolve } from 'path';
5
+ import { analyzePipeline } from '@michaelborck/cite-sight-core';
6
+ // -------------------------------------------------------
7
+ // Helpers
8
+ // -------------------------------------------------------
9
+ function formatDuration(ms) {
10
+ if (ms < 1000)
11
+ return `${ms}ms`;
12
+ return `${(ms / 1000).toFixed(1)}s`;
13
+ }
14
+ function riskColor(score) {
15
+ if (score >= 70)
16
+ return chalk.red(score.toFixed(0));
17
+ if (score >= 40)
18
+ return chalk.yellow(score.toFixed(0));
19
+ return chalk.green(score.toFixed(0));
20
+ }
21
+ function statusBadge(status) {
22
+ switch (status) {
23
+ case 'verified': return chalk.green('✔ verified');
24
+ case 'likely_valid': return chalk.green('~ likely valid');
25
+ case 'suspicious': return chalk.red('✖ suspicious');
26
+ case 'not_found': return chalk.yellow('? not found');
27
+ case 'format_only': return chalk.cyan('f format only');
28
+ default: return chalk.gray(status);
29
+ }
30
+ }
31
+ function urlStatusBadge(status) {
32
+ switch (status) {
33
+ case 'live': return chalk.green('live');
34
+ case 'dead': return chalk.red('dead');
35
+ case 'redirect': return chalk.yellow('redirect');
36
+ case 'timeout': return chalk.yellow('timeout');
37
+ default: return chalk.gray(status);
38
+ }
39
+ }
40
+ function printSectionHeader(title) {
41
+ console.log('');
42
+ console.log(chalk.bold.underline(title));
43
+ }
44
+ function printReport(result, verbose) {
45
+ const { readability, writingQuality, references, integrity, processingTime } = result;
46
+ // Header
47
+ console.log('');
48
+ console.log(chalk.bold.cyan('CiteSight Analysis Report'));
49
+ console.log(chalk.gray(`File: ${result.fileName}`));
50
+ console.log(chalk.gray(`Processed in ${formatDuration(processingTime)}`));
51
+ // Document stats
52
+ printSectionHeader('Document Statistics');
53
+ console.log(` Words: ${readability.wordCount.toLocaleString()}`);
54
+ console.log(` Sentences: ${readability.sentenceCount.toLocaleString()}`);
55
+ console.log(` Paragraphs: ${readability.paragraphCount.toLocaleString()}`);
56
+ console.log(` Readability: Flesch-Kincaid Grade ${readability.fleschKincaidGrade.toFixed(1)}`);
57
+ console.log(` Reading Ease: ${readability.fleschReadingEase.toFixed(1)} / 100`);
58
+ // Reference verification summary
59
+ printSectionHeader('Reference Verification');
60
+ const total = references.totalReferences;
61
+ console.log(` Total references: ${total}`);
62
+ if (total > 0) {
63
+ console.log(` Verified: ${chalk.green(String(references.verifiedCount))}`);
64
+ console.log(` Suspicious: ${references.suspiciousCount > 0 ? chalk.red(String(references.suspiciousCount)) : chalk.green('0')}`);
65
+ console.log(` Not found: ${references.notFoundCount > 0 ? chalk.yellow(String(references.notFoundCount)) : chalk.green('0')}`);
66
+ console.log(` Broken URLs: ${references.brokenUrlCount > 0 ? chalk.red(String(references.brokenUrlCount)) : chalk.green('0')}`);
67
+ console.log(` Citation style: ${references.detectedStyle}`);
68
+ if (references.crossReference.unmatchedBibliography.length > 0) {
69
+ console.log(` Unmatched in bibliography (no in-text citation): ` +
70
+ chalk.yellow(String(references.crossReference.unmatchedBibliography.length)));
71
+ }
72
+ if (references.crossReference.unmatchedInText.length > 0) {
73
+ console.log(` Unmatched in-text citations (no bibliography entry): ` +
74
+ chalk.yellow(String(references.crossReference.unmatchedInText.length)));
75
+ }
76
+ }
77
+ else {
78
+ console.log(` ${chalk.gray('No references detected.')}`);
79
+ }
80
+ // Issues found
81
+ const issues = [];
82
+ for (const v of references.verifications) {
83
+ if (v.status === 'suspicious') {
84
+ const title = v.reference.title || v.reference.raw.slice(0, 60);
85
+ issues.push({
86
+ label: 'Suspicious reference',
87
+ detail: `"${title}" — ${v.flags.join('; ')}`,
88
+ severity: 'error',
89
+ });
90
+ }
91
+ if (v.urlCheck && (v.urlCheck.status === 'dead' || v.urlCheck.status === 'timeout')) {
92
+ issues.push({
93
+ label: 'Broken URL',
94
+ detail: `${v.urlCheck.url} [${urlStatusBadge(v.urlCheck.status)}]`,
95
+ severity: 'error',
96
+ });
97
+ }
98
+ if (v.formatIssues.length > 0) {
99
+ for (const fi of v.formatIssues) {
100
+ const title = v.reference.title || v.reference.raw.slice(0, 40);
101
+ issues.push({
102
+ label: 'Format issue',
103
+ detail: `"${title}" — ${fi.message}`,
104
+ severity: 'warn',
105
+ });
106
+ }
107
+ }
108
+ }
109
+ for (const p of integrity.patterns) {
110
+ issues.push({
111
+ label: `Integrity: ${p.type}`,
112
+ detail: p.description + (p.evidence ? ` (e.g. "${p.evidence.slice(0, 60)}")` : ''),
113
+ severity: p.severity === 'high' ? 'error' : p.severity === 'medium' ? 'warn' : 'info',
114
+ });
115
+ }
116
+ if (issues.length > 0) {
117
+ printSectionHeader('Issues Found');
118
+ for (const issue of issues) {
119
+ const prefix = issue.severity === 'error'
120
+ ? chalk.red(' [ERROR]')
121
+ : issue.severity === 'warn'
122
+ ? chalk.yellow(' [WARN] ')
123
+ : chalk.cyan(' [INFO] ');
124
+ console.log(`${prefix} ${chalk.bold(issue.label)}: ${issue.detail}`);
125
+ }
126
+ }
127
+ else {
128
+ printSectionHeader('Issues Found');
129
+ console.log(` ${chalk.green('No issues detected.')}`);
130
+ }
131
+ // Verbose: individual reference statuses
132
+ if (verbose && references.verifications.length > 0) {
133
+ printSectionHeader('Reference Details');
134
+ for (const v of references.verifications) {
135
+ const title = v.reference.title
136
+ ? v.reference.title.slice(0, 60) + (v.reference.title.length > 60 ? '…' : '')
137
+ : v.reference.raw.slice(0, 60) + '…';
138
+ const year = v.reference.year ? ` (${v.reference.year})` : '';
139
+ console.log(` ${statusBadge(v.status)} — ${title}${year}`);
140
+ if (v.flags.length > 0 && verbose) {
141
+ for (const flag of v.flags) {
142
+ console.log(` ${chalk.gray('·')} ${chalk.gray(flag)}`);
143
+ }
144
+ }
145
+ }
146
+ }
147
+ // Writing quality summary
148
+ printSectionHeader('Writing Quality');
149
+ console.log(` Passive voice: ${writingQuality.passiveVoicePercentage.toFixed(1)}%`);
150
+ console.log(` Academic tone: ${(writingQuality.academicToneScore * 100).toFixed(0)} / 100`);
151
+ console.log(` Sentence variety: ${(writingQuality.sentenceVarietyScore * 100).toFixed(0)} / 100`);
152
+ console.log(` Hedging phrases: ${writingQuality.hedgingPhraseCount}`);
153
+ if (verbose && writingQuality.hedgingPhrases.length > 0) {
154
+ for (const hp of writingQuality.hedgingPhrases.slice(0, 5)) {
155
+ console.log(` ${chalk.gray('·')} "${hp.phrase}" (${hp.count}x)`);
156
+ }
157
+ }
158
+ // Integrity risk score
159
+ printSectionHeader('Integrity Risk Score');
160
+ const score = integrity.riskScore;
161
+ const bar = buildBar(score);
162
+ console.log(` Score: ${riskColor(score)} / 100 ${bar}`);
163
+ if (score >= 70) {
164
+ console.log(` ${chalk.red.bold('High risk')} — manual review strongly recommended.`);
165
+ }
166
+ else if (score >= 40) {
167
+ console.log(` ${chalk.yellow('Moderate risk')} — some patterns detected, review advised.`);
168
+ }
169
+ else {
170
+ console.log(` ${chalk.green('Low risk')} — no significant integrity concerns detected.`);
171
+ }
172
+ console.log('');
173
+ }
174
+ function buildBar(score, width = 20) {
175
+ const filled = Math.round((score / 100) * width);
176
+ const empty = width - filled;
177
+ const color = score >= 70 ? chalk.red : score >= 40 ? chalk.yellow : chalk.green;
178
+ return color('█'.repeat(filled)) + chalk.gray('░'.repeat(empty));
179
+ }
180
+ // -------------------------------------------------------
181
+ // Progress output
182
+ // -------------------------------------------------------
183
+ function makeProgressCallback(verbose) {
184
+ return (update) => {
185
+ if (verbose) {
186
+ const pct = String(update.progress).padStart(3, ' ');
187
+ console.log(chalk.gray(`[${pct}%] ${update.message}`));
188
+ }
189
+ else if (update.stage !== 'complete') {
190
+ process.stdout.write(chalk.gray(`\r ${update.message.padEnd(55)}`));
191
+ }
192
+ else {
193
+ process.stdout.write('\r' + ' '.repeat(60) + '\r');
194
+ }
195
+ };
196
+ }
197
+ // -------------------------------------------------------
198
+ // Run analysis
199
+ // -------------------------------------------------------
200
+ async function runAnalysis(filePath, opts) {
201
+ const absolutePath = resolve(filePath);
202
+ if (!opts.json) {
203
+ console.log(chalk.cyan(`Analyzing: ${absolutePath}`));
204
+ }
205
+ const options = {
206
+ citationStyle: opts.style,
207
+ checkUrls: opts.urls,
208
+ checkDoi: opts.doi,
209
+ checkInText: opts.inText,
210
+ screenshotUrls: false,
211
+ contactEmail: opts.email,
212
+ };
213
+ const onProgress = opts.json ? undefined : makeProgressCallback(opts.verbose);
214
+ let result;
215
+ try {
216
+ result = await analyzePipeline(absolutePath, options, onProgress);
217
+ }
218
+ catch (err) {
219
+ const message = err instanceof Error ? err.message : String(err);
220
+ if (!opts.json) {
221
+ console.error(chalk.red(`\nError: ${message}`));
222
+ }
223
+ else {
224
+ process.stdout.write(JSON.stringify({ error: message }) + '\n');
225
+ }
226
+ process.exit(1);
227
+ }
228
+ if (opts.json) {
229
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
230
+ }
231
+ else {
232
+ printReport(result, opts.verbose);
233
+ }
234
+ }
235
+ // -------------------------------------------------------
236
+ // CLI definition
237
+ // -------------------------------------------------------
238
+ program
239
+ .name('cite-sight')
240
+ .description('Academic integrity and citation checker')
241
+ .version('1.0.0');
242
+ // Top-level default command: cite-sight <file>
243
+ program
244
+ .argument('[file]', 'Document to analyze (PDF, DOCX, or plain text)')
245
+ .option('--style <style>', 'Citation style (auto|apa|mla|chicago)', 'auto')
246
+ .option('--no-urls', 'Skip URL checking')
247
+ .option('--no-doi', 'Skip DOI verification')
248
+ .option('--no-in-text', 'Skip in-text citation cross-referencing')
249
+ .option('--email <email>', 'Contact email for API polite pool')
250
+ .option('--json', 'Output result as JSON', false)
251
+ .option('--verbose', 'Verbose output', false)
252
+ .action(async (file, opts) => {
253
+ if (!file) {
254
+ program.help();
255
+ return;
256
+ }
257
+ await runAnalysis(file, opts);
258
+ });
259
+ // Explicit sub-command: cite-sight check <file>
260
+ program
261
+ .command('check <file>')
262
+ .description('Check a document for citation and integrity issues')
263
+ .option('--style <style>', 'Citation style (auto|apa|mla|chicago)', 'auto')
264
+ .option('--no-urls', 'Skip URL checking')
265
+ .option('--no-doi', 'Skip DOI verification')
266
+ .option('--no-in-text', 'Skip in-text citation cross-referencing')
267
+ .option('--email <email>', 'Contact email for API polite pool')
268
+ .option('--json', 'Output result as JSON', false)
269
+ .option('--verbose', 'Verbose output', false)
270
+ .action(async (file, opts) => {
271
+ await runAnalysis(file, opts);
272
+ });
273
+ program.parseAsync(process.argv).catch((err) => {
274
+ const message = err instanceof Error ? err.message : String(err);
275
+ console.error(chalk.red(`Fatal: ${message}`));
276
+ process.exit(1);
277
+ });
278
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,0DAA0D;AAC1D,UAAU;AACV,0DAA0D;AAE1D,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU,CAAC,CAAK,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACtD,KAAK,cAAc,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1D,KAAK,YAAY,CAAC,CAAG,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACtD,KAAK,WAAW,CAAC,CAAI,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACxD,KAAK,aAAa,CAAC,CAAE,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxD,OAAO,CAAC,CAAa,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAK,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,MAAM,CAAC,CAAK,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjD,KAAK,SAAS,CAAC,CAAE,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChD,OAAO,CAAC,CAAS,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,WAAW,CAAC,MAAsB,EAAE,OAAgB;IAC3D,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAEtF,SAAS;IACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1E,iBAAiB;IACjB,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,2CAA2C,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEpF,iCAAiC;IACjC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,eAAe,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;IAC7C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzI,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxI,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvI,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAEhE,IAAI,UAAU,CAAC,cAAc,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CACT,qDAAqD;gBACrD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAC7E,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CACT,yDAAyD;gBACzD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAkF,EAAE,CAAC;IAEjG,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5C,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG;gBAClE,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,cAAc;oBACrB,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC,OAAO,EAAE;oBACpC,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;SACtF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GACV,KAAK,CAAC,QAAQ,KAAK,OAAO;gBACxB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;gBACxB,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM;oBACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;oBAC3B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,yCAAyC;IACzC,IAAI,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK;gBAC7B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;YACvC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;gBAClC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,wBAAwB,cAAc,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,cAAc,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,cAAc,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,wBAAwB,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEzE,IAAI,OAAO,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,KAAK,MAAM,EAAE,IAAI,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAC1D,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC;IACxF,CAAC;SAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,4CAA4C,CAAC,CAAC;IAC9F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,gDAAgD,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACjF,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,0DAA0D;AAC1D,kBAAkB;AAClB,0DAA0D;AAE1D,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,0DAA0D;AAC1D,eAAe;AACf,0DAA0D;AAE1D,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,IAQ5C;IACC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAsB;QACjC,aAAa,EAAE,IAAI,CAAC,KAA2C;QAC/D,SAAS,EAAE,IAAI,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI,CAAC,GAAG;QAClB,WAAW,EAAE,IAAI,CAAC,MAAM;QACxB,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,IAAI,CAAC,KAAK;KACzB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9E,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,iBAAiB;AACjB,0DAA0D;AAE1D,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,yCAAyC,CAAC;KACtD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,+CAA+C;AAC/C,OAAO;KACJ,QAAQ,CAAC,QAAQ,EAAE,gDAAgD,CAAC;KACpE,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,EAAE,MAAM,CAAC;KAC1E,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;KACxC,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;KAC3C,MAAM,CAAC,cAAc,EAAE,yCAAyC,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;KAC9D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,CAAC;KAChD,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,IAQxC,EAAE,EAAE;IACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IACD,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,gDAAgD;AAChD,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,EAAE,MAAM,CAAC;KAC1E,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;KACxC,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;KAC3C,MAAM,CAAC,cAAc,EAAE,yCAAyC,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;KAC9D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,CAAC;KAChD,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAQ5B,EAAE,EAAE;IACH,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "cite-sight",
3
+ "version": "0.2.1",
4
+ "description": "CLI tool for checking academic references and citations",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "Michael Borck",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/michael-borck/cite-sight.git",
11
+ "directory": "packages/cli"
12
+ },
13
+ "keywords": [
14
+ "academic",
15
+ "integrity",
16
+ "citations",
17
+ "references",
18
+ "cli",
19
+ "verification"
20
+ ],
21
+ "bin": {
22
+ "cite-sight": "./dist/index.js"
23
+ },
24
+ "main": "./dist/index.js",
25
+ "files": [
26
+ "dist"
27
+ ],
28
+ "scripts": {
29
+ "build": "tsc && chmod +x dist/index.js",
30
+ "dev": "tsc --watch",
31
+ "prepublishOnly": "npm run build"
32
+ },
33
+ "dependencies": {
34
+ "@michaelborck/cite-sight-core": "0.2.1",
35
+ "chalk": "^5.4.0",
36
+ "commander": "^13.0.0"
37
+ }
38
+ }