From 2f2643fe8087e24cb9059eb4304caab4d5e00cc0 Mon Sep 17 00:00:00 2001 From: Martin Halford Date: Sat, 14 Jun 2025 18:11:36 +0100 Subject: [PATCH 1/4] chore(tests): move data to folder; list data files; add tests Signed-off-by: Martin Halford --- README.md | 227 +- __tests__/draft.test.js | 391 + __tests__/list-data-files.test.js | 223 + __tests__/trigger.test.js | 362 + .../halfordit/demo-template/draft.js.html | 319 + .../halfordit/demo-template/index.html | 176 + .../halfordit/demo-template/index.js.html | 280 + .../demo-template/list-data-files.js.html | 319 + .../test-different-values.js.html | 457 + .../halfordit/demo-template/trigger.js.html | 427 + coverage/base.css | 224 + coverage/block-navigation.js | 87 + coverage/draft.js.html | 319 + coverage/favicon.png | Bin 0 -> 445 bytes .../markdown-docx/src/DocxTransformer.js.html | 118 + .../packages/markdown-docx/src/index.html | 116 + .../markdown-html/src/HtmlTransformer.js.html | 118 + .../src/ToCiceroMarkVisitor.js.html | 118 + .../src/ToHtmlStringVisitor.js.html | 118 + .../markdown-html/src/helpers.js.html | 118 + .../packages/markdown-html/src/index.html | 176 + .../packages/markdown-html/src/rules.js.html | 118 + .../src/CiceroMarkToPdfMakeVisitor.js.html | 118 + .../markdown-pdf/src/PdfTransformer.js.html | 118 + .../src/PdfTransformerBase.js.html | 118 + .../src/TemplateMarkToPdfMakeVisitor.js.html | 118 + .../markdown-pdf/src/ToCiceroMark.js.html | 118 + .../markdown-pdf/src/ToPdfMake.js.html | 118 + .../markdown-pdf/src/ToPdfMakeVisitor.js.html | 118 + .../markdown-pdf/src/ciceromarkrules.js.html | 118 + .../markdown-pdf/src/commonmarkrules.js.html | 118 + .../markdown-pdf/src/domstubs.js.html | 118 + .../packages/markdown-pdf/src/index.html | 281 + .../markdown-pdf/src/pdfmakeutil.js.html | 118 + .../src/templatemarkrules.js.html | 118 + coverage/index.html | 176 + coverage/index.js.html | 280 + .../halfordit/demo-template/draft.js.html | 319 + .../halfordit/demo-template/index.html | 176 + .../halfordit/demo-template/index.js.html | 280 + .../demo-template/list-data-files.js.html | 319 + .../test-different-values.js.html | 457 + .../halfordit/demo-template/trigger.js.html | 427 + coverage/lcov-report/base.css | 224 + coverage/lcov-report/block-navigation.js | 87 + coverage/lcov-report/draft.js.html | 319 + coverage/lcov-report/favicon.png | Bin 0 -> 445 bytes .../markdown-docx/src/DocxTransformer.js.html | 118 + .../packages/markdown-docx/src/index.html | 116 + .../markdown-html/src/HtmlTransformer.js.html | 118 + .../src/ToCiceroMarkVisitor.js.html | 118 + .../src/ToHtmlStringVisitor.js.html | 118 + .../markdown-html/src/helpers.js.html | 118 + .../packages/markdown-html/src/index.html | 176 + .../packages/markdown-html/src/rules.js.html | 118 + .../src/CiceroMarkToPdfMakeVisitor.js.html | 118 + .../markdown-pdf/src/PdfTransformer.js.html | 118 + .../src/PdfTransformerBase.js.html | 118 + .../src/TemplateMarkToPdfMakeVisitor.js.html | 118 + .../markdown-pdf/src/ToCiceroMark.js.html | 118 + .../markdown-pdf/src/ToPdfMake.js.html | 118 + .../markdown-pdf/src/ToPdfMakeVisitor.js.html | 118 + .../markdown-pdf/src/ciceromarkrules.js.html | 118 + .../markdown-pdf/src/commonmarkrules.js.html | 118 + .../markdown-pdf/src/domstubs.js.html | 118 + .../packages/markdown-pdf/src/index.html | 281 + .../markdown-pdf/src/pdfmakeutil.js.html | 118 + .../src/templatemarkrules.js.html | 118 + coverage/lcov-report/index.html | 176 + coverage/lcov-report/index.js.html | 280 + coverage/lcov-report/list-data-files.js.html | 319 + coverage/lcov-report/prettify.css | 1 + coverage/lcov-report/prettify.js | 2 + coverage/lcov-report/sort-arrow-sprite.png | Bin 0 -> 138 bytes coverage/lcov-report/sorter.js | 196 + .../lcov-report/test-different-values.js.html | 457 + coverage/lcov-report/trigger.js.html | 427 + coverage/lcov.info | 298 + coverage/list-data-files.js.html | 319 + coverage/prettify.css | 1 + coverage/prettify.js | 2 + coverage/sort-arrow-sprite.png | Bin 0 -> 138 bytes coverage/sorter.js | 196 + coverage/test-different-values.js.html | 457 + coverage/trigger.js.html | 427 + data/request-basic.json | 3 + data/request-high-value.json | 3 + data/request-low-value.json | 3 + data/template-basic.json | 19 + data/template-high-penalty.json | 19 + data/template-low-penalty.json | 19 + draft.js | 78 + list-data-files.js | 78 + package-lock.json | 7390 +++++++++++++---- package.json | 27 +- test-different-values.js | 124 + trigger.js | 114 + 97 files changed, 22062 insertions(+), 1642 deletions(-) create mode 100644 __tests__/draft.test.js create mode 100644 __tests__/list-data-files.test.js create mode 100644 __tests__/trigger.test.js create mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/draft.js.html create mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/index.html create mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/index.js.html create mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html create mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html create mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html create mode 100644 coverage/base.css create mode 100644 coverage/block-navigation.js create mode 100644 coverage/draft.js.html create mode 100644 coverage/favicon.png create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html create mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html create mode 100644 coverage/index.html create mode 100644 coverage/index.js.html create mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/draft.js.html create mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.html create mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.js.html create mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html create mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html create mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html create mode 100644 coverage/lcov-report/base.css create mode 100644 coverage/lcov-report/block-navigation.js create mode 100644 coverage/lcov-report/draft.js.html create mode 100644 coverage/lcov-report/favicon.png create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html create mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html create mode 100644 coverage/lcov-report/index.html create mode 100644 coverage/lcov-report/index.js.html create mode 100644 coverage/lcov-report/list-data-files.js.html create mode 100644 coverage/lcov-report/prettify.css create mode 100644 coverage/lcov-report/prettify.js create mode 100644 coverage/lcov-report/sort-arrow-sprite.png create mode 100644 coverage/lcov-report/sorter.js create mode 100644 coverage/lcov-report/test-different-values.js.html create mode 100644 coverage/lcov-report/trigger.js.html create mode 100644 coverage/lcov.info create mode 100644 coverage/list-data-files.js.html create mode 100644 coverage/prettify.css create mode 100644 coverage/prettify.js create mode 100644 coverage/sort-arrow-sprite.png create mode 100644 coverage/sorter.js create mode 100644 coverage/test-different-values.js.html create mode 100644 coverage/trigger.js.html create mode 100644 data/request-basic.json create mode 100644 data/request-high-value.json create mode 100644 data/request-low-value.json create mode 100644 data/template-basic.json create mode 100644 data/template-high-penalty.json create mode 100644 data/template-low-penalty.json create mode 100644 draft.js create mode 100644 list-data-files.js create mode 100644 test-different-values.js create mode 100644 trigger.js diff --git a/README.md b/README.md index d54d122..7b57a22 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,227 @@ # Accord Project Demo Template -A sample Accord Project template with contract logic implemented using TypeScript. +A comprehensive Accord Project template demonstrating contract logic implementation using TypeScript, with flexible CLI tools and extensive testing. -## Install +## Quick Start -Requires Node v20 or higher. +**Requirements:** Node.js v20 or higher -1. npm i -2. npm start +```bash +# Install dependencies +npm install -The `index.js` file shows how to draft the template (merge the template with data to produce markdown, HTML or PDF output) as well as how to trigger the logic of the template by sending it a contract event. +# Run the demo +npm start + +# Generate a contract draft +npm run draft + +# Test business logic +npm run trigger + +# Run tests +npm test +``` + +## Project Structure + +``` +├── index.js # Main demo script +├── draft.js # Contract generation CLI +├── trigger.js # Business logic CLI +├── list-data-files.js # Data file explorer +├── test-different-values.js # Multi-scenario demo +├── data/ # JSON configuration files +│ ├── template-*.json # Template configurations +│ └── request-*.json # Request data files +├── __tests__/ # Comprehensive test suite +└── archives/ # Accord Project template +``` + +## CLI Tools + +### Draft Operation (Contract Generation) + +Generate contract documents from template data: + +```bash +# Using npm scripts +npm run draft # Basic template +npm run draft:low # Low penalty template +npm run draft:high # High penalty template + +# Using Node.js directly +node draft.js data/template-basic.json +node draft.js --help # Show usage +``` + +### Trigger Operation (Business Logic) + +Execute contract business logic with request data: + +```bash +# Using npm scripts +npm run trigger # Basic scenario +npm run trigger:low # Low penalty + low value +npm run trigger:high # High penalty + high value + +# Using Node.js directly +node trigger.js data/template-basic.json data/request-basic.json +node trigger.js --help # Show usage +``` + +### Utility Tools + +```bash +# List available data files +node list-data-files.js + +# Run multiple test scenarios +npm run test-values +``` + +## Data Configuration + +### Template Data Files + +Located in `data/` directory: + +- `template-basic.json` - Default configuration (10.5% penalty, 15-day termination) +- `template-low-penalty.json` - Conservative (5% penalty, 30-day termination) +- `template-high-penalty.json` - Aggressive (15% penalty, 7-day termination) + +### Request Data Files + +- `request-basic.json` - $100 goods value +- `request-low-value.json` - $50 goods value +- `request-high-value.json` - $1000 goods value + +### Example Template Format + +```json +{ + "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + "forceMajeure": true, + "penaltyDuration": { + "$class": "org.accordproject.time@0.3.0.Duration", + "amount": 2, + "unit": "days" + }, + "penaltyPercentage": 10.5, + "capPercentage": 55, + "termination": { + "$class": "org.accordproject.time@0.3.0.Duration", + "amount": 15, + "unit": "days" + }, + "fractionalPart": "days", + "clauseId": "your-clause-id", + "$identifier": "your-clause-id" +} +``` + +### Example Request Format + +```json +{ + "goodsValue": 100 +} +``` + +## Testing + +Comprehensive test suite with CLI integration testing: + +```bash +# Run all tests +npm test + +# Run with coverage report +npm run test:coverage + +# Run in watch mode +npm run test:watch + +# Run specific test file +npm test __tests__/trigger.test.js +``` + +### Test Coverage + +- **CLI Integration Tests** - Tests actual command-line usage +- **Error Handling** - Invalid files, missing arguments, malformed JSON +- **Edge Cases** - Boundary conditions, different data formats +- **Output Validation** - Correct formatting, exit codes, error messages + +## Example Scenarios + +| Template | Request | Expected Penalty | Use Case | +| ------------ | ---------- | ---------------- | -------------------- | +| Low Penalty | Low Value | $6.25 | Small contracts | +| Basic | Basic | $262.50 | Standard contracts | +| High Penalty | High Value | $3750.00 | High-value contracts | + +## Development + +### Adding New Scenarios + +1. Create new JSON files in `data/` directory +2. Test with CLI tools: + ```bash + node draft.js data/your-template.json + node trigger.js data/your-template.json data/your-request.json + ``` + +### Running Tests During Development + +```bash +# Watch mode for continuous testing +npm run test:watch + +# Test specific functionality +npm test -- --testNamePattern="should handle" +``` + +## Key Features + +- **Flexible Configuration** - JSON-based template and request data +- **CLI Tools** - Easy-to-use command-line interfaces +- **Comprehensive Testing** - Full CLI integration test coverage +- **Multiple Output Formats** - Markdown, HTML, PDF contract generation +- **Business Logic Engine** - Penalty calculations and contract logic +- **Scenario Testing** - Pre-configured test cases and combinations +- **Data Exploration** - Built-in tools to explore available configurations + +## Usage Patterns + +### For Development + +```bash +npm run test:watch # Continuous testing +node list-data-files.js # Explore available data +``` + +### For Demos + +```bash +npm start # Full demonstration +npm run test-values # Multiple scenarios +``` + +### For Integration + +```bash +# Custom scenarios +echo '{"goodsValue": 5000}' > data/custom-request.json +node trigger.js data/template-high-penalty.json data/custom-request.json +``` + +## Learn More + +- [Accord Project Documentation](https://docs.accordproject.org/) +- [Cicero Template Engine](https://github.com/accordproject/cicero) +- [Template Development Guide](https://docs.accordproject.org/docs/tutorial-templates) + +--- + +**Built with the Accord Project framework for smart legal contracts.** diff --git a/__tests__/draft.test.js b/__tests__/draft.test.js new file mode 100644 index 0000000..009bd91 --- /dev/null +++ b/__tests__/draft.test.js @@ -0,0 +1,391 @@ +const { spawn } = require("child_process"); +const fs = require("fs"); +const path = require("path"); + +// Helper function to run the CLI tool and capture output +function runCLI(scriptName, args = []) { + return new Promise((resolve, reject) => { + const child = spawn("node", [scriptName, ...args], { + cwd: process.cwd(), + stdio: ["pipe", "pipe", "pipe"], + }); + + let stdout = ""; + let stderr = ""; + + child.stdout.on("data", (data) => { + stdout += data.toString(); + }); + + child.stderr.on("data", (data) => { + stderr += data.toString(); + }); + + child.on("close", (code) => { + resolve({ + code, + stdout, + stderr, + }); + }); + + child.on("error", (error) => { + reject(error); + }); + + // Set a timeout to prevent hanging + setTimeout(() => { + child.kill(); + reject(new Error("Process timeout")); + }, 10000); + }); +} + +describe("Draft CLI Tool Tests", () => { + const scriptPath = "draft.js"; + const testDataDir = "data"; + + beforeAll(() => { + // Ensure data directory exists and has the expected files + if (!fs.existsSync(testDataDir)) { + console.warn(`Warning: ${testDataDir} directory not found`); + } + }); + + describe("Help and Usage", () => { + test("should show usage when no arguments provided", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(1); + expect(result.stdout).toContain("Usage: node draft.js"); + expect(result.stdout).toContain("No template data file specified"); + }); + + test("should show help with --help flag", async () => { + const result = await runCLI(scriptPath, ["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node draft.js"); + expect(result.stdout).toContain("Available template data files:"); + }); + + test("should show help with -h flag", async () => { + const result = await runCLI(scriptPath, ["-h"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node draft.js"); + }); + }); + + describe("File Loading and Validation", () => { + test("should handle non-existent template file", async () => { + const result = await runCLI(scriptPath, ["non-existent.json"]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain("Error loading JSON file"); + }); + + test("should handle invalid JSON in template file", async () => { + // Create a temporary invalid JSON file + const tempFile = "temp-invalid-draft.json"; + fs.writeFileSync(tempFile, "{ invalid json }"); + + try { + const result = await runCLI(scriptPath, [tempFile]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain("Error loading JSON file"); + } finally { + // Clean up temp file + if (fs.existsSync(tempFile)) { + fs.unlinkSync(tempFile); + } + } + }); + }); + + describe("Successful Operations", () => { + test("should run successfully with basic template", async () => { + const templateFile = "data/template-basic.json"; + + if (!fs.existsSync(templateFile)) { + console.warn(`Skipping test - data file not found: ${templateFile}`); + return; + } + + const result = await runCLI(scriptPath, [templateFile]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "Running DRAFT operation with template data:" + ); + expect(result.stdout).toContain("Contract Draft:"); + expect(result.stdout).toContain( + "Draft operation completed successfully!" + ); + }); + + test("should work with low penalty template", async () => { + const templateFile = "data/template-low-penalty.json"; + + if (!fs.existsSync(templateFile)) { + console.warn(`Skipping test - data file not found: ${templateFile}`); + return; + } + + const result = await runCLI(scriptPath, [templateFile]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "Draft operation completed successfully!" + ); + }); + + test("should work with high penalty template", async () => { + const templateFile = "data/template-high-penalty.json"; + + if (!fs.existsSync(templateFile)) { + console.warn(`Skipping test - data file not found: ${templateFile}`); + return; + } + + const result = await runCLI(scriptPath, [templateFile]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "Draft operation completed successfully!" + ); + }); + }); + + describe("Output Formatting", () => { + test("should include proper sections in output", async () => { + const templateFile = "data/template-basic.json"; + + if (!fs.existsSync(templateFile)) { + console.warn(`Skipping test - data file not found: ${templateFile}`); + return; + } + + const result = await runCLI(scriptPath, [templateFile]); + + expect(result.code).toBe(0); + + // Check for section headers + expect(result.stdout).toContain("Contract Draft:"); + expect(result.stdout).toContain("_".repeat(20)); + }); + + test("should format JSON output properly", async () => { + const templateFile = "data/template-basic.json"; + + if (!fs.existsSync(templateFile)) { + console.warn(`Skipping test - data file not found: ${templateFile}`); + return; + } + + const result = await runCLI(scriptPath, [templateFile]); + + expect(result.code).toBe(0); + + // Should contain contract draft content (markdown format) + expect(result.stdout).toContain("Late Delivery and Penalty"); + }); + }); + + describe("CLI Interface Consistency", () => { + test("should show consistent file examples in help", async () => { + const result = await runCLI(scriptPath, ["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("template-basic.json"); + expect(result.stdout).toContain("template-low-penalty.json"); + expect(result.stdout).toContain("template-high-penalty.json"); + }); + + test("should show proper command examples", async () => { + const result = await runCLI(scriptPath, ["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("node draft.js data/template-basic.json"); + }); + }); + + describe("Error Scenarios", () => { + test("should handle template archive errors gracefully", async () => { + // Create a valid JSON file but with invalid template structure + const tempTemplate = "temp-draft-template.json"; + + fs.writeFileSync(tempTemplate, JSON.stringify({ invalid: "template" })); + + try { + const result = await runCLI(scriptPath, [tempTemplate]); + + // Should either exit with error or handle gracefully + expect(result.code).not.toBe(0); + expect(result.stderr).toContain("Error"); + } finally { + // Clean up temp file + if (fs.existsSync(tempTemplate)) { + fs.unlinkSync(tempTemplate); + } + } + }); + }); + + describe("Data File Validation", () => { + test("should accept valid template data structure", async () => { + // Create a minimal valid template file + const tempTemplate = "temp-valid-draft-template.json"; + + const validTemplate = { + $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + forceMajeure: true, + penaltyDuration: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 2, + unit: "days", + }, + penaltyPercentage: 10.5, + capPercentage: 55, + termination: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 15, + unit: "days", + }, + fractionalPart: "days", + clauseId: "test-id", + $identifier: "test-id", + }; + + fs.writeFileSync(tempTemplate, JSON.stringify(validTemplate, null, 2)); + + try { + const result = await runCLI(scriptPath, [tempTemplate]); + + // Should process without JSON parsing errors + expect(result.stdout).toContain( + "Running DRAFT operation with template data:" + ); + + // May fail at template processing stage, but JSON should be parsed successfully + if (result.code !== 0) { + // If it fails, it should be at template processing, not JSON parsing + expect(result.stderr).not.toContain("JSON"); + } + } finally { + // Clean up temp file + if (fs.existsSync(tempTemplate)) { + fs.unlinkSync(tempTemplate); + } + } + }); + }); + + describe("Options and Parameters", () => { + test("should use markdown format by default", async () => { + const templateFile = "data/template-basic.json"; + + if (!fs.existsSync(templateFile)) { + console.warn(`Skipping test - data file not found: ${templateFile}`); + return; + } + + const result = await runCLI(scriptPath, [templateFile]); + + expect(result.code).toBe(0); + // The output should indicate markdown format is being used + expect(result.stdout).toContain("Contract Draft:"); + }); + }); + + describe("Template Processing", () => { + test("should handle different penalty percentages in template", async () => { + // Create templates with different penalty percentages + const templates = [ + { name: "low", penaltyPercentage: 5.0 }, + { name: "medium", penaltyPercentage: 10.5 }, + { name: "high", penaltyPercentage: 15.0 }, + ]; + + for (const template of templates) { + const tempFile = `temp-${template.name}-penalty.json`; + const templateData = { + $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + forceMajeure: true, + penaltyDuration: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 2, + unit: "days", + }, + penaltyPercentage: template.penaltyPercentage, + capPercentage: 55, + termination: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 15, + unit: "days", + }, + fractionalPart: "days", + clauseId: "test-id", + $identifier: "test-id", + }; + + fs.writeFileSync(tempFile, JSON.stringify(templateData, null, 2)); + + try { + const result = await runCLI(scriptPath, [tempFile]); + + // Should process the template data + expect(result.stdout).toContain( + "Running DRAFT operation with template data:" + ); + expect(result.stdout).toContain(`${template.penaltyPercentage}`); + } finally { + if (fs.existsSync(tempFile)) { + fs.unlinkSync(tempFile); + } + } + } + }, 15000); + + test("should handle different time units in template", async () => { + const tempFile = "temp-time-units.json"; + const templateData = { + $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + forceMajeure: false, + penaltyDuration: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 1, + unit: "weeks", + }, + penaltyPercentage: 8.0, + capPercentage: 40, + termination: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 30, + unit: "days", + }, + fractionalPart: "hours", + clauseId: "test-id", + $identifier: "test-id", + }; + + fs.writeFileSync(tempFile, JSON.stringify(templateData, null, 2)); + + try { + const result = await runCLI(scriptPath, [tempFile]); + + // Should process the template data with different time units + expect(result.stdout).toContain( + "Running DRAFT operation with template data:" + ); + expect(result.stdout).toContain("weeks"); + expect(result.stdout).toContain("hours"); + } finally { + if (fs.existsSync(tempFile)) { + fs.unlinkSync(tempFile); + } + } + }); + }); +}); diff --git a/__tests__/list-data-files.test.js b/__tests__/list-data-files.test.js new file mode 100644 index 0000000..cf21757 --- /dev/null +++ b/__tests__/list-data-files.test.js @@ -0,0 +1,223 @@ +const { spawn } = require("child_process"); +const fs = require("fs"); + +// Helper function to run the CLI tool and capture output +function runCLI(scriptName, args = []) { + return new Promise((resolve, reject) => { + const child = spawn("node", [scriptName, ...args], { + cwd: process.cwd(), + stdio: ["pipe", "pipe", "pipe"], + }); + + let stdout = ""; + let stderr = ""; + + child.stdout.on("data", (data) => { + stdout += data.toString(); + }); + + child.stderr.on("data", (data) => { + stderr += data.toString(); + }); + + child.on("close", (code) => { + resolve({ + code, + stdout, + stderr, + }); + }); + + child.on("error", (error) => { + reject(error); + }); + + // Set a timeout to prevent hanging + setTimeout(() => { + child.kill(); + reject(new Error("Process timeout")); + }, 5000); + }); +} + +describe("List Data Files CLI Tool Tests", () => { + const scriptPath = "list-data-files.js"; + const testDataDir = "data"; + + beforeAll(() => { + // Ensure data directory exists and has the expected files + if (!fs.existsSync(testDataDir)) { + console.warn(`Warning: ${testDataDir} directory not found`); + } + }); + + describe("Basic Functionality", () => { + test("should run successfully and list data files", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Data Files"); + }); + + test("should show proper header formatting", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("─".repeat(50)); + expect(result.stdout).toContain("Available Data Files"); + }); + }); + + describe("File Detection", () => { + test("should detect template files if they exist", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(0); + + // Check if data directory exists, then verify appropriate output + if (fs.existsSync(testDataDir)) { + const files = fs + .readdirSync(testDataDir) + .filter((f) => f.endsWith(".json")); + if (files.length > 0) { + expect(result.stdout).toContain("Template Data Files:"); + } + } + }); + + test("should handle missing data directory gracefully", async () => { + // This tests the error handling when data directory doesn't exist + // Since the script runs immediately, we test the actual behavior + const result = await runCLI(scriptPath); + + // Should either succeed (if data dir exists) or handle the error gracefully + if (result.code !== 0) { + expect(result.stderr).toContain("Error"); + } else { + expect(result.stdout).toContain("Data Files"); + } + }); + }); + + describe("Output Formatting", () => { + test("should format output consistently", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(0); + + // Should have consistent formatting + expect(result.stdout).toMatch(/─+/); // Contains separator lines + expect(result.stdout).toContain("Available Data Files"); + }); + + test("should include proper sections for different file types", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(0); + + // If data files exist, should show categorized sections + if (fs.existsSync(testDataDir)) { + const files = fs + .readdirSync(testDataDir) + .filter((f) => f.endsWith(".json")); + if (files.some((f) => f.includes("template"))) { + expect(result.stdout).toContain("Template Data Files:"); + } + if (files.some((f) => f.includes("request"))) { + expect(result.stdout).toContain("Request Data Files:"); + } + } + }); + }); + + describe("File Type Categorization", () => { + test("should properly categorize template files", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(0); + + // Check for template file patterns + if (result.stdout.includes("template-basic.json")) { + expect(result.stdout).toContain("Template Data Files:"); + } + }); + + test("should properly categorize request files", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(0); + + // Check for request file patterns + if (result.stdout.includes("request-basic.json")) { + expect(result.stdout).toContain("Request Data Files:"); + } + }); + }); + + describe("Error Handling", () => { + test("should handle directory read errors gracefully", async () => { + // The script should handle errors without crashing + const result = await runCLI(scriptPath); + + // Either succeeds or fails gracefully + if (result.code !== 0) { + expect(result.stderr).toBeTruthy(); + } else { + expect(result.stdout).toContain("Data Files"); + } + }); + }); + + describe("CLI Interface", () => { + test("should run without requiring arguments", async () => { + const result = await runCLI(scriptPath); + + // Should run successfully without any arguments + expect(result.code).toBe(0); + expect(result.stdout).toContain("Data Files"); + }); + + test("should ignore extra arguments gracefully", async () => { + const result = await runCLI(scriptPath, ["extra", "arguments"]); + + // Should still work normally even with extra arguments + expect(result.code).toBe(0); + expect(result.stdout).toContain("Data Files"); + }); + }); + + describe("Performance", () => { + test("should complete quickly", async () => { + const startTime = Date.now(); + const result = await runCLI(scriptPath); + const executionTime = Date.now() - startTime; + + expect(result.code).toBe(0); + expect(executionTime).toBeLessThan(3000); // Should complete within 3 seconds + }); + }); + + describe("Data Directory Content", () => { + test("should handle empty data directory", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Data Files"); + + // If no files exist, should still show appropriate sections + if (!result.stdout.includes(".json")) { + expect(result.stdout).toContain("Data Files in"); + } + }); + + test("should handle non-JSON files in data directory", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Data Files"); + + // Should only show JSON files, not other file types + // The script should filter to only .json files + }); + }); +}); diff --git a/__tests__/trigger.test.js b/__tests__/trigger.test.js new file mode 100644 index 0000000..b54a35d --- /dev/null +++ b/__tests__/trigger.test.js @@ -0,0 +1,362 @@ +const { spawn } = require("child_process"); +const fs = require("fs"); +const path = require("path"); +// CLI testing for trigger.js - no mocking needed since we test via process spawning + +// Helper function to run the CLI tool and capture output +function runCLI(scriptName, args = []) { + return new Promise((resolve, reject) => { + const child = spawn("node", [scriptName, ...args], { + cwd: process.cwd(), + stdio: ["pipe", "pipe", "pipe"], + }); + + let stdout = ""; + let stderr = ""; + + child.stdout.on("data", (data) => { + stdout += data.toString(); + }); + + child.stderr.on("data", (data) => { + stderr += data.toString(); + }); + + child.on("close", (code) => { + resolve({ + code, + stdout, + stderr, + }); + }); + + child.on("error", (error) => { + reject(error); + }); + + // Set a timeout to prevent hanging + setTimeout(() => { + child.kill(); + reject(new Error("Process timeout")); + }, 10000); + }); +} + +describe("Trigger CLI Tool Tests", () => { + const scriptPath = "trigger.js"; + const testDataDir = "data"; + + beforeAll(() => { + // Ensure data directory exists and has the expected files + if (!fs.existsSync(testDataDir)) { + console.warn(`Warning: ${testDataDir} directory not found`); + } + }); + + describe("Help and Usage", () => { + test("should show usage when no arguments provided", async () => { + const result = await runCLI(scriptPath); + + expect(result.code).toBe(1); + expect(result.stdout).toContain("Usage: node trigger.js"); + expect(result.stdout).toContain("No data files specified"); + }); + + test("should show help with --help flag", async () => { + const result = await runCLI(scriptPath, ["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node trigger.js"); + expect(result.stdout).toContain("Available files:"); + }); + + test("should show help with -h flag", async () => { + const result = await runCLI(scriptPath, ["-h"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node trigger.js"); + }); + + test("should show error when only one argument provided", async () => { + const result = await runCLI(scriptPath, ["template.json"]); + + expect(result.code).toBe(1); + expect(result.stdout).toContain( + "Both template data file and request data file are required" + ); + }); + }); + + describe("File Loading and Validation", () => { + test("should handle non-existent template file", async () => { + const result = await runCLI(scriptPath, [ + "non-existent.json", + "data/request-basic.json", + ]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain("Error loading JSON file"); + }); + + test("should handle non-existent request file", async () => { + const result = await runCLI(scriptPath, [ + "data/template-basic.json", + "non-existent.json", + ]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain("Error loading JSON file"); + }); + + test("should handle invalid JSON in template file", async () => { + // Create a temporary invalid JSON file + const tempFile = "temp-invalid.json"; + fs.writeFileSync(tempFile, "{ invalid json }"); + + try { + const result = await runCLI(scriptPath, [ + tempFile, + "data/request-basic.json", + ]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain("Error loading JSON file"); + } finally { + // Clean up temp file + if (fs.existsSync(tempFile)) { + fs.unlinkSync(tempFile); + } + } + }); + }); + + describe("Successful Operations", () => { + test("should run successfully with basic template and request", async () => { + // Check if the data files exist + const templateFile = "data/template-basic.json"; + const requestFile = "data/request-basic.json"; + + if (!fs.existsSync(templateFile) || !fs.existsSync(requestFile)) { + console.warn( + `Skipping test - data files not found: ${templateFile}, ${requestFile}` + ); + return; + } + + const result = await runCLI(scriptPath, [templateFile, requestFile]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Running TRIGGER operation:"); + expect(result.stdout).toContain("Template data:"); + expect(result.stdout).toContain("Request data:"); + expect(result.stdout).toContain("Business Logic Response:"); + expect(result.stdout).toContain( + "Trigger operation completed successfully!" + ); + }); + + test("should display business logic response details", async () => { + const templateFile = "data/template-basic.json"; + const requestFile = "data/request-basic.json"; + + if (!fs.existsSync(templateFile) || !fs.existsSync(requestFile)) { + console.warn(`Skipping test - data files not found`); + return; + } + + const result = await runCLI(scriptPath, [templateFile, requestFile]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Business Logic Response:"); + expect(result.stdout).toContain("penalty"); + expect(result.stdout).toContain("buyerMayTerminate"); + // Note: The response structure has penalty in result.penalty, not directly in response.penalty + // So the "Calculation Details" section may not appear with the current response structure + }); + + test("should work with low penalty template", async () => { + const templateFile = "data/template-low-penalty.json"; + const requestFile = "data/request-low-value.json"; + + if (!fs.existsSync(templateFile) || !fs.existsSync(requestFile)) { + console.warn(`Skipping test - data files not found`); + return; + } + + const result = await runCLI(scriptPath, [templateFile, requestFile]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "Trigger operation completed successfully!" + ); + }); + + test("should work with high penalty template", async () => { + const templateFile = "data/template-high-penalty.json"; + const requestFile = "data/request-high-value.json"; + + if (!fs.existsSync(templateFile) || !fs.existsSync(requestFile)) { + console.warn(`Skipping test - data files not found`); + return; + } + + const result = await runCLI(scriptPath, [templateFile, requestFile]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "Trigger operation completed successfully!" + ); + }); + }); + + describe("Output Formatting", () => { + test("should include proper sections in output", async () => { + const templateFile = "data/template-basic.json"; + const requestFile = "data/request-basic.json"; + + if (!fs.existsSync(templateFile) || !fs.existsSync(requestFile)) { + console.warn(`Skipping test - data files not found`); + return; + } + + const result = await runCLI(scriptPath, [templateFile, requestFile]); + + expect(result.code).toBe(0); + + // Check for section headers + expect(result.stdout).toContain("Input Data:"); + expect(result.stdout).toContain("=".repeat(50)); + expect(result.stdout).toContain("Template Data:"); + expect(result.stdout).toContain("Request Data:"); + expect(result.stdout).toContain("Business Logic Response:"); + }); + + test("should format JSON output properly", async () => { + const templateFile = "data/template-basic.json"; + const requestFile = "data/request-basic.json"; + + if (!fs.existsSync(templateFile) || !fs.existsSync(requestFile)) { + console.warn(`Skipping test - data files not found`); + return; + } + + const result = await runCLI(scriptPath, [templateFile, requestFile]); + + expect(result.code).toBe(0); + + // Should contain formatted JSON (with indentation) + expect(result.stdout).toMatch(/{\s+["\w$]/); // JSON with indentation + }); + }); + + describe("CLI Interface Consistency", () => { + test("should show consistent file examples in help", async () => { + const result = await runCLI(scriptPath, ["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("template-basic.json"); + expect(result.stdout).toContain("template-low-penalty.json"); + expect(result.stdout).toContain("template-high-penalty.json"); + expect(result.stdout).toContain("request-basic.json"); + expect(result.stdout).toContain("request-low-value.json"); + expect(result.stdout).toContain("request-high-value.json"); + }); + + test("should show proper command examples", async () => { + const result = await runCLI(scriptPath, ["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "node trigger.js data/template-basic.json data/request-basic.json" + ); + expect(result.stdout).toContain( + "node trigger.js data/template-low-penalty.json data/request-high-value.json" + ); + }); + }); + + describe("Error Scenarios", () => { + test("should handle template archive errors gracefully", async () => { + // Create a valid JSON file but with invalid template structure + const tempTemplate = "temp-template.json"; + const tempRequest = "temp-request.json"; + + fs.writeFileSync(tempTemplate, JSON.stringify({ invalid: "template" })); + fs.writeFileSync(tempRequest, JSON.stringify({ goodsValue: 100 })); + + try { + const result = await runCLI(scriptPath, [tempTemplate, tempRequest]); + + // The tool might still complete successfully but produce unexpected results + // or it might fail - both are acceptable behaviors for invalid template data + if (result.code !== 0) { + expect(result.stderr).toContain("Error"); + } else { + // If it succeeds, it should at least process the files + expect(result.stdout).toContain("Template data:"); + } + } finally { + // Clean up temp files + [tempTemplate, tempRequest].forEach((file) => { + if (fs.existsSync(file)) { + fs.unlinkSync(file); + } + }); + } + }); + }); + + describe("Data File Validation", () => { + test("should accept valid template data structure", async () => { + // Create a minimal valid template file + const tempTemplate = "temp-valid-template.json"; + const tempRequest = "temp-valid-request.json"; + + const validTemplate = { + $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + forceMajeure: true, + penaltyDuration: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 2, + unit: "days", + }, + penaltyPercentage: 10.5, + capPercentage: 55, + termination: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 15, + unit: "days", + }, + fractionalPart: "days", + clauseId: "test-id", + $identifier: "test-id", + }; + + const validRequest = { goodsValue: 100 }; + + fs.writeFileSync(tempTemplate, JSON.stringify(validTemplate, null, 2)); + fs.writeFileSync(tempRequest, JSON.stringify(validRequest, null, 2)); + + try { + const result = await runCLI(scriptPath, [tempTemplate, tempRequest]); + + // Should process without JSON parsing errors + expect(result.stdout).toContain("Template data:"); + expect(result.stdout).toContain("Request data:"); + + // May fail at template processing stage, but JSON should be parsed successfully + if (result.code !== 0) { + // If it fails, it should be at template processing, not JSON parsing + expect(result.stderr).not.toContain("JSON"); + } + } finally { + // Clean up temp files + [tempTemplate, tempRequest].forEach((file) => { + if (fs.existsSync(file)) { + fs.unlinkSync(file); + } + }); + } + }); + }); +}); diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/draft.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/draft.js.html new file mode 100644 index 0000000..e0d75df --- /dev/null +++ b/coverage/Users/martinhalford/Development/halfordit/demo-template/draft.js.html @@ -0,0 +1,319 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/draft.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template draft.js

+
+ +
+ 68.18% + Statements + 30/44 +
+ + +
+ 66.66% + Branches + 4/6 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 68.18% + Lines + 30/44 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +792x +2x +2x +2x +  +2x +  +  +2x +2x +2x +2x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +2x +  +  +  +  +  +2x +  +  +  +  +2x +2x +  +  +  +2x +2x +2x +  +2x +  +1x +1x +  +  +  +  +  +1x +1x +1x +1x +1x +  +1x +1x +  +  +  +2x + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+const fs = require("fs");
+const path = require("path");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+function loadJsonFile(filePath) {
+  try {
+    const fullPath = path.resolve(filePath);
+    const fileContent = fs.readFileSync(fullPath, "utf8");
+    return JSON.parse(fileContent);
+  } catch (error) {
+    console.error(`Error loading JSON file '${filePath}':`, error.message);
+    process.exit(1);
+  }
+}
+ 
+function showUsage() {
+  console.log("Usage: node draft.js <template-data-file>");
+  console.log("\nExample:");
+  console.log("  node draft.js data/template-basic.json");
+  console.log("  node draft.js data/template-low-penalty.json");
+  console.log("  node draft.js data/template-high-penalty.json");
+  console.log("\nAvailable template data files:");
+  console.log("  - data/template-basic.json      (default scenario)");
+  console.log(
+    "  - data/template-low-penalty.json (5% penalty, 30 day termination)"
+  );
+  console.log(
+    "  - data/template-high-penalty.json (15% penalty, 7 day termination)"
+  );
+}
+ 
+async function draft() {
+  const args = process.argv.slice(2);
+ 
+  Iif (args.length === 0) {
+    console.log("No template data file specified.\n");
+    showUsage();
+    process.exit(1);
+  }
+ 
+  Iif (args[0] === "--help" || args[0] === "-h") {
+    showUsage();
+    process.exit(0);
+  }
+ 
+  const templateDataFile = args[0];
+  console.log(
+    `Running DRAFT operation with template data: ${templateDataFile}\n`
+  );
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    const data = loadJsonFile(templateDataFile);
+ 
+    const options = { verbose: false };
+    const result = await templateArchiveProcessor.draft(
+      data,
+      "markdown",
+      options
+    );
+ 
+    console.log("\n\nContract Draft:");
+    console.log("____________________\n");
+    console.log(result);
+    console.log("____________________\n");
+    console.log("\nDraft operation completed successfully!\n");
+  } catch (error) {
+    console.error("Error in draft operation:", error.message);
+    process.exit(1);
+  }
+}
+ 
+draft();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/index.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/index.html new file mode 100644 index 0000000..6fd31c8 --- /dev/null +++ b/coverage/Users/martinhalford/Development/halfordit/demo-template/index.html @@ -0,0 +1,176 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template + + + + + + + + + +
+
+

