paperlint 3.1.1 → 3.1.2
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/CLAUDE.md +18 -97
- package/CONTRIBUTING.md +7 -21
- package/README.md +11 -7
- package/dist/adapters/references/clock.io.d.ts +5 -0
- package/dist/adapters/references/clock.io.d.ts.map +1 -0
- package/dist/adapters/references/clock.io.js +7 -0
- package/dist/adapters/references/clock.io.js.map +1 -0
- package/dist/adapters/references/index.d.ts +24 -2
- package/dist/adapters/references/index.d.ts.map +1 -1
- package/dist/adapters/references/index.js +125 -15
- package/dist/adapters/references/index.js.map +1 -1
- package/dist/build.d.ts +4 -0
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +10 -3
- package/dist/build.js.map +1 -1
- package/dist/domain/lookup-cache.d.ts +75 -0
- package/dist/domain/lookup-cache.d.ts.map +1 -0
- package/dist/domain/lookup-cache.js +137 -0
- package/dist/domain/lookup-cache.js.map +1 -0
- package/dist/ports/check-references.d.ts +12 -2
- package/dist/ports/check-references.d.ts.map +1 -1
- package/dist/ports/check-references.js +0 -5
- package/dist/ports/check-references.js.map +1 -1
- package/dist/references.d.ts +11 -3
- package/dist/references.d.ts.map +1 -1
- package/dist/references.js +63 -15
- package/dist/references.js.map +1 -1
- package/docs/prior-art/README.md +11 -10
- package/docs/prior-art/citation-checkers.md +174 -0
- package/docs/references.md +126 -0
- package/docs/testing.md +118 -0
- package/docs/toolchain.md +6 -4
- package/package.json +1 -1
- package/skills/paper-pipeline/references/artifact-checklist.md +7 -7
- package/skills/render-paper/checkers-requirements.txt +30 -19
- package/skills/render-paper/ensure-checkers.sh +20 -4
- package/skills/verify-citations/SKILL.md +26 -10
- package/skills/verify-citations/SKILL.md.spec.ts +25 -9
- package/skills/verify-citations/scripts/__snapshots__/verify-cites.net.test.mjs.snap +28 -10
- package/skills/verify-citations/scripts/bib-authors.mjs +5 -6
- package/skills/verify-citations/scripts/verify-cites.mjs +285 -140
- package/skills/verify-citations/scripts/verify-cites.net.test.mjs +321 -20
- package/skills/verify-citations/scripts/verify-cites.test.mjs +4 -2
- package/src/adapters/references/clock.io.ts +8 -0
- package/src/adapters/references/index.test.ts +341 -9
- package/src/adapters/references/index.ts +198 -29
- package/src/build.ts +10 -3
- package/src/domain/lookup-cache.test.ts +178 -0
- package/src/domain/lookup-cache.ts +202 -0
- package/src/ports/check-references.ts +16 -2
- package/src/references.test.ts +160 -10
- package/src/references.ts +93 -17
package/dist/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,6FAA6F;AAC7F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACxE,6FAA6F;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACtD,+FAA+F;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,cAAc,EACd,SAAS,EACT,UAAU,GAEX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AACxE,+FAA+F;AAC/F,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,+FAA+F;AAC/F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKrD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,GAKR,MAAM,iBAAiB,CAAC;AAGzB,mGAAmG;AACnG,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oBAAoB;IACpB,WAAW;IACX,UAAU;IACV,WAAW;CACZ,CAAC;AAEF,iFAAiF;AACjF,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC;AAE3B;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;AAEzE,4FAA4F;AAC5F,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,0BAA0B;IAC1B,gBAAgB;IAChB,kBAAkB;CACnB,CAAC;AAiEF,6CAA6C;AAC7C,MAAM,OAAO,GAAG,CACd,IAA+B,EAC/B,IAAY,EACQ,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;AAExE,8DAA8D;AAC9D,SAAS,OAAO,CAAC,GAA8B;IAC7C,OAAO,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrE;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,oGAAoG;AACpG,SAAS,QAAQ,CACf,GAAW,EACX,QAAoC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/D,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,2FAA2F;QAC3F,8EAA8E;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,EAAE,KAAK,KAA6C,EAAE;IAEtD,OAAO,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,GAAqB;IAC5C,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAmB,EAAE,CAC5D,OAAO,CAAC,CAAC,EAAE,eAAe,CAAC,CAC5B,CAAC;IACF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;SAC1D,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,OAAO;QACL,IAAI;QACJ,aAAa,EAAE,eAAe,CAAC,GAAG,CAAC;QACnC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI;QAC3B,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC9B;KACF,CAAC;AACJ,CAAC;AAED,2FAA2F;AAE3F;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAsB,EACtB,IAAuB;IAEvB,OAAO;QACL,GAAG,GAAG;QACN,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAc;IACnC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACd,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,gBAAgB,gBAAgB,EAAE,EAAE;KAC1C,CAAC;IACF,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,EAAE,EAAE,IAAI;QACR,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAClD,CAAC;CACH,CAAC;AAEF,2FAA2F;AAE3F,MAAM,GAAG,GAAG,CAAC,GAAW,EAAU,EAAE,CAClC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEjD,SAAS,MAAM,CAAC,QAAgB;IAC9B,MAAM,CAAC,GAAG,CAAC,GAAW,EAAiB,EAAE;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC,CAAC;IACF,MAAM,GAAG,GAAkC,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,GAAa,CAAC;AACvB,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,GAAmB,EAAiB,EAAE,CAClE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAEpD,6DAA6D;AAC7D,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACxE,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC/D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,OAAO,EAAE,KAAK,CAAC,MAAM;YACnB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,IAAI;KACT,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK;QACV,CAAC,CAAC;YACE,GAAG,cAAc;YACjB,YAAY,GAAG,EAAE;YACjB,6BAA6B,IAAI,GAAG;SACrC;QACH,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,GAAW,EAAY,EAAE,CAAC;IAC9C,GAAG,GAAG,8DAA8D;IACpE,gFAAgF;CACjF,CAAC;AAEF,0FAA0F;AAC1F,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CACvC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAI5C,mGAAmG;AACnG,SAAS,YAAY,CAAC,GAAiB;IACrC,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,QAAQ;QACjB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAA+B;QAC/D,QAAQ,EAAE,QAAiB;QAC3B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KAC5B,CAAC;AACJ,CAAC;AAID,MAAM,WAAW,GAAG,CAAC,IAAwB,EAAY,EAAE,CAAC,CAAC;IAC3D,IAAI,EAAE,MAAM;IACZ,IAAI;IACJ,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;IAClC,KAAK,EAAE,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;CAC9D,CAAC,CAAC;AAEH,6FAA6F;AAC7F,SAAS,SAAS,CAChB,GAAiB,EACjB,KAAc,EACd,IAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACrC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK;QACL,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3B,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC;QACxB,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3B,UAAU,EACR,QAAQ,KAAK,CAAC;YACZ,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,OAAO,KAAK,IAAI;gBAChB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,CAAyC;IACxD,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CACvD;SACE,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,MAAM,GAAG,qBAAqB,GAAG,mCAAmC,CAAC;AAE3E,qGAAqG;AACrG,SAAS,UAAU,CAAC,GAAiB,EAAE,IAAkB;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3B,GAAG;QACH,UAAU,EACR,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,OAAO,CAAC,GAAiB;IAKvC,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC/B,+FAA+F;IAC/F,gFAAgF;IAChF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAC9C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,KAAK,OAAO;YACnB,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;YAClC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG,kCAAkC,GAAG,0CAA0C,CAAC;AAE/F,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,IAAY,EAAU,EAAE,CAC9D,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI;YACb,OAAO;gBACL,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,MAAM,IAAI,qDAAqD;aACrE,CAAC;QACJ,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/B,MAAM,GAAG,GAAG,EAAE;YACZ,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,GAAG;YACtF,CAAC,CAAC,0BAA0B,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;IAC9D,CAAC;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzD,MAAM,KAAK,GACT,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;gBACvB,CAAC,CAAC,GAAG,GAAG,gBAAgB,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;gBACxC,CAAC,CAAC,GAAG,GAAG,mBAAmB,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CACd,GAAG,CAAC,QAAQ,EACZ,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CACjD,CAAC;YACF,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,KAAK;oBACL,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;wBAClB,CAAC,CAAC,GAAG,CAAC,KAAK;wBACX,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC;oBACzC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;iBACzD;aACF,CAAC;QACJ,CAAC;QACD,4FAA4F;QAC5F,8FAA8F;QAC9F,4FAA4F;QAC5F,wFAAwF;QACxF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;YAC/C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;aACjE,CAAC;QACJ,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM;YAC9B,CAAC,CAAC,qCAAqC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,iBAAiB,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,GAAG,IAAI,EAAE;SACpH,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,2FAA2F;AAE3F,MAAM,WAAW,GAAG,CAAC,CAAgB,EAAU,EAAE;IAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IACtB,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;QACvB,OAAO,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACtF,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QACxB,CAAC,CAAC,6DAA6D;QAC/D,CAAC,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC;AAC9E,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK,CAAC,IAAI;QACR,CAAC,CAAC;YACE,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,YAAY,SAAS,IAAI,UAAU,qDAAqD;SAC9F;QACH,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE;IAChD,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACjB,MAAM,CAAC,GAAG,MAAM,YAAY,CAC1B,GAAG,CAAC,QAAQ,EACZ,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAAC,EAChC;YACE,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CACF,CAAC;QACF,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC3B,MAAM,KAAK,GACT,CAAC,CAAC,IAAI,KAAK,YAAY;YACrB,CAAC,CAAC,kCAAkC,aAAa,CAAC,CAAC,CAAC,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;QACT,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,UAAU,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE;SACzG,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,2FAA2F;AAE3F;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK,CAAC,IAAI;QACR,CAAC,CAAC;YACE,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,uDAAuD,SAAS,IAAI,eAAe,0BAA0B;SACnH;QACH,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE;IAChD,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACnB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,CAAC;KAC3E,CAAC;CACH,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,KAAK,GAAyB;IACzC,UAAU;IACV,WAAW;IACX,WAAW;IACX,cAAc;CACf,CAAC;AAEF,2FAA2F;AAE3F,MAAM,UAAU,OAAO,CACrB,KAAiB,EACjB,QAA8B,KAAK;IAEnC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAyB;IAClD,MAAM,KAAK,GAAG,CAAC,CAAW,EAAU,EAAE,CACpC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,GAAG,yDAAyD,CAAC;AAuB3F;;;GAGG;AACH,SAAS,YAAY,CAAC,EACpB,GAAG,GAAG,SAAS;AACf,2FAA2F;AAC3F,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;AACnB,2FAA2F;AAC3F,GAAG,GAAG,OAAO,CAAC,GAAG,EACjB,KAAK,GAAG,KAAK,EACb,GAAG,GAAG,OAAO,CAAC,GAAG;AACjB,4FAA4F;AAC5F,4FAA4F;AAC5F,0DAA0D;AAC1D,MAAM,GAAG,KAAK,EACd,OAAO,GAAG,WAAW,EACrB,WAAW,GAAG,GAAG,CAAC,oBAAoB,CAAC,IAAI,GAAG,GACjC;IAGb,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AACrE,CAAC;AAED,uFAAuF;AACvF,MAAM,QAAQ,GAAoB,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACxD,KAAK,EAAE;QACL,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,gDAAgD;KACtD;IACD,KAAK;CACN,CAAC,CAAC;AAEH,6GAA6G;AAC7G,SAAS,eAAe,CACtB,CAAwE;IAExE,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACtC,OAAO,aAAa,CAClB,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAClC,kBAAkB,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAC/B,CAAC,CAAC,WAA2B,CAC9B,CAAC;AACJ,CAAC;AAED,4GAA4G;AAC5G,SAAS,YAAY,CAAC,CAAe;IACnC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO;QACL,GAAG,IAAI;QACP,OAAO;QACP,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS;QAC3B,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,QAAQ;KAC/C,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,KAAK,UAAU,QAAQ,CACrB,QAAgB,EAChB,GAAW,EACX,IAAgB,EAChB,EACE,GAAG,EACH,GAAG,EACH,KAAK,EACL,OAAO,EACP,OAAO,EACP,KAAK,EACL,eAAe,GACQ;IAEzB,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO;YAAE,SAAS;QAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;YACzB,QAAQ;YACR,GAAG,EAAE,OAAO;YACZ,GAAG;YACH,OAAO;YACP,OAAO;YACP,KAAK;YACL,eAAe;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,sEAAsE;YACtE,4FAA4F;YAC5F,SAAS,CAAC,QAAQ,CAAC,CAAC;YACpB,OAAO;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ;gBAChB,IAAI;gBACJ,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;aACpD,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,GAAG;YAAE,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,UAAwB,EAAE;IAE1B,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC;IAChD,GAAG,CAAC,GAAG,CAAC,CAAC;IACT,IAAI,KAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,GAAG;YACH,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAE,CAAW,CAAC,OAAO,CAAC,EAAE;SAC1D,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc;QAClC,GAAG,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC7D,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAOD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA0B,EAC1B,EACE,MAAM,EACN,GAAG,OAAO,EACyD;IAErE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAC3B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;QACvE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;IACD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG;YACR,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7C,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3B,CAAC;QACF,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,UAA6B,aAAa;IAE1C,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,CAAc;IACzC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;QACtB,OAAO,CAAC,CAAC,GAAG;YACV,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC3E,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,kFAAkF;AAClF,SAAS,aAAa,CAAC,CAAc;IACnC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO;QACL,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE;QAC5C,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,SAAS,WAAW,EAAE;KACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,iGAAiG;AACjG,SAAS,aAAa,CAAC,CAAc;IACnC,MAAM,OAAO,GAAG,8BAA8B,IAAI,EAAE,CAAC;IACrD,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,WAAW,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAA+B,EAAW,EAAE,CACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,OAA+B;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,CACL,QAAQ,IAAI,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;QAC7D,qGAAqG;QACrG,sBAAsB,IAAI,yCAAyC,CACpE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE LOOKUP CACHE — `<paper>/repro/references-cache.json`: what the citation services ANSWERED,
|
|
3
|
+
* kept so that a build asks each question at most once every MAX_AGE_DAYS, not once per build (#107).
|
|
4
|
+
*
|
|
5
|
+
* { "schema": 1,
|
|
6
|
+
* "citations": { "<resolver>:<identifier>": { "fetched": "YYYY-MM-DD", "response": {…} } },
|
|
7
|
+
* "dblp": { "<title key>": { "fetched": "YYYY-MM-DD", "title": "…", "hits": […] } } }
|
|
8
|
+
*
|
|
9
|
+
* `citations` holds verify-cites' per-resolver responses (Crossref, OpenAlex, Semantic Scholar,
|
|
10
|
+
* arXiv, doi.org, NVD), under verify-cites' own cache keys. `dblp` holds the hits DBLP returned for
|
|
11
|
+
* a title, under the references adapter's `dblpTitleKey`. Only successful answers are ever stored: a failed request is not an
|
|
12
|
+
* answer, so the next build asks again.
|
|
13
|
+
*
|
|
14
|
+
* 🔴 RESPONSES, NEVER VERDICTS. The verdicts (`_build/references.json`) are DERIVED from these
|
|
15
|
+
* responses on every build, by the current version of the checkers. A cached verdict would freeze
|
|
16
|
+
* whatever the checker believed the day it ran — a bug fixed in the comparison would never reach a
|
|
17
|
+
* paper whose entries are cached. A cached response is evidence: it cannot be made up, only
|
|
18
|
+
* refetched. The precedent is `extract-ref-facts.mjs`'s `repro/refs-cache.json` ("the cache is
|
|
19
|
+
* evidence, not a second declaration").
|
|
20
|
+
*
|
|
21
|
+
* 🔴 COMMITTED, so CI and every other clone start warm: a build whose entries are all here makes no
|
|
22
|
+
* network request at all, not even the reachability probe. It lives in `repro/`, beside the paper,
|
|
23
|
+
* not in `_build/`, which is build output and gitignored.
|
|
24
|
+
*
|
|
25
|
+
* WHAT INVALIDATES AN ENTRY: its key, or its age. Editing a bib entry's DOI, arXiv id or title
|
|
26
|
+
* changes the keys it is looked up under, so only that entry is asked again. An answer older than
|
|
27
|
+
* MAX_AGE_DAYS (by `fetched`) is asked again too, so a work a service had not indexed yet is found
|
|
28
|
+
* once it is. To refresh an answer sooner, delete its entry, or the file.
|
|
29
|
+
*
|
|
30
|
+
* Parsed here, once, at the boundary: a file that does not match is refused with a named reason,
|
|
31
|
+
* never read as empty.
|
|
32
|
+
*/
|
|
33
|
+
import { type Result } from "./result.ts";
|
|
34
|
+
export declare const LOOKUP_CACHE_SCHEMA = 1;
|
|
35
|
+
type Json = Readonly<Record<string, unknown>>;
|
|
36
|
+
/** One resolver's successful answer, as verify-cites shapes it (`{ transport: "ok", … }`). */
|
|
37
|
+
export interface CachedResponse {
|
|
38
|
+
/** When it was fetched, YYYY-MM-DD. */
|
|
39
|
+
readonly fetched: string;
|
|
40
|
+
readonly response: Json;
|
|
41
|
+
}
|
|
42
|
+
/** One DBLP hit, as bib-authors' `dblpHits` shapes it. */
|
|
43
|
+
export interface DblpHit {
|
|
44
|
+
readonly venue: string;
|
|
45
|
+
readonly year: string;
|
|
46
|
+
readonly type: string;
|
|
47
|
+
readonly title: string;
|
|
48
|
+
readonly authors: readonly string[];
|
|
49
|
+
}
|
|
50
|
+
export interface CachedDblp {
|
|
51
|
+
readonly fetched: string;
|
|
52
|
+
/** The title as it was asked — for a human reading the file; the key is the adapter's `dblpTitleKey(title)`. */
|
|
53
|
+
readonly title: string;
|
|
54
|
+
readonly hits: readonly DblpHit[];
|
|
55
|
+
}
|
|
56
|
+
export interface LookupCache {
|
|
57
|
+
readonly citations: ReadonlyMap<string, CachedResponse>;
|
|
58
|
+
readonly dblp: ReadonlyMap<string, CachedDblp>;
|
|
59
|
+
}
|
|
60
|
+
export declare const EMPTY_LOOKUP_CACHE: LookupCache;
|
|
61
|
+
/**
|
|
62
|
+
* How long a cached answer is used before it is asked again. A registry, doi.org or DBLP that had
|
|
63
|
+
* not indexed a work yet answers "no record"; kept forever, that answer would outlive the work's
|
|
64
|
+
* indexing. The age is judged against `fetched`, so every answer — a hit or a miss — gets the
|
|
65
|
+
* same rule, and nothing has to decide which answers are "negative".
|
|
66
|
+
*/
|
|
67
|
+
export declare const MAX_AGE_DAYS = 30;
|
|
68
|
+
/** The part of `cache` still young enough to answer from on `today` (YYYY-MM-DD). */
|
|
69
|
+
export declare function freshPart(cache: LookupCache, today: string): LookupCache;
|
|
70
|
+
/** The cache in `text`, or why it cannot be read. */
|
|
71
|
+
export declare function parseLookupCache(text: string): Result<LookupCache, string>;
|
|
72
|
+
/** The cache as the file holds it: keys sorted, so one new answer is a small diff. */
|
|
73
|
+
export declare const serializeLookupCache: (c: LookupCache) => string;
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=lookup-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup-cache.d.ts","sourceRoot":"","sources":["../../src/domain/lookup-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,KAAK,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9C,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;CACzB;AAED,0DAA0D;AAC1D,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gHAAgH;IAChH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,kBAAkB,EAAE,WAGhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,KAAK,CAAC;AAK/B,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAUxE;AA8DD,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CA8B1E;AAKD,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,GAAI,GAAG,WAAW,KAAG,MAS/C,CAAC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE LOOKUP CACHE — `<paper>/repro/references-cache.json`: what the citation services ANSWERED,
|
|
3
|
+
* kept so that a build asks each question at most once every MAX_AGE_DAYS, not once per build (#107).
|
|
4
|
+
*
|
|
5
|
+
* { "schema": 1,
|
|
6
|
+
* "citations": { "<resolver>:<identifier>": { "fetched": "YYYY-MM-DD", "response": {…} } },
|
|
7
|
+
* "dblp": { "<title key>": { "fetched": "YYYY-MM-DD", "title": "…", "hits": […] } } }
|
|
8
|
+
*
|
|
9
|
+
* `citations` holds verify-cites' per-resolver responses (Crossref, OpenAlex, Semantic Scholar,
|
|
10
|
+
* arXiv, doi.org, NVD), under verify-cites' own cache keys. `dblp` holds the hits DBLP returned for
|
|
11
|
+
* a title, under the references adapter's `dblpTitleKey`. Only successful answers are ever stored: a failed request is not an
|
|
12
|
+
* answer, so the next build asks again.
|
|
13
|
+
*
|
|
14
|
+
* 🔴 RESPONSES, NEVER VERDICTS. The verdicts (`_build/references.json`) are DERIVED from these
|
|
15
|
+
* responses on every build, by the current version of the checkers. A cached verdict would freeze
|
|
16
|
+
* whatever the checker believed the day it ran — a bug fixed in the comparison would never reach a
|
|
17
|
+
* paper whose entries are cached. A cached response is evidence: it cannot be made up, only
|
|
18
|
+
* refetched. The precedent is `extract-ref-facts.mjs`'s `repro/refs-cache.json` ("the cache is
|
|
19
|
+
* evidence, not a second declaration").
|
|
20
|
+
*
|
|
21
|
+
* 🔴 COMMITTED, so CI and every other clone start warm: a build whose entries are all here makes no
|
|
22
|
+
* network request at all, not even the reachability probe. It lives in `repro/`, beside the paper,
|
|
23
|
+
* not in `_build/`, which is build output and gitignored.
|
|
24
|
+
*
|
|
25
|
+
* WHAT INVALIDATES AN ENTRY: its key, or its age. Editing a bib entry's DOI, arXiv id or title
|
|
26
|
+
* changes the keys it is looked up under, so only that entry is asked again. An answer older than
|
|
27
|
+
* MAX_AGE_DAYS (by `fetched`) is asked again too, so a work a service had not indexed yet is found
|
|
28
|
+
* once it is. To refresh an answer sooner, delete its entry, or the file.
|
|
29
|
+
*
|
|
30
|
+
* Parsed here, once, at the boundary: a file that does not match is refused with a named reason,
|
|
31
|
+
* never read as empty.
|
|
32
|
+
*/
|
|
33
|
+
import { err, ok } from "./result.js";
|
|
34
|
+
export const LOOKUP_CACHE_SCHEMA = 1;
|
|
35
|
+
export const EMPTY_LOOKUP_CACHE = {
|
|
36
|
+
citations: new Map(),
|
|
37
|
+
dblp: new Map(),
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* How long a cached answer is used before it is asked again. A registry, doi.org or DBLP that had
|
|
41
|
+
* not indexed a work yet answers "no record"; kept forever, that answer would outlive the work's
|
|
42
|
+
* indexing. The age is judged against `fetched`, so every answer — a hit or a miss — gets the
|
|
43
|
+
* same rule, and nothing has to decide which answers are "negative".
|
|
44
|
+
*/
|
|
45
|
+
export const MAX_AGE_DAYS = 30;
|
|
46
|
+
const dayNumber = (date) => Date.parse(`${date}T00:00:00Z`) / 86_400_000;
|
|
47
|
+
/** The part of `cache` still young enough to answer from on `today` (YYYY-MM-DD). */
|
|
48
|
+
export function freshPart(cache, today) {
|
|
49
|
+
// An age below zero is a date in the future (a clock ahead, a typo): not trusted, asked again.
|
|
50
|
+
const young = ({ fetched }) => {
|
|
51
|
+
const age = dayNumber(today) - dayNumber(fetched);
|
|
52
|
+
return age >= 0 && age <= MAX_AGE_DAYS;
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
citations: new Map([...cache.citations].filter(([, v]) => young(v))),
|
|
56
|
+
dblp: new Map([...cache.dblp].filter(([, v]) => young(v))),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
60
|
+
const unknownField = (o, known) => Object.keys(o).find((k) => !known.includes(k));
|
|
61
|
+
const DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
62
|
+
const isDate = (v) => typeof v === "string" && DATE.test(v);
|
|
63
|
+
/** Parse every value of `section` with `one`, or the first named reason. */
|
|
64
|
+
function sectionOf(name, section, known, one) {
|
|
65
|
+
if (!isObject(section))
|
|
66
|
+
return err(`\`${name}\`: expected an object`);
|
|
67
|
+
const out = new Map();
|
|
68
|
+
for (const [key, v] of Object.entries(section)) {
|
|
69
|
+
const at = `\`${name}.${key}`;
|
|
70
|
+
if (!isObject(v))
|
|
71
|
+
return err(`${at}\`: expected an object`);
|
|
72
|
+
const extra = unknownField(v, known);
|
|
73
|
+
if (extra !== undefined)
|
|
74
|
+
return err(`${at}\`: unknown field \`${extra}\``);
|
|
75
|
+
if (!isDate(v["fetched"]))
|
|
76
|
+
return err(`${at}.fetched\`: expected a date, YYYY-MM-DD`);
|
|
77
|
+
const r = one(v, at);
|
|
78
|
+
if (!r.ok)
|
|
79
|
+
return r;
|
|
80
|
+
out.set(key, r.value);
|
|
81
|
+
}
|
|
82
|
+
return ok(out);
|
|
83
|
+
}
|
|
84
|
+
const cachedResponse = (o, at) => isObject(o["response"]) && o["response"]["transport"] === "ok"
|
|
85
|
+
? ok({ fetched: o["fetched"], response: o["response"] })
|
|
86
|
+
: err(`${at}.response\`: expected a successful response ({"transport": "ok", …})`);
|
|
87
|
+
const isHit = (h) => isObject(h) &&
|
|
88
|
+
["venue", "year", "type", "title"].every((k) => typeof h[k] === "string") &&
|
|
89
|
+
Array.isArray(h["authors"]) &&
|
|
90
|
+
h["authors"].every((a) => typeof a === "string");
|
|
91
|
+
function cachedDblp(o, at) {
|
|
92
|
+
const { title, hits } = o;
|
|
93
|
+
if (typeof title !== "string")
|
|
94
|
+
return err(`${at}.title\`: expected a string`);
|
|
95
|
+
if (!Array.isArray(hits))
|
|
96
|
+
return err(`${at}.hits\`: expected an array`);
|
|
97
|
+
const bad = hits.findIndex((h) => !isHit(h));
|
|
98
|
+
if (bad !== -1)
|
|
99
|
+
return err(`${at}.hits[${String(bad)}]\`: expected {venue, year, type, title: string; authors: string[]}`);
|
|
100
|
+
return ok({
|
|
101
|
+
fetched: o["fetched"],
|
|
102
|
+
title,
|
|
103
|
+
hits: hits,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/** The cache in `text`, or why it cannot be read. */
|
|
107
|
+
export function parseLookupCache(text) {
|
|
108
|
+
let json;
|
|
109
|
+
try {
|
|
110
|
+
json = JSON.parse(text);
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
return err(`not JSON: ${e.message}`);
|
|
114
|
+
}
|
|
115
|
+
if (!isObject(json))
|
|
116
|
+
return err("expected an object with `schema`, `citations` and `dblp`");
|
|
117
|
+
if (json["schema"] !== LOOKUP_CACHE_SCHEMA)
|
|
118
|
+
return err(`schema ${String(json["schema"])}: this paperlint reads schema ${String(LOOKUP_CACHE_SCHEMA)}`);
|
|
119
|
+
const extra = unknownField(json, ["schema", "citations", "dblp"]);
|
|
120
|
+
if (extra !== undefined)
|
|
121
|
+
return err(`unknown field \`${extra}\``);
|
|
122
|
+
const citations = sectionOf("citations", json["citations"], ["fetched", "response"], cachedResponse);
|
|
123
|
+
if (!citations.ok)
|
|
124
|
+
return citations;
|
|
125
|
+
const dblp = sectionOf("dblp", json["dblp"], ["fetched", "title", "hits"], cachedDblp);
|
|
126
|
+
if (!dblp.ok)
|
|
127
|
+
return dblp;
|
|
128
|
+
return ok({ citations: citations.value, dblp: dblp.value });
|
|
129
|
+
}
|
|
130
|
+
const sorted = (m) => Object.fromEntries([...m.keys()].sort().map((k) => [k, m.get(k)]));
|
|
131
|
+
/** The cache as the file holds it: keys sorted, so one new answer is a small diff. */
|
|
132
|
+
export const serializeLookupCache = (c) => `${JSON.stringify({
|
|
133
|
+
schema: LOOKUP_CACHE_SCHEMA,
|
|
134
|
+
citations: sorted(c.citations),
|
|
135
|
+
dblp: sorted(c.dblp),
|
|
136
|
+
}, null, 2)}\n`;
|
|
137
|
+
//# sourceMappingURL=lookup-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup-cache.js","sourceRoot":"","sources":["../../src/domain/lookup-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Crossref answer. The adapter (`adapters/references/`) runs the package's two checkers; a test
|
|
4
4
|
* passes a function.
|
|
5
5
|
*/
|
|
6
|
+
import type { LookupCache } from "../domain/lookup-cache.ts";
|
|
6
7
|
/** What one bibliography entry came to. */
|
|
7
8
|
export interface EntryVerdict {
|
|
8
9
|
readonly key: string;
|
|
@@ -26,6 +27,15 @@ export type ReferencesCheck = {
|
|
|
26
27
|
readonly kind: "not-checked";
|
|
27
28
|
readonly why: string;
|
|
28
29
|
};
|
|
29
|
-
/**
|
|
30
|
-
export
|
|
30
|
+
/** A check's verdicts, and the lookup cache grown by whatever it had to fetch. */
|
|
31
|
+
export interface ReferencesRun {
|
|
32
|
+
readonly check: ReferencesCheck;
|
|
33
|
+
/** The cache passed in, plus every new successful answer; the same object when nothing was fetched. */
|
|
34
|
+
readonly cache: LookupCache;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The bibliography's text (BibTeX) and the paper's lookup cache → the verdicts, derived afresh from
|
|
38
|
+
* cached and newly fetched answers. Never throws: a failure is `not-checked`.
|
|
39
|
+
*/
|
|
40
|
+
export type CheckReferences = (bib: string, cache: LookupCache) => Promise<ReferencesRun>;
|
|
31
41
|
//# sourceMappingURL=check-references.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-references.d.ts","sourceRoot":"","sources":["../../src/ports/check-references.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"check-references.d.ts","sourceRoot":"","sources":["../../src/ports/check-references.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;IACnD,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IACjE,yDAAyD;IACzD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE;AACzE,6EAA6E;GAC3E;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,uGAAuG;IACvG,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,WAAW,KACf,OAAO,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checking a paper's references online — shaped by what the build records, not by what DBLP or
|
|
3
|
-
* Crossref answer. The adapter (`adapters/references/`) runs the package's two checkers; a test
|
|
4
|
-
* passes a function.
|
|
5
|
-
*/
|
|
6
1
|
export {};
|
|
7
2
|
//# sourceMappingURL=check-references.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-references.js","sourceRoot":"","sources":["../../src/ports/check-references.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-references.js","sourceRoot":"","sources":["../../src/ports/check-references.ts"],"names":[],"mappings":""}
|
package/dist/references.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { Files } from "./ports/files.ts";
|
|
2
|
+
import { type LookupCache } from "./domain/lookup-cache.ts";
|
|
3
|
+
import { type Result } from "./domain/result.ts";
|
|
2
4
|
import type { CheckReferences, EntryVerdict, ReferencesCheck } from "./ports/check-references.ts";
|
|
3
5
|
export declare const REFERENCES_SCHEMA = 1;
|
|
4
6
|
export declare const REFERENCES_FILE = "references.json";
|
|
7
|
+
/** The lookup cache's place in a paper: committed, beside the paper's other reproduction files. */
|
|
8
|
+
export declare const LOOKUP_CACHE_FILE = "repro/references-cache.json";
|
|
9
|
+
export declare const lookupCachePath: (paperDir: string) => string;
|
|
5
10
|
/** Where a paper's reference verdicts live — beside `paper.facts.json`. */
|
|
6
11
|
export declare const referencesPath: (paperDir: string) => string;
|
|
7
12
|
/** The bibliography a paper carries: inside `paper.tex` (`filecontents`), else `refs.bib`. */
|
|
@@ -27,10 +32,13 @@ export interface ReferencesDocument {
|
|
|
27
32
|
export declare const documentOf: (bib: Bibliography, check: ReferencesCheck) => ReferencesDocument;
|
|
28
33
|
/** The recorded verdicts, or null when there are none or they do not parse. */
|
|
29
34
|
export declare function readReferences(files: Files, paperDir: string): ReferencesDocument | null;
|
|
35
|
+
/** The paper's lookup cache: empty when there is none, or why the file on disk cannot be read. */
|
|
36
|
+
export declare function readLookupCache(files: Files, paperDir: string): Result<LookupCache, string>;
|
|
30
37
|
/**
|
|
31
|
-
* The build step's work: check the bibliography
|
|
32
|
-
* note the build prints. A checker that
|
|
33
|
-
*
|
|
38
|
+
* The build step's work: check the bibliography, serving what it can from the paper's lookup
|
|
39
|
+
* cache, and record the verdicts. Returns the one-line note the build prints. A checker that
|
|
40
|
+
* throws, or a cache that does not parse, is recorded as `not-checked` — the step reports, it
|
|
41
|
+
* never refuses. A cache that does not parse is left as it is, and named.
|
|
34
42
|
*/
|
|
35
43
|
export declare function recordReferences(files: Files, paperDir: string, check: CheckReferences): Promise<string>;
|
|
36
44
|
//# sourceMappingURL=references.d.ts.map
|
package/dist/references.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,eAAe,EAEhB,MAAM,6BAA6B,CAAC;AAIrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,mGAAmG;AACnG,eAAO,MAAM,iBAAiB,gCAAgC,CAAC;AAE/D,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,KAAG,MAChB,CAAC;AAEpC,2EAA2E;AAC3E,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,MACP,CAAC;AAQ5C,8FAA8F;AAC9F,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf,YAAY,GAAG,IAAI,CAOrB;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,YAAY,KAAG,MACG,CAAC;AAE9C,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,CAAC;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAC3C;AAED,eAAO,MAAM,UAAU,GACrB,KAAK,YAAY,EACjB,OAAO,eAAe,KACrB,kBAMD,CAAC;AAEH,+EAA+E;AAC/E,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf,kBAAkB,GAAG,IAAI,CAW3B;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAG7B;AA8BD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
|
package/dist/references.js
CHANGED
|
@@ -17,16 +17,27 @@
|
|
|
17
17
|
* stale when it changes (`pdf_sha256`); these are about the bibliography and are stale when IT
|
|
18
18
|
* changes (`bib.sha256`). One staleness key per file, the way `pdf/fresh` already works.
|
|
19
19
|
*
|
|
20
|
+
* 🔴 WHAT THE CHECKERS ANSWERED IS KEPT, COMMITTED, IN `<paper>/repro/references-cache.json`
|
|
21
|
+
* (`domain/lookup-cache.ts`). Loaded before the check and saved after it — only when something new
|
|
22
|
+
* was fetched, a refreshed answer included — so a build asks each question at most once every
|
|
23
|
+
* MAX_AGE_DAYS, not once per build (#107: 217 s for 27 references, every build). The verdicts above are NOT cached: they are derived from the cached
|
|
24
|
+
* answers on every build, so a fix to the checkers reaches every paper at once.
|
|
25
|
+
*
|
|
20
26
|
* 🔴 THE STEP NEVER FAILS THE BUILD. A build without network still builds the PDF; the reference
|
|
21
27
|
* step records `not-checked` and the lint rule says so, as a warning. Recording "not checked" as
|
|
22
28
|
* a pass would be the counter that counts what it never looked at.
|
|
23
29
|
*/
|
|
24
30
|
import { join } from "node:path";
|
|
25
31
|
import { sha256Hex } from "./domain/sha256.js";
|
|
32
|
+
import { EMPTY_LOOKUP_CACHE, parseLookupCache, serializeLookupCache, } from "./domain/lookup-cache.js";
|
|
33
|
+
import { ok } from "./domain/result.js";
|
|
26
34
|
// @ts-expect-error — an ESLint rule module in .mjs, it has no types
|
|
27
35
|
import { bibRange } from "../eslint-rules/paper-typography.mjs";
|
|
28
36
|
export const REFERENCES_SCHEMA = 1;
|
|
29
37
|
export const REFERENCES_FILE = "references.json";
|
|
38
|
+
/** The lookup cache's place in a paper: committed, beside the paper's other reproduction files. */
|
|
39
|
+
export const LOOKUP_CACHE_FILE = "repro/references-cache.json";
|
|
40
|
+
export const lookupCachePath = (paperDir) => join(paperDir, LOOKUP_CACHE_FILE);
|
|
30
41
|
/** Where a paper's reference verdicts live — beside `paper.facts.json`. */
|
|
31
42
|
export const referencesPath = (paperDir) => join(paperDir, "_build", REFERENCES_FILE);
|
|
32
43
|
const at = (p) => p;
|
|
@@ -65,27 +76,64 @@ export function readReferences(files, paperDir) {
|
|
|
65
76
|
return null;
|
|
66
77
|
}
|
|
67
78
|
}
|
|
79
|
+
/** The paper's lookup cache: empty when there is none, or why the file on disk cannot be read. */
|
|
80
|
+
export function readLookupCache(files, paperDir) {
|
|
81
|
+
const raw = text(files, lookupCachePath(paperDir));
|
|
82
|
+
return raw === null ? ok(EMPTY_LOOKUP_CACHE) : parseLookupCache(raw);
|
|
83
|
+
}
|
|
68
84
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
85
|
+
* How many answers the run fetched: entries of `after` that are not the very object `before` held
|
|
86
|
+
* under that key. The checker keeps every answer it did not fetch as the same object, so this counts
|
|
87
|
+
* both new keys and answers asked again past MAX_AGE_DAYS under an existing key — which a count of
|
|
88
|
+
* keys would miss, leaving the refreshed answer unwritten and asked again on every build.
|
|
72
89
|
*/
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
90
|
+
const newAnswers = (before, after) => {
|
|
91
|
+
const changed = (b, a) => [...a].filter(([k, v]) => b.get(k) !== v).length;
|
|
92
|
+
return (changed(before.citations, after.citations) +
|
|
93
|
+
changed(before.dblp, after.dblp));
|
|
94
|
+
};
|
|
95
|
+
/** Run the checker; a throw is `not-checked`, with the cache as it was. */
|
|
96
|
+
async function run(check, bib, cache) {
|
|
78
97
|
try {
|
|
79
|
-
|
|
98
|
+
return await check(bib, cache);
|
|
80
99
|
}
|
|
81
100
|
catch (e) {
|
|
82
|
-
|
|
101
|
+
return { check: { kind: "not-checked", why: e.message }, cache };
|
|
83
102
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* The build step's work: check the bibliography, serving what it can from the paper's lookup
|
|
106
|
+
* cache, and record the verdicts. Returns the one-line note the build prints. A checker that
|
|
107
|
+
* throws, or a cache that does not parse, is recorded as `not-checked` — the step reports, it
|
|
108
|
+
* never refuses. A cache that does not parse is left as it is, and named.
|
|
109
|
+
*/
|
|
110
|
+
export async function recordReferences(files, paperDir, check) {
|
|
111
|
+
const bib = bibliographyOf(files, paperDir);
|
|
112
|
+
if (bib === null)
|
|
113
|
+
return "no bibliography — nothing to check";
|
|
114
|
+
const record = (c) => {
|
|
115
|
+
const doc = documentOf(bib, c);
|
|
116
|
+
files.writeAtomic(at(referencesPath(paperDir)), new TextEncoder().encode(`${JSON.stringify(doc, null, 2)}\n`));
|
|
117
|
+
return doc;
|
|
118
|
+
};
|
|
119
|
+
const notChecked = (why) => {
|
|
120
|
+
record({ kind: "not-checked", why });
|
|
121
|
+
return `references NOT checked — ${why}; lint will say so`;
|
|
122
|
+
};
|
|
123
|
+
const cache = readLookupCache(files, paperDir);
|
|
124
|
+
if (!cache.ok)
|
|
125
|
+
return notChecked(`${LOOKUP_CACHE_FILE} cannot be read (${cache.error}) — fix it, or delete it to ask every question again`);
|
|
126
|
+
const result = await run(check, bib.text, cache.value);
|
|
127
|
+
if (result.check.kind === "not-checked")
|
|
128
|
+
return notChecked(result.check.why);
|
|
129
|
+
const doc = record(result.check);
|
|
130
|
+
const fetched = newAnswers(cache.value, result.cache);
|
|
131
|
+
if (fetched > 0)
|
|
132
|
+
files.writeAtomic(at(lookupCachePath(paperDir)), new TextEncoder().encode(serializeLookupCache(result.cache)));
|
|
88
133
|
const bad = doc.entries.filter((e) => e.exists === "false" || e.authors === "mismatch").length;
|
|
89
|
-
return `references: ${String(doc.entries.length)} checked, ${String(bad)} failing → _build/${REFERENCES_FILE}
|
|
134
|
+
return (`references: ${String(doc.entries.length)} checked, ${String(bad)} failing → _build/${REFERENCES_FILE}; ` +
|
|
135
|
+
(fetched > 0
|
|
136
|
+
? `${String(fetched)} new answer${fetched === 1 ? "" : "s"} → ${LOOKUP_CACHE_FILE}`
|
|
137
|
+
: "nothing fetched"));
|
|
90
138
|
}
|
|
91
139
|
//# sourceMappingURL=references.js.map
|
package/dist/references.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"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"}
|
package/docs/prior-art/README.md
CHANGED
|
@@ -15,16 +15,17 @@ that already solved the same problem, with the URL that was checked.
|
|
|
15
15
|
**Files are split by QUESTION, not by tool** — Quarto answers two different questions and has to
|
|
16
16
|
be citable for each one separately.
|
|
17
17
|
|
|
18
|
-
| file | the question
|
|
19
|
-
| ------------------------------------------------------------ |
|
|
20
|
-
| [`multi-mode-tools.md`](multi-mode-tools.md) | how do linter + builder + extension host live in one CLI?
|
|
21
|
-
| [`blocking-vs-advisory.md`](blocking-vs-advisory.md) | who decides to fail the run — the rule or the runner?
|
|
22
|
-
| [`nondeterministic-checks.md`](nondeterministic-checks.md) | may a check read the clock, an mtime, or a diff?
|
|
23
|
-
| [`content-delivery.md`](content-delivery.md) | how is installable content (skills, styles, extensions) delivered?
|
|
24
|
-
| [`test-tooling.md`](test-tooling.md) | what do we test with — which tool for which test? a local registry?
|
|
25
|
-
| [`package-location.md`](package-location.md) | how does a package find its own installed files, and its own bin?
|
|
26
|
-
| [`readme-structure.md`](readme-structure.md) | how do comparable linters lead a new reader to a first working run?
|
|
27
|
-
| [`paper-folder-scaffolding.md`](paper-folder-scaffolding.md) | who creates a paper folder, and who wires the hooks — a command or a human?
|
|
18
|
+
| file | the question | the verdict in one line |
|
|
19
|
+
| ------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
20
|
+
| [`multi-mode-tools.md`](multi-mode-tools.md) | how do linter + builder + extension host live in one CLI? | small-feeling tools have fewer **nouns**, not fewer capabilities — the project config supplies what would be an argument |
|
|
21
|
+
| [`blocking-vs-advisory.md`](blocking-vs-advisory.md) | who decides to fail the run — the rule or the runner? | severity is **data on the finding**; failing is the **runner's** decision, and the default is not to fail |
|
|
22
|
+
| [`nondeterministic-checks.md`](nondeterministic-checks.md) | may a check read the clock, an mtime, or a diff? | yes, but make it opt-in, never blocking — and prefer a **recorded fact** to an inferred one, which dissolves most of them |
|
|
23
|
+
| [`content-delivery.md`](content-delivery.md) | how is installable content (skills, styles, extensions) delivered? | the **config declares it and a command fetches it**; content that hard-codes its own install path is betting on one channel |
|
|
24
|
+
| [`test-tooling.md`](test-tooling.md) | what do we test with — which tool for which test? a local registry? | vitest for units, vigiles harnesses for agent surfaces, scripts for e2e; install tested by tarball, not a registry (that is what MULTI-package repos need) |
|
|
25
|
+
| [`package-location.md`](package-location.md) | how does a package find its own installed files, and its own bin? | resolve the package dir **once** from `<pkg>/package.json`; **keep** the `.bin` launch — it is the only check that observes the manager's own work. Yarn PnP stays out, for a harder reason than previously recorded |
|
|
26
|
+
| [`readme-structure.md`](readme-structure.md) | how do comparable linters lead a new reader to a first working run? | one sentence, then a real run with its real output; install on the first screen; design reasoning never on the front page |
|
|
27
|
+
| [`paper-folder-scaffolding.md`](paper-folder-scaffolding.md) | who creates a paper folder, and who wires the hooks — a command or a human? | ship the template as a FILE and scaffold from it (`rpp new`); `init` writes the hooks into `.claude/settings.json` instead of printing `/plugin` lines |
|
|
28
|
+
| [`citation-checkers.md`](citation-checkers.md) | could the reference check depend on an existing package, and how could it be faster? | no dependable package exists (all Python, mostly prototypes); keep the in-repo checker, and the speedups are batch endpoints (Semantic Scholar, OpenAlex) and a committed cache of responses |
|
|
28
29
|
|
|
29
30
|
## Tools examined, and for what
|
|
30
31
|
|