@peac/cli 0.9.31 → 0.10.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -5
- package/dist/commands/conformance.d.ts +16 -0
- package/dist/commands/conformance.d.ts.map +1 -0
- package/dist/commands/conformance.js +301 -0
- package/dist/commands/conformance.js.map +1 -0
- package/dist/commands/samples.d.ts +17 -0
- package/dist/commands/samples.d.ts.map +1 -0
- package/dist/commands/samples.js +360 -0
- package/dist/commands/samples.js.map +1 -0
- package/dist/commands/workflow.d.ts +11 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +214 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/index.js +60 -33
- package/dist/index.js.map +1 -1
- package/dist/lib/conformance/digest.d.ts +64 -0
- package/dist/lib/conformance/digest.d.ts.map +1 -0
- package/dist/lib/conformance/digest.js +202 -0
- package/dist/lib/conformance/digest.js.map +1 -0
- package/dist/lib/conformance/index.d.ts +11 -0
- package/dist/lib/conformance/index.d.ts.map +1 -0
- package/dist/lib/conformance/index.js +30 -0
- package/dist/lib/conformance/index.js.map +1 -0
- package/dist/lib/conformance/manifest.d.ts +15 -0
- package/dist/lib/conformance/manifest.d.ts.map +1 -0
- package/dist/lib/conformance/manifest.js +66 -0
- package/dist/lib/conformance/manifest.js.map +1 -0
- package/dist/lib/conformance/profiles.d.ts +33 -0
- package/dist/lib/conformance/profiles.d.ts.map +1 -0
- package/dist/lib/conformance/profiles.js +138 -0
- package/dist/lib/conformance/profiles.js.map +1 -0
- package/dist/lib/conformance/types.d.ts +186 -0
- package/dist/lib/conformance/types.d.ts.map +1 -0
- package/dist/lib/conformance/types.js +8 -0
- package/dist/lib/conformance/types.js.map +1 -0
- package/dist/lib/conformance/validators.d.ts +27 -0
- package/dist/lib/conformance/validators.d.ts.map +1 -0
- package/dist/lib/conformance/validators.js +415 -0
- package/dist/lib/conformance/validators.js.map +1 -0
- package/dist/lib/conformance-runner.d.ts +29 -0
- package/dist/lib/conformance-runner.d.ts.map +1 -0
- package/dist/lib/conformance-runner.js +433 -0
- package/dist/lib/conformance-runner.js.map +1 -0
- package/dist/lib/samples-loader.d.ts +44 -0
- package/dist/lib/samples-loader.d.ts.map +1 -0
- package/dist/lib/samples-loader.js +311 -0
- package/dist/lib/samples-loader.js.map +1 -0
- package/dist/lib/version.d.ts +22 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +61 -0
- package/dist/lib/version.js.map +1 -0
- package/package.json +17 -8
package/README.md
CHANGED
|
@@ -1,16 +1,89 @@
|
|
|
1
1
|
# @peac/cli
|
|
2
2
|
|
|
3
|
-
PEAC protocol command-line tools
|
|
3
|
+
PEAC protocol command-line tools.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
pnpm add @peac/cli
|
|
8
|
+
pnpm add -g @peac/cli
|
|
9
|
+
# or
|
|
10
|
+
npx @peac/cli
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
##
|
|
13
|
+
## Commands
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
### `peac verify <receipt>`
|
|
16
|
+
|
|
17
|
+
Verify a PEAC receipt (JWS compact serialization).
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
peac verify eyJhbGciOiJFZERTQSIs...
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### `peac conformance run`
|
|
24
|
+
|
|
25
|
+
Run conformance tests against PEAC schema validators.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
peac conformance run # Standard level, text output
|
|
29
|
+
peac conformance run --level full # Full level
|
|
30
|
+
peac conformance run --output json # JSON output
|
|
31
|
+
peac conformance run --output markdown # Markdown report
|
|
32
|
+
peac conformance run --category claims # Filter by category
|
|
33
|
+
peac conformance run --fixtures ./my-vectors # Custom fixtures path
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Options:**
|
|
37
|
+
|
|
38
|
+
| Option | Default | Description |
|
|
39
|
+
| ------------ | ---------- | -------------------------------------------------------- |
|
|
40
|
+
| `--level` | `standard` | Conformance level: `basic`, `standard`, `full` |
|
|
41
|
+
| `--output` | `text` | Output format: `text`, `json`, `markdown` |
|
|
42
|
+
| `--category` | all | Filter by category (e.g., `claims`, `signature`, `time`) |
|
|
43
|
+
| `--fixtures` | built-in | Path to custom conformance fixtures |
|
|
44
|
+
| `--verbose` | `false` | Show detailed test output |
|
|
45
|
+
|
|
46
|
+
### `peac conformance list`
|
|
47
|
+
|
|
48
|
+
List available conformance test fixtures.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
peac conformance list
|
|
52
|
+
peac conformance list --category claims
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### `peac samples list`
|
|
56
|
+
|
|
57
|
+
List available sample receipts.
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
peac samples list
|
|
61
|
+
peac samples list --category valid
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### `peac samples show <id>`
|
|
65
|
+
|
|
66
|
+
Display details of a specific sample receipt.
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
peac samples show basic-receipt
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### `peac samples generate`
|
|
73
|
+
|
|
74
|
+
Generate sample receipt files.
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
peac samples generate --output ./samples
|
|
78
|
+
peac samples generate --format json
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Options:**
|
|
82
|
+
|
|
83
|
+
| Option | Default | Description |
|
|
84
|
+
| ---------- | -------- | ------------------------------------ |
|
|
85
|
+
| `--output` | `stdout` | Output directory for generated files |
|
|
86
|
+
| `--format` | `jws` | Format: `jws`, `json` |
|
|
14
87
|
|
|
15
88
|
## License
|
|
16
89
|
|
|
@@ -20,4 +93,4 @@ Apache-2.0
|
|
|
20
93
|
|
|
21
94
|
PEAC Protocol is an open source project stewarded by Originary and community contributors.
|
|
22
95
|
|
|
23
|
-
[
|
|
96
|
+
[Docs](https://www.peacprotocol.org) | [GitHub](https://github.com/peacprotocol/peac) | [Originary](https://www.originary.xyz)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PEAC Conformance CLI Commands (v0.10.8+)
|
|
3
|
+
*
|
|
4
|
+
* Commands for running conformance tests:
|
|
5
|
+
* - run: Run conformance tests against fixtures
|
|
6
|
+
* - list: List available conformance test fixtures
|
|
7
|
+
*
|
|
8
|
+
* Uses real validators from @peac/schema and generates reports
|
|
9
|
+
* conforming to peac-conformance-report/0.1.
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import { Command } from 'commander';
|
|
14
|
+
declare const conformance: Command;
|
|
15
|
+
export { conformance };
|
|
16
|
+
//# sourceMappingURL=conformance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/commands/conformance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoGpC,QAAA,MAAM,WAAW,SAE2B,CAAC;AA+M7C,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PEAC Conformance CLI Commands (v0.10.8+)
|
|
4
|
+
*
|
|
5
|
+
* Commands for running conformance tests:
|
|
6
|
+
* - run: Run conformance tests against fixtures
|
|
7
|
+
* - list: List available conformance test fixtures
|
|
8
|
+
*
|
|
9
|
+
* Uses real validators from @peac/schema and generates reports
|
|
10
|
+
* conforming to peac-conformance-report/0.1.
|
|
11
|
+
*
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.conformance = void 0;
|
|
49
|
+
const commander_1 = require("commander");
|
|
50
|
+
const fs = __importStar(require("fs"));
|
|
51
|
+
const path = __importStar(require("path"));
|
|
52
|
+
const conformance_runner_js_1 = require("../lib/conformance-runner.js");
|
|
53
|
+
const version_js_1 = require("../lib/version.js");
|
|
54
|
+
/**
|
|
55
|
+
* Get global options from parent command
|
|
56
|
+
*/
|
|
57
|
+
function getGlobalOptions(cmd) {
|
|
58
|
+
const parent = cmd.parent;
|
|
59
|
+
if (!parent)
|
|
60
|
+
return {};
|
|
61
|
+
return parent.opts();
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Output error - handles JSON vs human-readable format
|
|
65
|
+
*/
|
|
66
|
+
function outputError(error, details, opts) {
|
|
67
|
+
if (opts.json) {
|
|
68
|
+
console.log(JSON.stringify({ success: false, error, ...details }, null, 2));
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.error(`Error: ${error}`);
|
|
72
|
+
if (details.code) {
|
|
73
|
+
console.error(`Code: ${details.code}`);
|
|
74
|
+
}
|
|
75
|
+
if (details.hint) {
|
|
76
|
+
console.error(`Hint: ${details.hint}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Find fixtures directory (relative to CLI package or repo root)
|
|
82
|
+
*/
|
|
83
|
+
function findFixturesDir(customPath) {
|
|
84
|
+
// Use custom path if provided
|
|
85
|
+
if (customPath) {
|
|
86
|
+
if (fs.existsSync(customPath)) {
|
|
87
|
+
return customPath;
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
// Try relative to CLI package (when installed)
|
|
92
|
+
const cliPath = path.resolve(__dirname, '../../../../specs/conformance/fixtures');
|
|
93
|
+
if (fs.existsSync(cliPath)) {
|
|
94
|
+
return cliPath;
|
|
95
|
+
}
|
|
96
|
+
// Try relative to repo root (when running from source)
|
|
97
|
+
const repoPath = path.resolve(process.cwd(), 'specs/conformance/fixtures');
|
|
98
|
+
if (fs.existsSync(repoPath)) {
|
|
99
|
+
return repoPath;
|
|
100
|
+
}
|
|
101
|
+
// Try one level up (when running from packages/cli)
|
|
102
|
+
const upPath = path.resolve(process.cwd(), '../../specs/conformance/fixtures');
|
|
103
|
+
if (fs.existsSync(upPath)) {
|
|
104
|
+
return upPath;
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* List available fixture categories
|
|
110
|
+
*/
|
|
111
|
+
function listCategories(fixturesDir) {
|
|
112
|
+
const entries = fs.readdirSync(fixturesDir, { withFileTypes: true });
|
|
113
|
+
return entries.filter((e) => e.isDirectory() && !e.name.startsWith('.')).map((e) => e.name);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Count fixtures in a category
|
|
117
|
+
*/
|
|
118
|
+
function countFixtures(categoryPath) {
|
|
119
|
+
if (!fs.existsSync(categoryPath))
|
|
120
|
+
return 0;
|
|
121
|
+
const files = fs.readdirSync(categoryPath);
|
|
122
|
+
return files.filter((f) => f.endsWith('.json')).length;
|
|
123
|
+
}
|
|
124
|
+
const conformance = new commander_1.Command('conformance')
|
|
125
|
+
.description('PEAC conformance testing (v0.10.8+)')
|
|
126
|
+
.option('--json', 'Output in JSON format');
|
|
127
|
+
exports.conformance = conformance;
|
|
128
|
+
/**
|
|
129
|
+
* peac conformance run [options]
|
|
130
|
+
*/
|
|
131
|
+
conformance
|
|
132
|
+
.command('run')
|
|
133
|
+
.description('Run conformance tests')
|
|
134
|
+
.option('-l, --level <level>', 'Conformance level: basic, standard, full', 'standard')
|
|
135
|
+
.option('-c, --category <category>', 'Test specific category only')
|
|
136
|
+
.option('-o, --output <format>', 'Output format: json, text, markdown', 'text')
|
|
137
|
+
.option('-v, --verbose', 'Show detailed test output')
|
|
138
|
+
.option('--fixtures <path>', 'Path to fixtures directory')
|
|
139
|
+
.option('--implementation <name>', 'Implementation name for report', '@peac/cli')
|
|
140
|
+
.action(async (options, cmd) => {
|
|
141
|
+
const globalOpts = getGlobalOptions(cmd);
|
|
142
|
+
const startTime = Date.now();
|
|
143
|
+
try {
|
|
144
|
+
// Find fixtures directory
|
|
145
|
+
const fixturesDir = findFixturesDir(options.fixtures);
|
|
146
|
+
if (!fixturesDir) {
|
|
147
|
+
outputError('Fixtures directory not found', {
|
|
148
|
+
hint: options.fixtures
|
|
149
|
+
? `Specified path does not exist: ${options.fixtures}`
|
|
150
|
+
: 'Run from repo root, specify --fixtures <path>, or ensure specs/conformance/fixtures is available',
|
|
151
|
+
}, globalOpts);
|
|
152
|
+
process.exitCode = 1;
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
// Validate level
|
|
156
|
+
const validLevels = ['basic', 'standard', 'full'];
|
|
157
|
+
if (!validLevels.includes(options.level)) {
|
|
158
|
+
outputError('Invalid conformance level', {
|
|
159
|
+
level: options.level,
|
|
160
|
+
valid: validLevels,
|
|
161
|
+
}, globalOpts);
|
|
162
|
+
process.exitCode = 1;
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// Set up callbacks for verbose output
|
|
166
|
+
const callbacks = options.verbose
|
|
167
|
+
? {
|
|
168
|
+
onTestStart: (testId) => {
|
|
169
|
+
console.log(`Running: ${testId}`);
|
|
170
|
+
},
|
|
171
|
+
onTestComplete: (result) => {
|
|
172
|
+
const status = result.status === 'pass' ? 'PASS' : result.status === 'fail' ? 'FAIL' : 'SKIP';
|
|
173
|
+
console.log(` ${status}: ${result.id}`);
|
|
174
|
+
},
|
|
175
|
+
}
|
|
176
|
+
: undefined;
|
|
177
|
+
// Run conformance tests
|
|
178
|
+
const report = (0, conformance_runner_js_1.runConformance)({
|
|
179
|
+
fixturesDir,
|
|
180
|
+
level: options.level,
|
|
181
|
+
category: options.category,
|
|
182
|
+
implementationName: options.implementation,
|
|
183
|
+
implementationVersion: (0, version_js_1.getVersion)(),
|
|
184
|
+
}, callbacks);
|
|
185
|
+
// Add runtime metadata
|
|
186
|
+
report.implementation.runtime = (0, version_js_1.getRuntime)();
|
|
187
|
+
const commit = (0, version_js_1.getCommit)();
|
|
188
|
+
if (commit) {
|
|
189
|
+
report.implementation.commit = commit;
|
|
190
|
+
}
|
|
191
|
+
// Add meta section
|
|
192
|
+
report.meta = {
|
|
193
|
+
generated_at: new Date().toISOString(),
|
|
194
|
+
runner: {
|
|
195
|
+
name: 'peac-cli',
|
|
196
|
+
version: (0, version_js_1.getVersion)(),
|
|
197
|
+
},
|
|
198
|
+
duration_ms: Date.now() - startTime,
|
|
199
|
+
};
|
|
200
|
+
// Output based on format
|
|
201
|
+
if (options.output === 'json' || globalOpts.json) {
|
|
202
|
+
console.log(JSON.stringify(report, null, 2));
|
|
203
|
+
}
|
|
204
|
+
else if (options.output === 'markdown') {
|
|
205
|
+
console.log((0, conformance_runner_js_1.formatReportMarkdown)(report));
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
console.log((0, conformance_runner_js_1.formatReportText)(report));
|
|
209
|
+
}
|
|
210
|
+
process.exitCode = report.summary.failed === 0 ? 0 : 1;
|
|
211
|
+
}
|
|
212
|
+
catch (err) {
|
|
213
|
+
outputError(err.message, {}, globalOpts);
|
|
214
|
+
process.exitCode = 1;
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
/**
|
|
218
|
+
* peac conformance list [--category <cat>]
|
|
219
|
+
*/
|
|
220
|
+
conformance
|
|
221
|
+
.command('list')
|
|
222
|
+
.description('List available conformance test fixtures')
|
|
223
|
+
.option('-c, --category <category>', 'List fixtures in specific category')
|
|
224
|
+
.option('--fixtures <path>', 'Path to fixtures directory')
|
|
225
|
+
.action((options, cmd) => {
|
|
226
|
+
const globalOpts = getGlobalOptions(cmd);
|
|
227
|
+
try {
|
|
228
|
+
// Find fixtures directory
|
|
229
|
+
const fixturesDir = findFixturesDir(options.fixtures);
|
|
230
|
+
if (!fixturesDir) {
|
|
231
|
+
outputError('Fixtures directory not found', {
|
|
232
|
+
hint: options.fixtures
|
|
233
|
+
? `Specified path does not exist: ${options.fixtures}`
|
|
234
|
+
: 'Run from repo root, specify --fixtures <path>, or ensure specs/conformance/fixtures is available',
|
|
235
|
+
}, globalOpts);
|
|
236
|
+
process.exitCode = 1;
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
// Load manifest
|
|
240
|
+
const manifestPath = path.join(fixturesDir, 'manifest.json');
|
|
241
|
+
const manifest = fs.existsSync(manifestPath)
|
|
242
|
+
? JSON.parse(fs.readFileSync(manifestPath, 'utf8'))
|
|
243
|
+
: {};
|
|
244
|
+
// List categories
|
|
245
|
+
const categories = listCategories(fixturesDir);
|
|
246
|
+
if (options.category) {
|
|
247
|
+
// List fixtures in specific category
|
|
248
|
+
if (!categories.includes(options.category)) {
|
|
249
|
+
outputError('Category not found', {
|
|
250
|
+
category: options.category,
|
|
251
|
+
available: categories,
|
|
252
|
+
}, globalOpts);
|
|
253
|
+
process.exitCode = 1;
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
const categoryPath = path.join(fixturesDir, options.category);
|
|
257
|
+
const files = fs.readdirSync(categoryPath).filter((f) => f.endsWith('.json'));
|
|
258
|
+
const categoryManifest = manifest[options.category];
|
|
259
|
+
if (globalOpts.json) {
|
|
260
|
+
const fixtures = files.map((f) => ({
|
|
261
|
+
file: f,
|
|
262
|
+
description: categoryManifest?.[f]?.description || 'No description',
|
|
263
|
+
}));
|
|
264
|
+
console.log(JSON.stringify({ category: options.category, fixtures }, null, 2));
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
console.log(`Fixtures in ${options.category}:\n`);
|
|
268
|
+
for (const file of files) {
|
|
269
|
+
const info = categoryManifest?.[file] || {};
|
|
270
|
+
const desc = info.description || 'No description';
|
|
271
|
+
console.log(` ${file}`);
|
|
272
|
+
console.log(` ${desc}\n`);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
// List all categories
|
|
278
|
+
if (globalOpts.json) {
|
|
279
|
+
const categorySummary = categories.map((cat) => ({
|
|
280
|
+
name: cat,
|
|
281
|
+
fixture_count: countFixtures(path.join(fixturesDir, cat)),
|
|
282
|
+
}));
|
|
283
|
+
console.log(JSON.stringify({ categories: categorySummary }, null, 2));
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
console.log(`Available conformance test categories:\n`);
|
|
287
|
+
for (const cat of categories) {
|
|
288
|
+
const count = countFixtures(path.join(fixturesDir, cat));
|
|
289
|
+
console.log(` ${cat} (${count} fixtures)`);
|
|
290
|
+
}
|
|
291
|
+
console.log(`\nUse 'peac conformance list -c <category>' to see fixtures in a category.`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
process.exitCode = 0;
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
outputError(err.message, {}, globalOpts);
|
|
298
|
+
process.exitCode = 1;
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
//# sourceMappingURL=conformance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/commands/conformance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PEAC Samples CLI Commands (v0.10.8+)
|
|
3
|
+
*
|
|
4
|
+
* Commands for working with sample receipts:
|
|
5
|
+
* - list: List available sample receipts
|
|
6
|
+
* - generate: Generate sample receipts for testing
|
|
7
|
+
* - show: Show details of a specific sample
|
|
8
|
+
*
|
|
9
|
+
* Uses specs/conformance/samples/ as canonical source when available,
|
|
10
|
+
* falls back to embedded samples when running outside the repo.
|
|
11
|
+
*
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
import { Command } from 'commander';
|
|
15
|
+
declare const samples: Command;
|
|
16
|
+
export { samples };
|
|
17
|
+
//# sourceMappingURL=samples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"samples.d.ts","sourceRoot":"","sources":["../../src/commands/samples.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoFpC,QAAA,MAAM,OAAO,SAE+B,CAAC;AAmR7C,OAAO,EAAE,OAAO,EAAE,CAAC"}
|