All files Users/martinhalford/Development/halfordit/demo-template

+
+ +
+ 78.71% + Statements + 159/202 +
+ + +
+ 66.66% + Branches + 16/24 +
+ + +
+ 86.66% + Functions + 13/15 +
+ + +
+ 78.39% + Lines + 156/199 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
draft.js +
+
68.18%30/4466.66%4/666.66%2/368.18%30/44
index.js +
+
100%19/19100%0/0100%2/2100%19/19
list-data-files.js +
+
87.5%42/4850%2/4100%6/686.95%40/46
test-different-values.js +
+
92.59%25/27100%2/2100%1/192.3%24/26
trigger.js +
+
67.18%43/6466.66%8/1266.66%2/367.18%43/64
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/index.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/index.js.html new file mode 100644 index 0000000..9e35565 --- /dev/null +++ b/coverage/Users/martinhalford/Development/halfordit/demo-template/index.js.html @@ -0,0 +1,280 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/index.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template index.js

+
+ +
+ 100% + Statements + 19/19 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 19/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +662x +2x +  +2x +  +  +2x +2x +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +2x +2x +2x +  +  +  +2x +2x +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +2x +2x +2x +  +  +2x +2x + 
const { TemplateArchiveProcessor } = require('@accordproject/template-engine');
+const { Template } = require('@accordproject/cicero-core');
+ 
+const TEMPLATE_PATH = './archives/latedeliveryandpenalty-typescript';
+ 
+async function trigger() {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+    const data = {
+        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+        "forceMajeure": true,
+        "penaltyDuration": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 2,
+            "unit": "days"
+        },
+        "penaltyPercentage": 10.5,
+        "capPercentage": 55,
+        "termination": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 15,
+            "unit": "days"
+        },
+        "fractionalPart": "days",
+        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
+        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
+    };
+    const request = {
+        goodsValue: 100
+    };
+    const response = await templateArchiveProcessor.trigger(data, request);
+    console.log('\nTrigger response:');
+    console.log(JSON.stringify(response, null, 2));
+}
+ 
+async function draft() {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+    const data = {
+        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+        "forceMajeure": true,
+        "penaltyDuration": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 2,
+            "unit": "days"
+        },
+        "penaltyPercentage": 10.5,
+        "capPercentage": 55,
+        "termination": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 15,
+            "unit": "days"
+        },
+        "fractionalPart": "days",
+        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
+        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
+    };
+    const options = {verbose: false};
+    const result = await templateArchiveProcessor.draft(data, 'markdown', options);
+    console.log('\Contract draft:');
+    console.log(result);
+}
+ 
+draft();
+trigger();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html new file mode 100644 index 0000000..c2ac388 --- /dev/null +++ b/coverage/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html @@ -0,0 +1,319 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/list-data-files.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template list-data-files.js

+
+ +
+ 87.5% + Statements + 42/48 +
+ + +
+ 50% + Branches + 2/4 +
+ + +
+ 100% + Functions + 6/6 +
+ + +
+ 86.95% + Lines + 40/46 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +792x +2x +  +  +2x +  +2x +  +2x +  +  +  +  +2x +  +14x +  +2x +  +  +  +  +  +12x +12x +  +2x +2x +  +2x +6x +6x +6x +6x +6x +6x +  +  +6x +6x +  +  +6x +6x +  +  +  +  +  +2x +2x +  +2x +6x +6x +6x +6x +6x +6x +  +  +  +  +  +2x +2x +2x +2x +2x +2x +  +  +2x +  +  +  +  +2x + 
const fs = require("fs");
+const path = require("path");
+ 
+function listDataFiles() {
+  console.log("Available Data Files\n");
+ 
+  const dataDir = "./data";
+ 
+  Iif (!fs.existsSync(dataDir)) {
+    console.log("Data directory not found!");
+    return;
+  }
+ 
+  const files = fs
+    .readdirSync(dataDir)
+    .filter((file) => file.endsWith(".json"));
+ 
+  Iif (files.length === 0) {
+    console.log("No JSON files found in data directory!");
+    return;
+  }
+ 
+  // Separate template and request files
+  const templateFiles = files.filter((file) => file.startsWith("template-"));
+  const requestFiles = files.filter((file) => file.startsWith("request-"));
+ 
+  console.log("Template Data Files:");
+  console.log("─".repeat(50));
+ 
+  templateFiles.forEach((file) => {
+    try {
+      const filePath = path.join(dataDir, file);
+      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
+      console.log(`${file}`);
+      console.log(`   Penalty: ${data.penaltyPercentage}%`);
+      console.log(
+        `   Termination: ${data.termination.amount} ${data.termination.unit}`
+      );
+      console.log(`   Force Majeure: ${data.forceMajeure}`);
+      console.log(
+        `   Penalty Duration: ${data.penaltyDuration.amount} ${data.penaltyDuration.unit}`
+      );
+      console.log(`   Cap: ${data.capPercentage}%`);
+      console.log();
+    } catch (error) {
+      console.log(`Error reading ${file}: ${error.message}`);
+    }
+  });
+ 
+  console.log("Request Data Files:");
+  console.log("─".repeat(50));
+ 
+  requestFiles.forEach((file) => {
+    try {
+      const filePath = path.join(dataDir, file);
+      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
+      console.log(`${file}`);
+      console.log(`   Goods Value: $${data.goodsValue}`);
+      console.log();
+    } catch (error) {
+      console.log(`Error reading ${file}: ${error.message}`);
+    }
+  });
+ 
+  console.log("Example Commands:");
+  console.log("─".repeat(50));
+  console.log("npm run draft:low");
+  console.log("npm run trigger:high");
+  console.log("node draft.js data/template-basic.json");
+  console.log(
+    "node trigger.js data/template-high-penalty.json data/request-low-value.json"
+  );
+  console.log(
+    "\nFor more help: node draft.js --help or node trigger.js --help"
+  );
+}
+ 
+listDataFiles();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html new file mode 100644 index 0000000..d9000d4 --- /dev/null +++ b/coverage/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html @@ -0,0 +1,457 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/test-different-values.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template test-different-values.js

+
+ +
+ 92.59% + Statements + 25/27 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 92.3% + Lines + 24/26 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +1252x +2x +  +2x +  +  +2x +  +2x +2x +2x +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +6x +6x +6x +  +  +6x +6x +  +  +  +  +6x +  +6x +6x +  +  +  +6x +6x +6x +  +  +  +6x +4x +  +  +  +2x +  +  +  +  +  +  +  +2x + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+async function testWithDifferentValues() {
+  console.log("Testing with Different Values...\n");
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    // Test scenarios with different values
+    const testScenarios = [
+      {
+        name: "Low Value Goods",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: false,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 1,
+            unit: "days",
+          },
+          penaltyPercentage: 5.0,
+          capPercentage: 25,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 30,
+            unit: "days",
+          },
+          fractionalPart: "days",
+          clauseId: "test-1",
+          $identifier: "test-1",
+        },
+        requestData: { goodsValue: 50 },
+      },
+      {
+        name: "High Value Goods",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: true,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 3,
+            unit: "days",
+          },
+          penaltyPercentage: 15.0,
+          capPercentage: 50,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 7,
+            unit: "days",
+          },
+          fractionalPart: "hours",
+          clauseId: "test-2",
+          $identifier: "test-2",
+        },
+        requestData: { goodsValue: 1000 },
+      },
+      {
+        name: "Zero Value Test",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: false,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 2,
+            unit: "weeks",
+          },
+          penaltyPercentage: 20.0,
+          capPercentage: 75,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 1,
+            unit: "months",
+          },
+          fractionalPart: "days",
+          clauseId: "test-3",
+          $identifier: "test-3",
+        },
+        requestData: { goodsValue: 0 },
+      },
+    ];
+ 
+    for (let i = 0; i < testScenarios.length; i++) {
+      const scenario = testScenarios[i];
+      console.log(`\nTest ${i + 1}: ${scenario.name}`);
+      console.log("─".repeat(40));
+ 
+      // Test both draft and trigger for each scenario
+      console.log("Draft Output:");
+      const draftResult = await templateArchiveProcessor.draft(
+        scenario.templateData,
+        "markdown",
+        { verbose: false }
+      );
+      console.log(draftResult.substring(0, 200) + "...\n");
+ 
+      console.log("Trigger Response:");
+      const triggerResponse = await templateArchiveProcessor.trigger(
+        scenario.templateData,
+        scenario.requestData
+      );
+      console.log(`Penalty: $${triggerResponse.penalty}`);
+      console.log(`Buyer May Terminate: ${triggerResponse.buyerMayTerminate}`);
+      console.log(
+        `Penalty Rate: ${scenario.templateData.penaltyPercentage}% | Goods Value: $${scenario.requestData.goodsValue}`
+      );
+ 
+      if (i < testScenarios.length - 1) {
+        console.log("\n" + "=".repeat(60));
+      }
+    }
+ 
+    console.log("\nAll test scenarios completed successfully!");
+  } catch (error) {
+    console.error("Error in test scenarios:", error.message);
+    process.exit(1);
+  }
+}
+ 
+// Run the test scenarios
+testWithDifferentValues();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html new file mode 100644 index 0000000..e4e5c53 --- /dev/null +++ b/coverage/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html @@ -0,0 +1,427 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/trigger.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template trigger.js

+
+ +
+ 67.18% + Statements + 43/64 +
+ + +
+ 66.66% + Branches + 8/12 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 67.18% + Lines + 43/64 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +1152x +2x +2x +2x +  +2x +  +  +3x +3x +3x +3x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +2x +  +  +  +  +  +2x +  +  +  +  +2x +  +  +  +  +  +  +  +2x +2x +  +2x +2x +2x +  +2x +2x +2x +  +  +2x +  +  +1x +  +1x +1x +1x +1x +  +1x +  +1x +1x +1x +  +  +1x +1x +1x +1x +1x +1x +  +  +1x +  +1x +1x +  +  +  +  +2x + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+const fs = require("fs");
+const path = require("path");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+function loadJsonFile(filePath) {
+  try {
+    const fullPath = path.resolve(filePath);
+    const fileContent = fs.readFileSync(fullPath, "utf8");
+    return JSON.parse(fileContent);
+  } catch (error) {
+    console.error(`Error loading JSON file '${filePath}':`, error.message);
+    process.exit(1);
+  }
+}
+ 
+function showUsage() {
+  console.log(
+    "Usage: node trigger.js <template-data-file> <request-data-file>"
+  );
+  console.log("\nExample:");
+  console.log(
+    "  node trigger.js data/template-basic.json data/request-basic.json"
+  );
+  console.log(
+    "  node trigger.js data/template-low-penalty.json data/request-high-value.json"
+  );
+  console.log("\nAvailable files:");
+  console.log("  Template data files:");
+  console.log(
+    "    - data/template-basic.json      (10.5% penalty, 15 day termination)"
+  );
+  console.log(
+    "    - data/template-low-penalty.json (5% penalty, 30 day termination)"
+  );
+  console.log(
+    "    - data/template-high-penalty.json (15% penalty, 7 day termination)"
+  );
+  console.log("  Request data files:");
+  console.log("    - data/request-basic.json       ($100 goods value)");
+  console.log("    - data/request-low-value.json   ($50 goods value)");
+  console.log("    - data/request-high-value.json  ($1000 goods value)");
+}
+ 
+async function trigger() {
+  const args = process.argv.slice(2);
+ 
+  Iif (args.length === 0) {
+    console.log("No data files specified.\n");
+    showUsage();
+    process.exit(1);
+  }
+ 
+  Iif (args[0] === "--help" || args[0] === "-h") {
+    showUsage();
+    process.exit(0);
+  }
+ 
+  Iif (args.length < 2) {
+    console.log(
+      "Both template data file and request data file are required.\n"
+    );
+    showUsage();
+    process.exit(1);
+  }
+ 
+  const templateDataFile = args[0];
+  const requestDataFile = args[1];
+ 
+  console.log(`Running TRIGGER operation:`);
+  console.log(`   Template data: ${templateDataFile}`);
+  console.log(`   Request data:  ${requestDataFile}\n`);
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    // Load template data (the contract parameters)
+    const data = loadJsonFile(templateDataFile);
+ 
+    // Load request data (the input for the business logic)
+    const request = loadJsonFile(requestDataFile);
+ 
+    console.log("\nInput Data:");
+    console.log("=".repeat(50));
+    console.log("Template Data:", JSON.stringify(data, null, 2));
+    console.log("\nRequest Data:", JSON.stringify(request, null, 2));
+ 
+    const response = await templateArchiveProcessor.trigger(data, request);
+ 
+    console.log("\nBusiness Logic Response:");
+    console.log("=".repeat(50));
+    console.log(JSON.stringify(response, null, 2));
+ 
+    // Show calculation details
+    Eif (response && response.penalty !== undefined) {
+      console.log("\nCalculation Details:");
+      console.log(`Penalty Rate: ${data.penaltyPercentage}%`);
+      console.log(`Goods Value: $${request.goodsValue}`);
+      console.log(`Calculated Penalty: $${response.penalty}`);
+      console.log(`Buyer May Terminate: ${response.buyerMayTerminate}`);
+    }
+ 
+    console.log("\nTrigger operation completed successfully!\n");
+  } catch (error) {
+    console.error("Error in trigger operation:", error.message);
+    process.exit(1);
+  }
+}
+ 
+// Run the trigger operation
+trigger();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/base.css b/coverage/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/coverage/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/block-navigation.js b/coverage/block-navigation.js new file mode 100644 index 0000000..cc12130 --- /dev/null +++ b/coverage/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/draft.js.html b/coverage/draft.js.html new file mode 100644 index 0000000..23247ec --- /dev/null +++ b/coverage/draft.js.html @@ -0,0 +1,319 @@ + + + + + + Code coverage report for draft.js + + + + + + + + + +
+
+

All files draft.js

+
+ +
+ 0% + Statements + 0/44 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/44 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+const fs = require("fs");
+const path = require("path");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+function loadJsonFile(filePath) {
+  try {
+    const fullPath = path.resolve(filePath);
+    const fileContent = fs.readFileSync(fullPath, "utf8");
+    return JSON.parse(fileContent);
+  } catch (error) {
+    console.error(`Error loading JSON file '${filePath}':`, error.message);
+    process.exit(1);
+  }
+}
+ 
+function showUsage() {
+  console.log("Usage: node draft.js <template-data-file>");
+  console.log("\nExample:");
+  console.log("  node draft.js data/template-basic.json");
+  console.log("  node draft.js data/template-low-penalty.json");
+  console.log("  node draft.js data/template-high-penalty.json");
+  console.log("\nAvailable template data files:");
+  console.log("  - data/template-basic.json      (default scenario)");
+  console.log(
+    "  - data/template-low-penalty.json (5% penalty, 30 day termination)"
+  );
+  console.log(
+    "  - data/template-high-penalty.json (15% penalty, 7 day termination)"
+  );
+}
+ 
+async function draft() {
+  const args = process.argv.slice(2);
+ 
+  if (args.length === 0) {
+    console.log("No template data file specified.\n");
+    showUsage();
+    process.exit(1);
+  }
+ 
+  if (args[0] === "--help" || args[0] === "-h") {
+    showUsage();
+    process.exit(0);
+  }
+ 
+  const templateDataFile = args[0];
+  console.log(
+    `Running DRAFT operation with template data: ${templateDataFile}\n`
+  );
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    const data = loadJsonFile(templateDataFile);
+ 
+    const options = { verbose: false };
+    const result = await templateArchiveProcessor.draft(
+      data,
+      "markdown",
+      options
+    );
+ 
+    console.log("\n\nContract Draft:");
+    console.log("____________________\n");
+    console.log(result);
+    console.log("____________________\n");
+    console.log("\nDraft operation completed successfully!\n");
+  } catch (error) {
+    console.error("Error in draft operation:", error.message);
+    process.exit(1);
+  }
+}
+ 
+draft();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/favicon.png b/coverage/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c1525b811a167671e9de1fa78aab9f5c0b61cef7 GIT binary patch literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src DocxTransformer.js

+
+ +
+ 37.5% + Statements + 3/8 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 37.5% + Lines + 3/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html new file mode 100644 index 0000000..3db8fec --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src + + + + + + + + + +
+
+

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src

+
+ +
+ 37.5% + Statements + 3/8 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 37.5% + Lines + 3/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
DocxTransformer.js +
+
37.5%3/80%0/20%0/237.5%3/8
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html new file mode 100644 index 0000000..fc0fb6a --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src HtmlTransformer.js

+
+ +
+ 23.52% + Statements + 4/17 +
+ + +
+ 0% + Branches + 0/3 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 23.52% + Lines + 4/17 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html new file mode 100644 index 0000000..8f00f2f --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src ToCiceroMarkVisitor.js

+
+ +
+ 10.9% + Statements + 6/55 +
+ + +
+ 3.92% + Branches + 2/51 +
+ + +
+ 0% + Functions + 0/7 +
+ + +
+ 11.11% + Lines + 6/54 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html new file mode 100644 index 0000000..c8e35fd --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src ToHtmlStringVisitor.js

+
+ +
+ 0.86% + Statements + 1/116 +
+ + +
+ 0% + Branches + 0/74 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0.86% + Lines + 1/116 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html new file mode 100644 index 0000000..2cd99d7 --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src helpers.js

+
+ +
+ 33.33% + Statements + 1/3 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 33.33% + Lines + 1/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html new file mode 100644 index 0000000..ca7c72d --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html @@ -0,0 +1,176 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src + + + + + + + + + +
+
+

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src

+
+ +
+ 10.91% + Statements + 37/339 +
+ + +
+ 0.63% + Branches + 2/317 +
+ + +
+ 0% + Functions + 0/42 +
+ + +
+ 11.04% + Lines + 37/335 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
HtmlTransformer.js +
+
23.52%4/170%0/30%0/323.52%4/17
ToCiceroMarkVisitor.js +
+
10.9%6/553.92%2/510%0/711.11%6/54
ToHtmlStringVisitor.js +
+
0.86%1/1160%0/740%0/50.86%1/116
helpers.js +
+
33.33%1/30%0/40%0/233.33%1/3
rules.js +
+
16.89%25/1480%0/1850%0/2517.24%25/145
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html new file mode 100644 index 0000000..926b4ca --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src rules.js

+
+ +
+ 16.89% + Statements + 25/148 +
+ + +
+ 0% + Branches + 0/185 +
+ + +
+ 0% + Functions + 0/25 +
+ + +
+ 17.24% + Lines + 25/145 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html new file mode 100644 index 0000000..55fefc7 --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src CiceroMarkToPdfMakeVisitor.js

+
+ +
+ 60% + Statements + 3/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 60% + Lines + 3/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html new file mode 100644 index 0000000..93c4ac3 --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src PdfTransformer.js

+
+ +
+ 60% + Statements + 3/5 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 60% + Lines + 3/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html new file mode 100644 index 0000000..71c601b --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src PdfTransformerBase.js

+
+ +
+ 16.12% + Statements + 5/31 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/11 +
+ + +
+ 16.12% + Lines + 5/31 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html new file mode 100644 index 0000000..c3b7f70 --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src TemplateMarkToPdfMakeVisitor.js

+
+ +
+ 60% + Statements + 3/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 60% + Lines + 3/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html new file mode 100644 index 0000000..51f395b --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToCiceroMark.js

+
+ +
+ 8.16% + Statements + 4/49 +
+ + +
+ 0% + Branches + 0/28 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 8.33% + Lines + 4/48 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html new file mode 100644 index 0000000..4238e3b --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToPdfMake.js

+
+ +
+ 13.63% + Statements + 6/44 +
+ + +
+ 0% + Branches + 0/21 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 13.63% + Lines + 6/44 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html new file mode 100644 index 0000000..072445d --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToPdfMakeVisitor.js

+
+ +
+ 12% + Statements + 3/25 +
+ + +
+ 0% + Branches + 0/9 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 12% + Lines + 3/25 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html new file mode 100644 index 0000000..00381f1 --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ciceromarkrules.js

+
+ +
+ 47.61% + Statements + 10/21 +
+ + +
+ 0% + Branches + 0/16 +
+ + +
+ 0% + Functions + 0/7 +
+ + +
+ 47.61% + Lines + 10/21 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html new file mode 100644 index 0000000..cc5e82e --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src commonmarkrules.js

+
+ +
+ 42.85% + Statements + 30/70 +
+ + +
+ 0% + Branches + 0/12 +
+ + +
+ 0% + Functions + 0/29 +
+ + +
+ 42.85% + Lines + 30/70 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html new file mode 100644 index 0000000..e4e303f --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src domstubs.js

+
+ +
+ 9.23% + Statements + 12/130 +
+ + +
+ 0% + Branches + 0/59 +
+ + +
+ 7.69% + Functions + 2/26 +
+ + +
+ 9.23% + Lines + 12/130 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html new file mode 100644 index 0000000..61002a4 --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html @@ -0,0 +1,281 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src + + + + + + + + + +
+
+

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src

+
+ +
+ 21.4% + Statements + 107/500 +
+ + +
+ 0% + Branches + 0/196 +
+ + +
+ 1.7% + Functions + 2/117 +
+ + +
+ 21.48% + Lines + 107/498 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
CiceroMarkToPdfMakeVisitor.js +
+
60%3/5100%0/00%0/160%3/5
PdfTransformer.js +
+
60%3/50%0/20%0/260%3/5
PdfTransformerBase.js +
+
16.12%5/310%0/60%0/1116.12%5/31
TemplateMarkToPdfMakeVisitor.js +
+
60%3/5100%0/00%0/160%3/5
ToCiceroMark.js +
+
8.16%4/490%0/280%0/48.33%4/48
ToPdfMake.js +
+
13.63%6/440%0/210%0/513.63%6/44
ToPdfMakeVisitor.js +
+
12%3/250%0/90%0/512%3/25
ciceromarkrules.js +
+
47.61%10/210%0/160%0/747.61%10/21
commonmarkrules.js +
+
42.85%30/700%0/120%0/2942.85%30/70
domstubs.js +
+
9.23%12/1300%0/597.69%2/269.23%12/130
pdfmakeutil.js +
+
14.28%7/490%0/310%0/1114.28%7/49
templatemarkrules.js +
+
31.81%21/660%0/120%0/1532.3%21/65
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html new file mode 100644 index 0000000..627ba31 --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src pdfmakeutil.js

+
+ +
+ 14.28% + Statements + 7/49 +
+ + +
+ 0% + Branches + 0/31 +
+ + +
+ 0% + Functions + 0/11 +
+ + +
+ 14.28% + Lines + 7/49 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html new file mode 100644 index 0000000..f643cfb --- /dev/null +++ b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src templatemarkrules.js

+
+ +
+ 31.81% + Statements + 21/66 +
+ + +
+ 0% + Branches + 0/12 +
+ + +
+ 0% + Functions + 0/15 +
+ + +
+ 32.3% + Lines + 21/65 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/index.html b/coverage/index.html new file mode 100644 index 0000000..d3f98dd --- /dev/null +++ b/coverage/index.html @@ -0,0 +1,176 @@ + + + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 0% + Statements + 0/202 +
+ + +
+ 0% + Branches + 0/24 +
+ + +
+ 0% + Functions + 0/15 +
+ + +
+ 0% + Lines + 0/199 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
draft.js +
+
0%0/440%0/60%0/30%0/44
index.js +
+
0%0/19100%0/00%0/20%0/19
list-data-files.js +
+
0%0/480%0/40%0/60%0/46
test-different-values.js +
+
0%0/270%0/20%0/10%0/26
trigger.js +
+
0%0/640%0/120%0/30%0/64
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/index.js.html b/coverage/index.js.html new file mode 100644 index 0000000..0634a9e --- /dev/null +++ b/coverage/index.js.html @@ -0,0 +1,280 @@ + + + + + + Code coverage report for index.js + + + + + + + + + +
+
+

All files index.js

+
+ +
+ 0% + Statements + 0/19 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const { TemplateArchiveProcessor } = require('@accordproject/template-engine');
+const { Template } = require('@accordproject/cicero-core');
+ 
+const TEMPLATE_PATH = './archives/latedeliveryandpenalty-typescript';
+ 
+async function trigger() {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+    const data = {
+        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+        "forceMajeure": true,
+        "penaltyDuration": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 2,
+            "unit": "days"
+        },
+        "penaltyPercentage": 10.5,
+        "capPercentage": 55,
+        "termination": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 15,
+            "unit": "days"
+        },
+        "fractionalPart": "days",
+        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
+        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
+    };
+    const request = {
+        goodsValue: 100
+    };
+    const response = await templateArchiveProcessor.trigger(data, request);
+    console.log('\nTrigger response:');
+    console.log(JSON.stringify(response, null, 2));
+}
+ 
+async function draft() {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+    const data = {
+        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+        "forceMajeure": true,
+        "penaltyDuration": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 2,
+            "unit": "days"
+        },
+        "penaltyPercentage": 10.5,
+        "capPercentage": 55,
+        "termination": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 15,
+            "unit": "days"
+        },
+        "fractionalPart": "days",
+        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
+        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
+    };
+    const options = {verbose: false};
+    const result = await templateArchiveProcessor.draft(data, 'markdown', options);
+    console.log('\Contract draft:');
+    console.log(result);
+}
+ 
+draft();
+trigger();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/draft.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/draft.js.html new file mode 100644 index 0000000..aaba076 --- /dev/null +++ b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/draft.js.html @@ -0,0 +1,319 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/draft.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template draft.js

+
+ +
+ 68.18% + Statements + 30/44 +
+ + +
+ 66.66% + Branches + 4/6 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 68.18% + Lines + 30/44 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +792x +2x +2x +2x +  +2x +  +  +2x +2x +2x +2x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +2x +  +  +  +  +  +2x +  +  +  +  +2x +2x +  +  +  +2x +2x +2x +  +2x +  +1x +1x +  +  +  +  +  +1x +1x +1x +1x +1x +  +1x +1x +  +  +  +2x + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+const fs = require("fs");
+const path = require("path");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+function loadJsonFile(filePath) {
+  try {
+    const fullPath = path.resolve(filePath);
+    const fileContent = fs.readFileSync(fullPath, "utf8");
+    return JSON.parse(fileContent);
+  } catch (error) {
+    console.error(`Error loading JSON file '${filePath}':`, error.message);
+    process.exit(1);
+  }
+}
+ 
+function showUsage() {
+  console.log("Usage: node draft.js <template-data-file>");
+  console.log("\nExample:");
+  console.log("  node draft.js data/template-basic.json");
+  console.log("  node draft.js data/template-low-penalty.json");
+  console.log("  node draft.js data/template-high-penalty.json");
+  console.log("\nAvailable template data files:");
+  console.log("  - data/template-basic.json      (default scenario)");
+  console.log(
+    "  - data/template-low-penalty.json (5% penalty, 30 day termination)"
+  );
+  console.log(
+    "  - data/template-high-penalty.json (15% penalty, 7 day termination)"
+  );
+}
+ 
+async function draft() {
+  const args = process.argv.slice(2);
+ 
+  Iif (args.length === 0) {
+    console.log("No template data file specified.\n");
+    showUsage();
+    process.exit(1);
+  }
+ 
+  Iif (args[0] === "--help" || args[0] === "-h") {
+    showUsage();
+    process.exit(0);
+  }
+ 
+  const templateDataFile = args[0];
+  console.log(
+    `Running DRAFT operation with template data: ${templateDataFile}\n`
+  );
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    const data = loadJsonFile(templateDataFile);
+ 
+    const options = { verbose: false };
+    const result = await templateArchiveProcessor.draft(
+      data,
+      "markdown",
+      options
+    );
+ 
+    console.log("\n\nContract Draft:");
+    console.log("____________________\n");
+    console.log(result);
+    console.log("____________________\n");
+    console.log("\nDraft operation completed successfully!\n");
+  } catch (error) {
+    console.error("Error in draft operation:", error.message);
+    process.exit(1);
+  }
+}
+ 
+draft();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.html new file mode 100644 index 0000000..dbb4783 --- /dev/null +++ b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.html @@ -0,0 +1,176 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template + + + + + + + + + +
+
+

All files Users/martinhalford/Development/halfordit/demo-template

+
+ +
+ 78.71% + Statements + 159/202 +
+ + +
+ 66.66% + Branches + 16/24 +
+ + +
+ 86.66% + Functions + 13/15 +
+ + +
+ 78.39% + Lines + 156/199 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
draft.js +
+
68.18%30/4466.66%4/666.66%2/368.18%30/44
index.js +
+
100%19/19100%0/0100%2/2100%19/19
list-data-files.js +
+
87.5%42/4850%2/4100%6/686.95%40/46
test-different-values.js +
+
92.59%25/27100%2/2100%1/192.3%24/26
trigger.js +
+
67.18%43/6466.66%8/1266.66%2/367.18%43/64
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.js.html new file mode 100644 index 0000000..158e8c8 --- /dev/null +++ b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.js.html @@ -0,0 +1,280 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/index.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template index.js

+
+ +
+ 100% + Statements + 19/19 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 19/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +662x +2x +  +2x +  +  +2x +2x +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +2x +2x +2x +  +  +  +2x +2x +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +2x +2x +2x +  +  +2x +2x + 
const { TemplateArchiveProcessor } = require('@accordproject/template-engine');
+const { Template } = require('@accordproject/cicero-core');
+ 
+const TEMPLATE_PATH = './archives/latedeliveryandpenalty-typescript';
+ 
+async function trigger() {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+    const data = {
+        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+        "forceMajeure": true,
+        "penaltyDuration": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 2,
+            "unit": "days"
+        },
+        "penaltyPercentage": 10.5,
+        "capPercentage": 55,
+        "termination": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 15,
+            "unit": "days"
+        },
+        "fractionalPart": "days",
+        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
+        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
+    };
+    const request = {
+        goodsValue: 100
+    };
+    const response = await templateArchiveProcessor.trigger(data, request);
+    console.log('\nTrigger response:');
+    console.log(JSON.stringify(response, null, 2));
+}
+ 
+async function draft() {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+    const data = {
+        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+        "forceMajeure": true,
+        "penaltyDuration": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 2,
+            "unit": "days"
+        },
+        "penaltyPercentage": 10.5,
+        "capPercentage": 55,
+        "termination": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 15,
+            "unit": "days"
+        },
+        "fractionalPart": "days",
+        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
+        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
+    };
+    const options = {verbose: false};
+    const result = await templateArchiveProcessor.draft(data, 'markdown', options);
+    console.log('\Contract draft:');
+    console.log(result);
+}
+ 
+draft();
+trigger();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html new file mode 100644 index 0000000..bacb418 --- /dev/null +++ b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html @@ -0,0 +1,319 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/list-data-files.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template list-data-files.js

+
+ +
+ 87.5% + Statements + 42/48 +
+ + +
+ 50% + Branches + 2/4 +
+ + +
+ 100% + Functions + 6/6 +
+ + +
+ 86.95% + Lines + 40/46 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +792x +2x +  +  +2x +  +2x +  +2x +  +  +  +  +2x +  +14x +  +2x +  +  +  +  +  +12x +12x +  +2x +2x +  +2x +6x +6x +6x +6x +6x +6x +  +  +6x +6x +  +  +6x +6x +  +  +  +  +  +2x +2x +  +2x +6x +6x +6x +6x +6x +6x +  +  +  +  +  +2x +2x +2x +2x +2x +2x +  +  +2x +  +  +  +  +2x + 
const fs = require("fs");
+const path = require("path");
+ 
+function listDataFiles() {
+  console.log("Available Data Files\n");
+ 
+  const dataDir = "./data";
+ 
+  Iif (!fs.existsSync(dataDir)) {
+    console.log("Data directory not found!");
+    return;
+  }
+ 
+  const files = fs
+    .readdirSync(dataDir)
+    .filter((file) => file.endsWith(".json"));
+ 
+  Iif (files.length === 0) {
+    console.log("No JSON files found in data directory!");
+    return;
+  }
+ 
+  // Separate template and request files
+  const templateFiles = files.filter((file) => file.startsWith("template-"));
+  const requestFiles = files.filter((file) => file.startsWith("request-"));
+ 
+  console.log("Template Data Files:");
+  console.log("─".repeat(50));
+ 
+  templateFiles.forEach((file) => {
+    try {
+      const filePath = path.join(dataDir, file);
+      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
+      console.log(`${file}`);
+      console.log(`   Penalty: ${data.penaltyPercentage}%`);
+      console.log(
+        `   Termination: ${data.termination.amount} ${data.termination.unit}`
+      );
+      console.log(`   Force Majeure: ${data.forceMajeure}`);
+      console.log(
+        `   Penalty Duration: ${data.penaltyDuration.amount} ${data.penaltyDuration.unit}`
+      );
+      console.log(`   Cap: ${data.capPercentage}%`);
+      console.log();
+    } catch (error) {
+      console.log(`Error reading ${file}: ${error.message}`);
+    }
+  });
+ 
+  console.log("Request Data Files:");
+  console.log("─".repeat(50));
+ 
+  requestFiles.forEach((file) => {
+    try {
+      const filePath = path.join(dataDir, file);
+      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
+      console.log(`${file}`);
+      console.log(`   Goods Value: $${data.goodsValue}`);
+      console.log();
+    } catch (error) {
+      console.log(`Error reading ${file}: ${error.message}`);
+    }
+  });
+ 
+  console.log("Example Commands:");
+  console.log("─".repeat(50));
+  console.log("npm run draft:low");
+  console.log("npm run trigger:high");
+  console.log("node draft.js data/template-basic.json");
+  console.log(
+    "node trigger.js data/template-high-penalty.json data/request-low-value.json"
+  );
+  console.log(
+    "\nFor more help: node draft.js --help or node trigger.js --help"
+  );
+}
+ 
+listDataFiles();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html new file mode 100644 index 0000000..2c1eae3 --- /dev/null +++ b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html @@ -0,0 +1,457 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/test-different-values.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template test-different-values.js

+
+ +
+ 92.59% + Statements + 25/27 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 92.3% + Lines + 24/26 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +1252x +2x +  +2x +  +  +2x +  +2x +2x +2x +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +6x +6x +6x +  +  +6x +6x +  +  +  +  +6x +  +6x +6x +  +  +  +6x +6x +6x +  +  +  +6x +4x +  +  +  +2x +  +  +  +  +  +  +  +2x + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+async function testWithDifferentValues() {
+  console.log("Testing with Different Values...\n");
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    // Test scenarios with different values
+    const testScenarios = [
+      {
+        name: "Low Value Goods",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: false,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 1,
+            unit: "days",
+          },
+          penaltyPercentage: 5.0,
+          capPercentage: 25,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 30,
+            unit: "days",
+          },
+          fractionalPart: "days",
+          clauseId: "test-1",
+          $identifier: "test-1",
+        },
+        requestData: { goodsValue: 50 },
+      },
+      {
+        name: "High Value Goods",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: true,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 3,
+            unit: "days",
+          },
+          penaltyPercentage: 15.0,
+          capPercentage: 50,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 7,
+            unit: "days",
+          },
+          fractionalPart: "hours",
+          clauseId: "test-2",
+          $identifier: "test-2",
+        },
+        requestData: { goodsValue: 1000 },
+      },
+      {
+        name: "Zero Value Test",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: false,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 2,
+            unit: "weeks",
+          },
+          penaltyPercentage: 20.0,
+          capPercentage: 75,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 1,
+            unit: "months",
+          },
+          fractionalPart: "days",
+          clauseId: "test-3",
+          $identifier: "test-3",
+        },
+        requestData: { goodsValue: 0 },
+      },
+    ];
+ 
+    for (let i = 0; i < testScenarios.length; i++) {
+      const scenario = testScenarios[i];
+      console.log(`\nTest ${i + 1}: ${scenario.name}`);
+      console.log("─".repeat(40));
+ 
+      // Test both draft and trigger for each scenario
+      console.log("Draft Output:");
+      const draftResult = await templateArchiveProcessor.draft(
+        scenario.templateData,
+        "markdown",
+        { verbose: false }
+      );
+      console.log(draftResult.substring(0, 200) + "...\n");
+ 
+      console.log("Trigger Response:");
+      const triggerResponse = await templateArchiveProcessor.trigger(
+        scenario.templateData,
+        scenario.requestData
+      );
+      console.log(`Penalty: $${triggerResponse.penalty}`);
+      console.log(`Buyer May Terminate: ${triggerResponse.buyerMayTerminate}`);
+      console.log(
+        `Penalty Rate: ${scenario.templateData.penaltyPercentage}% | Goods Value: $${scenario.requestData.goodsValue}`
+      );
+ 
+      if (i < testScenarios.length - 1) {
+        console.log("\n" + "=".repeat(60));
+      }
+    }
+ 
+    console.log("\nAll test scenarios completed successfully!");
+  } catch (error) {
+    console.error("Error in test scenarios:", error.message);
+    process.exit(1);
+  }
+}
+ 
+// Run the test scenarios
+testWithDifferentValues();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html new file mode 100644 index 0000000..54e8e45 --- /dev/null +++ b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html @@ -0,0 +1,427 @@ + + + + + + Code coverage report for Users/martinhalford/Development/halfordit/demo-template/trigger.js + + + + + + + + + +
+
+

All files / Users/martinhalford/Development/halfordit/demo-template trigger.js

+
+ +
+ 67.18% + Statements + 43/64 +
+ + +
+ 66.66% + Branches + 8/12 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 67.18% + Lines + 43/64 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +1152x +2x +2x +2x +  +2x +  +  +3x +3x +3x +3x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +2x +  +  +  +  +  +2x +  +  +  +  +2x +  +  +  +  +  +  +  +2x +2x +  +2x +2x +2x +  +2x +2x +2x +  +  +2x +  +  +1x +  +1x +1x +1x +1x +  +1x +  +1x +1x +1x +  +  +1x +1x +1x +1x +1x +1x +  +  +1x +  +1x +1x +  +  +  +  +2x + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+const fs = require("fs");
+const path = require("path");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+function loadJsonFile(filePath) {
+  try {
+    const fullPath = path.resolve(filePath);
+    const fileContent = fs.readFileSync(fullPath, "utf8");
+    return JSON.parse(fileContent);
+  } catch (error) {
+    console.error(`Error loading JSON file '${filePath}':`, error.message);
+    process.exit(1);
+  }
+}
+ 
+function showUsage() {
+  console.log(
+    "Usage: node trigger.js <template-data-file> <request-data-file>"
+  );
+  console.log("\nExample:");
+  console.log(
+    "  node trigger.js data/template-basic.json data/request-basic.json"
+  );
+  console.log(
+    "  node trigger.js data/template-low-penalty.json data/request-high-value.json"
+  );
+  console.log("\nAvailable files:");
+  console.log("  Template data files:");
+  console.log(
+    "    - data/template-basic.json      (10.5% penalty, 15 day termination)"
+  );
+  console.log(
+    "    - data/template-low-penalty.json (5% penalty, 30 day termination)"
+  );
+  console.log(
+    "    - data/template-high-penalty.json (15% penalty, 7 day termination)"
+  );
+  console.log("  Request data files:");
+  console.log("    - data/request-basic.json       ($100 goods value)");
+  console.log("    - data/request-low-value.json   ($50 goods value)");
+  console.log("    - data/request-high-value.json  ($1000 goods value)");
+}
+ 
+async function trigger() {
+  const args = process.argv.slice(2);
+ 
+  Iif (args.length === 0) {
+    console.log("No data files specified.\n");
+    showUsage();
+    process.exit(1);
+  }
+ 
+  Iif (args[0] === "--help" || args[0] === "-h") {
+    showUsage();
+    process.exit(0);
+  }
+ 
+  Iif (args.length < 2) {
+    console.log(
+      "Both template data file and request data file are required.\n"
+    );
+    showUsage();
+    process.exit(1);
+  }
+ 
+  const templateDataFile = args[0];
+  const requestDataFile = args[1];
+ 
+  console.log(`Running TRIGGER operation:`);
+  console.log(`   Template data: ${templateDataFile}`);
+  console.log(`   Request data:  ${requestDataFile}\n`);
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    // Load template data (the contract parameters)
+    const data = loadJsonFile(templateDataFile);
+ 
+    // Load request data (the input for the business logic)
+    const request = loadJsonFile(requestDataFile);
+ 
+    console.log("\nInput Data:");
+    console.log("=".repeat(50));
+    console.log("Template Data:", JSON.stringify(data, null, 2));
+    console.log("\nRequest Data:", JSON.stringify(request, null, 2));
+ 
+    const response = await templateArchiveProcessor.trigger(data, request);
+ 
+    console.log("\nBusiness Logic Response:");
+    console.log("=".repeat(50));
+    console.log(JSON.stringify(response, null, 2));
+ 
+    // Show calculation details
+    Eif (response && response.penalty !== undefined) {
+      console.log("\nCalculation Details:");
+      console.log(`Penalty Rate: ${data.penaltyPercentage}%`);
+      console.log(`Goods Value: $${request.goodsValue}`);
+      console.log(`Calculated Penalty: $${response.penalty}`);
+      console.log(`Buyer May Terminate: ${response.buyerMayTerminate}`);
+    }
+ 
+    console.log("\nTrigger operation completed successfully!\n");
+  } catch (error) {
+    console.error("Error in trigger operation:", error.message);
+    process.exit(1);
+  }
+}
+ 
+// Run the trigger operation
+trigger();
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000..cc12130 --- /dev/null +++ b/coverage/lcov-report/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/draft.js.html b/coverage/lcov-report/draft.js.html new file mode 100644 index 0000000..c210b56 --- /dev/null +++ b/coverage/lcov-report/draft.js.html @@ -0,0 +1,319 @@ + + + + + + Code coverage report for draft.js + + + + + + + + + +
+
+

All files draft.js

+
+ +
+ 0% + Statements + 0/44 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/44 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+const fs = require("fs");
+const path = require("path");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+function loadJsonFile(filePath) {
+  try {
+    const fullPath = path.resolve(filePath);
+    const fileContent = fs.readFileSync(fullPath, "utf8");
+    return JSON.parse(fileContent);
+  } catch (error) {
+    console.error(`Error loading JSON file '${filePath}':`, error.message);
+    process.exit(1);
+  }
+}
+ 
+function showUsage() {
+  console.log("Usage: node draft.js <template-data-file>");
+  console.log("\nExample:");
+  console.log("  node draft.js data/template-basic.json");
+  console.log("  node draft.js data/template-low-penalty.json");
+  console.log("  node draft.js data/template-high-penalty.json");
+  console.log("\nAvailable template data files:");
+  console.log("  - data/template-basic.json      (default scenario)");
+  console.log(
+    "  - data/template-low-penalty.json (5% penalty, 30 day termination)"
+  );
+  console.log(
+    "  - data/template-high-penalty.json (15% penalty, 7 day termination)"
+  );
+}
+ 
+async function draft() {
+  const args = process.argv.slice(2);
+ 
+  if (args.length === 0) {
+    console.log("No template data file specified.\n");
+    showUsage();
+    process.exit(1);
+  }
+ 
+  if (args[0] === "--help" || args[0] === "-h") {
+    showUsage();
+    process.exit(0);
+  }
+ 
+  const templateDataFile = args[0];
+  console.log(
+    `Running DRAFT operation with template data: ${templateDataFile}\n`
+  );
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    const data = loadJsonFile(templateDataFile);
+ 
+    const options = { verbose: false };
+    const result = await templateArchiveProcessor.draft(
+      data,
+      "markdown",
+      options
+    );
+ 
+    console.log("\n\nContract Draft:");
+    console.log("____________________\n");
+    console.log(result);
+    console.log("____________________\n");
+    console.log("\nDraft operation completed successfully!\n");
+  } catch (error) {
+    console.error("Error in draft operation:", error.message);
+    process.exit(1);
+  }
+}
+ 
+draft();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c1525b811a167671e9de1fa78aab9f5c0b61cef7 GIT binary patch literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src DocxTransformer.js

+
+ +
+ 37.5% + Statements + 3/8 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 37.5% + Lines + 3/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html new file mode 100644 index 0000000..a4f7a16 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src + + + + + + + + + +
+
+

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src

+
+ +
+ 37.5% + Statements + 3/8 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 37.5% + Lines + 3/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
DocxTransformer.js +
+
37.5%3/80%0/20%0/237.5%3/8
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html new file mode 100644 index 0000000..5254222 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src HtmlTransformer.js

+
+ +
+ 23.52% + Statements + 4/17 +
+ + +
+ 0% + Branches + 0/3 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 23.52% + Lines + 4/17 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html new file mode 100644 index 0000000..ff233da --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src ToCiceroMarkVisitor.js

+
+ +
+ 10.9% + Statements + 6/55 +
+ + +
+ 3.92% + Branches + 2/51 +
+ + +
+ 0% + Functions + 0/7 +
+ + +
+ 11.11% + Lines + 6/54 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html new file mode 100644 index 0000000..2ff6c25 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src ToHtmlStringVisitor.js

+
+ +
+ 0.86% + Statements + 1/116 +
+ + +
+ 0% + Branches + 0/74 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0.86% + Lines + 1/116 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html new file mode 100644 index 0000000..d1dd9f0 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src helpers.js

+
+ +
+ 33.33% + Statements + 1/3 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 33.33% + Lines + 1/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html new file mode 100644 index 0000000..b926a5e --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html @@ -0,0 +1,176 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src + + + + + + + + + +
+
+

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src

+
+ +
+ 10.91% + Statements + 37/339 +
+ + +
+ 0.63% + Branches + 2/317 +
+ + +
+ 0% + Functions + 0/42 +
+ + +
+ 11.04% + Lines + 37/335 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
HtmlTransformer.js +
+
23.52%4/170%0/30%0/323.52%4/17
ToCiceroMarkVisitor.js +
+
10.9%6/553.92%2/510%0/711.11%6/54
ToHtmlStringVisitor.js +
+
0.86%1/1160%0/740%0/50.86%1/116
helpers.js +
+
33.33%1/30%0/40%0/233.33%1/3
rules.js +
+
16.89%25/1480%0/1850%0/2517.24%25/145
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html new file mode 100644 index 0000000..04ceebc --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src rules.js

+
+ +
+ 16.89% + Statements + 25/148 +
+ + +
+ 0% + Branches + 0/185 +
+ + +
+ 0% + Functions + 0/25 +
+ + +
+ 17.24% + Lines + 25/145 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html new file mode 100644 index 0000000..1ab54fa --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src CiceroMarkToPdfMakeVisitor.js

+
+ +
+ 60% + Statements + 3/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 60% + Lines + 3/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html new file mode 100644 index 0000000..0aa6bed --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src PdfTransformer.js

+
+ +
+ 60% + Statements + 3/5 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 60% + Lines + 3/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html new file mode 100644 index 0000000..2012784 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src PdfTransformerBase.js

+
+ +
+ 16.12% + Statements + 5/31 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/11 +
+ + +
+ 16.12% + Lines + 5/31 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html new file mode 100644 index 0000000..976c974 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src TemplateMarkToPdfMakeVisitor.js

+
+ +
+ 60% + Statements + 3/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 60% + Lines + 3/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html new file mode 100644 index 0000000..58e3417 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToCiceroMark.js

+
+ +
+ 8.16% + Statements + 4/49 +
+ + +
+ 0% + Branches + 0/28 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 8.33% + Lines + 4/48 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html new file mode 100644 index 0000000..7d4fc96 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToPdfMake.js

+
+ +
+ 13.63% + Statements + 6/44 +
+ + +
+ 0% + Branches + 0/21 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 13.63% + Lines + 6/44 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html new file mode 100644 index 0000000..a792c5e --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToPdfMakeVisitor.js

+
+ +
+ 12% + Statements + 3/25 +
+ + +
+ 0% + Branches + 0/9 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 12% + Lines + 3/25 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html new file mode 100644 index 0000000..719be88 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ciceromarkrules.js

+
+ +
+ 47.61% + Statements + 10/21 +
+ + +
+ 0% + Branches + 0/16 +
+ + +
+ 0% + Functions + 0/7 +
+ + +
+ 47.61% + Lines + 10/21 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html new file mode 100644 index 0000000..44def60 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src commonmarkrules.js

+
+ +
+ 42.85% + Statements + 30/70 +
+ + +
+ 0% + Branches + 0/12 +
+ + +
+ 0% + Functions + 0/29 +
+ + +
+ 42.85% + Lines + 30/70 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html new file mode 100644 index 0000000..601c24b --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src domstubs.js

+
+ +
+ 9.23% + Statements + 12/130 +
+ + +
+ 0% + Branches + 0/59 +
+ + +
+ 7.69% + Functions + 2/26 +
+ + +
+ 9.23% + Lines + 12/130 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html new file mode 100644 index 0000000..5a141c6 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html @@ -0,0 +1,281 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src + + + + + + + + + +
+
+

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src

+
+ +
+ 21.4% + Statements + 107/500 +
+ + +
+ 0% + Branches + 0/196 +
+ + +
+ 1.7% + Functions + 2/117 +
+ + +
+ 21.48% + Lines + 107/498 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
CiceroMarkToPdfMakeVisitor.js +
+
60%3/5100%0/00%0/160%3/5
PdfTransformer.js +
+
60%3/50%0/20%0/260%3/5
PdfTransformerBase.js +
+
16.12%5/310%0/60%0/1116.12%5/31
TemplateMarkToPdfMakeVisitor.js +
+
60%3/5100%0/00%0/160%3/5
ToCiceroMark.js +
+
8.16%4/490%0/280%0/48.33%4/48
ToPdfMake.js +
+
13.63%6/440%0/210%0/513.63%6/44
ToPdfMakeVisitor.js +
+
12%3/250%0/90%0/512%3/25
ciceromarkrules.js +
+
47.61%10/210%0/160%0/747.61%10/21
commonmarkrules.js +
+
42.85%30/700%0/120%0/2942.85%30/70
domstubs.js +
+
9.23%12/1300%0/597.69%2/269.23%12/130
pdfmakeutil.js +
+
14.28%7/490%0/310%0/1114.28%7/49
templatemarkrules.js +
+
31.81%21/660%0/120%0/1532.3%21/65
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html new file mode 100644 index 0000000..783d8ad --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src pdfmakeutil.js

+
+ +
+ 14.28% + Statements + 7/49 +
+ + +
+ 0% + Branches + 0/31 +
+ + +
+ 0% + Functions + 0/11 +
+ + +
+ 14.28% + Lines + 7/49 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html new file mode 100644 index 0000000..349a6f7 --- /dev/null +++ b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js + + + + + + + + + +
+
+

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src templatemarkrules.js

+
+ +
+ 31.81% + Statements + 21/66 +
+ + +
+ 0% + Branches + 0/12 +
+ + +
+ 0% + Functions + 0/15 +
+ + +
+ 32.3% + Lines + 21/65 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +120 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js'
+Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js'
+    at Object.readFileSync (node:fs:441:20)
+    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
+    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
+    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
+    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
+    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
+    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
+    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
+    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
+    at Array.forEach ()
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html new file mode 100644 index 0000000..9d25692 --- /dev/null +++ b/coverage/lcov-report/index.html @@ -0,0 +1,176 @@ + + + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 0% + Statements + 0/202 +
+ + +
+ 0% + Branches + 0/24 +
+ + +
+ 0% + Functions + 0/15 +
+ + +
+ 0% + Lines + 0/199 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
draft.js +
+
0%0/440%0/60%0/30%0/44
index.js +
+
0%0/19100%0/00%0/20%0/19
list-data-files.js +
+
0%0/480%0/40%0/60%0/46
test-different-values.js +
+
0%0/270%0/20%0/10%0/26
trigger.js +
+
0%0/640%0/120%0/30%0/64
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/index.js.html b/coverage/lcov-report/index.js.html new file mode 100644 index 0000000..2a0e138 --- /dev/null +++ b/coverage/lcov-report/index.js.html @@ -0,0 +1,280 @@ + + + + + + Code coverage report for index.js + + + + + + + + + +
+
+

All files index.js

+
+ +
+ 0% + Statements + 0/19 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const { TemplateArchiveProcessor } = require('@accordproject/template-engine');
+const { Template } = require('@accordproject/cicero-core');
+ 
+const TEMPLATE_PATH = './archives/latedeliveryandpenalty-typescript';
+ 
+async function trigger() {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+    const data = {
+        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+        "forceMajeure": true,
+        "penaltyDuration": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 2,
+            "unit": "days"
+        },
+        "penaltyPercentage": 10.5,
+        "capPercentage": 55,
+        "termination": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 15,
+            "unit": "days"
+        },
+        "fractionalPart": "days",
+        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
+        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
+    };
+    const request = {
+        goodsValue: 100
+    };
+    const response = await templateArchiveProcessor.trigger(data, request);
+    console.log('\nTrigger response:');
+    console.log(JSON.stringify(response, null, 2));
+}
+ 
+async function draft() {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+    const data = {
+        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+        "forceMajeure": true,
+        "penaltyDuration": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 2,
+            "unit": "days"
+        },
+        "penaltyPercentage": 10.5,
+        "capPercentage": 55,
+        "termination": {
+            "$class": "org.accordproject.time@0.3.0.Duration",
+            "amount": 15,
+            "unit": "days"
+        },
+        "fractionalPart": "days",
+        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
+        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
+    };
+    const options = {verbose: false};
+    const result = await templateArchiveProcessor.draft(data, 'markdown', options);
+    console.log('\Contract draft:');
+    console.log(result);
+}
+ 
+draft();
+trigger();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/list-data-files.js.html b/coverage/lcov-report/list-data-files.js.html new file mode 100644 index 0000000..4333bd2 --- /dev/null +++ b/coverage/lcov-report/list-data-files.js.html @@ -0,0 +1,319 @@ + + + + + + Code coverage report for list-data-files.js + + + + + + + + + +
+
+

All files list-data-files.js

+
+ +
+ 0% + Statements + 0/48 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/46 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const fs = require("fs");
+const path = require("path");
+ 
+function listDataFiles() {
+  console.log("Available Data Files\n");
+ 
+  const dataDir = "./data";
+ 
+  if (!fs.existsSync(dataDir)) {
+    console.log("Data directory not found!");
+    return;
+  }
+ 
+  const files = fs
+    .readdirSync(dataDir)
+    .filter((file) => file.endsWith(".json"));
+ 
+  if (files.length === 0) {
+    console.log("No JSON files found in data directory!");
+    return;
+  }
+ 
+  // Separate template and request files
+  const templateFiles = files.filter((file) => file.startsWith("template-"));
+  const requestFiles = files.filter((file) => file.startsWith("request-"));
+ 
+  console.log("Template Data Files:");
+  console.log("─".repeat(50));
+ 
+  templateFiles.forEach((file) => {
+    try {
+      const filePath = path.join(dataDir, file);
+      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
+      console.log(`${file}`);
+      console.log(`   Penalty: ${data.penaltyPercentage}%`);
+      console.log(
+        `   Termination: ${data.termination.amount} ${data.termination.unit}`
+      );
+      console.log(`   Force Majeure: ${data.forceMajeure}`);
+      console.log(
+        `   Penalty Duration: ${data.penaltyDuration.amount} ${data.penaltyDuration.unit}`
+      );
+      console.log(`   Cap: ${data.capPercentage}%`);
+      console.log();
+    } catch (error) {
+      console.log(`Error reading ${file}: ${error.message}`);
+    }
+  });
+ 
+  console.log("Request Data Files:");
+  console.log("─".repeat(50));
+ 
+  requestFiles.forEach((file) => {
+    try {
+      const filePath = path.join(dataDir, file);
+      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
+      console.log(`${file}`);
+      console.log(`   Goods Value: $${data.goodsValue}`);
+      console.log();
+    } catch (error) {
+      console.log(`Error reading ${file}: ${error.message}`);
+    }
+  });
+ 
+  console.log("Example Commands:");
+  console.log("─".repeat(50));
+  console.log("npm run draft:low");
+  console.log("npm run trigger:high");
+  console.log("node draft.js data/template-basic.json");
+  console.log(
+    "node trigger.js data/template-high-penalty.json data/request-low-value.json"
+  );
+  console.log(
+    "\nFor more help: node draft.js --help or node trigger.js --help"
+  );
+}
+ 
+listDataFiles();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed68316eb3f65dec9063332d2f69bf3093bbfab GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc literal 0 HcmV?d00001 diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js new file mode 100644 index 0000000..2bb296a --- /dev/null +++ b/coverage/lcov-report/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov-report/test-different-values.js.html b/coverage/lcov-report/test-different-values.js.html new file mode 100644 index 0000000..c46348e --- /dev/null +++ b/coverage/lcov-report/test-different-values.js.html @@ -0,0 +1,457 @@ + + + + + + Code coverage report for test-different-values.js + + + + + + + + + +
+
+

All files test-different-values.js

+
+ +
+ 0% + Statements + 0/27 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/26 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+async function testWithDifferentValues() {
+  console.log("Testing with Different Values...\n");
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    // Test scenarios with different values
+    const testScenarios = [
+      {
+        name: "Low Value Goods",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: false,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 1,
+            unit: "days",
+          },
+          penaltyPercentage: 5.0,
+          capPercentage: 25,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 30,
+            unit: "days",
+          },
+          fractionalPart: "days",
+          clauseId: "test-1",
+          $identifier: "test-1",
+        },
+        requestData: { goodsValue: 50 },
+      },
+      {
+        name: "High Value Goods",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: true,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 3,
+            unit: "days",
+          },
+          penaltyPercentage: 15.0,
+          capPercentage: 50,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 7,
+            unit: "days",
+          },
+          fractionalPart: "hours",
+          clauseId: "test-2",
+          $identifier: "test-2",
+        },
+        requestData: { goodsValue: 1000 },
+      },
+      {
+        name: "Zero Value Test",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: false,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 2,
+            unit: "weeks",
+          },
+          penaltyPercentage: 20.0,
+          capPercentage: 75,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 1,
+            unit: "months",
+          },
+          fractionalPart: "days",
+          clauseId: "test-3",
+          $identifier: "test-3",
+        },
+        requestData: { goodsValue: 0 },
+      },
+    ];
+ 
+    for (let i = 0; i < testScenarios.length; i++) {
+      const scenario = testScenarios[i];
+      console.log(`\nTest ${i + 1}: ${scenario.name}`);
+      console.log("─".repeat(40));
+ 
+      // Test both draft and trigger for each scenario
+      console.log("Draft Output:");
+      const draftResult = await templateArchiveProcessor.draft(
+        scenario.templateData,
+        "markdown",
+        { verbose: false }
+      );
+      console.log(draftResult.substring(0, 200) + "...\n");
+ 
+      console.log("Trigger Response:");
+      const triggerResponse = await templateArchiveProcessor.trigger(
+        scenario.templateData,
+        scenario.requestData
+      );
+      console.log(`Penalty: $${triggerResponse.penalty}`);
+      console.log(`Buyer May Terminate: ${triggerResponse.buyerMayTerminate}`);
+      console.log(
+        `Penalty Rate: ${scenario.templateData.penaltyPercentage}% | Goods Value: $${scenario.requestData.goodsValue}`
+      );
+ 
+      if (i < testScenarios.length - 1) {
+        console.log("\n" + "=".repeat(60));
+      }
+    }
+ 
+    console.log("\nAll test scenarios completed successfully!");
+  } catch (error) {
+    console.error("Error in test scenarios:", error.message);
+    process.exit(1);
+  }
+}
+ 
+// Run the test scenarios
+testWithDifferentValues();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/trigger.js.html b/coverage/lcov-report/trigger.js.html new file mode 100644 index 0000000..c2fd279 --- /dev/null +++ b/coverage/lcov-report/trigger.js.html @@ -0,0 +1,427 @@ + + + + + + Code coverage report for trigger.js + + + + + + + + + +
+
+

All files trigger.js

+
+ +
+ 0% + Statements + 0/64 +
+ + +
+ 0% + Branches + 0/12 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/64 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+const fs = require("fs");
+const path = require("path");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+function loadJsonFile(filePath) {
+  try {
+    const fullPath = path.resolve(filePath);
+    const fileContent = fs.readFileSync(fullPath, "utf8");
+    return JSON.parse(fileContent);
+  } catch (error) {
+    console.error(`Error loading JSON file '${filePath}':`, error.message);
+    process.exit(1);
+  }
+}
+ 
+function showUsage() {
+  console.log(
+    "Usage: node trigger.js <template-data-file> <request-data-file>"
+  );
+  console.log("\nExample:");
+  console.log(
+    "  node trigger.js data/template-basic.json data/request-basic.json"
+  );
+  console.log(
+    "  node trigger.js data/template-low-penalty.json data/request-high-value.json"
+  );
+  console.log("\nAvailable files:");
+  console.log("  Template data files:");
+  console.log(
+    "    - data/template-basic.json      (10.5% penalty, 15 day termination)"
+  );
+  console.log(
+    "    - data/template-low-penalty.json (5% penalty, 30 day termination)"
+  );
+  console.log(
+    "    - data/template-high-penalty.json (15% penalty, 7 day termination)"
+  );
+  console.log("  Request data files:");
+  console.log("    - data/request-basic.json       ($100 goods value)");
+  console.log("    - data/request-low-value.json   ($50 goods value)");
+  console.log("    - data/request-high-value.json  ($1000 goods value)");
+}
+ 
+async function trigger() {
+  const args = process.argv.slice(2);
+ 
+  if (args.length === 0) {
+    console.log("No data files specified.\n");
+    showUsage();
+    process.exit(1);
+  }
+ 
+  if (args[0] === "--help" || args[0] === "-h") {
+    showUsage();
+    process.exit(0);
+  }
+ 
+  if (args.length < 2) {
+    console.log(
+      "Both template data file and request data file are required.\n"
+    );
+    showUsage();
+    process.exit(1);
+  }
+ 
+  const templateDataFile = args[0];
+  const requestDataFile = args[1];
+ 
+  console.log(`Running TRIGGER operation:`);
+  console.log(`   Template data: ${templateDataFile}`);
+  console.log(`   Request data:  ${requestDataFile}\n`);
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    // Load template data (the contract parameters)
+    const data = loadJsonFile(templateDataFile);
+ 
+    // Load request data (the input for the business logic)
+    const request = loadJsonFile(requestDataFile);
+ 
+    console.log("\nInput Data:");
+    console.log("=".repeat(50));
+    console.log("Template Data:", JSON.stringify(data, null, 2));
+    console.log("\nRequest Data:", JSON.stringify(request, null, 2));
+ 
+    const response = await templateArchiveProcessor.trigger(data, request);
+ 
+    console.log("\nBusiness Logic Response:");
+    console.log("=".repeat(50));
+    console.log(JSON.stringify(response, null, 2));
+ 
+    // Show calculation details
+    if (response && response.penalty !== undefined) {
+      console.log("\nCalculation Details:");
+      console.log(`Penalty Rate: ${data.penaltyPercentage}%`);
+      console.log(`Goods Value: $${request.goodsValue}`);
+      console.log(`Calculated Penalty: $${response.penalty}`);
+      console.log(`Buyer May Terminate: ${response.buyerMayTerminate}`);
+    }
+ 
+    console.log("\nTrigger operation completed successfully!\n");
+  } catch (error) {
+    console.error("Error in trigger operation:", error.message);
+    process.exit(1);
+  }
+}
+ 
+// Run the trigger operation
+trigger();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 0000000..17ee4eb --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,298 @@ +TN: +SF:draft.js +FN:8,loadJsonFile +FN:19,showUsage +FN:35,draft +FNF:3 +FNH:0 +FNDA:0,loadJsonFile +FNDA:0,showUsage +FNDA:0,draft +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:6,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:14,0 +DA:15,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:30,0 +DA:36,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:49,0 +DA:50,0 +DA:54,0 +DA:55,0 +DA:56,0 +DA:58,0 +DA:60,0 +DA:61,0 +DA:67,0 +DA:68,0 +DA:69,0 +DA:70,0 +DA:71,0 +DA:73,0 +DA:74,0 +DA:78,0 +LF:44 +LH:0 +BRDA:38,0,0,0 +BRDA:38,0,1,0 +BRDA:44,1,0,0 +BRDA:44,1,1,0 +BRDA:44,2,0,0 +BRDA:44,2,1,0 +BRF:6 +BRH:0 +end_of_record +TN: +SF:index.js +FN:6,trigger +FN:36,draft +FNF:2 +FNH:0 +FNDA:0,trigger +FNDA:0,draft +DA:1,0 +DA:2,0 +DA:4,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:28,0 +DA:31,0 +DA:32,0 +DA:33,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:58,0 +DA:59,0 +DA:60,0 +DA:61,0 +DA:64,0 +DA:65,0 +LF:19 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:list-data-files.js +FN:4,listDataFiles +FN:16,(anonymous_1) +FN:24,(anonymous_2) +FN:25,(anonymous_3) +FN:30,(anonymous_4) +FN:53,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,listDataFiles +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:1,0 +DA:2,0 +DA:5,0 +DA:7,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:14,0 +DA:16,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:24,0 +DA:25,0 +DA:27,0 +DA:28,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:39,0 +DA:40,0 +DA:43,0 +DA:44,0 +DA:46,0 +DA:50,0 +DA:51,0 +DA:53,0 +DA:54,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:58,0 +DA:59,0 +DA:61,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:69,0 +DA:70,0 +DA:73,0 +DA:78,0 +LF:46 +LH:0 +BRDA:9,0,0,0 +BRDA:9,0,1,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:test-different-values.js +FN:6,testWithDifferentValues +FNF:1 +FNH:0 +FNDA:0,testWithDifferentValues +DA:1,0 +DA:2,0 +DA:4,0 +DA:7,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:14,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:92,0 +DA:93,0 +DA:98,0 +DA:100,0 +DA:101,0 +DA:105,0 +DA:106,0 +DA:107,0 +DA:111,0 +DA:112,0 +DA:116,0 +DA:118,0 +DA:119,0 +DA:124,0 +LF:26 +LH:0 +BRDA:111,0,0,0 +BRDA:111,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:trigger.js +FN:8,loadJsonFile +FN:19,showUsage +FN:47,trigger +FNF:3 +FNH:0 +FNDA:0,loadJsonFile +FNDA:0,showUsage +FNDA:0,trigger +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:6,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:14,0 +DA:15,0 +DA:20,0 +DA:23,0 +DA:24,0 +DA:27,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:35,0 +DA:38,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:48,0 +DA:50,0 +DA:51,0 +DA:52,0 +DA:53,0 +DA:56,0 +DA:57,0 +DA:58,0 +DA:61,0 +DA:62,0 +DA:65,0 +DA:66,0 +DA:69,0 +DA:70,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:76,0 +DA:77,0 +DA:78,0 +DA:81,0 +DA:84,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:91,0 +DA:93,0 +DA:94,0 +DA:95,0 +DA:98,0 +DA:99,0 +DA:100,0 +DA:101,0 +DA:102,0 +DA:103,0 +DA:106,0 +DA:108,0 +DA:109,0 +DA:114,0 +LF:64 +LH:0 +BRDA:50,0,0,0 +BRDA:50,0,1,0 +BRDA:56,1,0,0 +BRDA:56,1,1,0 +BRDA:56,2,0,0 +BRDA:56,2,1,0 +BRDA:61,3,0,0 +BRDA:61,3,1,0 +BRDA:98,4,0,0 +BRDA:98,4,1,0 +BRDA:98,5,0,0 +BRDA:98,5,1,0 +BRF:12 +BRH:0 +end_of_record diff --git a/coverage/list-data-files.js.html b/coverage/list-data-files.js.html new file mode 100644 index 0000000..dedbb78 --- /dev/null +++ b/coverage/list-data-files.js.html @@ -0,0 +1,319 @@ + + + + + + Code coverage report for list-data-files.js + + + + + + + + + +
+
+

All files list-data-files.js

+
+ +
+ 0% + Statements + 0/48 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/46 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const fs = require("fs");
+const path = require("path");
+ 
+function listDataFiles() {
+  console.log("Available Data Files\n");
+ 
+  const dataDir = "./data";
+ 
+  if (!fs.existsSync(dataDir)) {
+    console.log("Data directory not found!");
+    return;
+  }
+ 
+  const files = fs
+    .readdirSync(dataDir)
+    .filter((file) => file.endsWith(".json"));
+ 
+  if (files.length === 0) {
+    console.log("No JSON files found in data directory!");
+    return;
+  }
+ 
+  // Separate template and request files
+  const templateFiles = files.filter((file) => file.startsWith("template-"));
+  const requestFiles = files.filter((file) => file.startsWith("request-"));
+ 
+  console.log("Template Data Files:");
+  console.log("─".repeat(50));
+ 
+  templateFiles.forEach((file) => {
+    try {
+      const filePath = path.join(dataDir, file);
+      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
+      console.log(`${file}`);
+      console.log(`   Penalty: ${data.penaltyPercentage}%`);
+      console.log(
+        `   Termination: ${data.termination.amount} ${data.termination.unit}`
+      );
+      console.log(`   Force Majeure: ${data.forceMajeure}`);
+      console.log(
+        `   Penalty Duration: ${data.penaltyDuration.amount} ${data.penaltyDuration.unit}`
+      );
+      console.log(`   Cap: ${data.capPercentage}%`);
+      console.log();
+    } catch (error) {
+      console.log(`Error reading ${file}: ${error.message}`);
+    }
+  });
+ 
+  console.log("Request Data Files:");
+  console.log("─".repeat(50));
+ 
+  requestFiles.forEach((file) => {
+    try {
+      const filePath = path.join(dataDir, file);
+      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
+      console.log(`${file}`);
+      console.log(`   Goods Value: $${data.goodsValue}`);
+      console.log();
+    } catch (error) {
+      console.log(`Error reading ${file}: ${error.message}`);
+    }
+  });
+ 
+  console.log("Example Commands:");
+  console.log("─".repeat(50));
+  console.log("npm run draft:low");
+  console.log("npm run trigger:high");
+  console.log("node draft.js data/template-basic.json");
+  console.log(
+    "node trigger.js data/template-high-penalty.json data/request-low-value.json"
+  );
+  console.log(
+    "\nFor more help: node draft.js --help or node trigger.js --help"
+  );
+}
+ 
+listDataFiles();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/prettify.css b/coverage/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/coverage/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/prettify.js b/coverage/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/coverage/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/sort-arrow-sprite.png b/coverage/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed68316eb3f65dec9063332d2f69bf3093bbfab GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc literal 0 HcmV?d00001 diff --git a/coverage/sorter.js b/coverage/sorter.js new file mode 100644 index 0000000..2bb296a --- /dev/null +++ b/coverage/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/test-different-values.js.html b/coverage/test-different-values.js.html new file mode 100644 index 0000000..01679d9 --- /dev/null +++ b/coverage/test-different-values.js.html @@ -0,0 +1,457 @@ + + + + + + Code coverage report for test-different-values.js + + + + + + + + + +
+
+

All files test-different-values.js

+
+ +
+ 0% + Statements + 0/27 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/26 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+async function testWithDifferentValues() {
+  console.log("Testing with Different Values...\n");
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    // Test scenarios with different values
+    const testScenarios = [
+      {
+        name: "Low Value Goods",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: false,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 1,
+            unit: "days",
+          },
+          penaltyPercentage: 5.0,
+          capPercentage: 25,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 30,
+            unit: "days",
+          },
+          fractionalPart: "days",
+          clauseId: "test-1",
+          $identifier: "test-1",
+        },
+        requestData: { goodsValue: 50 },
+      },
+      {
+        name: "High Value Goods",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: true,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 3,
+            unit: "days",
+          },
+          penaltyPercentage: 15.0,
+          capPercentage: 50,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 7,
+            unit: "days",
+          },
+          fractionalPart: "hours",
+          clauseId: "test-2",
+          $identifier: "test-2",
+        },
+        requestData: { goodsValue: 1000 },
+      },
+      {
+        name: "Zero Value Test",
+        templateData: {
+          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
+          forceMajeure: false,
+          penaltyDuration: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 2,
+            unit: "weeks",
+          },
+          penaltyPercentage: 20.0,
+          capPercentage: 75,
+          termination: {
+            $class: "org.accordproject.time@0.3.0.Duration",
+            amount: 1,
+            unit: "months",
+          },
+          fractionalPart: "days",
+          clauseId: "test-3",
+          $identifier: "test-3",
+        },
+        requestData: { goodsValue: 0 },
+      },
+    ];
+ 
+    for (let i = 0; i < testScenarios.length; i++) {
+      const scenario = testScenarios[i];
+      console.log(`\nTest ${i + 1}: ${scenario.name}`);
+      console.log("─".repeat(40));
+ 
+      // Test both draft and trigger for each scenario
+      console.log("Draft Output:");
+      const draftResult = await templateArchiveProcessor.draft(
+        scenario.templateData,
+        "markdown",
+        { verbose: false }
+      );
+      console.log(draftResult.substring(0, 200) + "...\n");
+ 
+      console.log("Trigger Response:");
+      const triggerResponse = await templateArchiveProcessor.trigger(
+        scenario.templateData,
+        scenario.requestData
+      );
+      console.log(`Penalty: $${triggerResponse.penalty}`);
+      console.log(`Buyer May Terminate: ${triggerResponse.buyerMayTerminate}`);
+      console.log(
+        `Penalty Rate: ${scenario.templateData.penaltyPercentage}% | Goods Value: $${scenario.requestData.goodsValue}`
+      );
+ 
+      if (i < testScenarios.length - 1) {
+        console.log("\n" + "=".repeat(60));
+      }
+    }
+ 
+    console.log("\nAll test scenarios completed successfully!");
+  } catch (error) {
+    console.error("Error in test scenarios:", error.message);
+    process.exit(1);
+  }
+}
+ 
+// Run the test scenarios
+testWithDifferentValues();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/trigger.js.html b/coverage/trigger.js.html new file mode 100644 index 0000000..3772026 --- /dev/null +++ b/coverage/trigger.js.html @@ -0,0 +1,427 @@ + + + + + + Code coverage report for trigger.js + + + + + + + + + +
+
+

All files trigger.js

+
+ +
+ 0% + Statements + 0/64 +
+ + +
+ 0% + Branches + 0/12 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/64 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
+const { Template } = require("@accordproject/cicero-core");
+const fs = require("fs");
+const path = require("path");
+ 
+const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
+ 
+function loadJsonFile(filePath) {
+  try {
+    const fullPath = path.resolve(filePath);
+    const fileContent = fs.readFileSync(fullPath, "utf8");
+    return JSON.parse(fileContent);
+  } catch (error) {
+    console.error(`Error loading JSON file '${filePath}':`, error.message);
+    process.exit(1);
+  }
+}
+ 
+function showUsage() {
+  console.log(
+    "Usage: node trigger.js <template-data-file> <request-data-file>"
+  );
+  console.log("\nExample:");
+  console.log(
+    "  node trigger.js data/template-basic.json data/request-basic.json"
+  );
+  console.log(
+    "  node trigger.js data/template-low-penalty.json data/request-high-value.json"
+  );
+  console.log("\nAvailable files:");
+  console.log("  Template data files:");
+  console.log(
+    "    - data/template-basic.json      (10.5% penalty, 15 day termination)"
+  );
+  console.log(
+    "    - data/template-low-penalty.json (5% penalty, 30 day termination)"
+  );
+  console.log(
+    "    - data/template-high-penalty.json (15% penalty, 7 day termination)"
+  );
+  console.log("  Request data files:");
+  console.log("    - data/request-basic.json       ($100 goods value)");
+  console.log("    - data/request-low-value.json   ($50 goods value)");
+  console.log("    - data/request-high-value.json  ($1000 goods value)");
+}
+ 
+async function trigger() {
+  const args = process.argv.slice(2);
+ 
+  if (args.length === 0) {
+    console.log("No data files specified.\n");
+    showUsage();
+    process.exit(1);
+  }
+ 
+  if (args[0] === "--help" || args[0] === "-h") {
+    showUsage();
+    process.exit(0);
+  }
+ 
+  if (args.length < 2) {
+    console.log(
+      "Both template data file and request data file are required.\n"
+    );
+    showUsage();
+    process.exit(1);
+  }
+ 
+  const templateDataFile = args[0];
+  const requestDataFile = args[1];
+ 
+  console.log(`Running TRIGGER operation:`);
+  console.log(`   Template data: ${templateDataFile}`);
+  console.log(`   Request data:  ${requestDataFile}\n`);
+ 
+  try {
+    const template = await Template.fromDirectory(TEMPLATE_PATH);
+    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
+ 
+    // Load template data (the contract parameters)
+    const data = loadJsonFile(templateDataFile);
+ 
+    // Load request data (the input for the business logic)
+    const request = loadJsonFile(requestDataFile);
+ 
+    console.log("\nInput Data:");
+    console.log("=".repeat(50));
+    console.log("Template Data:", JSON.stringify(data, null, 2));
+    console.log("\nRequest Data:", JSON.stringify(request, null, 2));
+ 
+    const response = await templateArchiveProcessor.trigger(data, request);
+ 
+    console.log("\nBusiness Logic Response:");
+    console.log("=".repeat(50));
+    console.log(JSON.stringify(response, null, 2));
+ 
+    // Show calculation details
+    if (response && response.penalty !== undefined) {
+      console.log("\nCalculation Details:");
+      console.log(`Penalty Rate: ${data.penaltyPercentage}%`);
+      console.log(`Goods Value: $${request.goodsValue}`);
+      console.log(`Calculated Penalty: $${response.penalty}`);
+      console.log(`Buyer May Terminate: ${response.buyerMayTerminate}`);
+    }
+ 
+    console.log("\nTrigger operation completed successfully!\n");
+  } catch (error) {
+    console.error("Error in trigger operation:", error.message);
+    process.exit(1);
+  }
+}
+ 
+// Run the trigger operation
+trigger();
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/data/request-basic.json b/data/request-basic.json new file mode 100644 index 0000000..c131423 --- /dev/null +++ b/data/request-basic.json @@ -0,0 +1,3 @@ +{ + "goodsValue": 100 +} diff --git a/data/request-high-value.json b/data/request-high-value.json new file mode 100644 index 0000000..21eea3c --- /dev/null +++ b/data/request-high-value.json @@ -0,0 +1,3 @@ +{ + "goodsValue": 1000 +} diff --git a/data/request-low-value.json b/data/request-low-value.json new file mode 100644 index 0000000..cac8540 --- /dev/null +++ b/data/request-low-value.json @@ -0,0 +1,3 @@ +{ + "goodsValue": 50 +} diff --git a/data/template-basic.json b/data/template-basic.json new file mode 100644 index 0000000..c7dc07b --- /dev/null +++ b/data/template-basic.json @@ -0,0 +1,19 @@ +{ + "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + "forceMajeure": true, + "penaltyDuration": { + "$class": "org.accordproject.time@0.3.0.Duration", + "amount": 2, + "unit": "days" + }, + "penaltyPercentage": 10.5, + "capPercentage": 55, + "termination": { + "$class": "org.accordproject.time@0.3.0.Duration", + "amount": 15, + "unit": "days" + }, + "fractionalPart": "days", + "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8", + "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8" +} diff --git a/data/template-high-penalty.json b/data/template-high-penalty.json new file mode 100644 index 0000000..c979375 --- /dev/null +++ b/data/template-high-penalty.json @@ -0,0 +1,19 @@ +{ + "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + "forceMajeure": true, + "penaltyDuration": { + "$class": "org.accordproject.time@0.3.0.Duration", + "amount": 3, + "unit": "days" + }, + "penaltyPercentage": 15.0, + "capPercentage": 50, + "termination": { + "$class": "org.accordproject.time@0.3.0.Duration", + "amount": 7, + "unit": "days" + }, + "fractionalPart": "hours", + "clauseId": "high-penalty-clause", + "$identifier": "high-penalty-clause" +} diff --git a/data/template-low-penalty.json b/data/template-low-penalty.json new file mode 100644 index 0000000..630faee --- /dev/null +++ b/data/template-low-penalty.json @@ -0,0 +1,19 @@ +{ + "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + "forceMajeure": false, + "penaltyDuration": { + "$class": "org.accordproject.time@0.3.0.Duration", + "amount": 1, + "unit": "days" + }, + "penaltyPercentage": 5.0, + "capPercentage": 25, + "termination": { + "$class": "org.accordproject.time@0.3.0.Duration", + "amount": 30, + "unit": "days" + }, + "fractionalPart": "days", + "clauseId": "low-penalty-clause", + "$identifier": "low-penalty-clause" +} diff --git a/draft.js b/draft.js new file mode 100644 index 0000000..496e636 --- /dev/null +++ b/draft.js @@ -0,0 +1,78 @@ +const { TemplateArchiveProcessor } = require("@accordproject/template-engine"); +const { Template } = require("@accordproject/cicero-core"); +const fs = require("fs"); +const path = require("path"); + +const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript"; + +function loadJsonFile(filePath) { + try { + const fullPath = path.resolve(filePath); + const fileContent = fs.readFileSync(fullPath, "utf8"); + return JSON.parse(fileContent); + } catch (error) { + console.error(`Error loading JSON file '${filePath}':`, error.message); + process.exit(1); + } +} + +function showUsage() { + console.log("Usage: node draft.js "); + console.log("\nExample:"); + console.log(" node draft.js data/template-basic.json"); + console.log(" node draft.js data/template-low-penalty.json"); + console.log(" node draft.js data/template-high-penalty.json"); + console.log("\nAvailable template data files:"); + console.log(" - data/template-basic.json (default scenario)"); + console.log( + " - data/template-low-penalty.json (5% penalty, 30 day termination)" + ); + console.log( + " - data/template-high-penalty.json (15% penalty, 7 day termination)" + ); +} + +async function draft() { + const args = process.argv.slice(2); + + if (args.length === 0) { + console.log("No template data file specified.\n"); + showUsage(); + process.exit(1); + } + + if (args[0] === "--help" || args[0] === "-h") { + showUsage(); + process.exit(0); + } + + const templateDataFile = args[0]; + console.log( + `Running DRAFT operation with template data: ${templateDataFile}\n` + ); + + try { + const template = await Template.fromDirectory(TEMPLATE_PATH); + const templateArchiveProcessor = new TemplateArchiveProcessor(template); + + const data = loadJsonFile(templateDataFile); + + const options = { verbose: false }; + const result = await templateArchiveProcessor.draft( + data, + "markdown", + options + ); + + console.log("\n\nContract Draft:"); + console.log("____________________\n"); + console.log(result); + console.log("____________________\n"); + console.log("\nDraft operation completed successfully!\n"); + } catch (error) { + console.error("Error in draft operation:", error.message); + process.exit(1); + } +} + +draft(); diff --git a/list-data-files.js b/list-data-files.js new file mode 100644 index 0000000..ad938f8 --- /dev/null +++ b/list-data-files.js @@ -0,0 +1,78 @@ +const fs = require("fs"); +const path = require("path"); + +function listDataFiles() { + console.log("Available Data Files\n"); + + const dataDir = "./data"; + + if (!fs.existsSync(dataDir)) { + console.log("Data directory not found!"); + return; + } + + const files = fs + .readdirSync(dataDir) + .filter((file) => file.endsWith(".json")); + + if (files.length === 0) { + console.log("No JSON files found in data directory!"); + return; + } + + // Separate template and request files + const templateFiles = files.filter((file) => file.startsWith("template-")); + const requestFiles = files.filter((file) => file.startsWith("request-")); + + console.log("Template Data Files:"); + console.log("─".repeat(50)); + + templateFiles.forEach((file) => { + try { + const filePath = path.join(dataDir, file); + const data = JSON.parse(fs.readFileSync(filePath, "utf8")); + console.log(`${file}`); + console.log(` Penalty: ${data.penaltyPercentage}%`); + console.log( + ` Termination: ${data.termination.amount} ${data.termination.unit}` + ); + console.log(` Force Majeure: ${data.forceMajeure}`); + console.log( + ` Penalty Duration: ${data.penaltyDuration.amount} ${data.penaltyDuration.unit}` + ); + console.log(` Cap: ${data.capPercentage}%`); + console.log(); + } catch (error) { + console.log(`Error reading ${file}: ${error.message}`); + } + }); + + console.log("Request Data Files:"); + console.log("─".repeat(50)); + + requestFiles.forEach((file) => { + try { + const filePath = path.join(dataDir, file); + const data = JSON.parse(fs.readFileSync(filePath, "utf8")); + console.log(`${file}`); + console.log(` Goods Value: $${data.goodsValue}`); + console.log(); + } catch (error) { + console.log(`Error reading ${file}: ${error.message}`); + } + }); + + console.log("Example Commands:"); + console.log("─".repeat(50)); + console.log("npm run draft:low"); + console.log("npm run trigger:high"); + console.log("node draft.js data/template-basic.json"); + console.log( + "node trigger.js data/template-high-penalty.json data/request-low-value.json" + ); + console.log( + "\nFor more help: node draft.js --help or node trigger.js --help" + ); +} + +listDataFiles(); diff --git a/package-lock.json b/package-lock.json index 7fd08bd..d6555b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,9 @@ "@accordproject/cicero-core": "0.25.1-20250328175253", "@accordproject/template-engine": "^2.6.7" }, - "devDependencies": {} + "devDependencies": { + "jest": "^29.7.0" + } }, "node_modules/@accordproject/cicero-core": { "version": "0.25.1-20250328175253", @@ -1350,6 +1352,488 @@ "@rollup/rollup-linux-x64-gnu": "^4.38.0" } }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime-corejs3": { "version": "7.27.0", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.0.tgz", @@ -1363,6 +1847,61 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, "node_modules/@colors/colors": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", @@ -1453,1254 +1992,3799 @@ "node": ">=18.0.0" } }, - "node_modules/@oozcitak/dom": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.6.tgz", - "integrity": "sha512-k4uEIa6DI3FCrFJMGq/05U/59WnS9DjME0kaPqBRCJAqBTkmopbYV1Xs4qFKbDJ/9wOg8W97p+1E0heng/LH7g==", - "license": "MIT", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", "dependencies": { - "@oozcitak/infra": "1.0.5", - "@oozcitak/url": "1.0.0", - "@oozcitak/util": "8.3.4" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=8.0" + "node": ">=8" } }, - "node_modules/@oozcitak/infra": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.5.tgz", - "integrity": "sha512-o+zZH7M6l5e3FaAWy3ojaPIVN5eusaYPrKm6MZQt0DKNdgXa2wDYExjpP0t/zx+GoQgQKzLu7cfD8rHCLt8JrQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, "license": "MIT", "dependencies": { - "@oozcitak/util": "8.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">=6.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@oozcitak/infra/node_modules/@oozcitak/util": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.0.0.tgz", - "integrity": "sha512-+9Hq6yuoq/3TRV/n/xcpydGBq2qN2/DEDMqNTG7rm95K6ZE2/YY/sPyx62+1n8QsE9O26e5M1URlXsk+AnN9Jw==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=6.0" + "node": ">=8" } }, - "node_modules/@oozcitak/url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.0.tgz", - "integrity": "sha512-LGrMeSxeLzsdaitxq3ZmBRVOrlRRQIgNNci6L0VRnOKlJFuRIkNm4B+BObXPCJA6JT5bEJtrrwjn30jueHJYZQ==", + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, "license": "MIT", "dependencies": { - "@oozcitak/infra": "1.0.3", - "@oozcitak/util": "1.0.2" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=8.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@oozcitak/url/node_modules/@oozcitak/infra": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.3.tgz", - "integrity": "sha512-9O2wxXGnRzy76O1XUxESxDGsXT5kzETJPvYbreO4mv6bqe1+YSuux2cZTagjJ/T4UfEwFJz5ixanOqB0QgYAag==", + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "@oozcitak/util": "1.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@oozcitak/url/node_modules/@oozcitak/infra/node_modules/@oozcitak/util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-1.0.1.tgz", - "integrity": "sha512-dFwFqcKrQnJ2SapOmRD1nQWEZUtbtIy9Y6TyJquzsalWNJsKIPxmTI0KG6Ypyl8j7v89L2wixH9fQDNrF78hKg==", + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=6.0" + "node": ">=8" } }, - "node_modules/@oozcitak/url/node_modules/@oozcitak/util": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-1.0.2.tgz", - "integrity": "sha512-4n8B1cWlJleSOSba5gxsMcN4tO8KkkcvXhNWW+ADqvq9Xj+Lrl9uCa90GRpjekqQJyt84aUX015DG81LFpZYXA==", + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=6.0" + "node": ">=8" } }, - "node_modules/@oozcitak/util": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.4.tgz", - "integrity": "sha512-6gH/bLQJSJEg7OEpkH4wGQdA8KXHRbzL1YkGyUO12YNAgV3jxKy4K9kvfXj4+9T0OLug5k58cnPCKSSIKzp7pg==", - "license": "MIT", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=8.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@openapi-contrib/openapi-schema-to-json-schema": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-5.1.0.tgz", - "integrity": "sha512-MJnq+CxD8JAufiJoa8RK6D/8P45MEBe0teUi30TNoHRrI6MZRNgetK2Y2IfDXWGLTHMopb1d9GHonqlV2Yvztg==", + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.12", - "@types/lodash": "^4.14.195", - "@types/node": "^20.4.1", - "fast-deep-equal": "^3.1.3", - "lodash": "^4.17.21", - "openapi-typescript": "^5.4.1", - "yargs": "^17.7.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "bin": { - "openapi-schema-to-json-schema": "dist/bin.js" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "node_modules/@openapi-contrib/openapi-schema-to-json-schema/node_modules/@types/node": { - "version": "20.17.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.30.tgz", - "integrity": "sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==", + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@openapi-contrib/openapi-schema-to-json-schema/node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "license": "MIT" - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.38.0.tgz", - "integrity": "sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==", - "cpu": [ - "x64" - ], + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@supercharge/promise-pool": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-1.7.0.tgz", - "integrity": "sha512-OpnF7oqk6asrOUMhldnDju4RKeZ/iMAfw3LIoLdcTI53RZJLiQ9vEAcGW+bcBELXkiPhT7RqtuPSXAFF2iAmbg==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/lodash": { - "version": "4.17.16", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", - "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.13.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.17.tgz", - "integrity": "sha512-nAJuQXoyPj04uLgu+obZcSmsfOenUg6DxPKogeUy6yNCFwWaj5sBF8/G/pNo8EtBJjAfSVgfIlugR/BCOleO+g==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/triple-beam": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", - "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", - "license": "MIT" - }, - "node_modules/@typescript/twoslash": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/@typescript/twoslash/-/twoslash-3.2.9.tgz", - "integrity": "sha512-nX7hoXawsaRWdxaU6qXF1R8cK1c3buUWecPuSFeU7FNORDp/QN72239m92xQtM9IwqRHra2+00iRrIlHBjjc9Q==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, "license": "MIT", "dependencies": { - "@typescript/vfs": "1.6.1", - "debug": "^4.1.1", - "lz-string": "^1.5.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, - "peerDependencies": { - "typescript": "*" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@typescript/vfs": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.1.tgz", - "integrity": "sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.1.1" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "typescript": "*" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=10.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "license": "BSD-3-Clause" + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, "license": "MIT", "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">=0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, "engines": { - "node": ">=0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, "license": "MIT", "dependencies": { - "debug": "4" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, "engines": { - "node": ">= 6.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "ajv": "^8.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansi-styles/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "license": "MIT", + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, "license": "MIT", "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "license": "MIT", + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, "engines": { - "node": ">= 0.4" + "node": ">=6.0.0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "license": "Apache-2.0", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=6.0.0" } }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, "license": "MIT" }, - "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "license": "BSD-3-Clause", + "node_modules/@oozcitak/dom": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.6.tgz", + "integrity": "sha512-k4uEIa6DI3FCrFJMGq/05U/59WnS9DjME0kaPqBRCJAqBTkmopbYV1Xs4qFKbDJ/9wOg8W97p+1E0heng/LH7g==", + "license": "MIT", "dependencies": { - "tweetnacl": "^0.14.3" + "@oozcitak/infra": "1.0.5", + "@oozcitak/url": "1.0.0", + "@oozcitak/util": "8.3.4" + }, + "engines": { + "node": ">=8.0" } }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", - "license": "MIT" - }, - "node_modules/brotli": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", - "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "node_modules/@oozcitak/infra": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.5.tgz", + "integrity": "sha512-o+zZH7M6l5e3FaAWy3ojaPIVN5eusaYPrKm6MZQt0DKNdgXa2wDYExjpP0t/zx+GoQgQKzLu7cfD8rHCLt8JrQ==", "license": "MIT", "dependencies": { - "base64-js": "^1.1.2" + "@oozcitak/util": "8.0.0" + }, + "engines": { + "node": ">=6.0" } }, - "node_modules/browser-or-node": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-3.0.0.tgz", - "integrity": "sha512-iczIdVJzGEYhP5DqQxYM9Hh7Ztpqqi+CXZpSmX8ALFs9ecXkQIeqRyM6TfxEfMVpwhl3dSuDvxdzzo9sUOIVBQ==", - "license": "MIT" + "node_modules/@oozcitak/infra/node_modules/@oozcitak/util": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.0.0.tgz", + "integrity": "sha512-+9Hq6yuoq/3TRV/n/xcpydGBq2qN2/DEDMqNTG7rm95K6ZE2/YY/sPyx62+1n8QsE9O26e5M1URlXsk+AnN9Jw==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } }, - "node_modules/browser-process-hrtime": { + "node_modules/@oozcitak/url": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "license": "BSD-2-Clause" - }, - "node_modules/browser-split": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/browser-split/-/browser-split-0.0.1.tgz", - "integrity": "sha512-JhvgRb2ihQhsljNda3BI8/UcRHVzrVwo3Q+P8vDtSiyobXuFpuZ9mq+MbRGMnC22CjW3RrfXdg6j6ITX8M+7Ow==", - "license": "MIT" - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.0.tgz", + "integrity": "sha512-LGrMeSxeLzsdaitxq3ZmBRVOrlRRQIgNNci6L0VRnOKlJFuRIkNm4B+BObXPCJA6JT5bEJtrrwjn30jueHJYZQ==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" + "@oozcitak/infra": "1.0.3", + "@oozcitak/util": "1.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.0" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/@oozcitak/url/node_modules/@oozcitak/infra": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.3.tgz", + "integrity": "sha512-9O2wxXGnRzy76O1XUxESxDGsXT5kzETJPvYbreO4mv6bqe1+YSuux2cZTagjJ/T4UfEwFJz5ixanOqB0QgYAag==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" + "@oozcitak/util": "1.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=6.0" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "node_modules/@oozcitak/url/node_modules/@oozcitak/infra/node_modules/@oozcitak/util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-1.0.1.tgz", + "integrity": "sha512-dFwFqcKrQnJ2SapOmRD1nQWEZUtbtIy9Y6TyJquzsalWNJsKIPxmTI0KG6Ypyl8j7v89L2wixH9fQDNrF78hKg==", "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0" } }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/@oozcitak/url/node_modules/@oozcitak/util": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-1.0.2.tgz", + "integrity": "sha512-4n8B1cWlJleSOSba5gxsMcN4tO8KkkcvXhNWW+ADqvq9Xj+Lrl9uCa90GRpjekqQJyt84aUX015DG81LFpZYXA==", "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.0" } }, - "node_modules/camelize": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", - "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "node_modules/@oozcitak/util": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.4.tgz", + "integrity": "sha512-6gH/bLQJSJEg7OEpkH4wGQdA8KXHRbzL1YkGyUO12YNAgV3jxKy4K9kvfXj4+9T0OLug5k58cnPCKSSIKzp7pg==", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8.0" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "license": "Apache-2.0" - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@openapi-contrib/openapi-schema-to-json-schema": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-5.1.0.tgz", + "integrity": "sha512-MJnq+CxD8JAufiJoa8RK6D/8P45MEBe0teUi30TNoHRrI6MZRNgetK2Y2IfDXWGLTHMopb1d9GHonqlV2Yvztg==", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@types/json-schema": "^7.0.12", + "@types/lodash": "^4.14.195", + "@types/node": "^20.4.1", + "fast-deep-equal": "^3.1.3", + "lodash": "^4.17.21", + "openapi-typescript": "^5.4.1", + "yargs": "^17.7.2" + }, + "bin": { + "openapi-schema-to-json-schema": "dist/bin.js" }, "engines": { - "node": ">=4" + "node": ">=14.0.0" } }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@openapi-contrib/openapi-schema-to-json-schema/node_modules/@types/node": { + "version": "20.17.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.30.tgz", + "integrity": "sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "undici-types": "~6.19.2" } }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" + "node_modules/@openapi-contrib/openapi-schema-to-json-schema/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.38.0.tgz", + "integrity": "sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "node_modules/@supercharge/promise-pool": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-1.7.0.tgz", + "integrity": "sha512-OpnF7oqk6asrOUMhldnDju4RKeZ/iMAfw3LIoLdcTI53RZJLiQ9vEAcGW+bcBELXkiPhT7RqtuPSXAFF2iAmbg==", "license": "MIT", "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "license": "MIT", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" + "engines": { + "node": ">= 6" } }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/color-convert/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "@babel/types": "^7.0.0" } }, - "node_modules/colornames": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz", - "integrity": "sha512-/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A==", - "license": "MIT" - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.1.90" + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, "license": "MIT", "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" + "@babel/types": "^7.20.7" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "@types/node": "*" } }, - "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, "license": "MIT", - "engines": { - "node": "^12.20.0 || >=14" + "dependencies": { + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/core-js-pure": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.41.0.tgz", - "integrity": "sha512-71Gzp96T9YPk63aUvE5Q5qP+DryB4ZloUZPSOebGM88VNw8VNfvdA7z6kGA8iGOTEzAomsRidp4jXSmUIJsL+Q==", - "hasInstallScript": true, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "dependencies": { + "@types/istanbul-lib-report": "*" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "license": "MIT" - }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "license": "MIT" }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "node_modules/@types/lodash": { + "version": "4.17.16", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", + "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", "license": "MIT" }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/@types/node": { + "version": "22.13.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.17.tgz", + "integrity": "sha512-nAJuQXoyPj04uLgu+obZcSmsfOenUg6DxPKogeUy6yNCFwWaj5sBF8/G/pNo8EtBJjAfSVgfIlugR/BCOleO+g==", "license": "MIT", "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" + "undici-types": "~6.20.0" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, "license": "MIT" }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" + "@types/yargs-parser": "*" } }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript/twoslash": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@typescript/twoslash/-/twoslash-3.2.9.tgz", + "integrity": "sha512-nX7hoXawsaRWdxaU6qXF1R8cK1c3buUWecPuSFeU7FNORDp/QN72239m92xQtM9IwqRHra2+00iRrIlHBjjc9Q==", "license": "MIT", "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "@typescript/vfs": "1.6.1", + "debug": "^4.1.1", + "lz-string": "^1.5.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "typescript": "*" } }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "node_modules/@typescript/vfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.1.tgz", + "integrity": "sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==", "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "debug": "^4.1.1" }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10.0.0" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "license": "BSD-3-Clause" + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.4.0" } }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" + "node": ">=0.4.0" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "debug": "4" }, "engines": { - "node": ">= 0.4" + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ajv": "^8.0.0" }, - "engines": { - "node": ">=6.0" + "peerDependencies": { + "ajv": "^8.0.0" }, "peerDependenciesMeta": { - "supports-color": { + "ajv": { "optional": true } } }, - "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", - "license": "MIT" - }, - "node_modules/deep-equal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", - "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "license": "MIT", "dependencies": { - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.5.1" + "type-fest": "^0.21.3" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "license": "MIT" + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/ansi-styles/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.4" + "node": ">=7.0.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 8" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "license": "MIT", - "engines": { - "node": ">=0.4.0" + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/dfa": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", - "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", - "license": "MIT" - }, - "node_modules/diagnostics": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz", - "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "license": "MIT", "dependencies": { - "colorspace": "1.1.x", - "enabled": "1.0.x", - "kuler": "1.0.x" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dijkstrajs": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", - "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", - "license": "MIT" - }, - "node_modules/dingbat-to-unicode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", - "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==", - "license": "BSD-2-Clause" - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "license": "MIT", "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "license": "BSD-2-Clause" - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "deprecated": "Use your platform's native DOMException instead", + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "license": "MIT", "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" + "safer-buffer": "~2.1.0" } }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "license": "BSD-2-Clause", + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "1" + "node": ">=0.8" } }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "license": "BSD-2-Clause", + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "license": "MIT", "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" + "lodash": "^4.17.14" } }, - "node_modules/drange": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", - "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "license": "MIT", "engines": { - "node": ">=4" - } - }, - "node_modules/duck": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz", - "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==", - "license": "BSD", - "dependencies": { - "underscore": "^1.13.1" + "node": ">= 0.4" } }, - "node_modules/duck/node_modules/underscore": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", - "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "possible-typed-array-names": "^1.0.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "license": "Apache-2.0", + "engines": { + "node": "*" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", "license": "MIT" }, - "node_modules/enabled": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", - "integrity": "sha512-nnzgVSpB35qKrUN8358SjO1bYAmxoThECTWw9s3J0x5G8A9hokKHVDFzBjVpCoSryo6MhN8woVyascN5jheaNA==", + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", "license": "MIT", "dependencies": { - "env-variable": "0.0.x" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/ent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", - "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "punycode": "^1.4.1", - "safe-regex-test": "^1.1.0" + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "license": "BSD-2-Clause" - }, - "node_modules/env-variable": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz", - "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==", - "license": "MIT" - }, - "node_modules/error": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/error/-/error-4.4.0.tgz", - "integrity": "sha512-SNDKualLUtT4StGFP7xNfuFybL2f6iJujFtrWuvJqGbVQGaN+adE23veqzPz1hjUjTunLi2EnJ+0SJxtbJreKw==", + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", "dependencies": { - "camelize": "^1.0.0", - "string-template": "~0.2.0", - "xtend": "~4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/browser-or-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-3.0.0.tgz", + "integrity": "sha512-iczIdVJzGEYhP5DqQxYM9Hh7Ztpqqi+CXZpSmX8ALFs9ecXkQIeqRyM6TfxEfMVpwhl3dSuDvxdzzo9sUOIVBQ==", + "license": "MIT" + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "license": "BSD-2-Clause" + }, + "node_modules/browser-split": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/browser-split/-/browser-split-0.0.1.tgz", + "integrity": "sha512-JhvgRb2ihQhsljNda3BI8/UcRHVzrVwo3Q+P8vDtSiyobXuFpuZ9mq+MbRGMnC22CjW3RrfXdg6j6ITX8M+7Ow==", + "license": "MIT" + }, + "node_modules/browserslist": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001723", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001723.tgz", + "integrity": "sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.0" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-convert/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colornames": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz", + "integrity": "sha512-/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A==", + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js-pure": { + "version": "3.41.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.41.0.tgz", + "integrity": "sha512-71Gzp96T9YPk63aUvE5Q5qP+DryB4ZloUZPSOebGM88VNw8VNfvdA7z6kGA8iGOTEzAomsRidp4jXSmUIJsL+Q==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "license": "MIT" + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "license": "MIT" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "license": "MIT", + "dependencies": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", + "license": "MIT" + }, + "node_modules/diagnostics": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz", + "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "1.0.x", + "kuler": "1.0.x" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/dingbat-to-unicode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", + "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==", + "license": "BSD-2-Clause" + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/drange": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", + "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/duck": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz", + "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==", + "license": "BSD", + "dependencies": { + "underscore": "^1.13.1" + } + }, + "node_modules/duck/node_modules/underscore": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "license": "MIT" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.167", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz", + "integrity": "sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/enabled": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", + "integrity": "sha512-nnzgVSpB35qKrUN8358SjO1bYAmxoThECTWw9s3J0x5G8A9hokKHVDFzBjVpCoSryo6MhN8woVyascN5jheaNA==", + "license": "MIT", + "dependencies": { + "env-variable": "0.0.x" + } + }, + "node_modules/ent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", + "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "punycode": "^1.4.1", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "license": "BSD-2-Clause" + }, + "node_modules/env-variable": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz", + "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==", + "license": "MIT" + }, + "node_modules/error": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/error/-/error-4.4.0.tgz", + "integrity": "sha512-SNDKualLUtT4StGFP7xNfuFybL2f6iJujFtrWuvJqGbVQGaN+adE23veqzPz1hjUjTunLi2EnJ+0SJxtbJreKw==", + "dependencies": { + "camelize": "^1.0.0", + "string-template": "~0.2.0", + "xtend": "~4.0.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-ex/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ev-store": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ev-store/-/ev-store-7.0.0.tgz", + "integrity": "sha512-otazchNRnGzp2YarBJ+GXKVGvhxVATB1zmaStxJBYet0Dyq7A9VhH8IUEB/gRcL6Ch52lfpgPTRJ2m49epyMsQ==", + "dependencies": { + "individual": "^3.0.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-3.0.1.tgz", + "integrity": "sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "license": "MIT", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "license": "MIT" + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-to-docx": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/html-to-docx/-/html-to-docx-1.8.0.tgz", + "integrity": "sha512-IiMBWIqXM4+cEsW//RKoonWV7DlXAJBmmKI73XJSVWTIXjGUaxSr2ck1jqzVRZknpvO8xsFnVicldKVAWrBYBA==", + "license": "MIT", + "dependencies": { + "@oozcitak/dom": "1.15.6", + "@oozcitak/util": "8.3.4", + "color-name": "^1.1.4", + "html-entities": "^2.3.3", + "html-to-vdom": "^0.7.0", + "image-size": "^1.0.0", + "image-to-base64": "^2.2.0", + "jszip": "^3.7.1", + "lodash": "^4.17.21", + "mime-types": "^2.1.35", + "nanoid": "^3.1.25", + "virtual-dom": "^2.1.1", + "xmlbuilder2": "2.1.2" + } + }, + "node_modules/html-to-vdom": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/html-to-vdom/-/html-to-vdom-0.7.0.tgz", + "integrity": "sha512-k+d2qNkbx0JO00KezQsNcn6k2I/xSBP4yXYFLvXbcasTTDh+RDLUJS3puxqyNnpdyXWRHFGoKU7cRmby8/APcQ==", + "license": "ISC", + "dependencies": { + "ent": "^2.0.0", + "htmlparser2": "^3.8.2" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ietf-language-tag-regex": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/ietf-language-tag-regex/-/ietf-language-tag-regex-0.0.5.tgz", + "integrity": "sha512-lyPEp+62h6G0DjM5lm4kIkhbbuN2hQnDTXBzIdOCGAcbIdLnYVDg13nBlVAEZZgSKF7JMCPgXjIqcpPhRW1b6A==", + "license": "MIT", + "dependencies": { + "xregexp": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ietf-language-tag-regex/node_modules/xregexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-3.2.0.tgz", + "integrity": "sha512-tWodXkrdYZPGadukpkmhKAbyp37CV5ZiFHacIVPhRZ4/sSt7qtOYHLv2dAqcPN0mBsViY2Qai9JkO7v2TBP6hg==", + "license": "MIT" + }, + "node_modules/image-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz", + "integrity": "sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==", + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/image-to-base64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.2.0.tgz", + "integrity": "sha512-Z+aMwm/91UOQqHhrz7Upre2ytKhWejZlWV/JxUTD1sT7GWWKFDJUEV5scVQKnkzSgPHFuQBUEWcanO+ma0PSVw==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/individual": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/individual/-/individual-3.0.0.tgz", + "integrity": "sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -2709,60 +5793,82 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "license": "MIT", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-object-atoms": { + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "license": "MIT", "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -2771,1092 +5877,1329 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "license": "MIT", "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "optionalDependencies": { - "source-map": "~0.6.1" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/ev-store": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ev-store/-/ev-store-7.0.0.tgz", - "integrity": "sha512-otazchNRnGzp2YarBJ+GXKVGvhxVATB1zmaStxJBYet0Dyq7A9VhH8IUEB/gRcL6Ch52lfpgPTRJ2m49epyMsQ==", - "dependencies": { - "individual": "^3.0.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "license": "MIT" }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "license": "MIT" + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "license": "MIT" + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">=8" } }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.2.7" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "license": "Apache-2.0", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=8" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/get-value": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-3.0.1.tgz", - "integrity": "sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==", + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, "engines": { - "node": ">=6.0" + "node": ">=8" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/globalyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "license": "MIT" + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "license": "MIT" + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "license": "ISC", + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/har-validator/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0" + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.0" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.3" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, "license": "MIT", "dependencies": { - "whatwg-encoding": "^1.0.5" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/html-entities": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", - "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-to-docx": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/html-to-docx/-/html-to-docx-1.8.0.tgz", - "integrity": "sha512-IiMBWIqXM4+cEsW//RKoonWV7DlXAJBmmKI73XJSVWTIXjGUaxSr2ck1jqzVRZknpvO8xsFnVicldKVAWrBYBA==", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "@oozcitak/dom": "1.15.6", - "@oozcitak/util": "8.3.4", - "color-name": "^1.1.4", - "html-entities": "^2.3.3", - "html-to-vdom": "^0.7.0", - "image-size": "^1.0.0", - "image-to-base64": "^2.2.0", - "jszip": "^3.7.1", - "lodash": "^4.17.21", - "mime-types": "^2.1.35", - "nanoid": "^3.1.25", - "virtual-dom": "^2.1.1", - "xmlbuilder2": "2.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/html-to-vdom": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/html-to-vdom/-/html-to-vdom-0.7.0.tgz", - "integrity": "sha512-k+d2qNkbx0JO00KezQsNcn6k2I/xSBP4yXYFLvXbcasTTDh+RDLUJS3puxqyNnpdyXWRHFGoKU7cRmby8/APcQ==", - "license": "ISC", - "dependencies": { - "ent": "^2.0.0", - "htmlparser2": "^3.8.2" + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, "license": "MIT", "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/ietf-language-tag-regex": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/ietf-language-tag-regex/-/ietf-language-tag-regex-0.0.5.tgz", - "integrity": "sha512-lyPEp+62h6G0DjM5lm4kIkhbbuN2hQnDTXBzIdOCGAcbIdLnYVDg13nBlVAEZZgSKF7JMCPgXjIqcpPhRW1b6A==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, "license": "MIT", "dependencies": { - "xregexp": "^3.1.1" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", "engines": { "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/ietf-language-tag-regex/node_modules/xregexp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-3.2.0.tgz", - "integrity": "sha512-tWodXkrdYZPGadukpkmhKAbyp37CV5ZiFHacIVPhRZ4/sSt7qtOYHLv2dAqcPN0mBsViY2Qai9JkO7v2TBP6hg==", - "license": "MIT" + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/image-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz", - "integrity": "sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, "license": "MIT", "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=16.x" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/image-to-base64": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.2.0.tgz", - "integrity": "sha512-Z+aMwm/91UOQqHhrz7Upre2ytKhWejZlWV/JxUTD1sT7GWWKFDJUEV5scVQKnkzSgPHFuQBUEWcanO+ma0PSVw==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, "license": "MIT", "dependencies": { - "node-fetch": "^2.6.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "license": "MIT" - }, - "node_modules/individual": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/individual/-/individual-3.0.0.tgz", - "integrity": "sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==" + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT" + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, "license": "MIT", "dependencies": { - "has-bigints": "^1.0.2" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.16" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "license": "MIT" + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } }, "node_modules/jpeg-exif": { "version": "1.1.4", @@ -3864,6 +7207,13 @@ "integrity": "sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ==", "license": "MIT" }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -3949,6 +7299,19 @@ "node": ">= 6" } }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-colorizer": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/json-colorizer/-/json-colorizer-2.2.2.tgz", @@ -3959,6 +7322,13 @@ "lodash.get": "^4.4.2" } }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -3998,6 +7368,19 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "license": "ISC" }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", @@ -4093,6 +7476,16 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/kuler": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz", @@ -4102,6 +7495,16 @@ "colornames": "^1.1.1" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -4124,6 +7527,13 @@ "immediate": "~3.0.5" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, "node_modules/linkify-it": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", @@ -4133,6 +7543,19 @@ "uc.micro": "^1.0.1" } }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -4217,6 +7640,32 @@ "lz-string": "bin/bin.js" } }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/mammoth": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.9.0.tgz", @@ -4296,6 +7745,27 @@ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", "license": "MIT" }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", @@ -4329,6 +7799,16 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -4337,6 +7817,19 @@ "dom-walk": "^0.1.0" } }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -4397,6 +7890,13 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, "node_modules/next-tick": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz", @@ -4457,6 +7957,43 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nwsapi": { "version": "2.2.20", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", @@ -4529,12 +8066,38 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/one-time": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", "integrity": "sha512-qAMrwuk2xLEutlASoiPiAMW3EN3K96Ka/ilSXYr6qR1zSVXw2j7+yDSqGTC4T9apfLYxM3tLLjKvgPdAUK7kYQ==", "license": "MIT" }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/openapi-typescript": { "version": "5.4.2", "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-5.4.2.tgz", @@ -4595,12 +8158,86 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "license": "(MIT AND Zlib)" }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -4613,6 +8250,16 @@ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "license": "MIT" }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -4622,6 +8269,23 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, "node_modules/pdfjs-dist": { "version": "2.13.216", "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.13.216.tgz", @@ -4639,27 +8303,70 @@ } } }, - "node_modules/pdfmake": { - "version": "0.2.18", - "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.18.tgz", - "integrity": "sha512-Fe+GnMS8EVZu5rci/CDaQ+xmUoHvx8P+rvIlrwSYM6A5c7Aik8G6lpJbddhjBE2jXGjv6WcUCFCB06uZbjxkMw==", + "node_modules/pdfmake": { + "version": "0.2.18", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.18.tgz", + "integrity": "sha512-Fe+GnMS8EVZu5rci/CDaQ+xmUoHvx8P+rvIlrwSYM6A5c7Aik8G6lpJbddhjBE2jXGjv6WcUCFCB06uZbjxkMw==", + "license": "MIT", + "dependencies": { + "@foliojs-fork/linebreak": "^1.1.2", + "@foliojs-fork/pdfkit": "^0.15.3", + "iconv-lite": "^0.6.3", + "xmldoc": "^1.3.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, "license": "MIT", "dependencies": { - "@foliojs-fork/linebreak": "^1.1.2", - "@foliojs-fork/pdfkit": "^0.15.3", - "iconv-lite": "^0.6.3", - "xmldoc": "^1.3.0" + "find-up": "^4.0.0" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" - }, "node_modules/pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", @@ -4706,6 +8413,34 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -4721,6 +8456,20 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "license": "MIT" }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -4754,6 +8503,23 @@ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "license": "MIT" }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, "node_modules/qs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", @@ -4791,6 +8557,13 @@ "node": ">=4" } }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -4946,6 +8719,60 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "license": "MIT" }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/ret": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", @@ -5127,6 +8954,29 @@ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "license": "MIT" }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", @@ -5199,6 +9049,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -5208,6 +9065,13 @@ "is-arrayish": "^0.3.1" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -5221,12 +9085,23 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, "license": "BSD-3-Clause", - "optional": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -5267,6 +9142,29 @@ "node": "*" } }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/static-eval": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", @@ -5316,6 +9214,20 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/string-template": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", @@ -5403,6 +9315,39 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5415,6 +9360,19 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -5447,6 +9405,21 @@ "node": ">=18" } }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", @@ -5469,6 +9442,26 @@ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", "license": "MIT" }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/to-words": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/to-words/-/to-words-4.4.0.tgz", @@ -5579,6 +9572,29 @@ "node": ">= 0.8.0" } }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/type-of": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", @@ -5777,6 +9793,37 @@ "node": ">= 4.0.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5830,6 +9877,21 @@ "uuid": "dist/esm/bin/uuid" } }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -5882,6 +9944,16 @@ "node": ">=10" } }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, "node_modules/web-streams-polyfill": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", @@ -5941,6 +10013,22 @@ "node": ">=10" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/which-boxed-primitive": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", @@ -6086,6 +10174,27 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -6264,6 +10373,19 @@ "engines": { "node": ">=12" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index e37570d..abf332f 100644 --- a/package.json +++ b/package.json @@ -3,16 +3,39 @@ "version": "1.0.0", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "node index.js" + "test": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage", + "start": "node index.js", + "draft": "node --no-deprecation draft.js data/template-basic.json", + "draft:low": "node --no-deprecation draft.js data/template-low-penalty.json", + "draft:high": "node --no-deprecation draft.js data/template-high-penalty.json", + "trigger": "node --no-deprecation trigger.js data/template-basic.json data/request-basic.json", + "trigger:low": "node --no-deprecation trigger.js data/template-low-penalty.json data/request-low-value.json", + "trigger:high": "node --no-deprecation trigger.js data/template-high-penalty.json data/request-high-value.json", + "test-values": "node --no-deprecation test-different-values.js", + "list": "node --no-deprecation list-data-files.js" }, "author": "", "license": "ISC", "description": "", "devDependencies": { + "jest": "^29.7.0" }, "dependencies": { "@accordproject/cicero-core": "0.25.1-20250328175253", "@accordproject/template-engine": "^2.6.7" + }, + "jest": { + "testEnvironment": "node", + "collectCoverageFrom": [ + "*.js", + "!node_modules/**" + ], + "coverageReporters": [ + "text", + "lcov", + "html" + ] } } diff --git a/test-different-values.js b/test-different-values.js new file mode 100644 index 0000000..cef0fb7 --- /dev/null +++ b/test-different-values.js @@ -0,0 +1,124 @@ +const { TemplateArchiveProcessor } = require("@accordproject/template-engine"); +const { Template } = require("@accordproject/cicero-core"); + +const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript"; + +async function testWithDifferentValues() { + console.log("Testing with Different Values...\n"); + + try { + const template = await Template.fromDirectory(TEMPLATE_PATH); + const templateArchiveProcessor = new TemplateArchiveProcessor(template); + + // Test scenarios with different values + const testScenarios = [ + { + name: "Low Value Goods", + templateData: { + $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + forceMajeure: false, + penaltyDuration: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 1, + unit: "days", + }, + penaltyPercentage: 5.0, + capPercentage: 25, + termination: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 30, + unit: "days", + }, + fractionalPart: "days", + clauseId: "test-1", + $identifier: "test-1", + }, + requestData: { goodsValue: 50 }, + }, + { + name: "High Value Goods", + templateData: { + $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + forceMajeure: true, + penaltyDuration: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 3, + unit: "days", + }, + penaltyPercentage: 15.0, + capPercentage: 50, + termination: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 7, + unit: "days", + }, + fractionalPart: "hours", + clauseId: "test-2", + $identifier: "test-2", + }, + requestData: { goodsValue: 1000 }, + }, + { + name: "Zero Value Test", + templateData: { + $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", + forceMajeure: false, + penaltyDuration: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 2, + unit: "weeks", + }, + penaltyPercentage: 20.0, + capPercentage: 75, + termination: { + $class: "org.accordproject.time@0.3.0.Duration", + amount: 1, + unit: "months", + }, + fractionalPart: "days", + clauseId: "test-3", + $identifier: "test-3", + }, + requestData: { goodsValue: 0 }, + }, + ]; + + for (let i = 0; i < testScenarios.length; i++) { + const scenario = testScenarios[i]; + console.log(`\nTest ${i + 1}: ${scenario.name}`); + console.log("─".repeat(40)); + + // Test both draft and trigger for each scenario + console.log("Draft Output:"); + const draftResult = await templateArchiveProcessor.draft( + scenario.templateData, + "markdown", + { verbose: false } + ); + console.log(draftResult.substring(0, 200) + "...\n"); + + console.log("Trigger Response:"); + const triggerResponse = await templateArchiveProcessor.trigger( + scenario.templateData, + scenario.requestData + ); + console.log(`Penalty: $${triggerResponse.penalty}`); + console.log(`Buyer May Terminate: ${triggerResponse.buyerMayTerminate}`); + console.log( + `Penalty Rate: ${scenario.templateData.penaltyPercentage}% | Goods Value: $${scenario.requestData.goodsValue}` + ); + + if (i < testScenarios.length - 1) { + console.log("\n" + "=".repeat(60)); + } + } + + console.log("\nAll test scenarios completed successfully!"); + } catch (error) { + console.error("Error in test scenarios:", error.message); + process.exit(1); + } +} + +// Run the test scenarios +testWithDifferentValues(); diff --git a/trigger.js b/trigger.js new file mode 100644 index 0000000..2e1486b --- /dev/null +++ b/trigger.js @@ -0,0 +1,114 @@ +const { TemplateArchiveProcessor } = require("@accordproject/template-engine"); +const { Template } = require("@accordproject/cicero-core"); +const fs = require("fs"); +const path = require("path"); + +const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript"; + +function loadJsonFile(filePath) { + try { + const fullPath = path.resolve(filePath); + const fileContent = fs.readFileSync(fullPath, "utf8"); + return JSON.parse(fileContent); + } catch (error) { + console.error(`Error loading JSON file '${filePath}':`, error.message); + process.exit(1); + } +} + +function showUsage() { + console.log( + "Usage: node trigger.js " + ); + console.log("\nExample:"); + console.log( + " node trigger.js data/template-basic.json data/request-basic.json" + ); + console.log( + " node trigger.js data/template-low-penalty.json data/request-high-value.json" + ); + console.log("\nAvailable files:"); + console.log(" Template data files:"); + console.log( + " - data/template-basic.json (10.5% penalty, 15 day termination)" + ); + console.log( + " - data/template-low-penalty.json (5% penalty, 30 day termination)" + ); + console.log( + " - data/template-high-penalty.json (15% penalty, 7 day termination)" + ); + console.log(" Request data files:"); + console.log(" - data/request-basic.json ($100 goods value)"); + console.log(" - data/request-low-value.json ($50 goods value)"); + console.log(" - data/request-high-value.json ($1000 goods value)"); +} + +async function trigger() { + const args = process.argv.slice(2); + + if (args.length === 0) { + console.log("No data files specified.\n"); + showUsage(); + process.exit(1); + } + + if (args[0] === "--help" || args[0] === "-h") { + showUsage(); + process.exit(0); + } + + if (args.length < 2) { + console.log( + "Both template data file and request data file are required.\n" + ); + showUsage(); + process.exit(1); + } + + const templateDataFile = args[0]; + const requestDataFile = args[1]; + + console.log(`Running TRIGGER operation:`); + console.log(` Template data: ${templateDataFile}`); + console.log(` Request data: ${requestDataFile}\n`); + + try { + const template = await Template.fromDirectory(TEMPLATE_PATH); + const templateArchiveProcessor = new TemplateArchiveProcessor(template); + + // Load template data (the contract parameters) + const data = loadJsonFile(templateDataFile); + + // Load request data (the input for the business logic) + const request = loadJsonFile(requestDataFile); + + console.log("\nInput Data:"); + console.log("=".repeat(50)); + console.log("Template Data:", JSON.stringify(data, null, 2)); + console.log("\nRequest Data:", JSON.stringify(request, null, 2)); + + const response = await templateArchiveProcessor.trigger(data, request); + + console.log("\nBusiness Logic Response:"); + console.log("=".repeat(50)); + console.log(JSON.stringify(response, null, 2)); + + // Show calculation details + if (response && response.penalty !== undefined) { + console.log("\nCalculation Details:"); + console.log(`Penalty Rate: ${data.penaltyPercentage}%`); + console.log(`Goods Value: $${request.goodsValue}`); + console.log(`Calculated Penalty: $${response.penalty}`); + console.log(`Buyer May Terminate: ${response.buyerMayTerminate}`); + } + + console.log("\nTrigger operation completed successfully!\n"); + } catch (error) { + console.error("Error in trigger operation:", error.message); + process.exit(1); + } +} + +// Run the trigger operation +trigger(); From cae385e0a5057573957d8041a1fe16dfbd032077 Mon Sep 17 00:00:00 2001 From: Martin Halford Date: Sat, 14 Jun 2025 18:24:30 +0100 Subject: [PATCH 2/4] chore(tests): remove coverage code, not calculating test coverage correctly. Signed-off-by: Martin Halford --- README.md | 5 +- .../halfordit/demo-template/draft.js.html | 319 ------------ .../halfordit/demo-template/index.html | 176 ------- .../halfordit/demo-template/index.js.html | 280 ----------- .../demo-template/list-data-files.js.html | 319 ------------ .../test-different-values.js.html | 457 ------------------ .../halfordit/demo-template/trigger.js.html | 427 ---------------- coverage/base.css | 224 --------- coverage/block-navigation.js | 87 ---- coverage/draft.js.html | 319 ------------ coverage/favicon.png | Bin 445 -> 0 bytes .../markdown-docx/src/DocxTransformer.js.html | 118 ----- .../packages/markdown-docx/src/index.html | 116 ----- .../markdown-html/src/HtmlTransformer.js.html | 118 ----- .../src/ToCiceroMarkVisitor.js.html | 118 ----- .../src/ToHtmlStringVisitor.js.html | 118 ----- .../markdown-html/src/helpers.js.html | 118 ----- .../packages/markdown-html/src/index.html | 176 ------- .../packages/markdown-html/src/rules.js.html | 118 ----- .../src/CiceroMarkToPdfMakeVisitor.js.html | 118 ----- .../markdown-pdf/src/PdfTransformer.js.html | 118 ----- .../src/PdfTransformerBase.js.html | 118 ----- .../src/TemplateMarkToPdfMakeVisitor.js.html | 118 ----- .../markdown-pdf/src/ToCiceroMark.js.html | 118 ----- .../markdown-pdf/src/ToPdfMake.js.html | 118 ----- .../markdown-pdf/src/ToPdfMakeVisitor.js.html | 118 ----- .../markdown-pdf/src/ciceromarkrules.js.html | 118 ----- .../markdown-pdf/src/commonmarkrules.js.html | 118 ----- .../markdown-pdf/src/domstubs.js.html | 118 ----- .../packages/markdown-pdf/src/index.html | 281 ----------- .../markdown-pdf/src/pdfmakeutil.js.html | 118 ----- .../src/templatemarkrules.js.html | 118 ----- coverage/index.html | 176 ------- coverage/index.js.html | 280 ----------- .../halfordit/demo-template/draft.js.html | 319 ------------ .../halfordit/demo-template/index.html | 176 ------- .../halfordit/demo-template/index.js.html | 280 ----------- .../demo-template/list-data-files.js.html | 319 ------------ .../test-different-values.js.html | 457 ------------------ .../halfordit/demo-template/trigger.js.html | 427 ---------------- coverage/lcov-report/base.css | 224 --------- coverage/lcov-report/block-navigation.js | 87 ---- coverage/lcov-report/draft.js.html | 319 ------------ coverage/lcov-report/favicon.png | Bin 445 -> 0 bytes .../markdown-docx/src/DocxTransformer.js.html | 118 ----- .../packages/markdown-docx/src/index.html | 116 ----- .../markdown-html/src/HtmlTransformer.js.html | 118 ----- .../src/ToCiceroMarkVisitor.js.html | 118 ----- .../src/ToHtmlStringVisitor.js.html | 118 ----- .../markdown-html/src/helpers.js.html | 118 ----- .../packages/markdown-html/src/index.html | 176 ------- .../packages/markdown-html/src/rules.js.html | 118 ----- .../src/CiceroMarkToPdfMakeVisitor.js.html | 118 ----- .../markdown-pdf/src/PdfTransformer.js.html | 118 ----- .../src/PdfTransformerBase.js.html | 118 ----- .../src/TemplateMarkToPdfMakeVisitor.js.html | 118 ----- .../markdown-pdf/src/ToCiceroMark.js.html | 118 ----- .../markdown-pdf/src/ToPdfMake.js.html | 118 ----- .../markdown-pdf/src/ToPdfMakeVisitor.js.html | 118 ----- .../markdown-pdf/src/ciceromarkrules.js.html | 118 ----- .../markdown-pdf/src/commonmarkrules.js.html | 118 ----- .../markdown-pdf/src/domstubs.js.html | 118 ----- .../packages/markdown-pdf/src/index.html | 281 ----------- .../markdown-pdf/src/pdfmakeutil.js.html | 118 ----- .../src/templatemarkrules.js.html | 118 ----- coverage/lcov-report/index.html | 176 ------- coverage/lcov-report/index.js.html | 280 ----------- coverage/lcov-report/list-data-files.js.html | 319 ------------ coverage/lcov-report/prettify.css | 1 - coverage/lcov-report/prettify.js | 2 - coverage/lcov-report/sort-arrow-sprite.png | Bin 138 -> 0 bytes coverage/lcov-report/sorter.js | 196 -------- .../lcov-report/test-different-values.js.html | 457 ------------------ coverage/lcov-report/trigger.js.html | 427 ---------------- coverage/lcov.info | 298 ------------ coverage/list-data-files.js.html | 319 ------------ coverage/prettify.css | 1 - coverage/prettify.js | 2 - coverage/sort-arrow-sprite.png | Bin 138 -> 0 bytes coverage/sorter.js | 196 -------- coverage/test-different-values.js.html | 457 ------------------ coverage/trigger.js.html | 427 ---------------- package.json | 12 +- 83 files changed, 3 insertions(+), 14638 deletions(-) delete mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/draft.js.html delete mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/index.html delete mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/index.js.html delete mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html delete mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html delete mode 100644 coverage/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html delete mode 100644 coverage/base.css delete mode 100644 coverage/block-navigation.js delete mode 100644 coverage/draft.js.html delete mode 100644 coverage/favicon.png delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html delete mode 100644 coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html delete mode 100644 coverage/index.html delete mode 100644 coverage/index.js.html delete mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/draft.js.html delete mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.html delete mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.js.html delete mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html delete mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html delete mode 100644 coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html delete mode 100644 coverage/lcov-report/base.css delete mode 100644 coverage/lcov-report/block-navigation.js delete mode 100644 coverage/lcov-report/draft.js.html delete mode 100644 coverage/lcov-report/favicon.png delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html delete mode 100644 coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html delete mode 100644 coverage/lcov-report/index.html delete mode 100644 coverage/lcov-report/index.js.html delete mode 100644 coverage/lcov-report/list-data-files.js.html delete mode 100644 coverage/lcov-report/prettify.css delete mode 100644 coverage/lcov-report/prettify.js delete mode 100644 coverage/lcov-report/sort-arrow-sprite.png delete mode 100644 coverage/lcov-report/sorter.js delete mode 100644 coverage/lcov-report/test-different-values.js.html delete mode 100644 coverage/lcov-report/trigger.js.html delete mode 100644 coverage/lcov.info delete mode 100644 coverage/list-data-files.js.html delete mode 100644 coverage/prettify.css delete mode 100644 coverage/prettify.js delete mode 100644 coverage/sort-arrow-sprite.png delete mode 100644 coverage/sorter.js delete mode 100644 coverage/test-different-values.js.html delete mode 100644 coverage/trigger.js.html diff --git a/README.md b/README.md index 7b57a22..677f68f 100644 --- a/README.md +++ b/README.md @@ -136,9 +136,6 @@ Comprehensive test suite with CLI integration testing: # Run all tests npm test -# Run with coverage report -npm run test:coverage - # Run in watch mode npm run test:watch @@ -153,6 +150,8 @@ npm test __tests__/trigger.test.js - **Edge Cases** - Boundary conditions, different data formats - **Output Validation** - Correct formatting, exit codes, error messages +Note: Coverage metrics are not meaningful for CLI tools tested via process spawning. The integration tests provide comprehensive validation of real-world usage scenarios. + ## Example Scenarios | Template | Request | Expected Penalty | Use Case | diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/draft.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/draft.js.html deleted file mode 100644 index e0d75df..0000000 --- a/coverage/Users/martinhalford/Development/halfordit/demo-template/draft.js.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/draft.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template draft.js

-
- -
- 68.18% - Statements - 30/44 -
- - -
- 66.66% - Branches - 4/6 -
- - -
- 66.66% - Functions - 2/3 -
- - -
- 68.18% - Lines - 30/44 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -792x -2x -2x -2x -  -2x -  -  -2x -2x -2x -2x -  -1x -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -2x -  -  -  -  -  -2x -  -  -  -  -2x -2x -  -  -  -2x -2x -2x -  -2x -  -1x -1x -  -  -  -  -  -1x -1x -1x -1x -1x -  -1x -1x -  -  -  -2x - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
-const fs = require("fs");
-const path = require("path");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-function loadJsonFile(filePath) {
-  try {
-    const fullPath = path.resolve(filePath);
-    const fileContent = fs.readFileSync(fullPath, "utf8");
-    return JSON.parse(fileContent);
-  } catch (error) {
-    console.error(`Error loading JSON file '${filePath}':`, error.message);
-    process.exit(1);
-  }
-}
- 
-function showUsage() {
-  console.log("Usage: node draft.js <template-data-file>");
-  console.log("\nExample:");
-  console.log("  node draft.js data/template-basic.json");
-  console.log("  node draft.js data/template-low-penalty.json");
-  console.log("  node draft.js data/template-high-penalty.json");
-  console.log("\nAvailable template data files:");
-  console.log("  - data/template-basic.json      (default scenario)");
-  console.log(
-    "  - data/template-low-penalty.json (5% penalty, 30 day termination)"
-  );
-  console.log(
-    "  - data/template-high-penalty.json (15% penalty, 7 day termination)"
-  );
-}
- 
-async function draft() {
-  const args = process.argv.slice(2);
- 
-  Iif (args.length === 0) {
-    console.log("No template data file specified.\n");
-    showUsage();
-    process.exit(1);
-  }
- 
-  Iif (args[0] === "--help" || args[0] === "-h") {
-    showUsage();
-    process.exit(0);
-  }
- 
-  const templateDataFile = args[0];
-  console.log(
-    `Running DRAFT operation with template data: ${templateDataFile}\n`
-  );
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    const data = loadJsonFile(templateDataFile);
- 
-    const options = { verbose: false };
-    const result = await templateArchiveProcessor.draft(
-      data,
-      "markdown",
-      options
-    );
- 
-    console.log("\n\nContract Draft:");
-    console.log("____________________\n");
-    console.log(result);
-    console.log("____________________\n");
-    console.log("\nDraft operation completed successfully!\n");
-  } catch (error) {
-    console.error("Error in draft operation:", error.message);
-    process.exit(1);
-  }
-}
- 
-draft();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/index.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/index.html deleted file mode 100644 index 6fd31c8..0000000 --- a/coverage/Users/martinhalford/Development/halfordit/demo-template/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template - - - - - - - - - -
-
-

All files Users/martinhalford/Development/halfordit/demo-template

-
- -
- 78.71% - Statements - 159/202 -
- - -
- 66.66% - Branches - 16/24 -
- - -
- 86.66% - Functions - 13/15 -
- - -
- 78.39% - Lines - 156/199 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
draft.js -
-
68.18%30/4466.66%4/666.66%2/368.18%30/44
index.js -
-
100%19/19100%0/0100%2/2100%19/19
list-data-files.js -
-
87.5%42/4850%2/4100%6/686.95%40/46
test-different-values.js -
-
92.59%25/27100%2/2100%1/192.3%24/26
trigger.js -
-
67.18%43/6466.66%8/1266.66%2/367.18%43/64
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/index.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/index.js.html deleted file mode 100644 index 9e35565..0000000 --- a/coverage/Users/martinhalford/Development/halfordit/demo-template/index.js.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/index.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template index.js

-
- -
- 100% - Statements - 19/19 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 2/2 -
- - -
- 100% - Lines - 19/19 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -662x -2x -  -2x -  -  -2x -2x -2x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -  -2x -2x -2x -  -  -  -2x -2x -2x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -2x -2x -2x -  -  -2x -2x - 
const { TemplateArchiveProcessor } = require('@accordproject/template-engine');
-const { Template } = require('@accordproject/cicero-core');
- 
-const TEMPLATE_PATH = './archives/latedeliveryandpenalty-typescript';
- 
-async function trigger() {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
-    const data = {
-        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-        "forceMajeure": true,
-        "penaltyDuration": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 2,
-            "unit": "days"
-        },
-        "penaltyPercentage": 10.5,
-        "capPercentage": 55,
-        "termination": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 15,
-            "unit": "days"
-        },
-        "fractionalPart": "days",
-        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
-        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
-    };
-    const request = {
-        goodsValue: 100
-    };
-    const response = await templateArchiveProcessor.trigger(data, request);
-    console.log('\nTrigger response:');
-    console.log(JSON.stringify(response, null, 2));
-}
- 
-async function draft() {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
-    const data = {
-        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-        "forceMajeure": true,
-        "penaltyDuration": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 2,
-            "unit": "days"
-        },
-        "penaltyPercentage": 10.5,
-        "capPercentage": 55,
-        "termination": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 15,
-            "unit": "days"
-        },
-        "fractionalPart": "days",
-        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
-        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
-    };
-    const options = {verbose: false};
-    const result = await templateArchiveProcessor.draft(data, 'markdown', options);
-    console.log('\Contract draft:');
-    console.log(result);
-}
- 
-draft();
-trigger();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html deleted file mode 100644 index c2ac388..0000000 --- a/coverage/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/list-data-files.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template list-data-files.js

-
- -
- 87.5% - Statements - 42/48 -
- - -
- 50% - Branches - 2/4 -
- - -
- 100% - Functions - 6/6 -
- - -
- 86.95% - Lines - 40/46 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -792x -2x -  -  -2x -  -2x -  -2x -  -  -  -  -2x -  -14x -  -2x -  -  -  -  -  -12x -12x -  -2x -2x -  -2x -6x -6x -6x -6x -6x -6x -  -  -6x -6x -  -  -6x -6x -  -  -  -  -  -2x -2x -  -2x -6x -6x -6x -6x -6x -6x -  -  -  -  -  -2x -2x -2x -2x -2x -2x -  -  -2x -  -  -  -  -2x - 
const fs = require("fs");
-const path = require("path");
- 
-function listDataFiles() {
-  console.log("Available Data Files\n");
- 
-  const dataDir = "./data";
- 
-  Iif (!fs.existsSync(dataDir)) {
-    console.log("Data directory not found!");
-    return;
-  }
- 
-  const files = fs
-    .readdirSync(dataDir)
-    .filter((file) => file.endsWith(".json"));
- 
-  Iif (files.length === 0) {
-    console.log("No JSON files found in data directory!");
-    return;
-  }
- 
-  // Separate template and request files
-  const templateFiles = files.filter((file) => file.startsWith("template-"));
-  const requestFiles = files.filter((file) => file.startsWith("request-"));
- 
-  console.log("Template Data Files:");
-  console.log("─".repeat(50));
- 
-  templateFiles.forEach((file) => {
-    try {
-      const filePath = path.join(dataDir, file);
-      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
-      console.log(`${file}`);
-      console.log(`   Penalty: ${data.penaltyPercentage}%`);
-      console.log(
-        `   Termination: ${data.termination.amount} ${data.termination.unit}`
-      );
-      console.log(`   Force Majeure: ${data.forceMajeure}`);
-      console.log(
-        `   Penalty Duration: ${data.penaltyDuration.amount} ${data.penaltyDuration.unit}`
-      );
-      console.log(`   Cap: ${data.capPercentage}%`);
-      console.log();
-    } catch (error) {
-      console.log(`Error reading ${file}: ${error.message}`);
-    }
-  });
- 
-  console.log("Request Data Files:");
-  console.log("─".repeat(50));
- 
-  requestFiles.forEach((file) => {
-    try {
-      const filePath = path.join(dataDir, file);
-      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
-      console.log(`${file}`);
-      console.log(`   Goods Value: $${data.goodsValue}`);
-      console.log();
-    } catch (error) {
-      console.log(`Error reading ${file}: ${error.message}`);
-    }
-  });
- 
-  console.log("Example Commands:");
-  console.log("─".repeat(50));
-  console.log("npm run draft:low");
-  console.log("npm run trigger:high");
-  console.log("node draft.js data/template-basic.json");
-  console.log(
-    "node trigger.js data/template-high-penalty.json data/request-low-value.json"
-  );
-  console.log(
-    "\nFor more help: node draft.js --help or node trigger.js --help"
-  );
-}
- 
-listDataFiles();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html deleted file mode 100644 index d9000d4..0000000 --- a/coverage/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/test-different-values.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template test-different-values.js

-
- -
- 92.59% - Statements - 25/27 -
- - -
- 100% - Branches - 2/2 -
- - -
- 100% - Functions - 1/1 -
- - -
- 92.3% - Lines - 24/26 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -1252x -2x -  -2x -  -  -2x -  -2x -2x -2x -  -  -2x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -6x -6x -6x -  -  -6x -6x -  -  -  -  -6x -  -6x -6x -  -  -  -6x -6x -6x -  -  -  -6x -4x -  -  -  -2x -  -  -  -  -  -  -  -2x - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-async function testWithDifferentValues() {
-  console.log("Testing with Different Values...\n");
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    // Test scenarios with different values
-    const testScenarios = [
-      {
-        name: "Low Value Goods",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: false,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 1,
-            unit: "days",
-          },
-          penaltyPercentage: 5.0,
-          capPercentage: 25,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 30,
-            unit: "days",
-          },
-          fractionalPart: "days",
-          clauseId: "test-1",
-          $identifier: "test-1",
-        },
-        requestData: { goodsValue: 50 },
-      },
-      {
-        name: "High Value Goods",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: true,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 3,
-            unit: "days",
-          },
-          penaltyPercentage: 15.0,
-          capPercentage: 50,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 7,
-            unit: "days",
-          },
-          fractionalPart: "hours",
-          clauseId: "test-2",
-          $identifier: "test-2",
-        },
-        requestData: { goodsValue: 1000 },
-      },
-      {
-        name: "Zero Value Test",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: false,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 2,
-            unit: "weeks",
-          },
-          penaltyPercentage: 20.0,
-          capPercentage: 75,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 1,
-            unit: "months",
-          },
-          fractionalPart: "days",
-          clauseId: "test-3",
-          $identifier: "test-3",
-        },
-        requestData: { goodsValue: 0 },
-      },
-    ];
- 
-    for (let i = 0; i < testScenarios.length; i++) {
-      const scenario = testScenarios[i];
-      console.log(`\nTest ${i + 1}: ${scenario.name}`);
-      console.log("─".repeat(40));
- 
-      // Test both draft and trigger for each scenario
-      console.log("Draft Output:");
-      const draftResult = await templateArchiveProcessor.draft(
-        scenario.templateData,
-        "markdown",
-        { verbose: false }
-      );
-      console.log(draftResult.substring(0, 200) + "...\n");
- 
-      console.log("Trigger Response:");
-      const triggerResponse = await templateArchiveProcessor.trigger(
-        scenario.templateData,
-        scenario.requestData
-      );
-      console.log(`Penalty: $${triggerResponse.penalty}`);
-      console.log(`Buyer May Terminate: ${triggerResponse.buyerMayTerminate}`);
-      console.log(
-        `Penalty Rate: ${scenario.templateData.penaltyPercentage}% | Goods Value: $${scenario.requestData.goodsValue}`
-      );
- 
-      if (i < testScenarios.length - 1) {
-        console.log("\n" + "=".repeat(60));
-      }
-    }
- 
-    console.log("\nAll test scenarios completed successfully!");
-  } catch (error) {
-    console.error("Error in test scenarios:", error.message);
-    process.exit(1);
-  }
-}
- 
-// Run the test scenarios
-testWithDifferentValues();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html b/coverage/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html deleted file mode 100644 index e4e5c53..0000000 --- a/coverage/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/trigger.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template trigger.js

-
- -
- 67.18% - Statements - 43/64 -
- - -
- 66.66% - Branches - 8/12 -
- - -
- 66.66% - Functions - 2/3 -
- - -
- 67.18% - Lines - 43/64 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -1152x -2x -2x -2x -  -2x -  -  -3x -3x -3x -3x -  -1x -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -2x -  -  -  -  -  -2x -  -  -  -  -2x -  -  -  -  -  -  -  -2x -2x -  -2x -2x -2x -  -2x -2x -2x -  -  -2x -  -  -1x -  -1x -1x -1x -1x -  -1x -  -1x -1x -1x -  -  -1x -1x -1x -1x -1x -1x -  -  -1x -  -1x -1x -  -  -  -  -2x - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
-const fs = require("fs");
-const path = require("path");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-function loadJsonFile(filePath) {
-  try {
-    const fullPath = path.resolve(filePath);
-    const fileContent = fs.readFileSync(fullPath, "utf8");
-    return JSON.parse(fileContent);
-  } catch (error) {
-    console.error(`Error loading JSON file '${filePath}':`, error.message);
-    process.exit(1);
-  }
-}
- 
-function showUsage() {
-  console.log(
-    "Usage: node trigger.js <template-data-file> <request-data-file>"
-  );
-  console.log("\nExample:");
-  console.log(
-    "  node trigger.js data/template-basic.json data/request-basic.json"
-  );
-  console.log(
-    "  node trigger.js data/template-low-penalty.json data/request-high-value.json"
-  );
-  console.log("\nAvailable files:");
-  console.log("  Template data files:");
-  console.log(
-    "    - data/template-basic.json      (10.5% penalty, 15 day termination)"
-  );
-  console.log(
-    "    - data/template-low-penalty.json (5% penalty, 30 day termination)"
-  );
-  console.log(
-    "    - data/template-high-penalty.json (15% penalty, 7 day termination)"
-  );
-  console.log("  Request data files:");
-  console.log("    - data/request-basic.json       ($100 goods value)");
-  console.log("    - data/request-low-value.json   ($50 goods value)");
-  console.log("    - data/request-high-value.json  ($1000 goods value)");
-}
- 
-async function trigger() {
-  const args = process.argv.slice(2);
- 
-  Iif (args.length === 0) {
-    console.log("No data files specified.\n");
-    showUsage();
-    process.exit(1);
-  }
- 
-  Iif (args[0] === "--help" || args[0] === "-h") {
-    showUsage();
-    process.exit(0);
-  }
- 
-  Iif (args.length < 2) {
-    console.log(
-      "Both template data file and request data file are required.\n"
-    );
-    showUsage();
-    process.exit(1);
-  }
- 
-  const templateDataFile = args[0];
-  const requestDataFile = args[1];
- 
-  console.log(`Running TRIGGER operation:`);
-  console.log(`   Template data: ${templateDataFile}`);
-  console.log(`   Request data:  ${requestDataFile}\n`);
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    // Load template data (the contract parameters)
-    const data = loadJsonFile(templateDataFile);
- 
-    // Load request data (the input for the business logic)
-    const request = loadJsonFile(requestDataFile);
- 
-    console.log("\nInput Data:");
-    console.log("=".repeat(50));
-    console.log("Template Data:", JSON.stringify(data, null, 2));
-    console.log("\nRequest Data:", JSON.stringify(request, null, 2));
- 
-    const response = await templateArchiveProcessor.trigger(data, request);
- 
-    console.log("\nBusiness Logic Response:");
-    console.log("=".repeat(50));
-    console.log(JSON.stringify(response, null, 2));
- 
-    // Show calculation details
-    Eif (response && response.penalty !== undefined) {
-      console.log("\nCalculation Details:");
-      console.log(`Penalty Rate: ${data.penaltyPercentage}%`);
-      console.log(`Goods Value: $${request.goodsValue}`);
-      console.log(`Calculated Penalty: $${response.penalty}`);
-      console.log(`Buyer May Terminate: ${response.buyerMayTerminate}`);
-    }
- 
-    console.log("\nTrigger operation completed successfully!\n");
-  } catch (error) {
-    console.error("Error in trigger operation:", error.message);
-    process.exit(1);
-  }
-}
- 
-// Run the trigger operation
-trigger();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/base.css b/coverage/base.css deleted file mode 100644 index f418035..0000000 --- a/coverage/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/coverage/block-navigation.js b/coverage/block-navigation.js deleted file mode 100644 index cc12130..0000000 --- a/coverage/block-navigation.js +++ /dev/null @@ -1,87 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selecter that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } - - makeCurrent(nextIndex); - } - - function goToNext() { - var nextIndex = 0; - - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } - - makeCurrent(nextIndex); - } - - return function jump(event) { - if ( - document.getElementById('fileSearch') === document.activeElement && - document.activeElement != null - ) { - // if we're currently focused on the search input, we don't want to navigate - return; - } - - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; -})(); -window.addEventListener('keydown', jumpToCode); diff --git a/coverage/draft.js.html b/coverage/draft.js.html deleted file mode 100644 index 23247ec..0000000 --- a/coverage/draft.js.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - Code coverage report for draft.js - - - - - - - - - -
-
-

All files draft.js

-
- -
- 0% - Statements - 0/44 -
- - -
- 0% - Branches - 0/6 -
- - -
- 0% - Functions - 0/3 -
- - -
- 0% - Lines - 0/44 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
-const fs = require("fs");
-const path = require("path");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-function loadJsonFile(filePath) {
-  try {
-    const fullPath = path.resolve(filePath);
-    const fileContent = fs.readFileSync(fullPath, "utf8");
-    return JSON.parse(fileContent);
-  } catch (error) {
-    console.error(`Error loading JSON file '${filePath}':`, error.message);
-    process.exit(1);
-  }
-}
- 
-function showUsage() {
-  console.log("Usage: node draft.js <template-data-file>");
-  console.log("\nExample:");
-  console.log("  node draft.js data/template-basic.json");
-  console.log("  node draft.js data/template-low-penalty.json");
-  console.log("  node draft.js data/template-high-penalty.json");
-  console.log("\nAvailable template data files:");
-  console.log("  - data/template-basic.json      (default scenario)");
-  console.log(
-    "  - data/template-low-penalty.json (5% penalty, 30 day termination)"
-  );
-  console.log(
-    "  - data/template-high-penalty.json (15% penalty, 7 day termination)"
-  );
-}
- 
-async function draft() {
-  const args = process.argv.slice(2);
- 
-  if (args.length === 0) {
-    console.log("No template data file specified.\n");
-    showUsage();
-    process.exit(1);
-  }
- 
-  if (args[0] === "--help" || args[0] === "-h") {
-    showUsage();
-    process.exit(0);
-  }
- 
-  const templateDataFile = args[0];
-  console.log(
-    `Running DRAFT operation with template data: ${templateDataFile}\n`
-  );
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    const data = loadJsonFile(templateDataFile);
- 
-    const options = { verbose: false };
-    const result = await templateArchiveProcessor.draft(
-      data,
-      "markdown",
-      options
-    );
- 
-    console.log("\n\nContract Draft:");
-    console.log("____________________\n");
-    console.log(result);
-    console.log("____________________\n");
-    console.log("\nDraft operation completed successfully!\n");
-  } catch (error) {
-    console.error("Error in draft operation:", error.message);
-    process.exit(1);
-  }
-}
- 
-draft();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/favicon.png b/coverage/favicon.png deleted file mode 100644 index c1525b811a167671e9de1fa78aab9f5c0b61cef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src DocxTransformer.js

-
- -
- 37.5% - Statements - 3/8 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 37.5% - Lines - 3/8 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html deleted file mode 100644 index 3db8fec..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src - - - - - - - - - -
-
-

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src

-
- -
- 37.5% - Statements - 3/8 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 37.5% - Lines - 3/8 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
DocxTransformer.js -
-
37.5%3/80%0/20%0/237.5%3/8
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html deleted file mode 100644 index fc0fb6a..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src HtmlTransformer.js

-
- -
- 23.52% - Statements - 4/17 -
- - -
- 0% - Branches - 0/3 -
- - -
- 0% - Functions - 0/3 -
- - -
- 23.52% - Lines - 4/17 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html deleted file mode 100644 index 8f00f2f..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src ToCiceroMarkVisitor.js

-
- -
- 10.9% - Statements - 6/55 -
- - -
- 3.92% - Branches - 2/51 -
- - -
- 0% - Functions - 0/7 -
- - -
- 11.11% - Lines - 6/54 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html deleted file mode 100644 index c8e35fd..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src ToHtmlStringVisitor.js

-
- -
- 0.86% - Statements - 1/116 -
- - -
- 0% - Branches - 0/74 -
- - -
- 0% - Functions - 0/5 -
- - -
- 0.86% - Lines - 1/116 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html deleted file mode 100644 index 2cd99d7..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src helpers.js

-
- -
- 33.33% - Statements - 1/3 -
- - -
- 0% - Branches - 0/4 -
- - -
- 0% - Functions - 0/2 -
- - -
- 33.33% - Lines - 1/3 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html deleted file mode 100644 index ca7c72d..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src - - - - - - - - - -
-
-

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src

-
- -
- 10.91% - Statements - 37/339 -
- - -
- 0.63% - Branches - 2/317 -
- - -
- 0% - Functions - 0/42 -
- - -
- 11.04% - Lines - 37/335 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
HtmlTransformer.js -
-
23.52%4/170%0/30%0/323.52%4/17
ToCiceroMarkVisitor.js -
-
10.9%6/553.92%2/510%0/711.11%6/54
ToHtmlStringVisitor.js -
-
0.86%1/1160%0/740%0/50.86%1/116
helpers.js -
-
33.33%1/30%0/40%0/233.33%1/3
rules.js -
-
16.89%25/1480%0/1850%0/2517.24%25/145
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html deleted file mode 100644 index 926b4ca..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src rules.js

-
- -
- 16.89% - Statements - 25/148 -
- - -
- 0% - Branches - 0/185 -
- - -
- 0% - Functions - 0/25 -
- - -
- 17.24% - Lines - 25/145 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html deleted file mode 100644 index 55fefc7..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src CiceroMarkToPdfMakeVisitor.js

-
- -
- 60% - Statements - 3/5 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 60% - Lines - 3/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html deleted file mode 100644 index 93c4ac3..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src PdfTransformer.js

-
- -
- 60% - Statements - 3/5 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 60% - Lines - 3/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html deleted file mode 100644 index 71c601b..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src PdfTransformerBase.js

-
- -
- 16.12% - Statements - 5/31 -
- - -
- 0% - Branches - 0/6 -
- - -
- 0% - Functions - 0/11 -
- - -
- 16.12% - Lines - 5/31 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html deleted file mode 100644 index c3b7f70..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src TemplateMarkToPdfMakeVisitor.js

-
- -
- 60% - Statements - 3/5 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 60% - Lines - 3/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html deleted file mode 100644 index 51f395b..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToCiceroMark.js

-
- -
- 8.16% - Statements - 4/49 -
- - -
- 0% - Branches - 0/28 -
- - -
- 0% - Functions - 0/4 -
- - -
- 8.33% - Lines - 4/48 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html deleted file mode 100644 index 4238e3b..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToPdfMake.js

-
- -
- 13.63% - Statements - 6/44 -
- - -
- 0% - Branches - 0/21 -
- - -
- 0% - Functions - 0/5 -
- - -
- 13.63% - Lines - 6/44 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html deleted file mode 100644 index 072445d..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToPdfMakeVisitor.js

-
- -
- 12% - Statements - 3/25 -
- - -
- 0% - Branches - 0/9 -
- - -
- 0% - Functions - 0/5 -
- - -
- 12% - Lines - 3/25 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html deleted file mode 100644 index 00381f1..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ciceromarkrules.js

-
- -
- 47.61% - Statements - 10/21 -
- - -
- 0% - Branches - 0/16 -
- - -
- 0% - Functions - 0/7 -
- - -
- 47.61% - Lines - 10/21 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html deleted file mode 100644 index cc5e82e..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src commonmarkrules.js

-
- -
- 42.85% - Statements - 30/70 -
- - -
- 0% - Branches - 0/12 -
- - -
- 0% - Functions - 0/29 -
- - -
- 42.85% - Lines - 30/70 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html deleted file mode 100644 index e4e303f..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src domstubs.js

-
- -
- 9.23% - Statements - 12/130 -
- - -
- 0% - Branches - 0/59 -
- - -
- 7.69% - Functions - 2/26 -
- - -
- 9.23% - Lines - 12/130 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html deleted file mode 100644 index 61002a4..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src - - - - - - - - - -
-
-

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src

-
- -
- 21.4% - Statements - 107/500 -
- - -
- 0% - Branches - 0/196 -
- - -
- 1.7% - Functions - 2/117 -
- - -
- 21.48% - Lines - 107/498 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CiceroMarkToPdfMakeVisitor.js -
-
60%3/5100%0/00%0/160%3/5
PdfTransformer.js -
-
60%3/50%0/20%0/260%3/5
PdfTransformerBase.js -
-
16.12%5/310%0/60%0/1116.12%5/31
TemplateMarkToPdfMakeVisitor.js -
-
60%3/5100%0/00%0/160%3/5
ToCiceroMark.js -
-
8.16%4/490%0/280%0/48.33%4/48
ToPdfMake.js -
-
13.63%6/440%0/210%0/513.63%6/44
ToPdfMakeVisitor.js -
-
12%3/250%0/90%0/512%3/25
ciceromarkrules.js -
-
47.61%10/210%0/160%0/747.61%10/21
commonmarkrules.js -
-
42.85%30/700%0/120%0/2942.85%30/70
domstubs.js -
-
9.23%12/1300%0/597.69%2/269.23%12/130
pdfmakeutil.js -
-
14.28%7/490%0/310%0/1114.28%7/49
templatemarkrules.js -
-
31.81%21/660%0/120%0/1532.3%21/65
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html deleted file mode 100644 index 627ba31..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src pdfmakeutil.js

-
- -
- 14.28% - Statements - 7/49 -
- - -
- 0% - Branches - 0/31 -
- - -
- 0% - Functions - 0/11 -
- - -
- 14.28% - Lines - 7/49 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html b/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html deleted file mode 100644 index f643cfb..0000000 --- a/coverage/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src templatemarkrules.js

-
- -
- 31.81% - Statements - 21/66 -
- - -
- 0% - Branches - 0/12 -
- - -
- 0% - Functions - 0/15 -
- - -
- 32.3% - Lines - 21/65 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:91:28)
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/index.html b/coverage/index.html deleted file mode 100644 index d3f98dd..0000000 --- a/coverage/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Code coverage report for All files - - - - - - - - - -
-
-

All files

-
- -
- 0% - Statements - 0/202 -
- - -
- 0% - Branches - 0/24 -
- - -
- 0% - Functions - 0/15 -
- - -
- 0% - Lines - 0/199 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
draft.js -
-
0%0/440%0/60%0/30%0/44
index.js -
-
0%0/19100%0/00%0/20%0/19
list-data-files.js -
-
0%0/480%0/40%0/60%0/46
test-different-values.js -
-
0%0/270%0/20%0/10%0/26
trigger.js -
-
0%0/640%0/120%0/30%0/64
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/index.js.html b/coverage/index.js.html deleted file mode 100644 index 0634a9e..0000000 --- a/coverage/index.js.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - Code coverage report for index.js - - - - - - - - - -
-
-

All files index.js

-
- -
- 0% - Statements - 0/19 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/19 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const { TemplateArchiveProcessor } = require('@accordproject/template-engine');
-const { Template } = require('@accordproject/cicero-core');
- 
-const TEMPLATE_PATH = './archives/latedeliveryandpenalty-typescript';
- 
-async function trigger() {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
-    const data = {
-        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-        "forceMajeure": true,
-        "penaltyDuration": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 2,
-            "unit": "days"
-        },
-        "penaltyPercentage": 10.5,
-        "capPercentage": 55,
-        "termination": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 15,
-            "unit": "days"
-        },
-        "fractionalPart": "days",
-        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
-        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
-    };
-    const request = {
-        goodsValue: 100
-    };
-    const response = await templateArchiveProcessor.trigger(data, request);
-    console.log('\nTrigger response:');
-    console.log(JSON.stringify(response, null, 2));
-}
- 
-async function draft() {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
-    const data = {
-        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-        "forceMajeure": true,
-        "penaltyDuration": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 2,
-            "unit": "days"
-        },
-        "penaltyPercentage": 10.5,
-        "capPercentage": 55,
-        "termination": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 15,
-            "unit": "days"
-        },
-        "fractionalPart": "days",
-        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
-        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
-    };
-    const options = {verbose: false};
-    const result = await templateArchiveProcessor.draft(data, 'markdown', options);
-    console.log('\Contract draft:');
-    console.log(result);
-}
- 
-draft();
-trigger();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/draft.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/draft.js.html deleted file mode 100644 index aaba076..0000000 --- a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/draft.js.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/draft.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template draft.js

-
- -
- 68.18% - Statements - 30/44 -
- - -
- 66.66% - Branches - 4/6 -
- - -
- 66.66% - Functions - 2/3 -
- - -
- 68.18% - Lines - 30/44 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -792x -2x -2x -2x -  -2x -  -  -2x -2x -2x -2x -  -1x -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -2x -  -  -  -  -  -2x -  -  -  -  -2x -2x -  -  -  -2x -2x -2x -  -2x -  -1x -1x -  -  -  -  -  -1x -1x -1x -1x -1x -  -1x -1x -  -  -  -2x - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
-const fs = require("fs");
-const path = require("path");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-function loadJsonFile(filePath) {
-  try {
-    const fullPath = path.resolve(filePath);
-    const fileContent = fs.readFileSync(fullPath, "utf8");
-    return JSON.parse(fileContent);
-  } catch (error) {
-    console.error(`Error loading JSON file '${filePath}':`, error.message);
-    process.exit(1);
-  }
-}
- 
-function showUsage() {
-  console.log("Usage: node draft.js <template-data-file>");
-  console.log("\nExample:");
-  console.log("  node draft.js data/template-basic.json");
-  console.log("  node draft.js data/template-low-penalty.json");
-  console.log("  node draft.js data/template-high-penalty.json");
-  console.log("\nAvailable template data files:");
-  console.log("  - data/template-basic.json      (default scenario)");
-  console.log(
-    "  - data/template-low-penalty.json (5% penalty, 30 day termination)"
-  );
-  console.log(
-    "  - data/template-high-penalty.json (15% penalty, 7 day termination)"
-  );
-}
- 
-async function draft() {
-  const args = process.argv.slice(2);
- 
-  Iif (args.length === 0) {
-    console.log("No template data file specified.\n");
-    showUsage();
-    process.exit(1);
-  }
- 
-  Iif (args[0] === "--help" || args[0] === "-h") {
-    showUsage();
-    process.exit(0);
-  }
- 
-  const templateDataFile = args[0];
-  console.log(
-    `Running DRAFT operation with template data: ${templateDataFile}\n`
-  );
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    const data = loadJsonFile(templateDataFile);
- 
-    const options = { verbose: false };
-    const result = await templateArchiveProcessor.draft(
-      data,
-      "markdown",
-      options
-    );
- 
-    console.log("\n\nContract Draft:");
-    console.log("____________________\n");
-    console.log(result);
-    console.log("____________________\n");
-    console.log("\nDraft operation completed successfully!\n");
-  } catch (error) {
-    console.error("Error in draft operation:", error.message);
-    process.exit(1);
-  }
-}
- 
-draft();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.html deleted file mode 100644 index dbb4783..0000000 --- a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template - - - - - - - - - -
-
-

All files Users/martinhalford/Development/halfordit/demo-template

-
- -
- 78.71% - Statements - 159/202 -
- - -
- 66.66% - Branches - 16/24 -
- - -
- 86.66% - Functions - 13/15 -
- - -
- 78.39% - Lines - 156/199 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
draft.js -
-
68.18%30/4466.66%4/666.66%2/368.18%30/44
index.js -
-
100%19/19100%0/0100%2/2100%19/19
list-data-files.js -
-
87.5%42/4850%2/4100%6/686.95%40/46
test-different-values.js -
-
92.59%25/27100%2/2100%1/192.3%24/26
trigger.js -
-
67.18%43/6466.66%8/1266.66%2/367.18%43/64
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.js.html deleted file mode 100644 index 158e8c8..0000000 --- a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/index.js.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/index.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template index.js

-
- -
- 100% - Statements - 19/19 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 2/2 -
- - -
- 100% - Lines - 19/19 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -662x -2x -  -2x -  -  -2x -2x -2x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -  -2x -2x -2x -  -  -  -2x -2x -2x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -2x -2x -2x -  -  -2x -2x - 
const { TemplateArchiveProcessor } = require('@accordproject/template-engine');
-const { Template } = require('@accordproject/cicero-core');
- 
-const TEMPLATE_PATH = './archives/latedeliveryandpenalty-typescript';
- 
-async function trigger() {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
-    const data = {
-        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-        "forceMajeure": true,
-        "penaltyDuration": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 2,
-            "unit": "days"
-        },
-        "penaltyPercentage": 10.5,
-        "capPercentage": 55,
-        "termination": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 15,
-            "unit": "days"
-        },
-        "fractionalPart": "days",
-        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
-        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
-    };
-    const request = {
-        goodsValue: 100
-    };
-    const response = await templateArchiveProcessor.trigger(data, request);
-    console.log('\nTrigger response:');
-    console.log(JSON.stringify(response, null, 2));
-}
- 
-async function draft() {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
-    const data = {
-        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-        "forceMajeure": true,
-        "penaltyDuration": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 2,
-            "unit": "days"
-        },
-        "penaltyPercentage": 10.5,
-        "capPercentage": 55,
-        "termination": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 15,
-            "unit": "days"
-        },
-        "fractionalPart": "days",
-        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
-        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
-    };
-    const options = {verbose: false};
-    const result = await templateArchiveProcessor.draft(data, 'markdown', options);
-    console.log('\Contract draft:');
-    console.log(result);
-}
- 
-draft();
-trigger();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html deleted file mode 100644 index bacb418..0000000 --- a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/list-data-files.js.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/list-data-files.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template list-data-files.js

-
- -
- 87.5% - Statements - 42/48 -
- - -
- 50% - Branches - 2/4 -
- - -
- 100% - Functions - 6/6 -
- - -
- 86.95% - Lines - 40/46 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -792x -2x -  -  -2x -  -2x -  -2x -  -  -  -  -2x -  -14x -  -2x -  -  -  -  -  -12x -12x -  -2x -2x -  -2x -6x -6x -6x -6x -6x -6x -  -  -6x -6x -  -  -6x -6x -  -  -  -  -  -2x -2x -  -2x -6x -6x -6x -6x -6x -6x -  -  -  -  -  -2x -2x -2x -2x -2x -2x -  -  -2x -  -  -  -  -2x - 
const fs = require("fs");
-const path = require("path");
- 
-function listDataFiles() {
-  console.log("Available Data Files\n");
- 
-  const dataDir = "./data";
- 
-  Iif (!fs.existsSync(dataDir)) {
-    console.log("Data directory not found!");
-    return;
-  }
- 
-  const files = fs
-    .readdirSync(dataDir)
-    .filter((file) => file.endsWith(".json"));
- 
-  Iif (files.length === 0) {
-    console.log("No JSON files found in data directory!");
-    return;
-  }
- 
-  // Separate template and request files
-  const templateFiles = files.filter((file) => file.startsWith("template-"));
-  const requestFiles = files.filter((file) => file.startsWith("request-"));
- 
-  console.log("Template Data Files:");
-  console.log("─".repeat(50));
- 
-  templateFiles.forEach((file) => {
-    try {
-      const filePath = path.join(dataDir, file);
-      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
-      console.log(`${file}`);
-      console.log(`   Penalty: ${data.penaltyPercentage}%`);
-      console.log(
-        `   Termination: ${data.termination.amount} ${data.termination.unit}`
-      );
-      console.log(`   Force Majeure: ${data.forceMajeure}`);
-      console.log(
-        `   Penalty Duration: ${data.penaltyDuration.amount} ${data.penaltyDuration.unit}`
-      );
-      console.log(`   Cap: ${data.capPercentage}%`);
-      console.log();
-    } catch (error) {
-      console.log(`Error reading ${file}: ${error.message}`);
-    }
-  });
- 
-  console.log("Request Data Files:");
-  console.log("─".repeat(50));
- 
-  requestFiles.forEach((file) => {
-    try {
-      const filePath = path.join(dataDir, file);
-      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
-      console.log(`${file}`);
-      console.log(`   Goods Value: $${data.goodsValue}`);
-      console.log();
-    } catch (error) {
-      console.log(`Error reading ${file}: ${error.message}`);
-    }
-  });
- 
-  console.log("Example Commands:");
-  console.log("─".repeat(50));
-  console.log("npm run draft:low");
-  console.log("npm run trigger:high");
-  console.log("node draft.js data/template-basic.json");
-  console.log(
-    "node trigger.js data/template-high-penalty.json data/request-low-value.json"
-  );
-  console.log(
-    "\nFor more help: node draft.js --help or node trigger.js --help"
-  );
-}
- 
-listDataFiles();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html deleted file mode 100644 index 2c1eae3..0000000 --- a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/test-different-values.js.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/test-different-values.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template test-different-values.js

-
- -
- 92.59% - Statements - 25/27 -
- - -
- 100% - Branches - 2/2 -
- - -
- 100% - Functions - 1/1 -
- - -
- 92.3% - Lines - 24/26 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -1252x -2x -  -2x -  -  -2x -  -2x -2x -2x -  -  -2x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -6x -6x -6x -  -  -6x -6x -  -  -  -  -6x -  -6x -6x -  -  -  -6x -6x -6x -  -  -  -6x -4x -  -  -  -2x -  -  -  -  -  -  -  -2x - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-async function testWithDifferentValues() {
-  console.log("Testing with Different Values...\n");
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    // Test scenarios with different values
-    const testScenarios = [
-      {
-        name: "Low Value Goods",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: false,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 1,
-            unit: "days",
-          },
-          penaltyPercentage: 5.0,
-          capPercentage: 25,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 30,
-            unit: "days",
-          },
-          fractionalPart: "days",
-          clauseId: "test-1",
-          $identifier: "test-1",
-        },
-        requestData: { goodsValue: 50 },
-      },
-      {
-        name: "High Value Goods",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: true,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 3,
-            unit: "days",
-          },
-          penaltyPercentage: 15.0,
-          capPercentage: 50,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 7,
-            unit: "days",
-          },
-          fractionalPart: "hours",
-          clauseId: "test-2",
-          $identifier: "test-2",
-        },
-        requestData: { goodsValue: 1000 },
-      },
-      {
-        name: "Zero Value Test",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: false,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 2,
-            unit: "weeks",
-          },
-          penaltyPercentage: 20.0,
-          capPercentage: 75,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 1,
-            unit: "months",
-          },
-          fractionalPart: "days",
-          clauseId: "test-3",
-          $identifier: "test-3",
-        },
-        requestData: { goodsValue: 0 },
-      },
-    ];
- 
-    for (let i = 0; i < testScenarios.length; i++) {
-      const scenario = testScenarios[i];
-      console.log(`\nTest ${i + 1}: ${scenario.name}`);
-      console.log("─".repeat(40));
- 
-      // Test both draft and trigger for each scenario
-      console.log("Draft Output:");
-      const draftResult = await templateArchiveProcessor.draft(
-        scenario.templateData,
-        "markdown",
-        { verbose: false }
-      );
-      console.log(draftResult.substring(0, 200) + "...\n");
- 
-      console.log("Trigger Response:");
-      const triggerResponse = await templateArchiveProcessor.trigger(
-        scenario.templateData,
-        scenario.requestData
-      );
-      console.log(`Penalty: $${triggerResponse.penalty}`);
-      console.log(`Buyer May Terminate: ${triggerResponse.buyerMayTerminate}`);
-      console.log(
-        `Penalty Rate: ${scenario.templateData.penaltyPercentage}% | Goods Value: $${scenario.requestData.goodsValue}`
-      );
- 
-      if (i < testScenarios.length - 1) {
-        console.log("\n" + "=".repeat(60));
-      }
-    }
- 
-    console.log("\nAll test scenarios completed successfully!");
-  } catch (error) {
-    console.error("Error in test scenarios:", error.message);
-    process.exit(1);
-  }
-}
- 
-// Run the test scenarios
-testWithDifferentValues();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html b/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html deleted file mode 100644 index 54e8e45..0000000 --- a/coverage/lcov-report/Users/martinhalford/Development/halfordit/demo-template/trigger.js.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - Code coverage report for Users/martinhalford/Development/halfordit/demo-template/trigger.js - - - - - - - - - -
-
-

All files / Users/martinhalford/Development/halfordit/demo-template trigger.js

-
- -
- 67.18% - Statements - 43/64 -
- - -
- 66.66% - Branches - 8/12 -
- - -
- 66.66% - Functions - 2/3 -
- - -
- 67.18% - Lines - 43/64 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -1152x -2x -2x -2x -  -2x -  -  -3x -3x -3x -3x -  -1x -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -2x -  -  -  -  -  -2x -  -  -  -  -2x -  -  -  -  -  -  -  -2x -2x -  -2x -2x -2x -  -2x -2x -2x -  -  -2x -  -  -1x -  -1x -1x -1x -1x -  -1x -  -1x -1x -1x -  -  -1x -1x -1x -1x -1x -1x -  -  -1x -  -1x -1x -  -  -  -  -2x - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
-const fs = require("fs");
-const path = require("path");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-function loadJsonFile(filePath) {
-  try {
-    const fullPath = path.resolve(filePath);
-    const fileContent = fs.readFileSync(fullPath, "utf8");
-    return JSON.parse(fileContent);
-  } catch (error) {
-    console.error(`Error loading JSON file '${filePath}':`, error.message);
-    process.exit(1);
-  }
-}
- 
-function showUsage() {
-  console.log(
-    "Usage: node trigger.js <template-data-file> <request-data-file>"
-  );
-  console.log("\nExample:");
-  console.log(
-    "  node trigger.js data/template-basic.json data/request-basic.json"
-  );
-  console.log(
-    "  node trigger.js data/template-low-penalty.json data/request-high-value.json"
-  );
-  console.log("\nAvailable files:");
-  console.log("  Template data files:");
-  console.log(
-    "    - data/template-basic.json      (10.5% penalty, 15 day termination)"
-  );
-  console.log(
-    "    - data/template-low-penalty.json (5% penalty, 30 day termination)"
-  );
-  console.log(
-    "    - data/template-high-penalty.json (15% penalty, 7 day termination)"
-  );
-  console.log("  Request data files:");
-  console.log("    - data/request-basic.json       ($100 goods value)");
-  console.log("    - data/request-low-value.json   ($50 goods value)");
-  console.log("    - data/request-high-value.json  ($1000 goods value)");
-}
- 
-async function trigger() {
-  const args = process.argv.slice(2);
- 
-  Iif (args.length === 0) {
-    console.log("No data files specified.\n");
-    showUsage();
-    process.exit(1);
-  }
- 
-  Iif (args[0] === "--help" || args[0] === "-h") {
-    showUsage();
-    process.exit(0);
-  }
- 
-  Iif (args.length < 2) {
-    console.log(
-      "Both template data file and request data file are required.\n"
-    );
-    showUsage();
-    process.exit(1);
-  }
- 
-  const templateDataFile = args[0];
-  const requestDataFile = args[1];
- 
-  console.log(`Running TRIGGER operation:`);
-  console.log(`   Template data: ${templateDataFile}`);
-  console.log(`   Request data:  ${requestDataFile}\n`);
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    // Load template data (the contract parameters)
-    const data = loadJsonFile(templateDataFile);
- 
-    // Load request data (the input for the business logic)
-    const request = loadJsonFile(requestDataFile);
- 
-    console.log("\nInput Data:");
-    console.log("=".repeat(50));
-    console.log("Template Data:", JSON.stringify(data, null, 2));
-    console.log("\nRequest Data:", JSON.stringify(request, null, 2));
- 
-    const response = await templateArchiveProcessor.trigger(data, request);
- 
-    console.log("\nBusiness Logic Response:");
-    console.log("=".repeat(50));
-    console.log(JSON.stringify(response, null, 2));
- 
-    // Show calculation details
-    Eif (response && response.penalty !== undefined) {
-      console.log("\nCalculation Details:");
-      console.log(`Penalty Rate: ${data.penaltyPercentage}%`);
-      console.log(`Goods Value: $${request.goodsValue}`);
-      console.log(`Calculated Penalty: $${response.penalty}`);
-      console.log(`Buyer May Terminate: ${response.buyerMayTerminate}`);
-    }
- 
-    console.log("\nTrigger operation completed successfully!\n");
-  } catch (error) {
-    console.error("Error in trigger operation:", error.message);
-    process.exit(1);
-  }
-}
- 
-// Run the trigger operation
-trigger();
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css deleted file mode 100644 index f418035..0000000 --- a/coverage/lcov-report/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js deleted file mode 100644 index cc12130..0000000 --- a/coverage/lcov-report/block-navigation.js +++ /dev/null @@ -1,87 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selecter that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } - - makeCurrent(nextIndex); - } - - function goToNext() { - var nextIndex = 0; - - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } - - makeCurrent(nextIndex); - } - - return function jump(event) { - if ( - document.getElementById('fileSearch') === document.activeElement && - document.activeElement != null - ) { - // if we're currently focused on the search input, we don't want to navigate - return; - } - - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; -})(); -window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/draft.js.html b/coverage/lcov-report/draft.js.html deleted file mode 100644 index c210b56..0000000 --- a/coverage/lcov-report/draft.js.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - Code coverage report for draft.js - - - - - - - - - -
-
-

All files draft.js

-
- -
- 0% - Statements - 0/44 -
- - -
- 0% - Branches - 0/6 -
- - -
- 0% - Functions - 0/3 -
- - -
- 0% - Lines - 0/44 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
-const fs = require("fs");
-const path = require("path");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-function loadJsonFile(filePath) {
-  try {
-    const fullPath = path.resolve(filePath);
-    const fileContent = fs.readFileSync(fullPath, "utf8");
-    return JSON.parse(fileContent);
-  } catch (error) {
-    console.error(`Error loading JSON file '${filePath}':`, error.message);
-    process.exit(1);
-  }
-}
- 
-function showUsage() {
-  console.log("Usage: node draft.js <template-data-file>");
-  console.log("\nExample:");
-  console.log("  node draft.js data/template-basic.json");
-  console.log("  node draft.js data/template-low-penalty.json");
-  console.log("  node draft.js data/template-high-penalty.json");
-  console.log("\nAvailable template data files:");
-  console.log("  - data/template-basic.json      (default scenario)");
-  console.log(
-    "  - data/template-low-penalty.json (5% penalty, 30 day termination)"
-  );
-  console.log(
-    "  - data/template-high-penalty.json (15% penalty, 7 day termination)"
-  );
-}
- 
-async function draft() {
-  const args = process.argv.slice(2);
- 
-  if (args.length === 0) {
-    console.log("No template data file specified.\n");
-    showUsage();
-    process.exit(1);
-  }
- 
-  if (args[0] === "--help" || args[0] === "-h") {
-    showUsage();
-    process.exit(0);
-  }
- 
-  const templateDataFile = args[0];
-  console.log(
-    `Running DRAFT operation with template data: ${templateDataFile}\n`
-  );
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    const data = loadJsonFile(templateDataFile);
- 
-    const options = { verbose: false };
-    const result = await templateArchiveProcessor.draft(
-      data,
-      "markdown",
-      options
-    );
- 
-    console.log("\n\nContract Draft:");
-    console.log("____________________\n");
-    console.log(result);
-    console.log("____________________\n");
-    console.log("\nDraft operation completed successfully!\n");
-  } catch (error) {
-    console.error("Error in draft operation:", error.message);
-    process.exit(1);
-  }
-}
- 
-draft();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png deleted file mode 100644 index c1525b811a167671e9de1fa78aab9f5c0b61cef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src DocxTransformer.js

-
- -
- 37.5% - Statements - 3/8 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 37.5% - Lines - 3/8 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/DocxTransformer.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html deleted file mode 100644 index a4f7a16..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src - - - - - - - - - -
-
-

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-docx/src

-
- -
- 37.5% - Statements - 3/8 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 37.5% - Lines - 3/8 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
DocxTransformer.js -
-
37.5%3/80%0/20%0/237.5%3/8
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html deleted file mode 100644 index 5254222..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src HtmlTransformer.js

-
- -
- 23.52% - Statements - 4/17 -
- - -
- 0% - Branches - 0/3 -
- - -
- 0% - Functions - 0/3 -
- - -
- 23.52% - Lines - 4/17 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/HtmlTransformer.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html deleted file mode 100644 index ff233da..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src ToCiceroMarkVisitor.js

-
- -
- 10.9% - Statements - 6/55 -
- - -
- 3.92% - Branches - 2/51 -
- - -
- 0% - Functions - 0/7 -
- - -
- 11.11% - Lines - 6/54 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToCiceroMarkVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html deleted file mode 100644 index 2ff6c25..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src ToHtmlStringVisitor.js

-
- -
- 0.86% - Statements - 1/116 -
- - -
- 0% - Branches - 0/74 -
- - -
- 0% - Functions - 0/5 -
- - -
- 0.86% - Lines - 1/116 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/ToHtmlStringVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html deleted file mode 100644 index d1dd9f0..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src helpers.js

-
- -
- 33.33% - Statements - 1/3 -
- - -
- 0% - Branches - 0/4 -
- - -
- 0% - Functions - 0/2 -
- - -
- 33.33% - Lines - 1/3 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/helpers.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html deleted file mode 100644 index b926a5e..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src - - - - - - - - - -
-
-

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src

-
- -
- 10.91% - Statements - 37/339 -
- - -
- 0.63% - Branches - 2/317 -
- - -
- 0% - Functions - 0/42 -
- - -
- 11.04% - Lines - 37/335 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
HtmlTransformer.js -
-
23.52%4/170%0/30%0/323.52%4/17
ToCiceroMarkVisitor.js -
-
10.9%6/553.92%2/510%0/711.11%6/54
ToHtmlStringVisitor.js -
-
0.86%1/1160%0/740%0/50.86%1/116
helpers.js -
-
33.33%1/30%0/40%0/233.33%1/3
rules.js -
-
16.89%25/1480%0/1850%0/2517.24%25/145
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html deleted file mode 100644 index 04ceebc..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src rules.js

-
- -
- 16.89% - Statements - 25/148 -
- - -
- 0% - Branches - 0/185 -
- - -
- 0% - Functions - 0/25 -
- - -
- 17.24% - Lines - 25/145 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-html/src/rules.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html deleted file mode 100644 index 1ab54fa..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src CiceroMarkToPdfMakeVisitor.js

-
- -
- 60% - Statements - 3/5 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 60% - Lines - 3/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/CiceroMarkToPdfMakeVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html deleted file mode 100644 index 0aa6bed..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src PdfTransformer.js

-
- -
- 60% - Statements - 3/5 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 60% - Lines - 3/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformer.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html deleted file mode 100644 index 2012784..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src PdfTransformerBase.js

-
- -
- 16.12% - Statements - 5/31 -
- - -
- 0% - Branches - 0/6 -
- - -
- 0% - Functions - 0/11 -
- - -
- 16.12% - Lines - 5/31 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/PdfTransformerBase.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html deleted file mode 100644 index 976c974..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src TemplateMarkToPdfMakeVisitor.js

-
- -
- 60% - Statements - 3/5 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 60% - Lines - 3/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/TemplateMarkToPdfMakeVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html deleted file mode 100644 index 58e3417..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToCiceroMark.js

-
- -
- 8.16% - Statements - 4/49 -
- - -
- 0% - Branches - 0/28 -
- - -
- 0% - Functions - 0/4 -
- - -
- 8.33% - Lines - 4/48 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToCiceroMark.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html deleted file mode 100644 index 7d4fc96..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToPdfMake.js

-
- -
- 13.63% - Statements - 6/44 -
- - -
- 0% - Branches - 0/21 -
- - -
- 0% - Functions - 0/5 -
- - -
- 13.63% - Lines - 6/44 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMake.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html deleted file mode 100644 index a792c5e..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ToPdfMakeVisitor.js

-
- -
- 12% - Statements - 3/25 -
- - -
- 0% - Branches - 0/9 -
- - -
- 0% - Functions - 0/5 -
- - -
- 12% - Lines - 3/25 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ToPdfMakeVisitor.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html deleted file mode 100644 index 719be88..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src ciceromarkrules.js

-
- -
- 47.61% - Statements - 10/21 -
- - -
- 0% - Branches - 0/16 -
- - -
- 0% - Functions - 0/7 -
- - -
- 47.61% - Lines - 10/21 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/ciceromarkrules.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html deleted file mode 100644 index 44def60..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src commonmarkrules.js

-
- -
- 42.85% - Statements - 30/70 -
- - -
- 0% - Branches - 0/12 -
- - -
- 0% - Functions - 0/29 -
- - -
- 42.85% - Lines - 30/70 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/commonmarkrules.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html deleted file mode 100644 index 601c24b..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src domstubs.js

-
- -
- 9.23% - Statements - 12/130 -
- - -
- 0% - Branches - 0/59 -
- - -
- 7.69% - Functions - 2/26 -
- - -
- 9.23% - Lines - 12/130 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/domstubs.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html deleted file mode 100644 index 5a141c6..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/index.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src - - - - - - - - - -
-
-

All files home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src

-
- -
- 21.4% - Statements - 107/500 -
- - -
- 0% - Branches - 0/196 -
- - -
- 1.7% - Functions - 2/117 -
- - -
- 21.48% - Lines - 107/498 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CiceroMarkToPdfMakeVisitor.js -
-
60%3/5100%0/00%0/160%3/5
PdfTransformer.js -
-
60%3/50%0/20%0/260%3/5
PdfTransformerBase.js -
-
16.12%5/310%0/60%0/1116.12%5/31
TemplateMarkToPdfMakeVisitor.js -
-
60%3/5100%0/00%0/160%3/5
ToCiceroMark.js -
-
8.16%4/490%0/280%0/48.33%4/48
ToPdfMake.js -
-
13.63%6/440%0/210%0/513.63%6/44
ToPdfMakeVisitor.js -
-
12%3/250%0/90%0/512%3/25
ciceromarkrules.js -
-
47.61%10/210%0/160%0/747.61%10/21
commonmarkrules.js -
-
42.85%30/700%0/120%0/2942.85%30/70
domstubs.js -
-
9.23%12/1300%0/597.69%2/269.23%12/130
pdfmakeutil.js -
-
14.28%7/490%0/310%0/1114.28%7/49
templatemarkrules.js -
-
31.81%21/660%0/120%0/1532.3%21/65
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html deleted file mode 100644 index 783d8ad..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src pdfmakeutil.js

-
- -
- 14.28% - Statements - 7/49 -
- - -
- 0% - Branches - 0/31 -
- - -
- 0% - Functions - 0/11 -
- - -
- 14.28% - Lines - 7/49 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/pdfmakeutil.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html b/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html deleted file mode 100644 index 349a6f7..0000000 --- a/coverage/lcov-report/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js - - - - - - - - - -
-
-

All files / home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src templatemarkrules.js

-
- -
- 31.81% - Statements - 21/66 -
- - -
- 0% - Branches - 0/12 -
- - -
- 0% - Functions - 0/15 -
- - -
- 32.3% - Lines - 21/65 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -120 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js'
-Error: ENOENT: no such file or directory, open '/home/runner/work/markdown-transform/markdown-transform/packages/markdown-pdf/src/templatemarkrules.js'
-    at Object.readFileSync (node:fs:441:20)
-    at MapStore.sourceFinder (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-source-maps/lib/map-store.js:157:23)
-    at Context.getSource (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/context.js:71:21)
-    at annotateSourceCode (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/annotator.js:249:40)
-    at HtmlReport.onDetail (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/html/index.js:414:33)
-    at LcovReport. [as onDetail] (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-reports/lib/lcov/index.js:28:23)
-    at Visitor.value (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:38:38)
-    at ReportNode.visit (/Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:88:21)
-    at /Users/martinhalford/Development/halfordit/demo-template/node_modules/istanbul-lib-report/lib/tree.js:92:19
-    at Array.forEach ()
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html deleted file mode 100644 index 9d25692..0000000 --- a/coverage/lcov-report/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Code coverage report for All files - - - - - - - - - -
-
-

All files

-
- -
- 0% - Statements - 0/202 -
- - -
- 0% - Branches - 0/24 -
- - -
- 0% - Functions - 0/15 -
- - -
- 0% - Lines - 0/199 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
draft.js -
-
0%0/440%0/60%0/30%0/44
index.js -
-
0%0/19100%0/00%0/20%0/19
list-data-files.js -
-
0%0/480%0/40%0/60%0/46
test-different-values.js -
-
0%0/270%0/20%0/10%0/26
trigger.js -
-
0%0/640%0/120%0/30%0/64
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/index.js.html b/coverage/lcov-report/index.js.html deleted file mode 100644 index 2a0e138..0000000 --- a/coverage/lcov-report/index.js.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - Code coverage report for index.js - - - - - - - - - -
-
-

All files index.js

-
- -
- 0% - Statements - 0/19 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/19 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const { TemplateArchiveProcessor } = require('@accordproject/template-engine');
-const { Template } = require('@accordproject/cicero-core');
- 
-const TEMPLATE_PATH = './archives/latedeliveryandpenalty-typescript';
- 
-async function trigger() {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
-    const data = {
-        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-        "forceMajeure": true,
-        "penaltyDuration": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 2,
-            "unit": "days"
-        },
-        "penaltyPercentage": 10.5,
-        "capPercentage": 55,
-        "termination": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 15,
-            "unit": "days"
-        },
-        "fractionalPart": "days",
-        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
-        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
-    };
-    const request = {
-        goodsValue: 100
-    };
-    const response = await templateArchiveProcessor.trigger(data, request);
-    console.log('\nTrigger response:');
-    console.log(JSON.stringify(response, null, 2));
-}
- 
-async function draft() {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
-    const data = {
-        "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-        "forceMajeure": true,
-        "penaltyDuration": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 2,
-            "unit": "days"
-        },
-        "penaltyPercentage": 10.5,
-        "capPercentage": 55,
-        "termination": {
-            "$class": "org.accordproject.time@0.3.0.Duration",
-            "amount": 15,
-            "unit": "days"
-        },
-        "fractionalPart": "days",
-        "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8",
-        "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8"
-    };
-    const options = {verbose: false};
-    const result = await templateArchiveProcessor.draft(data, 'markdown', options);
-    console.log('\Contract draft:');
-    console.log(result);
-}
- 
-draft();
-trigger();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/list-data-files.js.html b/coverage/lcov-report/list-data-files.js.html deleted file mode 100644 index 4333bd2..0000000 --- a/coverage/lcov-report/list-data-files.js.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - Code coverage report for list-data-files.js - - - - - - - - - -
-
-

All files list-data-files.js

-
- -
- 0% - Statements - 0/48 -
- - -
- 0% - Branches - 0/4 -
- - -
- 0% - Functions - 0/6 -
- - -
- 0% - Lines - 0/46 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const fs = require("fs");
-const path = require("path");
- 
-function listDataFiles() {
-  console.log("Available Data Files\n");
- 
-  const dataDir = "./data";
- 
-  if (!fs.existsSync(dataDir)) {
-    console.log("Data directory not found!");
-    return;
-  }
- 
-  const files = fs
-    .readdirSync(dataDir)
-    .filter((file) => file.endsWith(".json"));
- 
-  if (files.length === 0) {
-    console.log("No JSON files found in data directory!");
-    return;
-  }
- 
-  // Separate template and request files
-  const templateFiles = files.filter((file) => file.startsWith("template-"));
-  const requestFiles = files.filter((file) => file.startsWith("request-"));
- 
-  console.log("Template Data Files:");
-  console.log("─".repeat(50));
- 
-  templateFiles.forEach((file) => {
-    try {
-      const filePath = path.join(dataDir, file);
-      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
-      console.log(`${file}`);
-      console.log(`   Penalty: ${data.penaltyPercentage}%`);
-      console.log(
-        `   Termination: ${data.termination.amount} ${data.termination.unit}`
-      );
-      console.log(`   Force Majeure: ${data.forceMajeure}`);
-      console.log(
-        `   Penalty Duration: ${data.penaltyDuration.amount} ${data.penaltyDuration.unit}`
-      );
-      console.log(`   Cap: ${data.capPercentage}%`);
-      console.log();
-    } catch (error) {
-      console.log(`Error reading ${file}: ${error.message}`);
-    }
-  });
- 
-  console.log("Request Data Files:");
-  console.log("─".repeat(50));
- 
-  requestFiles.forEach((file) => {
-    try {
-      const filePath = path.join(dataDir, file);
-      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
-      console.log(`${file}`);
-      console.log(`   Goods Value: $${data.goodsValue}`);
-      console.log();
-    } catch (error) {
-      console.log(`Error reading ${file}: ${error.message}`);
-    }
-  });
- 
-  console.log("Example Commands:");
-  console.log("─".repeat(50));
-  console.log("npm run draft:low");
-  console.log("npm run trigger:high");
-  console.log("node draft.js data/template-basic.json");
-  console.log(
-    "node trigger.js data/template-high-penalty.json data/request-low-value.json"
-  );
-  console.log(
-    "\nFor more help: node draft.js --help or node trigger.js --help"
-  );
-}
- 
-listDataFiles();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js deleted file mode 100644 index b322523..0000000 --- a/coverage/lcov-report/prettify.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png deleted file mode 100644 index 6ed68316eb3f65dec9063332d2f69bf3093bbfab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js deleted file mode 100644 index 2bb296a..0000000 --- a/coverage/lcov-report/sorter.js +++ /dev/null @@ -1,196 +0,0 @@ -/* eslint-disable */ -var addSorting = (function() { - 'use strict'; - var cols, - currentSort = { - index: 0, - desc: false - }; - - // returns the summary table element - function getTable() { - return document.querySelector('.coverage-summary'); - } - // returns the thead element of the summary table - function getTableHeader() { - return getTable().querySelector('thead tr'); - } - // returns the tbody element of the summary table - function getTableBody() { - return getTable().querySelector('tbody'); - } - // returns the th element for nth column - function getNthColumn(n) { - return getTableHeader().querySelectorAll('th')[n]; - } - - function onFilterInput() { - const searchValue = document.getElementById('fileSearch').value; - const rows = document.getElementsByTagName('tbody')[0].children; - for (let i = 0; i < rows.length; i++) { - const row = rows[i]; - if ( - row.textContent - .toLowerCase() - .includes(searchValue.toLowerCase()) - ) { - row.style.display = ''; - } else { - row.style.display = 'none'; - } - } - } - - // loads the search box - function addSearchBox() { - var template = document.getElementById('filterTemplate'); - var templateClone = template.content.cloneNode(true); - templateClone.getElementById('fileSearch').oninput = onFilterInput; - template.parentElement.appendChild(templateClone); - } - - // loads all columns - function loadColumns() { - var colNodes = getTableHeader().querySelectorAll('th'), - colNode, - cols = [], - col, - i; - - for (i = 0; i < colNodes.length; i += 1) { - colNode = colNodes[i]; - col = { - key: colNode.getAttribute('data-col'), - sortable: !colNode.getAttribute('data-nosort'), - type: colNode.getAttribute('data-type') || 'string' - }; - cols.push(col); - if (col.sortable) { - col.defaultDescSort = col.type === 'number'; - colNode.innerHTML = - colNode.innerHTML + ''; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSearchBox(); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/coverage/lcov-report/test-different-values.js.html b/coverage/lcov-report/test-different-values.js.html deleted file mode 100644 index c46348e..0000000 --- a/coverage/lcov-report/test-different-values.js.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - Code coverage report for test-different-values.js - - - - - - - - - -
-
-

All files test-different-values.js

-
- -
- 0% - Statements - 0/27 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/26 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-async function testWithDifferentValues() {
-  console.log("Testing with Different Values...\n");
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    // Test scenarios with different values
-    const testScenarios = [
-      {
-        name: "Low Value Goods",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: false,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 1,
-            unit: "days",
-          },
-          penaltyPercentage: 5.0,
-          capPercentage: 25,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 30,
-            unit: "days",
-          },
-          fractionalPart: "days",
-          clauseId: "test-1",
-          $identifier: "test-1",
-        },
-        requestData: { goodsValue: 50 },
-      },
-      {
-        name: "High Value Goods",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: true,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 3,
-            unit: "days",
-          },
-          penaltyPercentage: 15.0,
-          capPercentage: 50,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 7,
-            unit: "days",
-          },
-          fractionalPart: "hours",
-          clauseId: "test-2",
-          $identifier: "test-2",
-        },
-        requestData: { goodsValue: 1000 },
-      },
-      {
-        name: "Zero Value Test",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: false,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 2,
-            unit: "weeks",
-          },
-          penaltyPercentage: 20.0,
-          capPercentage: 75,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 1,
-            unit: "months",
-          },
-          fractionalPart: "days",
-          clauseId: "test-3",
-          $identifier: "test-3",
-        },
-        requestData: { goodsValue: 0 },
-      },
-    ];
- 
-    for (let i = 0; i < testScenarios.length; i++) {
-      const scenario = testScenarios[i];
-      console.log(`\nTest ${i + 1}: ${scenario.name}`);
-      console.log("─".repeat(40));
- 
-      // Test both draft and trigger for each scenario
-      console.log("Draft Output:");
-      const draftResult = await templateArchiveProcessor.draft(
-        scenario.templateData,
-        "markdown",
-        { verbose: false }
-      );
-      console.log(draftResult.substring(0, 200) + "...\n");
- 
-      console.log("Trigger Response:");
-      const triggerResponse = await templateArchiveProcessor.trigger(
-        scenario.templateData,
-        scenario.requestData
-      );
-      console.log(`Penalty: $${triggerResponse.penalty}`);
-      console.log(`Buyer May Terminate: ${triggerResponse.buyerMayTerminate}`);
-      console.log(
-        `Penalty Rate: ${scenario.templateData.penaltyPercentage}% | Goods Value: $${scenario.requestData.goodsValue}`
-      );
- 
-      if (i < testScenarios.length - 1) {
-        console.log("\n" + "=".repeat(60));
-      }
-    }
- 
-    console.log("\nAll test scenarios completed successfully!");
-  } catch (error) {
-    console.error("Error in test scenarios:", error.message);
-    process.exit(1);
-  }
-}
- 
-// Run the test scenarios
-testWithDifferentValues();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/trigger.js.html b/coverage/lcov-report/trigger.js.html deleted file mode 100644 index c2fd279..0000000 --- a/coverage/lcov-report/trigger.js.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - Code coverage report for trigger.js - - - - - - - - - -
-
-

All files trigger.js

-
- -
- 0% - Statements - 0/64 -
- - -
- 0% - Branches - 0/12 -
- - -
- 0% - Functions - 0/3 -
- - -
- 0% - Lines - 0/64 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
-const fs = require("fs");
-const path = require("path");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-function loadJsonFile(filePath) {
-  try {
-    const fullPath = path.resolve(filePath);
-    const fileContent = fs.readFileSync(fullPath, "utf8");
-    return JSON.parse(fileContent);
-  } catch (error) {
-    console.error(`Error loading JSON file '${filePath}':`, error.message);
-    process.exit(1);
-  }
-}
- 
-function showUsage() {
-  console.log(
-    "Usage: node trigger.js <template-data-file> <request-data-file>"
-  );
-  console.log("\nExample:");
-  console.log(
-    "  node trigger.js data/template-basic.json data/request-basic.json"
-  );
-  console.log(
-    "  node trigger.js data/template-low-penalty.json data/request-high-value.json"
-  );
-  console.log("\nAvailable files:");
-  console.log("  Template data files:");
-  console.log(
-    "    - data/template-basic.json      (10.5% penalty, 15 day termination)"
-  );
-  console.log(
-    "    - data/template-low-penalty.json (5% penalty, 30 day termination)"
-  );
-  console.log(
-    "    - data/template-high-penalty.json (15% penalty, 7 day termination)"
-  );
-  console.log("  Request data files:");
-  console.log("    - data/request-basic.json       ($100 goods value)");
-  console.log("    - data/request-low-value.json   ($50 goods value)");
-  console.log("    - data/request-high-value.json  ($1000 goods value)");
-}
- 
-async function trigger() {
-  const args = process.argv.slice(2);
- 
-  if (args.length === 0) {
-    console.log("No data files specified.\n");
-    showUsage();
-    process.exit(1);
-  }
- 
-  if (args[0] === "--help" || args[0] === "-h") {
-    showUsage();
-    process.exit(0);
-  }
- 
-  if (args.length < 2) {
-    console.log(
-      "Both template data file and request data file are required.\n"
-    );
-    showUsage();
-    process.exit(1);
-  }
- 
-  const templateDataFile = args[0];
-  const requestDataFile = args[1];
- 
-  console.log(`Running TRIGGER operation:`);
-  console.log(`   Template data: ${templateDataFile}`);
-  console.log(`   Request data:  ${requestDataFile}\n`);
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    // Load template data (the contract parameters)
-    const data = loadJsonFile(templateDataFile);
- 
-    // Load request data (the input for the business logic)
-    const request = loadJsonFile(requestDataFile);
- 
-    console.log("\nInput Data:");
-    console.log("=".repeat(50));
-    console.log("Template Data:", JSON.stringify(data, null, 2));
-    console.log("\nRequest Data:", JSON.stringify(request, null, 2));
- 
-    const response = await templateArchiveProcessor.trigger(data, request);
- 
-    console.log("\nBusiness Logic Response:");
-    console.log("=".repeat(50));
-    console.log(JSON.stringify(response, null, 2));
- 
-    // Show calculation details
-    if (response && response.penalty !== undefined) {
-      console.log("\nCalculation Details:");
-      console.log(`Penalty Rate: ${data.penaltyPercentage}%`);
-      console.log(`Goods Value: $${request.goodsValue}`);
-      console.log(`Calculated Penalty: $${response.penalty}`);
-      console.log(`Buyer May Terminate: ${response.buyerMayTerminate}`);
-    }
- 
-    console.log("\nTrigger operation completed successfully!\n");
-  } catch (error) {
-    console.error("Error in trigger operation:", error.message);
-    process.exit(1);
-  }
-}
- 
-// Run the trigger operation
-trigger();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov.info b/coverage/lcov.info deleted file mode 100644 index 17ee4eb..0000000 --- a/coverage/lcov.info +++ /dev/null @@ -1,298 +0,0 @@ -TN: -SF:draft.js -FN:8,loadJsonFile -FN:19,showUsage -FN:35,draft -FNF:3 -FNH:0 -FNDA:0,loadJsonFile -FNDA:0,showUsage -FNDA:0,draft -DA:1,0 -DA:2,0 -DA:3,0 -DA:4,0 -DA:6,0 -DA:9,0 -DA:10,0 -DA:11,0 -DA:12,0 -DA:14,0 -DA:15,0 -DA:20,0 -DA:21,0 -DA:22,0 -DA:23,0 -DA:24,0 -DA:25,0 -DA:26,0 -DA:27,0 -DA:30,0 -DA:36,0 -DA:38,0 -DA:39,0 -DA:40,0 -DA:41,0 -DA:44,0 -DA:45,0 -DA:46,0 -DA:49,0 -DA:50,0 -DA:54,0 -DA:55,0 -DA:56,0 -DA:58,0 -DA:60,0 -DA:61,0 -DA:67,0 -DA:68,0 -DA:69,0 -DA:70,0 -DA:71,0 -DA:73,0 -DA:74,0 -DA:78,0 -LF:44 -LH:0 -BRDA:38,0,0,0 -BRDA:38,0,1,0 -BRDA:44,1,0,0 -BRDA:44,1,1,0 -BRDA:44,2,0,0 -BRDA:44,2,1,0 -BRF:6 -BRH:0 -end_of_record -TN: -SF:index.js -FN:6,trigger -FN:36,draft -FNF:2 -FNH:0 -FNDA:0,trigger -FNDA:0,draft -DA:1,0 -DA:2,0 -DA:4,0 -DA:7,0 -DA:8,0 -DA:9,0 -DA:28,0 -DA:31,0 -DA:32,0 -DA:33,0 -DA:37,0 -DA:38,0 -DA:39,0 -DA:58,0 -DA:59,0 -DA:60,0 -DA:61,0 -DA:64,0 -DA:65,0 -LF:19 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:list-data-files.js -FN:4,listDataFiles -FN:16,(anonymous_1) -FN:24,(anonymous_2) -FN:25,(anonymous_3) -FN:30,(anonymous_4) -FN:53,(anonymous_5) -FNF:6 -FNH:0 -FNDA:0,listDataFiles -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -FNDA:0,(anonymous_5) -DA:1,0 -DA:2,0 -DA:5,0 -DA:7,0 -DA:9,0 -DA:10,0 -DA:11,0 -DA:14,0 -DA:16,0 -DA:18,0 -DA:19,0 -DA:20,0 -DA:24,0 -DA:25,0 -DA:27,0 -DA:28,0 -DA:30,0 -DA:31,0 -DA:32,0 -DA:33,0 -DA:34,0 -DA:35,0 -DA:36,0 -DA:39,0 -DA:40,0 -DA:43,0 -DA:44,0 -DA:46,0 -DA:50,0 -DA:51,0 -DA:53,0 -DA:54,0 -DA:55,0 -DA:56,0 -DA:57,0 -DA:58,0 -DA:59,0 -DA:61,0 -DA:65,0 -DA:66,0 -DA:67,0 -DA:68,0 -DA:69,0 -DA:70,0 -DA:73,0 -DA:78,0 -LF:46 -LH:0 -BRDA:9,0,0,0 -BRDA:9,0,1,0 -BRDA:18,1,0,0 -BRDA:18,1,1,0 -BRF:4 -BRH:0 -end_of_record -TN: -SF:test-different-values.js -FN:6,testWithDifferentValues -FNF:1 -FNH:0 -FNDA:0,testWithDifferentValues -DA:1,0 -DA:2,0 -DA:4,0 -DA:7,0 -DA:9,0 -DA:10,0 -DA:11,0 -DA:14,0 -DA:86,0 -DA:87,0 -DA:88,0 -DA:89,0 -DA:92,0 -DA:93,0 -DA:98,0 -DA:100,0 -DA:101,0 -DA:105,0 -DA:106,0 -DA:107,0 -DA:111,0 -DA:112,0 -DA:116,0 -DA:118,0 -DA:119,0 -DA:124,0 -LF:26 -LH:0 -BRDA:111,0,0,0 -BRDA:111,0,1,0 -BRF:2 -BRH:0 -end_of_record -TN: -SF:trigger.js -FN:8,loadJsonFile -FN:19,showUsage -FN:47,trigger -FNF:3 -FNH:0 -FNDA:0,loadJsonFile -FNDA:0,showUsage -FNDA:0,trigger -DA:1,0 -DA:2,0 -DA:3,0 -DA:4,0 -DA:6,0 -DA:9,0 -DA:10,0 -DA:11,0 -DA:12,0 -DA:14,0 -DA:15,0 -DA:20,0 -DA:23,0 -DA:24,0 -DA:27,0 -DA:30,0 -DA:31,0 -DA:32,0 -DA:35,0 -DA:38,0 -DA:41,0 -DA:42,0 -DA:43,0 -DA:44,0 -DA:48,0 -DA:50,0 -DA:51,0 -DA:52,0 -DA:53,0 -DA:56,0 -DA:57,0 -DA:58,0 -DA:61,0 -DA:62,0 -DA:65,0 -DA:66,0 -DA:69,0 -DA:70,0 -DA:72,0 -DA:73,0 -DA:74,0 -DA:76,0 -DA:77,0 -DA:78,0 -DA:81,0 -DA:84,0 -DA:86,0 -DA:87,0 -DA:88,0 -DA:89,0 -DA:91,0 -DA:93,0 -DA:94,0 -DA:95,0 -DA:98,0 -DA:99,0 -DA:100,0 -DA:101,0 -DA:102,0 -DA:103,0 -DA:106,0 -DA:108,0 -DA:109,0 -DA:114,0 -LF:64 -LH:0 -BRDA:50,0,0,0 -BRDA:50,0,1,0 -BRDA:56,1,0,0 -BRDA:56,1,1,0 -BRDA:56,2,0,0 -BRDA:56,2,1,0 -BRDA:61,3,0,0 -BRDA:61,3,1,0 -BRDA:98,4,0,0 -BRDA:98,4,1,0 -BRDA:98,5,0,0 -BRDA:98,5,1,0 -BRF:12 -BRH:0 -end_of_record diff --git a/coverage/list-data-files.js.html b/coverage/list-data-files.js.html deleted file mode 100644 index dedbb78..0000000 --- a/coverage/list-data-files.js.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - Code coverage report for list-data-files.js - - - - - - - - - -
-
-

All files list-data-files.js

-
- -
- 0% - Statements - 0/48 -
- - -
- 0% - Branches - 0/4 -
- - -
- 0% - Functions - 0/6 -
- - -
- 0% - Lines - 0/46 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const fs = require("fs");
-const path = require("path");
- 
-function listDataFiles() {
-  console.log("Available Data Files\n");
- 
-  const dataDir = "./data";
- 
-  if (!fs.existsSync(dataDir)) {
-    console.log("Data directory not found!");
-    return;
-  }
- 
-  const files = fs
-    .readdirSync(dataDir)
-    .filter((file) => file.endsWith(".json"));
- 
-  if (files.length === 0) {
-    console.log("No JSON files found in data directory!");
-    return;
-  }
- 
-  // Separate template and request files
-  const templateFiles = files.filter((file) => file.startsWith("template-"));
-  const requestFiles = files.filter((file) => file.startsWith("request-"));
- 
-  console.log("Template Data Files:");
-  console.log("─".repeat(50));
- 
-  templateFiles.forEach((file) => {
-    try {
-      const filePath = path.join(dataDir, file);
-      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
-      console.log(`${file}`);
-      console.log(`   Penalty: ${data.penaltyPercentage}%`);
-      console.log(
-        `   Termination: ${data.termination.amount} ${data.termination.unit}`
-      );
-      console.log(`   Force Majeure: ${data.forceMajeure}`);
-      console.log(
-        `   Penalty Duration: ${data.penaltyDuration.amount} ${data.penaltyDuration.unit}`
-      );
-      console.log(`   Cap: ${data.capPercentage}%`);
-      console.log();
-    } catch (error) {
-      console.log(`Error reading ${file}: ${error.message}`);
-    }
-  });
- 
-  console.log("Request Data Files:");
-  console.log("─".repeat(50));
- 
-  requestFiles.forEach((file) => {
-    try {
-      const filePath = path.join(dataDir, file);
-      const data = JSON.parse(fs.readFileSync(filePath, "utf8"));
-      console.log(`${file}`);
-      console.log(`   Goods Value: $${data.goodsValue}`);
-      console.log();
-    } catch (error) {
-      console.log(`Error reading ${file}: ${error.message}`);
-    }
-  });
- 
-  console.log("Example Commands:");
-  console.log("─".repeat(50));
-  console.log("npm run draft:low");
-  console.log("npm run trigger:high");
-  console.log("node draft.js data/template-basic.json");
-  console.log(
-    "node trigger.js data/template-high-penalty.json data/request-low-value.json"
-  );
-  console.log(
-    "\nFor more help: node draft.js --help or node trigger.js --help"
-  );
-}
- 
-listDataFiles();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/prettify.css b/coverage/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/coverage/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/prettify.js b/coverage/prettify.js deleted file mode 100644 index b322523..0000000 --- a/coverage/prettify.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/sort-arrow-sprite.png b/coverage/sort-arrow-sprite.png deleted file mode 100644 index 6ed68316eb3f65dec9063332d2f69bf3093bbfab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc diff --git a/coverage/sorter.js b/coverage/sorter.js deleted file mode 100644 index 2bb296a..0000000 --- a/coverage/sorter.js +++ /dev/null @@ -1,196 +0,0 @@ -/* eslint-disable */ -var addSorting = (function() { - 'use strict'; - var cols, - currentSort = { - index: 0, - desc: false - }; - - // returns the summary table element - function getTable() { - return document.querySelector('.coverage-summary'); - } - // returns the thead element of the summary table - function getTableHeader() { - return getTable().querySelector('thead tr'); - } - // returns the tbody element of the summary table - function getTableBody() { - return getTable().querySelector('tbody'); - } - // returns the th element for nth column - function getNthColumn(n) { - return getTableHeader().querySelectorAll('th')[n]; - } - - function onFilterInput() { - const searchValue = document.getElementById('fileSearch').value; - const rows = document.getElementsByTagName('tbody')[0].children; - for (let i = 0; i < rows.length; i++) { - const row = rows[i]; - if ( - row.textContent - .toLowerCase() - .includes(searchValue.toLowerCase()) - ) { - row.style.display = ''; - } else { - row.style.display = 'none'; - } - } - } - - // loads the search box - function addSearchBox() { - var template = document.getElementById('filterTemplate'); - var templateClone = template.content.cloneNode(true); - templateClone.getElementById('fileSearch').oninput = onFilterInput; - template.parentElement.appendChild(templateClone); - } - - // loads all columns - function loadColumns() { - var colNodes = getTableHeader().querySelectorAll('th'), - colNode, - cols = [], - col, - i; - - for (i = 0; i < colNodes.length; i += 1) { - colNode = colNodes[i]; - col = { - key: colNode.getAttribute('data-col'), - sortable: !colNode.getAttribute('data-nosort'), - type: colNode.getAttribute('data-type') || 'string' - }; - cols.push(col); - if (col.sortable) { - col.defaultDescSort = col.type === 'number'; - colNode.innerHTML = - colNode.innerHTML + ''; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSearchBox(); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/coverage/test-different-values.js.html b/coverage/test-different-values.js.html deleted file mode 100644 index 01679d9..0000000 --- a/coverage/test-different-values.js.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - Code coverage report for test-different-values.js - - - - - - - - - -
-
-

All files test-different-values.js

-
- -
- 0% - Statements - 0/27 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/26 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-async function testWithDifferentValues() {
-  console.log("Testing with Different Values...\n");
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    // Test scenarios with different values
-    const testScenarios = [
-      {
-        name: "Low Value Goods",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: false,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 1,
-            unit: "days",
-          },
-          penaltyPercentage: 5.0,
-          capPercentage: 25,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 30,
-            unit: "days",
-          },
-          fractionalPart: "days",
-          clauseId: "test-1",
-          $identifier: "test-1",
-        },
-        requestData: { goodsValue: 50 },
-      },
-      {
-        name: "High Value Goods",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: true,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 3,
-            unit: "days",
-          },
-          penaltyPercentage: 15.0,
-          capPercentage: 50,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 7,
-            unit: "days",
-          },
-          fractionalPart: "hours",
-          clauseId: "test-2",
-          $identifier: "test-2",
-        },
-        requestData: { goodsValue: 1000 },
-      },
-      {
-        name: "Zero Value Test",
-        templateData: {
-          $class: "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel",
-          forceMajeure: false,
-          penaltyDuration: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 2,
-            unit: "weeks",
-          },
-          penaltyPercentage: 20.0,
-          capPercentage: 75,
-          termination: {
-            $class: "org.accordproject.time@0.3.0.Duration",
-            amount: 1,
-            unit: "months",
-          },
-          fractionalPart: "days",
-          clauseId: "test-3",
-          $identifier: "test-3",
-        },
-        requestData: { goodsValue: 0 },
-      },
-    ];
- 
-    for (let i = 0; i < testScenarios.length; i++) {
-      const scenario = testScenarios[i];
-      console.log(`\nTest ${i + 1}: ${scenario.name}`);
-      console.log("─".repeat(40));
- 
-      // Test both draft and trigger for each scenario
-      console.log("Draft Output:");
-      const draftResult = await templateArchiveProcessor.draft(
-        scenario.templateData,
-        "markdown",
-        { verbose: false }
-      );
-      console.log(draftResult.substring(0, 200) + "...\n");
- 
-      console.log("Trigger Response:");
-      const triggerResponse = await templateArchiveProcessor.trigger(
-        scenario.templateData,
-        scenario.requestData
-      );
-      console.log(`Penalty: $${triggerResponse.penalty}`);
-      console.log(`Buyer May Terminate: ${triggerResponse.buyerMayTerminate}`);
-      console.log(
-        `Penalty Rate: ${scenario.templateData.penaltyPercentage}% | Goods Value: $${scenario.requestData.goodsValue}`
-      );
- 
-      if (i < testScenarios.length - 1) {
-        console.log("\n" + "=".repeat(60));
-      }
-    }
- 
-    console.log("\nAll test scenarios completed successfully!");
-  } catch (error) {
-    console.error("Error in test scenarios:", error.message);
-    process.exit(1);
-  }
-}
- 
-// Run the test scenarios
-testWithDifferentValues();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/trigger.js.html b/coverage/trigger.js.html deleted file mode 100644 index 3772026..0000000 --- a/coverage/trigger.js.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - Code coverage report for trigger.js - - - - - - - - - -
-
-

All files trigger.js

-
- -
- 0% - Statements - 0/64 -
- - -
- 0% - Branches - 0/12 -
- - -
- 0% - Functions - 0/3 -
- - -
- 0% - Lines - 0/64 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const { TemplateArchiveProcessor } = require("@accordproject/template-engine");
-const { Template } = require("@accordproject/cicero-core");
-const fs = require("fs");
-const path = require("path");
- 
-const TEMPLATE_PATH = "./archives/latedeliveryandpenalty-typescript";
- 
-function loadJsonFile(filePath) {
-  try {
-    const fullPath = path.resolve(filePath);
-    const fileContent = fs.readFileSync(fullPath, "utf8");
-    return JSON.parse(fileContent);
-  } catch (error) {
-    console.error(`Error loading JSON file '${filePath}':`, error.message);
-    process.exit(1);
-  }
-}
- 
-function showUsage() {
-  console.log(
-    "Usage: node trigger.js <template-data-file> <request-data-file>"
-  );
-  console.log("\nExample:");
-  console.log(
-    "  node trigger.js data/template-basic.json data/request-basic.json"
-  );
-  console.log(
-    "  node trigger.js data/template-low-penalty.json data/request-high-value.json"
-  );
-  console.log("\nAvailable files:");
-  console.log("  Template data files:");
-  console.log(
-    "    - data/template-basic.json      (10.5% penalty, 15 day termination)"
-  );
-  console.log(
-    "    - data/template-low-penalty.json (5% penalty, 30 day termination)"
-  );
-  console.log(
-    "    - data/template-high-penalty.json (15% penalty, 7 day termination)"
-  );
-  console.log("  Request data files:");
-  console.log("    - data/request-basic.json       ($100 goods value)");
-  console.log("    - data/request-low-value.json   ($50 goods value)");
-  console.log("    - data/request-high-value.json  ($1000 goods value)");
-}
- 
-async function trigger() {
-  const args = process.argv.slice(2);
- 
-  if (args.length === 0) {
-    console.log("No data files specified.\n");
-    showUsage();
-    process.exit(1);
-  }
- 
-  if (args[0] === "--help" || args[0] === "-h") {
-    showUsage();
-    process.exit(0);
-  }
- 
-  if (args.length < 2) {
-    console.log(
-      "Both template data file and request data file are required.\n"
-    );
-    showUsage();
-    process.exit(1);
-  }
- 
-  const templateDataFile = args[0];
-  const requestDataFile = args[1];
- 
-  console.log(`Running TRIGGER operation:`);
-  console.log(`   Template data: ${templateDataFile}`);
-  console.log(`   Request data:  ${requestDataFile}\n`);
- 
-  try {
-    const template = await Template.fromDirectory(TEMPLATE_PATH);
-    const templateArchiveProcessor = new TemplateArchiveProcessor(template);
- 
-    // Load template data (the contract parameters)
-    const data = loadJsonFile(templateDataFile);
- 
-    // Load request data (the input for the business logic)
-    const request = loadJsonFile(requestDataFile);
- 
-    console.log("\nInput Data:");
-    console.log("=".repeat(50));
-    console.log("Template Data:", JSON.stringify(data, null, 2));
-    console.log("\nRequest Data:", JSON.stringify(request, null, 2));
- 
-    const response = await templateArchiveProcessor.trigger(data, request);
- 
-    console.log("\nBusiness Logic Response:");
-    console.log("=".repeat(50));
-    console.log(JSON.stringify(response, null, 2));
- 
-    // Show calculation details
-    if (response && response.penalty !== undefined) {
-      console.log("\nCalculation Details:");
-      console.log(`Penalty Rate: ${data.penaltyPercentage}%`);
-      console.log(`Goods Value: $${request.goodsValue}`);
-      console.log(`Calculated Penalty: $${response.penalty}`);
-      console.log(`Buyer May Terminate: ${response.buyerMayTerminate}`);
-    }
- 
-    console.log("\nTrigger operation completed successfully!\n");
-  } catch (error) {
-    console.error("Error in trigger operation:", error.message);
-    process.exit(1);
-  }
-}
- 
-// Run the trigger operation
-trigger();
- -
-
- - - - - - - - \ No newline at end of file diff --git a/package.json b/package.json index abf332f..53535a8 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,6 @@ "scripts": { "test": "jest", "test:watch": "jest --watch", - "test:coverage": "jest --coverage", "start": "node index.js", "draft": "node --no-deprecation draft.js data/template-basic.json", "draft:low": "node --no-deprecation draft.js data/template-low-penalty.json", @@ -27,15 +26,6 @@ "@accordproject/template-engine": "^2.6.7" }, "jest": { - "testEnvironment": "node", - "collectCoverageFrom": [ - "*.js", - "!node_modules/**" - ], - "coverageReporters": [ - "text", - "lcov", - "html" - ] + "testEnvironment": "node" } } From 6c2771c018f8389aabfc36b5244b2facdaf9022f Mon Sep 17 00:00:00 2001 From: Martin Halford Date: Sat, 14 Jun 2025 18:43:35 +0100 Subject: [PATCH 3/4] Minor README style edits. Signed-off-by: Martin Halford --- README.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/README.md b/README.md index 677f68f..86074fe 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Accord Project Demo Template -A comprehensive Accord Project template demonstrating contract logic implementation using TypeScript, with flexible CLI tools and extensive testing. +An Accord Project template demonstrating contract logic implementation using TypeScript, with flexible CLI tools and extensive testing. ## Quick Start @@ -214,13 +214,3 @@ npm run test-values # Multiple scenarios echo '{"goodsValue": 5000}' > data/custom-request.json node trigger.js data/template-high-penalty.json data/custom-request.json ``` - -## Learn More - -- [Accord Project Documentation](https://docs.accordproject.org/) -- [Cicero Template Engine](https://github.com/accordproject/cicero) -- [Template Development Guide](https://docs.accordproject.org/docs/tutorial-templates) - ---- - -**Built with the Accord Project framework for smart legal contracts.** From dc83c747228d86f30206d3a61c79cb7420ef7e18 Mon Sep 17 00:00:00 2001 From: Martin Halford Date: Sat, 14 Jun 2025 20:35:08 +0100 Subject: [PATCH 4/4] Add generate pdf and generate md logic Signed-off-by: Martin Halford --- .gitignore | 12 + README.md | 62 +++++ __tests__/generate-json.test.js | 411 ++++++++++++++++++++++++++++++ __tests__/generate-md.test.js | 316 +++++++++++++++++++++++ __tests__/generate-pdf.test.js | 258 +++++++++++++++++++ generate-json.js | 180 +++++++++++++ generate-md.js | 141 ++++++++++ generate-pdf.js | 198 ++++++++++++++ index.js | 85 ++----- package-lock.json | 439 +++++++++++++++++++++++++++++++- package.json | 15 +- 11 files changed, 2043 insertions(+), 74 deletions(-) create mode 100644 __tests__/generate-json.test.js create mode 100644 __tests__/generate-md.test.js create mode 100644 __tests__/generate-pdf.test.js create mode 100644 generate-json.js create mode 100644 generate-md.js create mode 100644 generate-pdf.js diff --git a/.gitignore b/.gitignore index fd4f2b0..0433466 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,14 @@ node_modules .DS_Store + +# Generated output files +output/ +*.pdf +contract*.md + +# Test coverage (if generated) +coverage/ + +# Temporary files +*.tmp +*.temp diff --git a/README.md b/README.md index 86074fe..c4302fd 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,15 @@ npm start # Generate a contract draft npm run draft +# Generate a PDF contract +npm run pdf + +# Generate a markdown contract file +npm run md + +# Generate a JSON business logic response +npm run json + # Test business logic npm run trigger @@ -29,6 +38,9 @@ npm test ├── index.js # Main demo script ├── draft.js # Contract generation CLI ├── trigger.js # Business logic CLI +├── generate-pdf.js # PDF generation CLI +├── generate-md.js # Markdown generation CLI +├── generate-json.js # JSON response generation CLI ├── list-data-files.js # Data file explorer ├── test-different-values.js # Multi-scenario demo ├── data/ # JSON configuration files @@ -70,6 +82,54 @@ node trigger.js data/template-basic.json data/request-basic.json node trigger.js --help # Show usage ``` +### PDF Generation + +Generate PDF contracts from template data: + +```bash +# Using npm scripts +npm run pdf # Basic template +npm run pdf:low # Low penalty template +npm run pdf:high # High penalty template + +# Using Node.js directly +node generate-pdf.js data/template-basic.json +node generate-pdf.js data/template-basic.json output/contract.pdf +node generate-pdf.js --help # Show usage +``` + +### Markdown Generation + +Generate markdown contract files from template data: + +```bash +# Using npm scripts +npm run md # Basic template +npm run md:low # Low penalty template +npm run md:high # High penalty template + +# Using Node.js directly +node generate-md.js data/template-basic.json +node generate-md.js data/template-basic.json output/contract.md +node generate-md.js --help # Show usage +``` + +### JSON Response Generation + +Generate JSON business logic response files from template and request data: + +```bash +# Using npm scripts +npm run json # Basic scenario +npm run json:low # Low penalty + low value +npm run json:high # High penalty + high value + +# Using Node.js directly +node generate-json.js data/template-basic.json data/request-basic.json +node generate-json.js data/template-basic.json data/request-basic.json output/response.json +node generate-json.js --help # Show usage +``` + ### Utility Tools ```bash @@ -187,6 +247,8 @@ npm test -- --testNamePattern="should handle" - **CLI Tools** - Easy-to-use command-line interfaces - **Comprehensive Testing** - Full CLI integration test coverage - **Multiple Output Formats** - Markdown, HTML, PDF contract generation +- **PDF Generation** - Direct PDF output from template data +- **JSON Response Generation** - Business logic responses saved to files - **Business Logic Engine** - Penalty calculations and contract logic - **Scenario Testing** - Pre-configured test cases and combinations - **Data Exploration** - Built-in tools to explore available configurations diff --git a/__tests__/generate-json.test.js b/__tests__/generate-json.test.js new file mode 100644 index 0000000..4a4a11b --- /dev/null +++ b/__tests__/generate-json.test.js @@ -0,0 +1,411 @@ +const { spawn } = require("child_process"); +const fs = require("fs"); +const path = require("path"); + +// Helper function to run CLI commands +function runCLI(args, timeout = 30000) { + return new Promise((resolve, reject) => { + const child = spawn("node", ["generate-json.js", ...args], { + stdio: ["pipe", "pipe", "pipe"], + }); + + let stdout = ""; + let stderr = ""; + + child.stdout.on("data", (data) => { + stdout += data.toString(); + }); + + child.stderr.on("data", (data) => { + stderr += data.toString(); + }); + + const timer = setTimeout(() => { + child.kill(); + reject(new Error(`Command timed out after ${timeout}ms`)); + }, timeout); + + child.on("close", (code) => { + clearTimeout(timer); + resolve({ + code, + stdout, + stderr, + }); + }); + + child.on("error", (error) => { + clearTimeout(timer); + reject(error); + }); + }); +} + +// Clean up generated files after tests +function cleanupOutputFiles() { + const outputDir = "output"; + if (fs.existsSync(outputDir)) { + const files = fs.readdirSync(outputDir); + files.forEach((file) => { + if (file.endsWith(".json")) { + try { + fs.unlinkSync(path.join(outputDir, file)); + } catch (error) { + // Ignore cleanup errors + } + } + }); + } +} + +describe("generate-json.js CLI Tool", () => { + beforeEach(() => { + cleanupOutputFiles(); + }); + + afterAll(() => { + cleanupOutputFiles(); + }); + + describe("Help and Usage", () => { + test("should show usage with --help flag", async () => { + const result = await runCLI(["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node generate-json.js"); + expect(result.stdout).toContain( + "Generate JSON business logic response from template and request data" + ); + expect(result.stdout).toContain("template-data-file"); + expect(result.stdout).toContain("request-data-file"); + expect(result.stdout).toContain("output-file"); + expect(result.stdout).toContain("Examples:"); + }); + + test("should show usage with -h flag", async () => { + const result = await runCLI(["-h"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node generate-json.js"); + }); + + test("should list available template and request data files", async () => { + const result = await runCLI(["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Available template data files:"); + expect(result.stdout).toContain("data/template-basic.json"); + expect(result.stdout).toContain("data/template-low-penalty.json"); + expect(result.stdout).toContain("data/template-high-penalty.json"); + expect(result.stdout).toContain("Available request data files:"); + expect(result.stdout).toContain("data/request-basic.json"); + expect(result.stdout).toContain("data/request-low-value.json"); + expect(result.stdout).toContain("data/request-high-value.json"); + }); + }); + + describe("Error Handling", () => { + test("should show error when no arguments provided", async () => { + const result = await runCLI([]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain( + "Error: Both template data file and request data file are required" + ); + }); + + test("should show error when only template file provided", async () => { + const result = await runCLI(["data/template-basic.json"]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain( + "Error: Both template data file and request data file are required" + ); + }); + + test("should show error when template file does not exist", async () => { + const result = await runCLI([ + "nonexistent.json", + "data/request-basic.json", + ]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain( + "Template data file 'nonexistent.json' not found" + ); + }); + + test("should show error when request file does not exist", async () => { + const result = await runCLI([ + "data/template-basic.json", + "nonexistent.json", + ]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain( + "Request data file 'nonexistent.json' not found" + ); + }); + + test("should handle invalid JSON in template file", async () => { + // Create a temporary invalid JSON file + const tempFile = "temp-invalid.json"; + fs.writeFileSync(tempFile, "{ invalid json }"); + + // Verify file was created + expect(fs.existsSync(tempFile)).toBe(true); + + try { + const result = await runCLI([tempFile, "data/request-basic.json"]); + expect(result.code).toBe(1); + // The error could be either file not found (if cleaned up) or JSON parsing error + expect( + result.stderr.includes(`Error loading JSON file '${tempFile}':`) || + result.stderr.includes(`Template data file '${tempFile}' not found`) + ).toBe(true); + } finally { + // Clean up temp file + if (fs.existsSync(tempFile)) { + fs.unlinkSync(tempFile); + } + } + }); + + test("should handle invalid JSON in request file", async () => { + // Create a temporary invalid JSON file + const tempFile = "temp-invalid-request.json"; + fs.writeFileSync(tempFile, "{ invalid json }"); + + try { + const result = await runCLI(["data/template-basic.json", tempFile]); + expect(result.code).toBe(1); + expect(result.stderr).toContain("Error loading JSON file"); + } finally { + // Clean up temp file + if (fs.existsSync(tempFile)) { + fs.unlinkSync(tempFile); + } + } + }); + }); + + describe("JSON Response Generation", () => { + test("should generate JSON response with basic template and request (default output)", async () => { + const result = await runCLI([ + "data/template-basic.json", + "data/request-basic.json", + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "Generating JSON business logic response..." + ); + expect(result.stdout).toContain( + "Loading template data from: data/template-basic.json" + ); + expect(result.stdout).toContain( + "Loading request data from: data/request-basic.json" + ); + expect(result.stdout).toContain("Loading Accord Project template..."); + expect(result.stdout).toContain("Executing business logic..."); + expect(result.stdout).toContain("JSON Response Generation Results:"); + expect(result.stdout).toContain( + "✓ Template data: data/template-basic.json" + ); + expect(result.stdout).toContain( + "✓ Request data: data/request-basic.json" + ); + expect(result.stdout).toContain("✓ JSON output: output/response.json"); + expect(result.stdout).toContain("✓ Penalty calculated:"); + expect(result.stdout).toContain( + "JSON response generation completed successfully!" + ); + + // Check that JSON file was created + expect(fs.existsSync("output/response.json")).toBe(true); + + // Check JSON content structure + const content = fs.readFileSync("output/response.json", "utf8"); + const jsonData = JSON.parse(content); + expect(jsonData).toHaveProperty("result"); + expect(jsonData.result).toHaveProperty("penalty"); + expect(jsonData.result).toHaveProperty("buyerMayTerminate"); + expect(jsonData.result).toHaveProperty("$timestamp"); + expect(jsonData.result).toHaveProperty("$class"); + }); + + test("should generate JSON response with custom output path", async () => { + const customPath = "output/custom-response.json"; + const result = await runCLI([ + "data/template-basic.json", + "data/request-basic.json", + customPath, + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain(`✓ JSON output: ${customPath}`); + + // Check that JSON file was created at custom path + expect(fs.existsSync(customPath)).toBe(true); + }); + + test("should generate JSON response with low penalty scenario", async () => { + const result = await runCLI([ + "data/template-low-penalty.json", + "data/request-low-value.json", + "output/low-response.json", + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "✓ Template data: data/template-low-penalty.json" + ); + expect(result.stdout).toContain( + "✓ Request data: data/request-low-value.json" + ); + expect(result.stdout).toContain( + "✓ JSON output: output/low-response.json" + ); + + // Check that JSON file was created + expect(fs.existsSync("output/low-response.json")).toBe(true); + + // Check JSON content + const content = fs.readFileSync("output/low-response.json", "utf8"); + const jsonData = JSON.parse(content); + expect(jsonData.result).toHaveProperty("penalty"); + expect(typeof jsonData.result.penalty).toBe("number"); + }); + + test("should generate JSON response with high penalty scenario", async () => { + const result = await runCLI([ + "data/template-high-penalty.json", + "data/request-high-value.json", + "output/high-response.json", + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "✓ Template data: data/template-high-penalty.json" + ); + expect(result.stdout).toContain( + "✓ Request data: data/request-high-value.json" + ); + expect(result.stdout).toContain( + "✓ JSON output: output/high-response.json" + ); + + // Check that JSON file was created + expect(fs.existsSync("output/high-response.json")).toBe(true); + + // Check JSON content + const content = fs.readFileSync("output/high-response.json", "utf8"); + const jsonData = JSON.parse(content); + expect(jsonData.result).toHaveProperty("penalty"); + expect(typeof jsonData.result.penalty).toBe("number"); + }); + + test("should create output directory if it does not exist", async () => { + const customDir = "test-output-dir"; + const customPath = `${customDir}/test-response.json`; + + // Ensure directory doesn't exist + if (fs.existsSync(customDir)) { + fs.rmSync(customDir, { recursive: true }); + } + + try { + const result = await runCLI([ + "data/template-basic.json", + "data/request-basic.json", + customPath, + ]); + + expect(result.code).toBe(0); + expect(fs.existsSync(customPath)).toBe(true); + } finally { + // Clean up test directory + if (fs.existsSync(customDir)) { + fs.rmSync(customDir, { recursive: true }); + } + } + }); + }); + + describe("Output Validation", () => { + test("should display file size in output", async () => { + const result = await runCLI([ + "data/template-basic.json", + "data/request-basic.json", + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toMatch(/✓ File size: \d+\.\d+ KB/); + }); + + test("should display calculated penalty in output", async () => { + const result = await runCLI([ + "data/template-basic.json", + "data/request-basic.json", + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toMatch(/✓ Penalty calculated: \d+%/); + }); + + test("should generate valid JSON structure", async () => { + const result = await runCLI([ + "data/template-basic.json", + "data/request-basic.json", + ]); + + expect(result.code).toBe(0); + + // Check that JSON file contains expected structure + const content = fs.readFileSync("output/response.json", "utf8"); + const jsonData = JSON.parse(content); + + // Validate core response structure + expect(jsonData).toHaveProperty("result"); + expect(jsonData.result).toHaveProperty("penalty"); + expect(jsonData.result).toHaveProperty("buyerMayTerminate"); + expect(jsonData.result).toHaveProperty("$timestamp"); + expect(jsonData.result).toHaveProperty("$class"); + + // Validate data types + expect(typeof jsonData.result.penalty).toBe("number"); + expect(typeof jsonData.result.buyerMayTerminate).toBe("boolean"); + expect(typeof jsonData.result.$timestamp).toBe("string"); + expect(typeof jsonData.result.$class).toBe("string"); + + // Validate class name + expect(jsonData.result.$class).toContain( + "LateDeliveryAndPenaltyResponse" + ); + }); + + test("should handle different template and request combinations", async () => { + // Test different combinations + const combinations = [ + ["data/template-basic.json", "data/request-basic.json"], + ["data/template-low-penalty.json", "data/request-basic.json"], + ["data/template-high-penalty.json", "data/request-basic.json"], + ]; + + for (const [template, request] of combinations) { + const result = await runCLI([ + template, + request, + `output/test-${path.basename(template, ".json")}-${path.basename( + request, + ".json" + )}.json`, + ]); + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "JSON response generation completed successfully!" + ); + } + }, 60000); // Increase timeout to 1 minute for multiple combinations + }); +}); diff --git a/__tests__/generate-md.test.js b/__tests__/generate-md.test.js new file mode 100644 index 0000000..a6ed779 --- /dev/null +++ b/__tests__/generate-md.test.js @@ -0,0 +1,316 @@ +const { spawn } = require("child_process"); +const fs = require("fs"); +const path = require("path"); + +// Helper function to run CLI commands +function runCLI(args, timeout = 30000) { + return new Promise((resolve, reject) => { + const child = spawn("node", ["generate-md.js", ...args], { + stdio: ["pipe", "pipe", "pipe"], + }); + + let stdout = ""; + let stderr = ""; + + child.stdout.on("data", (data) => { + stdout += data.toString(); + }); + + child.stderr.on("data", (data) => { + stderr += data.toString(); + }); + + const timer = setTimeout(() => { + child.kill(); + reject(new Error(`Command timed out after ${timeout}ms`)); + }, timeout); + + child.on("close", (code) => { + clearTimeout(timer); + resolve({ + code, + stdout, + stderr, + }); + }); + + child.on("error", (error) => { + clearTimeout(timer); + reject(error); + }); + }); +} + +// Clean up generated files after tests +function cleanupOutputFiles() { + const outputDir = "output"; + if (fs.existsSync(outputDir)) { + const files = fs.readdirSync(outputDir); + files.forEach((file) => { + if (file.endsWith(".md")) { + try { + fs.unlinkSync(path.join(outputDir, file)); + } catch (error) { + // Ignore cleanup errors + } + } + }); + } +} + +describe("generate-md.js CLI Tool", () => { + beforeEach(() => { + cleanupOutputFiles(); + }); + + afterAll(() => { + cleanupOutputFiles(); + }); + + describe("Help and Usage", () => { + test("should show usage with --help flag", async () => { + const result = await runCLI(["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node generate-md.js"); + expect(result.stdout).toContain( + "Generate markdown contract from template data" + ); + expect(result.stdout).toContain("template-data-file"); + expect(result.stdout).toContain("output-file"); + expect(result.stdout).toContain("Examples:"); + }); + + test("should show usage with -h flag", async () => { + const result = await runCLI(["-h"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node generate-md.js"); + }); + + test("should list available template data files", async () => { + const result = await runCLI(["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Available template data files:"); + expect(result.stdout).toContain("data/template-basic.json"); + expect(result.stdout).toContain("data/template-low-penalty.json"); + expect(result.stdout).toContain("data/template-high-penalty.json"); + }); + }); + + describe("Error Handling", () => { + test("should show error when no arguments provided", async () => { + const result = await runCLI([]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain("Error: Template data file is required"); + }); + + test("should show error when template file does not exist", async () => { + const result = await runCLI(["nonexistent.json"]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain( + "Template data file 'nonexistent.json' not found" + ); + }); + + test("should handle invalid JSON in template file", async () => { + // Create a temporary invalid JSON file + const tempFile = "temp-invalid.json"; + fs.writeFileSync(tempFile, "{ invalid json }"); + + // Verify file was created + expect(fs.existsSync(tempFile)).toBe(true); + + try { + const result = await runCLI([tempFile]); + expect(result.code).toBe(1); + // The error could be either file not found (if cleaned up) or JSON parsing error + expect( + result.stderr.includes(`Error loading JSON file '${tempFile}':`) || + result.stderr.includes(`Template data file '${tempFile}' not found`) + ).toBe(true); + } finally { + // Clean up temp file + if (fs.existsSync(tempFile)) { + fs.unlinkSync(tempFile); + } + } + }); + }); + + describe("Markdown Generation", () => { + test("should generate markdown with basic template (default output)", async () => { + const result = await runCLI(["data/template-basic.json"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Generating markdown contract..."); + expect(result.stdout).toContain( + "Loading template data from: data/template-basic.json" + ); + expect(result.stdout).toContain("Loading Accord Project template..."); + expect(result.stdout).toContain("Markdown Generation Results:"); + expect(result.stdout).toContain( + "✓ Template data: data/template-basic.json" + ); + expect(result.stdout).toContain("✓ Markdown output: output/contract.md"); + expect(result.stdout).toContain( + "Markdown generation completed successfully!" + ); + + // Check that markdown file was created + expect(fs.existsSync("output/contract.md")).toBe(true); + + // Check file content + const content = fs.readFileSync("output/contract.md", "utf8"); + expect(content).toContain("Late Delivery and Penalty"); + expect(content).toContain("penalty"); + expect(content).toContain("delay"); + }); + + test("should generate markdown with custom output path", async () => { + const customPath = "output/custom-contract.md"; + const result = await runCLI(["data/template-basic.json", customPath]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain(`✓ Markdown output: ${customPath}`); + + // Check that markdown file was created at custom path + expect(fs.existsSync(customPath)).toBe(true); + }); + + test("should generate markdown with low penalty template", async () => { + const result = await runCLI([ + "data/template-low-penalty.json", + "output/low-penalty.md", + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "✓ Template data: data/template-low-penalty.json" + ); + expect(result.stdout).toContain( + "✓ Markdown output: output/low-penalty.md" + ); + + // Check that markdown file was created + expect(fs.existsSync("output/low-penalty.md")).toBe(true); + + // Check content reflects low penalty configuration + const content = fs.readFileSync("output/low-penalty.md", "utf8"); + expect(content).toContain("Late Delivery and Penalty"); + }); + + test("should generate markdown with high penalty template", async () => { + const result = await runCLI([ + "data/template-high-penalty.json", + "output/high-penalty.md", + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "✓ Template data: data/template-high-penalty.json" + ); + expect(result.stdout).toContain( + "✓ Markdown output: output/high-penalty.md" + ); + + // Check that markdown file was created + expect(fs.existsSync("output/high-penalty.md")).toBe(true); + }); + + test("should create output directory if it does not exist", async () => { + const customDir = "test-output-dir"; + const customPath = `${customDir}/test-contract.md`; + + // Ensure directory doesn't exist + if (fs.existsSync(customDir)) { + fs.rmSync(customDir, { recursive: true }); + } + + try { + const result = await runCLI(["data/template-basic.json", customPath]); + + expect(result.code).toBe(0); + expect(fs.existsSync(customPath)).toBe(true); + } finally { + // Clean up test directory + if (fs.existsSync(customDir)) { + fs.rmSync(customDir, { recursive: true }); + } + } + }); + + test("should handle different template configurations", async () => { + // Test all three template variants + const templates = [ + "data/template-basic.json", + "data/template-low-penalty.json", + "data/template-high-penalty.json", + ]; + + for (const template of templates) { + const result = await runCLI([ + template, + `output/test-${path.basename(template, ".json")}.md`, + ]); + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "Markdown generation completed successfully!" + ); + } + }, 60000); // Increase timeout to 1 minute for multiple template processing + }); + + describe("Output Validation", () => { + test("should display file size in output", async () => { + const result = await runCLI(["data/template-basic.json"]); + + expect(result.code).toBe(0); + expect(result.stdout).toMatch(/✓ File size: \d+\.\d+ KB/); + }); + + test("should generate valid markdown content", async () => { + const result = await runCLI(["data/template-basic.json"]); + + expect(result.code).toBe(0); + + // Check that markdown file contains expected structure + const content = fs.readFileSync("output/contract.md", "utf8"); + expect(content).toContain("Late Delivery and Penalty"); + expect(content).toContain("----"); // Markdown separator + expect(content).toContain("penalty"); + expect(content).toContain("delay"); + expect(content).toContain("%"); // Percentage values + }); + + test("should handle different template configurations", async () => { + // Test all three template variants + const templates = [ + "data/template-basic.json", + "data/template-low-penalty.json", + "data/template-high-penalty.json", + ]; + + for (const template of templates) { + const result = await runCLI([ + template, + `output/test-${path.basename(template, ".json")}.md`, + ]); + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "Markdown generation completed successfully!" + ); + + // Verify file was created and has content + const outputFile = `output/test-${path.basename(template, ".json")}.md`; + expect(fs.existsSync(outputFile)).toBe(true); + + const content = fs.readFileSync(outputFile, "utf8"); + expect(content.length).toBeGreaterThan(100); // Should have substantial content + } + }, 60000); // Increase timeout to 1 minute for multiple template processing + }); +}); diff --git a/__tests__/generate-pdf.test.js b/__tests__/generate-pdf.test.js new file mode 100644 index 0000000..909098d --- /dev/null +++ b/__tests__/generate-pdf.test.js @@ -0,0 +1,258 @@ +const { spawn } = require("child_process"); +const fs = require("fs"); +const path = require("path"); + +// Helper function to run CLI commands +function runCLI(args, timeout = 30000) { + return new Promise((resolve, reject) => { + const child = spawn("node", ["generate-pdf.js", ...args], { + stdio: ["pipe", "pipe", "pipe"], + }); + + let stdout = ""; + let stderr = ""; + + child.stdout.on("data", (data) => { + stdout += data.toString(); + }); + + child.stderr.on("data", (data) => { + stderr += data.toString(); + }); + + const timer = setTimeout(() => { + child.kill(); + reject(new Error(`Command timed out after ${timeout}ms`)); + }, timeout); + + child.on("close", (code) => { + clearTimeout(timer); + resolve({ + code, + stdout, + stderr, + }); + }); + + child.on("error", (error) => { + clearTimeout(timer); + reject(error); + }); + }); +} + +// Clean up generated files after tests +function cleanupOutputFiles() { + const outputDir = "output"; + if (fs.existsSync(outputDir)) { + const files = fs.readdirSync(outputDir); + files.forEach((file) => { + if (file.endsWith(".pdf") || file.endsWith(".md")) { + try { + fs.unlinkSync(path.join(outputDir, file)); + } catch (error) { + // Ignore cleanup errors + } + } + }); + } +} + +describe("generate-pdf.js CLI Tool", () => { + beforeEach(() => { + cleanupOutputFiles(); + }); + + afterAll(() => { + cleanupOutputFiles(); + }); + + describe("Help and Usage", () => { + test("should show usage with --help flag", async () => { + const result = await runCLI(["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node generate-pdf.js"); + expect(result.stdout).toContain( + "Generate PDF contract from template data" + ); + expect(result.stdout).toContain("template-data-file"); + expect(result.stdout).toContain("output-file"); + expect(result.stdout).toContain("Examples:"); + }); + + test("should show usage with -h flag", async () => { + const result = await runCLI(["-h"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Usage: node generate-pdf.js"); + }); + + test("should list available template data files", async () => { + const result = await runCLI(["--help"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Available template data files:"); + expect(result.stdout).toContain("data/template-basic.json"); + expect(result.stdout).toContain("data/template-low-penalty.json"); + expect(result.stdout).toContain("data/template-high-penalty.json"); + }); + }); + + describe("Error Handling", () => { + test("should show error when no arguments provided", async () => { + const result = await runCLI([]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain("Error: Template data file is required"); + }); + + test("should show error when template file does not exist", async () => { + const result = await runCLI(["nonexistent.json"]); + + expect(result.code).toBe(1); + expect(result.stderr).toContain( + "Template data file 'nonexistent.json' not found" + ); + }); + + test("should handle invalid JSON in template file", async () => { + // Create a temporary invalid JSON file + const tempFile = "temp-invalid.json"; + fs.writeFileSync(tempFile, "{ invalid json }"); + + try { + const result = await runCLI([tempFile]); + expect(result.code).toBe(1); + expect(result.stderr).toContain("Error loading JSON file"); + } finally { + // Clean up temp file + if (fs.existsSync(tempFile)) { + fs.unlinkSync(tempFile); + } + } + }); + }); + + describe("PDF Generation", () => { + test("should generate PDF with basic template (default output)", async () => { + const result = await runCLI(["data/template-basic.json"]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain("Generating PDF contract..."); + expect(result.stdout).toContain( + "Loading template data from: data/template-basic.json" + ); + expect(result.stdout).toContain("Loading Accord Project template..."); + expect(result.stdout).toContain("Generating markdown contract..."); + expect(result.stdout).toContain("Converting markdown to PDF..."); + expect(result.stdout).toContain("PDF Generation Results:"); + expect(result.stdout).toContain( + "✓ Template data: data/template-basic.json" + ); + expect(result.stdout).toContain("✓ PDF output: output/contract.pdf"); + expect(result.stdout).toContain("PDF generation completed successfully!"); + + // Check that PDF file was created + expect(fs.existsSync("output/contract.pdf")).toBe(true); + + // Check file size is reasonable + const stats = fs.statSync("output/contract.pdf"); + expect(stats.size).toBeGreaterThan(1000); // Should be at least 1KB + }, 45000); + + test("should generate PDF with custom output path", async () => { + const customPath = "output/custom-contract.pdf"; + const result = await runCLI(["data/template-basic.json", customPath]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain(`✓ PDF output: ${customPath}`); + + // Check that PDF file was created at custom path + expect(fs.existsSync(customPath)).toBe(true); + }, 45000); + + test("should generate PDF with low penalty template", async () => { + const result = await runCLI([ + "data/template-low-penalty.json", + "output/low-penalty.pdf", + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "✓ Template data: data/template-low-penalty.json" + ); + expect(result.stdout).toContain("✓ PDF output: output/low-penalty.pdf"); + + // Check that PDF file was created + expect(fs.existsSync("output/low-penalty.pdf")).toBe(true); + }, 45000); + + test("should generate PDF with high penalty template", async () => { + const result = await runCLI([ + "data/template-high-penalty.json", + "output/high-penalty.pdf", + ]); + + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "✓ Template data: data/template-high-penalty.json" + ); + expect(result.stdout).toContain("✓ PDF output: output/high-penalty.pdf"); + + // Check that PDF file was created + expect(fs.existsSync("output/high-penalty.pdf")).toBe(true); + }, 45000); + + test("should create output directory if it does not exist", async () => { + const customDir = "test-output-dir"; + const customPath = `${customDir}/test-contract.pdf`; + + // Ensure directory doesn't exist + if (fs.existsSync(customDir)) { + fs.rmSync(customDir, { recursive: true }); + } + + try { + const result = await runCLI(["data/template-basic.json", customPath]); + + expect(result.code).toBe(0); + expect(fs.existsSync(customPath)).toBe(true); + } finally { + // Clean up test directory + if (fs.existsSync(customDir)) { + fs.rmSync(customDir, { recursive: true }); + } + } + }, 45000); + }); + + describe("Output Validation", () => { + test("should display file size in output", async () => { + const result = await runCLI(["data/template-basic.json"]); + + expect(result.code).toBe(0); + expect(result.stdout).toMatch(/✓ File size: \d+\.\d+ KB/); + }); + + test("should handle different template configurations", async () => { + // Test all three template variants + const templates = [ + "data/template-basic.json", + "data/template-low-penalty.json", + "data/template-high-penalty.json", + ]; + + for (const template of templates) { + const result = await runCLI([ + template, + `output/test-${path.basename(template, ".json")}.pdf`, + ]); + expect(result.code).toBe(0); + expect(result.stdout).toContain( + "PDF generation completed successfully!" + ); + } + }, 120000); // Increase timeout to 2 minutes for multiple template processing + }); +}); diff --git a/generate-json.js b/generate-json.js new file mode 100644 index 0000000..cfd274b --- /dev/null +++ b/generate-json.js @@ -0,0 +1,180 @@ +#!/usr/bin/env node + +const fs = require("fs"); +const path = require("path"); +const { Template } = require("@accordproject/cicero-core"); +const { TemplateArchiveProcessor } = require("@accordproject/template-engine"); + +// Function to show usage information +function showUsage() { + console.log( + "Usage: node generate-json.js [output-file]" + ); + console.log(""); + console.log( + "Generate JSON business logic response from template and request data" + ); + console.log(""); + console.log("Arguments:"); + console.log( + " template-data-file Path to JSON file containing template data" + ); + console.log( + " request-data-file Path to JSON file containing request data" + ); + console.log( + " output-file Optional: JSON output file path (default: output/response.json)" + ); + console.log(""); + console.log("Examples:"); + console.log( + " node generate-json.js data/template-basic.json data/request-basic.json" + ); + console.log( + " node generate-json.js data/template-basic.json data/request-basic.json output/response.json" + ); + console.log( + " node generate-json.js data/template-low-penalty.json data/request-low-value.json output/low-response.json" + ); + console.log(""); + console.log("Available template data files:"); + + // List available template files + const dataDir = "data"; + if (fs.existsSync(dataDir)) { + const templateFiles = fs + .readdirSync(dataDir) + .filter((f) => f.startsWith("template-") && f.endsWith(".json")) + .sort(); + + templateFiles.forEach((file) => { + console.log(` data/${file}`); + }); + + console.log(""); + console.log("Available request data files:"); + + const requestFiles = fs + .readdirSync(dataDir) + .filter((f) => f.startsWith("request-") && f.endsWith(".json")) + .sort(); + + requestFiles.forEach((file) => { + console.log(` data/${file}`); + }); + } +} + +// Function to load JSON file +function loadJsonFile(filePath) { + try { + const content = fs.readFileSync(filePath, "utf8"); + return JSON.parse(content); + } catch (error) { + console.error(`Error loading JSON file '${filePath}':`, error.message); + process.exit(1); + } +} + +// Function to ensure directory exists +function ensureDirectoryExists(filePath) { + const dir = path.dirname(filePath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } +} + +// Main function +async function main() { + // Check for help flags + if (process.argv.includes("--help") || process.argv.includes("-h")) { + showUsage(); + process.exit(0); + } + + // Check arguments + if (process.argv.length < 4) { + console.error( + "Error: Both template data file and request data file are required" + ); + console.log(""); + showUsage(); + process.exit(1); + } + + const templateDataFile = process.argv[2]; + const requestDataFile = process.argv[3]; + const outputFile = process.argv[4] || "output/response.json"; + + // Validate files exist + if (!fs.existsSync(templateDataFile)) { + console.error(`Error: Template data file '${templateDataFile}' not found`); + process.exit(1); + } + + if (!fs.existsSync(requestDataFile)) { + console.error(`Error: Request data file '${requestDataFile}' not found`); + process.exit(1); + } + + try { + console.log("Generating JSON business logic response..."); + console.log("_".repeat(50)); + + // Load template and request data + console.log(`Loading template data from: ${templateDataFile}`); + const templateData = loadJsonFile(templateDataFile); + + console.log(`Loading request data from: ${requestDataFile}`); + const requestData = loadJsonFile(requestDataFile); + + // Load the template + console.log("Loading Accord Project template..."); + const template = await Template.fromDirectory( + "./archives/latedeliveryandpenalty-typescript" + ); + + // Create template processor + const processor = new TemplateArchiveProcessor(template); + + // Execute business logic + console.log("Executing business logic..."); + const response = await processor.trigger(templateData, requestData); + + // Ensure output directory exists + ensureDirectoryExists(outputFile); + + // Write JSON response file (core response only) + fs.writeFileSync(outputFile, JSON.stringify(response, null, 2)); + + // Get file stats + const stats = fs.statSync(outputFile); + + console.log("_".repeat(50)); + console.log("JSON Response Generation Results:"); + console.log(`✓ Template data: ${templateDataFile}`); + console.log(`✓ Request data: ${requestDataFile}`); + console.log(`✓ JSON output: ${outputFile}`); + console.log(`✓ File size: ${(stats.size / 1024).toFixed(1)} KB`); + + // Display key response details + if (response && response.result && response.result.penalty !== undefined) { + console.log(`✓ Penalty calculated: ${response.result.penalty}%`); + } + + console.log(""); + console.log("JSON response generation completed successfully!"); + } catch (error) { + console.error("Error generating JSON response:", error.message); + process.exit(1); + } +} + +// Handle unhandled promise rejections +process.on("unhandledRejection", (reason, promise) => { + console.error("Unhandled Rejection at:", promise, "reason:", reason); + process.exit(1); +}); + +// Run the main function +main(); diff --git a/generate-md.js b/generate-md.js new file mode 100644 index 0000000..5e41058 --- /dev/null +++ b/generate-md.js @@ -0,0 +1,141 @@ +#!/usr/bin/env node + +const fs = require("fs"); +const path = require("path"); +const { Template } = require("@accordproject/cicero-core"); +const { TemplateArchiveProcessor } = require("@accordproject/template-engine"); + +// Function to show usage information +function showUsage() { + console.log("Usage: node generate-md.js [output-file]"); + console.log(""); + console.log("Generate markdown contract from template data"); + console.log(""); + console.log("Arguments:"); + console.log( + " template-data-file Path to JSON file containing template data" + ); + console.log( + " output-file Optional: Markdown output file path (default: output/contract.md)" + ); + console.log(""); + console.log("Examples:"); + console.log(" node generate-md.js data/template-basic.json"); + console.log( + " node generate-md.js data/template-basic.json output/contract.md" + ); + console.log(" node generate-md.js data/template-basic.json custom/path.md"); + console.log(""); + console.log("Available template data files:"); + + // List available template files + const dataDir = "data"; + if (fs.existsSync(dataDir)) { + const files = fs + .readdirSync(dataDir) + .filter((f) => f.startsWith("template-") && f.endsWith(".json")) + .sort(); + + files.forEach((file) => { + console.log(` data/${file}`); + }); + } +} + +// Function to load JSON file +function loadJsonFile(filePath) { + try { + const content = fs.readFileSync(filePath, "utf8"); + return JSON.parse(content); + } catch (error) { + console.error(`Error loading JSON file '${filePath}':`, error.message); + process.exit(1); + } +} + +// Function to ensure directory exists +function ensureDirectoryExists(filePath) { + const dir = path.dirname(filePath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } +} + +// Main function +async function main() { + // Check for help flags + if (process.argv.includes("--help") || process.argv.includes("-h")) { + showUsage(); + process.exit(0); + } + + // Check arguments + if (process.argv.length < 3) { + console.error("Error: Template data file is required"); + console.log(""); + showUsage(); + process.exit(1); + } + + const templateDataFile = process.argv[2]; + const outputFile = process.argv[3] || "output/contract.md"; + + // Validate template data file exists + if (!fs.existsSync(templateDataFile)) { + console.error(`Error: Template data file '${templateDataFile}' not found`); + process.exit(1); + } + + try { + console.log("Generating markdown contract..."); + console.log("_".repeat(50)); + + // Load template data + console.log(`Loading template data from: ${templateDataFile}`); + const templateData = loadJsonFile(templateDataFile); + + // Load the template + console.log("Loading Accord Project template..."); + const template = await Template.fromDirectory( + "./archives/latedeliveryandpenalty-typescript" + ); + + // Create template processor + const processor = new TemplateArchiveProcessor(template); + + // Generate markdown + console.log("Generating markdown contract..."); + const markdown = await processor.draft(templateData, "markdown", { + verbose: false, + }); + + // Ensure output directory exists + ensureDirectoryExists(outputFile); + + // Write markdown file + fs.writeFileSync(outputFile, markdown); + + // Get file stats + const stats = fs.statSync(outputFile); + + console.log("_".repeat(50)); + console.log("Markdown Generation Results:"); + console.log(`✓ Template data: ${templateDataFile}`); + console.log(`✓ Markdown output: ${outputFile}`); + console.log(`✓ File size: ${(stats.size / 1024).toFixed(1)} KB`); + console.log(""); + console.log("Markdown generation completed successfully!"); + } catch (error) { + console.error("Error generating markdown:", error.message); + process.exit(1); + } +} + +// Handle unhandled promise rejections +process.on("unhandledRejection", (reason, promise) => { + console.error("Unhandled Rejection at:", promise, "reason:", reason); + process.exit(1); +}); + +// Run the main function +main(); diff --git a/generate-pdf.js b/generate-pdf.js new file mode 100644 index 0000000..070fc25 --- /dev/null +++ b/generate-pdf.js @@ -0,0 +1,198 @@ +#!/usr/bin/env node + +const fs = require("fs"); +const path = require("path"); +const { Template } = require("@accordproject/cicero-core"); +const { TemplateArchiveProcessor } = require("@accordproject/template-engine"); + +// Function to show usage information +function showUsage() { + console.log("Usage: node generate-pdf.js [output-file]"); + console.log(""); + console.log("Generate PDF contract from template data"); + console.log(""); + console.log("Arguments:"); + console.log( + " template-data-file Path to JSON file containing template data" + ); + console.log( + " output-file Optional: PDF output file path (default: output/contract.pdf)" + ); + console.log(""); + console.log("Examples:"); + console.log(" node generate-pdf.js data/template-basic.json"); + console.log( + " node generate-pdf.js data/template-basic.json output/contract.pdf" + ); + console.log(""); + console.log("Available template data files:"); + + // List available template files + const dataDir = "data"; + if (fs.existsSync(dataDir)) { + const files = fs + .readdirSync(dataDir) + .filter((f) => f.startsWith("template-") && f.endsWith(".json")) + .sort(); + + files.forEach((file) => { + console.log(` data/${file}`); + }); + } +} + +// Function to load JSON file +function loadJsonFile(filePath) { + try { + const content = fs.readFileSync(filePath, "utf8"); + return JSON.parse(content); + } catch (error) { + console.error(`Error loading JSON file '${filePath}':`, error.message); + process.exit(1); + } +} + +// Function to ensure directory exists +function ensureDirectoryExists(filePath) { + const dir = path.dirname(filePath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } +} + +// Main function +async function main() { + // Check for help flags + if (process.argv.includes("--help") || process.argv.includes("-h")) { + showUsage(); + process.exit(0); + } + + // Check arguments + if (process.argv.length < 3) { + console.error("Error: Template data file is required"); + console.log(""); + showUsage(); + process.exit(1); + } + + const templateDataFile = process.argv[2]; + const outputFile = process.argv[3] || "output/contract.pdf"; + + // Validate template data file exists + if (!fs.existsSync(templateDataFile)) { + console.error(`Error: Template data file '${templateDataFile}' not found`); + process.exit(1); + } + + try { + console.log("Generating PDF contract..."); + console.log("_".repeat(50)); + + // Load template data + console.log(`Loading template data from: ${templateDataFile}`); + const templateData = loadJsonFile(templateDataFile); + + // Load the template + console.log("Loading Accord Project template..."); + const template = await Template.fromDirectory( + "./archives/latedeliveryandpenalty-typescript" + ); + + // Create template processor + const processor = new TemplateArchiveProcessor(template); + + // Generate markdown first + console.log("Generating markdown contract..."); + const markdown = await processor.draft(templateData, "markdown", { + verbose: false, + }); + + // Try to convert to PDF using markdown-pdf + console.log("Converting markdown to PDF..."); + + try { + // Import markdown-pdf + const markdownpdf = require("markdown-pdf"); + + // Create a promise wrapper for markdown-pdf + const convertToPdf = (markdown, outputPath) => { + return new Promise((resolve, reject) => { + // Configure markdown-pdf options + const options = { + paperFormat: "A4", + paperOrientation: "portrait", + paperBorder: "2cm", + renderDelay: 1000, + type: "pdf", + }; + + // Convert markdown string to PDF + markdownpdf(options) + .from.string(markdown) + .to(outputPath, (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); + }; + + // Ensure output directory exists + ensureDirectoryExists(outputFile); + + // Convert to PDF + await convertToPdf(markdown, outputFile); + + // Get file stats + const stats = fs.statSync(outputFile); + + console.log("_".repeat(50)); + console.log("PDF Generation Results:"); + console.log(`✓ Template data: ${templateDataFile}`); + console.log(`✓ PDF output: ${outputFile}`); + console.log(`✓ File size: ${(stats.size / 1024).toFixed(1)} KB`); + console.log(""); + console.log("PDF generation completed successfully!"); + } catch (pdfError) { + // Fallback: save markdown and provide instructions + console.log( + "Note: PDF conversion failed, saving markdown output instead..." + ); + console.log("Error:", pdfError.message); + + // Generate markdown file path in the same directory as the PDF would have been + const markdownFile = outputFile.replace(".pdf", ".md"); + ensureDirectoryExists(markdownFile); + fs.writeFileSync(markdownFile, markdown); + + console.log("_".repeat(50)); + console.log("Markdown Generation Results:"); + console.log(`✓ Template data: ${templateDataFile}`); + console.log(`✓ Markdown output: ${markdownFile}`); + console.log(`✓ File size: ${(markdown.length / 1024).toFixed(1)} KB`); + console.log(""); + console.log("To convert to PDF, you can:"); + console.log(`1. Use pandoc: pandoc ${markdownFile} -o ${outputFile}`); + console.log( + "2. Use markdown-pdf: npm install -g markdown-pdf && markdown-pdf " + + markdownFile + ); + console.log("3. Use any markdown-to-PDF online converter"); + } + } catch (error) { + console.error("Error generating PDF:", error.message); + process.exit(1); + } +} + +// Handle unhandled promise rejections +process.on("unhandledRejection", (reason, promise) => { + console.error("Unhandled Rejection at:", promise, "reason:", reason); + process.exit(1); +}); + +// Run the main function +main(); diff --git a/index.js b/index.js index 6d6df00..8400778 100644 --- a/index.js +++ b/index.js @@ -1,65 +1,32 @@ -const { TemplateArchiveProcessor } = require('@accordproject/template-engine'); -const { Template } = require('@accordproject/cicero-core'); +const { spawn } = require("child_process"); -const TEMPLATE_PATH = './archives/latedeliveryandpenalty-typescript'; +// Set up command line arguments for draft.js and trigger.js to use default data +const templateFile = "data/template-basic.json"; +const requestFile = "data/request-basic.json"; -async function trigger() { - const template = await Template.fromDirectory(TEMPLATE_PATH); - const templateArchiveProcessor = new TemplateArchiveProcessor(template); - const data = { - "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", - "forceMajeure": true, - "penaltyDuration": { - "$class": "org.accordproject.time@0.3.0.Duration", - "amount": 2, - "unit": "days" - }, - "penaltyPercentage": 10.5, - "capPercentage": 55, - "termination": { - "$class": "org.accordproject.time@0.3.0.Duration", - "amount": 15, - "unit": "days" - }, - "fractionalPart": "days", - "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8", - "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8" - }; - const request = { - goodsValue: 100 - }; - const response = await templateArchiveProcessor.trigger(data, request); - console.log('\nTrigger response:'); - console.log(JSON.stringify(response, null, 2)); +function runCommand(command, args) { + return new Promise((resolve, reject) => { + const child = spawn("node", [command, ...args], { + stdio: "inherit", // This will show output in real-time + }); + + child.on("close", (code) => { + if (code === 0) { + resolve(); + } else { + reject(new Error(`Command failed with exit code ${code}`)); + } + }); + + child.on("error", (error) => { + reject(error); + }); + }); } -async function draft() { - const template = await Template.fromDirectory(TEMPLATE_PATH); - const templateArchiveProcessor = new TemplateArchiveProcessor(template); - const data = { - "$class": "io.clause.latedeliveryandpenalty@0.1.0.TemplateModel", - "forceMajeure": true, - "penaltyDuration": { - "$class": "org.accordproject.time@0.3.0.Duration", - "amount": 2, - "unit": "days" - }, - "penaltyPercentage": 10.5, - "capPercentage": 55, - "termination": { - "$class": "org.accordproject.time@0.3.0.Duration", - "amount": 15, - "unit": "days" - }, - "fractionalPart": "days", - "clauseId": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8", - "$identifier": "c88e5ed7-c3e0-4249-a99c-ce9278684ac8" - }; - const options = {verbose: false}; - const result = await templateArchiveProcessor.draft(data, 'markdown', options); - console.log('\Contract draft:'); - console.log(result); +async function runSequentially() { + await runCommand("draft.js", [templateFile]); + await runCommand("trigger.js", [templateFile, requestFile]); } -draft(); -trigger(); +runSequentially().catch(console.error); diff --git a/package-lock.json b/package-lock.json index d6555b7..f00ca40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,9 @@ "license": "ISC", "dependencies": { "@accordproject/cicero-core": "0.25.1-20250328175253", - "@accordproject/template-engine": "^2.6.7" + "@accordproject/markdown-transform": "^0.16.25", + "@accordproject/template-engine": "^2.6.7", + "markdown-pdf": "^11.0.0" }, "devDependencies": { "jest": "^29.7.0" @@ -3186,6 +3188,15 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, + "node_modules/autolinker": { + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-3.16.2.tgz", + "integrity": "sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -3397,7 +3408,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, "license": "MIT" }, "node_modules/base64-js": { @@ -3439,7 +3449,6 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -3529,11 +3538,19 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, "license": "MIT" }, "node_modules/call-bind": { @@ -3841,9 +3858,59 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, "license": "MIT" }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -4345,6 +4412,12 @@ "node": ">= 0.4" } }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -4571,6 +4644,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -4718,6 +4797,48 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -4771,6 +4892,15 @@ "bser": "2.1.1" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fecha": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", @@ -4863,11 +4993,21 @@ "node": ">= 6" } }, + "node_modules/fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, "license": "ISC" }, "node_modules/fsevents": { @@ -5045,7 +5185,6 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -5126,7 +5265,6 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/har-schema": { @@ -5249,6 +5387,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha512-jZ38TU/EBiGKrmyTNNZgnvCZHNowiRI4+w/I9noMlekHTZH3KyGgvJLmhSgykeAQ9j2SYPDosM0Bg3wHfzibAQ==", + "license": "MIT", + "dependencies": { + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -5261,6 +5412,15 @@ "node": ">= 0.4" } }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -5493,7 +5653,6 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -5936,7 +6095,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, "license": "ISC" }, "node_modules/isobject": { @@ -7381,6 +7539,15 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsonify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", @@ -7476,6 +7643,21 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha512-IG6nm0+QtAMdXt9KvbgbGdvY50RSrw+U4sGZg+KlrSKPJEwVE5JVoI3d7RWfSMdBQneRheeAOj3lIjX5VL/9RQ==", + "license": "Apache-2.0" + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -7730,6 +7912,35 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/markdown-pdf": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/markdown-pdf/-/markdown-pdf-11.0.0.tgz", + "integrity": "sha512-h75sQdlJeTDWB/Q3U39iHBlwGDU9oCoZ4fsv/7bB/fK8/ergDK2r8CPrEKFg0DqT8coA+d8EhUB2+i1UNBaDag==", + "license": "MIT", + "dependencies": { + "commander": "^3.0.0", + "duplexer": "^0.1.1", + "extend": "^3.0.2", + "highlight.js": "^10.0.0", + "phantomjs-prebuilt": "^2.1.3", + "remarkable": "^2.0.0", + "stream-from-to": "^1.4.2", + "through2": "^3.0.1", + "tmp": "^0.1.0" + }, + "bin": { + "markdown-pdf": "bin/markdown-pdf" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markdown-pdf/node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "license": "MIT" + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -7821,7 +8032,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -7830,6 +8040,15 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -8070,7 +8289,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -8318,12 +8536,52 @@ "node": ">=18" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "license": "MIT" }, + "node_modules/phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha512-PIiRzBhW85xco2fuj41FmsyuYHKjKuXWmhjy3A/Y+CMpN/63TV+s9uzfVhsUwFe0G77xWtHBG8xmXf5BqEUEuQ==", + "deprecated": "this package is now deprecated", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" + }, + "bin": { + "phantomjs": "bin/phantomjs" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -8344,6 +8602,27 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", @@ -8456,6 +8735,14 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "license": "MIT" }, + "node_modules/progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -8626,6 +8913,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/remarkable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz", + "integrity": "sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.10", + "autolinker": "^3.11.0" + }, + "bin": { + "remarkable": "bin/remarkable.js" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -8658,6 +8961,15 @@ "node": ">= 4" } }, + "node_modules/request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha512-dxdraeZVUNEn9AvLrxkgB2k6buTlym71dJk1fk4v8j3Ou3RKNm07BcgbHdj2lLgYGfqX71F+awb1MR+tWPFJzA==", + "license": "MIT", + "dependencies": { + "throttleit": "^1.0.0" + } + }, "node_modules/request/node_modules/form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", @@ -8782,6 +9094,19 @@ "node": ">=4" } }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -8902,6 +9227,12 @@ "node": ">=10" } }, + "node_modules/series-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/series-stream/-/series-stream-1.0.1.tgz", + "integrity": "sha512-4bATV1VVzG+Mgwzjvnts/yr1JDflogCZo+tnPlF+F4zBLQgCcF58r6a4EZxWskse0Jz9wD7nEJ3jI2OmAdQiUg==", + "license": "ISC" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -9205,6 +9536,36 @@ "node": ">=4.0" } }, + "node_modules/stream-from-to": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/stream-from-to/-/stream-from-to-1.4.3.tgz", + "integrity": "sha512-924UPDggaWjtnsFFHv9tF2TX3fbsEDaj0ZjJoMLXjTPXsSTkLeWtNoaeqA+LzRu+0BvThmChMwCcW23jGlOl0w==", + "license": "MIT", + "dependencies": { + "async": "^1.5.2", + "concat-stream": "^1.4.7", + "mkdirp": "^0.5.0", + "series-stream": "^1.0.1" + } + }, + "node_modules/stream-from-to/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "license": "MIT" + }, + "node_modules/stream-from-to/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -9426,6 +9787,25 @@ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "license": "MIT" }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -9442,6 +9822,18 @@ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", "license": "MIT" }, + "node_modules/tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "license": "MIT", + "dependencies": { + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -9542,6 +9934,12 @@ "node": ">= 14.0.0" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -9675,6 +10073,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, "node_modules/typedarray.prototype.slice": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.5.tgz", @@ -10178,7 +10582,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { @@ -10374,6 +10777,16 @@ "node": ">=12" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 53535a8..cf0dae5 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,16 @@ "trigger:low": "node --no-deprecation trigger.js data/template-low-penalty.json data/request-low-value.json", "trigger:high": "node --no-deprecation trigger.js data/template-high-penalty.json data/request-high-value.json", "test-values": "node --no-deprecation test-different-values.js", - "list": "node --no-deprecation list-data-files.js" + "list": "node --no-deprecation list-data-files.js", + "pdf": "node --no-deprecation generate-pdf.js data/template-basic.json output/contract.pdf", + "pdf:low": "node --no-deprecation generate-pdf.js data/template-low-penalty.json output/contract-low-penalty.pdf", + "pdf:high": "node --no-deprecation generate-pdf.js data/template-high-penalty.json output/contract-high-penalty.pdf", + "md": "node --no-deprecation generate-md.js data/template-basic.json output/contract.md", + "md:low": "node --no-deprecation generate-md.js data/template-low-penalty.json output/contract-low-penalty.md", + "md:high": "node --no-deprecation generate-md.js data/template-high-penalty.json output/contract-high-penalty.md", + "json": "node --no-deprecation generate-json.js data/template-basic.json data/request-basic.json output/response.json", + "json:low": "node --no-deprecation generate-json.js data/template-low-penalty.json data/request-low-value.json output/response-low.json", + "json:high": "node --no-deprecation generate-json.js data/template-high-penalty.json data/request-high-value.json output/response-high.json" }, "author": "", "license": "ISC", @@ -23,7 +32,9 @@ }, "dependencies": { "@accordproject/cicero-core": "0.25.1-20250328175253", - "@accordproject/template-engine": "^2.6.7" + "@accordproject/markdown-transform": "^0.16.25", + "@accordproject/template-engine": "^2.6.7", + "markdown-pdf": "^11.0.0" }, "jest": { "testEnvironment": "node"