assert-json-body 1.3.1 → 1.5.0
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 +3 -0
- package/dist/extractor/src/lib/git.d.ts.map +1 -1
- package/dist/extractor/src/lib/git.js +8 -4
- package/dist/extractor/src/lib/git.js.map +1 -1
- package/dist/lib/config.js +2 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/extractor.d.ts.map +1 -1
- package/dist/lib/extractor.js +8 -6
- package/dist/lib/extractor.js.map +1 -1
- package/dist-cjs/extractor/src/lib/git.d.ts.map +1 -1
- package/dist-cjs/extractor/src/lib/git.js +7 -3
- package/dist-cjs/extractor/src/lib/git.js.map +1 -1
- package/dist-cjs/lib/config.js +2 -2
- package/dist-cjs/lib/config.js.map +1 -1
- package/dist-cjs/lib/extractor.d.ts.map +1 -1
- package/dist-cjs/lib/extractor.js +8 -6
- package/dist-cjs/lib/extractor.js.map +1 -1
- package/package.json +19 -6
package/README.md
CHANGED
|
@@ -266,6 +266,9 @@ Re-run `npx assert-json-body extract`. The `index.ts` file is regenerated determ
|
|
|
266
266
|
**Do I still need to import from the package root?**
|
|
267
267
|
Use the package root for generic validation utilities (`validateResponseShape`), and the generated `./json-body-assertions/index` for strongly typed validation.
|
|
268
268
|
|
|
269
|
+
**Does it support multi-file OpenAPI specs?**
|
|
270
|
+
Yes. The extractor automatically bundles referenced files (via `$ref`) as long as they are within the same directory structure as the entry file.
|
|
271
|
+
|
|
269
272
|
## Releasing & Versioning
|
|
270
273
|
|
|
271
274
|
This project uses [semantic-release](https://semantic-release.gitbook.io/) with Conventional Commits to automate:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAKA,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAKA,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,UAMhF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAYrI"}
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
2
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
|
-
import { join } from 'node:path';
|
|
4
|
+
import { join, dirname } from 'node:path';
|
|
5
5
|
export function run(cmd, args, opts = {}) {
|
|
6
|
+
console.info(`> ${cmd} ${args.join(' ')}`);
|
|
6
7
|
const res = spawnSync(cmd, args, { stdio: opts.inherit ? 'inherit' : 'pipe', encoding: 'utf8' });
|
|
7
8
|
if (res.status !== 0)
|
|
8
9
|
throw new Error(`${cmd} ${args.join(' ')} failed: ${res.stderr || res.status}`);
|
|
10
|
+
console.info(res.stdout);
|
|
9
11
|
return res.stdout;
|
|
10
12
|
}
|
|
11
13
|
export function sparseCheckout(repo, specPath, ref = 'main') {
|
|
12
14
|
const workdir = join(tmpdir(), `spec-checkout-${Date.now()}`);
|
|
13
15
|
run('git', ['init', workdir]);
|
|
14
|
-
run('git', ['-C', workdir, 'remote', 'add', '
|
|
16
|
+
run('git', ['-C', workdir, 'remote', 'add', 'origin', repo]);
|
|
15
17
|
run('git', ['-C', workdir, 'config', 'core.sparseCheckout', 'true']);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
const specDir = dirname(specPath);
|
|
19
|
+
const pattern = specDir === '.' ? '*' : `${specDir}/`;
|
|
20
|
+
writeFileSync(join(workdir, '.git', 'info', 'sparse-checkout'), pattern + '\n');
|
|
21
|
+
run('git', ['-C', workdir, 'pull', 'origin', ref, '--depth', '1'], { inherit: true });
|
|
18
22
|
const commit = run('git', ['-C', workdir, 'rev-parse', 'HEAD']).trim();
|
|
19
23
|
const specContent = readFileSync(join(workdir, specPath), 'utf8');
|
|
20
24
|
return { workdir, commit, specContent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,OAA8B,EAAE;IAC/E,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACjG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACtG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,QAAgB,EAAE,GAAG,GAAG,MAAM;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;IACtD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IAChF,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC"}
|
package/dist/lib/config.js
CHANGED
|
@@ -3,8 +3,8 @@ import { readFileSync, existsSync } from 'node:fs';
|
|
|
3
3
|
import { resolve } from 'node:path';
|
|
4
4
|
const CONFIG_FILENAME = 'assert-json-body.config.json';
|
|
5
5
|
const DEFAULT_EXTRACT = {
|
|
6
|
-
repo: 'https://github.com/camunda/camunda
|
|
7
|
-
specPath: '
|
|
6
|
+
repo: 'https://github.com/camunda/camunda',
|
|
7
|
+
specPath: 'zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml',
|
|
8
8
|
ref: 'main',
|
|
9
9
|
outputDir: 'json-body-assertions',
|
|
10
10
|
preserveCheckout: false,
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD,MAAM,eAAe,GAA0B;IAC7C,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAiB,aAAa,EAAE,WAAW,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAC;AAyBpH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,EAAE,CAoBzE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,QAc9C;AAED,wBAAsB,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAiB,aAAa,EAAE,WAAW,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAC;AAyBpH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,EAAE,CAoBzE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,QAc9C;AAED,wBAAsB,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,iBAiFpF"}
|
package/dist/lib/extractor.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { writeFileSync, mkdirSync, rmSync, existsSync } from 'node:fs';
|
|
2
2
|
import { join, resolve } from 'node:path';
|
|
3
3
|
import crypto from 'node:crypto';
|
|
4
|
-
import
|
|
4
|
+
import SwaggerParser from '@apidevtools/swagger-parser';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
6
|
import { sparseCheckout } from './git.js';
|
|
7
7
|
import { buildSchemaTree } from './child-expansion.js';
|
|
@@ -76,15 +76,17 @@ export async function generate(cfg, options) {
|
|
|
76
76
|
};
|
|
77
77
|
const REPO = effective.repo;
|
|
78
78
|
const SPEC_PATH = effective.specPath;
|
|
79
|
-
|
|
79
|
+
if (effective.logLevel == 'info') {
|
|
80
|
+
console.info(effective);
|
|
81
|
+
}
|
|
82
|
+
const { workdir, commit } = sparseCheckout(REPO, SPEC_PATH, effective.ref);
|
|
80
83
|
try {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
const doc = raw;
|
|
84
|
+
const fullPath = join(workdir, SPEC_PATH);
|
|
85
|
+
const doc = await SwaggerParser.bundle(fullPath);
|
|
84
86
|
const responses = extractResponses(doc);
|
|
85
87
|
for (const entry of responses)
|
|
86
88
|
pruneSchema(entry.schema);
|
|
87
|
-
const sha256 = crypto.createHash('sha256').update(
|
|
89
|
+
const sha256 = crypto.createHash('sha256').update(JSON.stringify(doc)).digest('hex');
|
|
88
90
|
const out = { metadata: { sourceRepo: REPO, commit, generatedAt: new Date().toISOString(), specPath: SPEC_PATH, specSha256: sha256 }, responses };
|
|
89
91
|
const outDir = effective.outputDir;
|
|
90
92
|
const targetFile = effective.responsesFile ? resolve(effective.responsesFile) : join(outDir, 'responses.json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAKA,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAKA,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,UAMhF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAYrI"}
|
|
@@ -7,18 +7,22 @@ const node_fs_1 = require("node:fs");
|
|
|
7
7
|
const node_os_1 = require("node:os");
|
|
8
8
|
const node_path_1 = require("node:path");
|
|
9
9
|
function run(cmd, args, opts = {}) {
|
|
10
|
+
console.info(`> ${cmd} ${args.join(' ')}`);
|
|
10
11
|
const res = (0, node_child_process_1.spawnSync)(cmd, args, { stdio: opts.inherit ? 'inherit' : 'pipe', encoding: 'utf8' });
|
|
11
12
|
if (res.status !== 0)
|
|
12
13
|
throw new Error(`${cmd} ${args.join(' ')} failed: ${res.stderr || res.status}`);
|
|
14
|
+
console.info(res.stdout);
|
|
13
15
|
return res.stdout;
|
|
14
16
|
}
|
|
15
17
|
function sparseCheckout(repo, specPath, ref = 'main') {
|
|
16
18
|
const workdir = (0, node_path_1.join)((0, node_os_1.tmpdir)(), `spec-checkout-${Date.now()}`);
|
|
17
19
|
run('git', ['init', workdir]);
|
|
18
|
-
run('git', ['-C', workdir, 'remote', 'add', '
|
|
20
|
+
run('git', ['-C', workdir, 'remote', 'add', 'origin', repo]);
|
|
19
21
|
run('git', ['-C', workdir, 'config', 'core.sparseCheckout', 'true']);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
const specDir = (0, node_path_1.dirname)(specPath);
|
|
23
|
+
const pattern = specDir === '.' ? '*' : `${specDir}/`;
|
|
24
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(workdir, '.git', 'info', 'sparse-checkout'), pattern + '\n');
|
|
25
|
+
run('git', ['-C', workdir, 'pull', 'origin', ref, '--depth', '1'], { inherit: true });
|
|
22
26
|
const commit = run('git', ['-C', workdir, 'rev-parse', 'HEAD']).trim();
|
|
23
27
|
const specContent = (0, node_fs_1.readFileSync)((0, node_path_1.join)(workdir, specPath), 'utf8');
|
|
24
28
|
return { workdir, commit, specContent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":";;AAKA,kBAMC;AAED,wCAYC;AAzBD,2DAA+C;AAC/C,qCAAsD;AACtD,qCAAiC;AACjC,yCAA0C;AAE1C,SAAgB,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,OAA8B,EAAE;IAC/E,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAA,8BAAS,EAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACjG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACtG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY,EAAE,QAAgB,EAAE,GAAG,GAAG,MAAM;IACzE,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;IACtD,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IAChF,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,WAAW,GAAG,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC"}
|
package/dist-cjs/lib/config.js
CHANGED
|
@@ -11,8 +11,8 @@ const node_fs_1 = require("node:fs");
|
|
|
11
11
|
const node_path_1 = require("node:path");
|
|
12
12
|
const CONFIG_FILENAME = 'assert-json-body.config.json';
|
|
13
13
|
const DEFAULT_EXTRACT = {
|
|
14
|
-
repo: 'https://github.com/camunda/camunda
|
|
15
|
-
specPath: '
|
|
14
|
+
repo: 'https://github.com/camunda/camunda',
|
|
15
|
+
specPath: 'zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml',
|
|
16
16
|
ref: 'main',
|
|
17
17
|
outputDir: 'json-body-assertions',
|
|
18
18
|
preserveCheckout: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":";;AAwBA,wCAUC;AAED,oCAiBC;AAQD,0CAEC;AAED,0CAkCC;AAaD,sCAoBC;AAED,kCAUC;AAhJD,uDAAuD;AACvD,qCAAmD;AACnD,yCAAoC;AAGpC,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD,MAAM,eAAe,GAA0B;IAC7C,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAiB,aAAa,EAAE,WAAW,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAC;AAyBpH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,EAAE,CAoBzE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,QAc9C;AAED,wBAAsB,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAiB,aAAa,EAAE,WAAW,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAC;AAyBpH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,EAAE,CAoBzE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,QAc9C;AAED,wBAAsB,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,iBAiFpF"}
|
|
@@ -9,7 +9,7 @@ exports.generate = generate;
|
|
|
9
9
|
const node_fs_1 = require("node:fs");
|
|
10
10
|
const node_path_1 = require("node:path");
|
|
11
11
|
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
12
|
-
const
|
|
12
|
+
const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
|
|
13
13
|
const node_url_1 = require("node:url");
|
|
14
14
|
const git_js_1 = require("./git.js");
|
|
15
15
|
const child_expansion_js_1 = require("./child-expansion.js");
|
|
@@ -84,15 +84,17 @@ async function generate(cfg, options) {
|
|
|
84
84
|
};
|
|
85
85
|
const REPO = effective.repo;
|
|
86
86
|
const SPEC_PATH = effective.specPath;
|
|
87
|
-
|
|
87
|
+
if (effective.logLevel == 'info') {
|
|
88
|
+
console.info(effective);
|
|
89
|
+
}
|
|
90
|
+
const { workdir, commit } = (0, git_js_1.sparseCheckout)(REPO, SPEC_PATH, effective.ref);
|
|
88
91
|
try {
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
const doc = raw;
|
|
92
|
+
const fullPath = (0, node_path_1.join)(workdir, SPEC_PATH);
|
|
93
|
+
const doc = await swagger_parser_1.default.bundle(fullPath);
|
|
92
94
|
const responses = extractResponses(doc);
|
|
93
95
|
for (const entry of responses)
|
|
94
96
|
pruneSchema(entry.schema);
|
|
95
|
-
const sha256 = node_crypto_1.default.createHash('sha256').update(
|
|
97
|
+
const sha256 = node_crypto_1.default.createHash('sha256').update(JSON.stringify(doc)).digest('hex');
|
|
96
98
|
const out = { metadata: { sourceRepo: REPO, commit, generatedAt: new Date().toISOString(), specPath: SPEC_PATH, specSha256: sha256 }, responses };
|
|
97
99
|
const outDir = effective.outputDir;
|
|
98
100
|
const targetFile = effective.responsesFile ? (0, node_path_1.resolve)(effective.responsesFile) : (0, node_path_1.join)(outDir, 'responses.json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":";;;;;AAiCA,4CAoBC;AAED,kCAcC;AAED,
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":";;;;;AAiCA,4CAoBC;AAED,kCAcC;AAED,4BAiFC;AAxJD,qCAAuE;AACvE,yCAA0C;AAC1C,8DAAiC;AACjC,iFAAwD;AACxD,uCAAyC;AAEzC,qCAA0C;AAC1C,6DAAuD;AAEvD,2CAA0C;AAS1C,SAAS,gBAAgB,CAAC,UAA6D;IACrF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,KAAK,CAAC,GAAY;IACzB,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAK,GAA+B,CAAC;AACxF,CAAC;AAED,SAAS,eAAe,CAAC,IAA0D,EAAE,GAAmB;IACtG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAAC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAAC,OAAO,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,OAAQ,CAAC,IAAI,IAAI,CAAC;IAAC,CAAC;IACtH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAuB;IACtD,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,KAAK,GAAiC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAiC,CAAC;IAC9F,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,CAAU,EAAE,CAAC;YACpE,MAAM,EAAE,GAA+B,QAAoC,CAAC,MAAM,CAA8B,CAAC;YACjH,IAAI,CAAC,EAAE;gBAAE,SAAS;YAClB,MAAM,SAAS,GAAiB,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAiB,CAAC;YACrE,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAI,QAAqC,CAAC,OAAO,CAAC;gBAC/D,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,OAAO,EAAE,MAA0E,CAAC;gBACnG,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,MAAM,SAAS,GAAG,IAAA,oCAAe,EAAC,MAAM,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAuE,CAAC,CAAC;gBACjJ,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvI,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,WAAW,CAAC,MAAmB;IAC7C,MAAM,KAAK,GAAG,CAAC,GAAgB,EAAE,EAAE;QACjC,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACnB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACtB,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjF,OAAO,KAAK,CAAC,QAAQ,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,GAAmB,EAAE,OAAiC;IACnF,oEAAoE;IACpE,MAAM,UAAU,GAAG,IAAA,uBAAW,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzC,MAAM,SAAS,GAA0B;QACvC,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;QAC5B,QAAQ,EAAE,GAAG,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ;QACxC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG;QACzB,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC,SAAS;QAC3C,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,IAAI,IAAI,CAAC,gBAAgB;QAChE,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;QACpC,QAAQ,EAAG,GAAG,EAAE,QAAsC,IAAI,IAAI,CAAC,QAAQ;QACrE,YAAY,EAAE,GAAG,EAAE,YAAY,IAAI,IAAI,CAAC,YAAY;QACpD,aAAa,EAAE,GAAG,EAAE,aAAa,IAAI,IAAI,CAAC,aAAa;KACxD,CAAC;IACF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;IACrC,IAAI,SAAS,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,uBAAc,EAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,wBAAa,CAAC,MAAM,CAAC,QAAQ,CAAuB,CAAC;QACvE,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,SAAS;YAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrF,MAAM,GAAG,GAAkB,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC;QACnK,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC;QACnC,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC7G,IAAI,SAAS,CAAC,YAAY,IAAI,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACtB,IAAA,mBAAS,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,IAAA,uBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,6EAA6E;YAC7E,IAAI,CAAC;gBACH,MAAM,UAAU,GAAsD,EAAE,CAAC;gBACzE,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;wBAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACjD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACrE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7C,CAAC;gBACD,MAAM,WAAW,GAAG,2EAA2E;oBAC7F,oIAAoI;oBACpI,kEAAkE;oBAClE,iCAAiC,gBAAgB,CAAC,UAAU,CAAC,gBAAgB;oBAC7E,wDAAwD;oBACxD,iGAAiG;oBACjG,8HAA8H;oBAC9H,0JAA0J;oBAC1J,2CAA2C,GAAG,MAAM;oBACpD,iSAAiS;oBACjS,oFAAoF;oBACpF,gDAAgD;oBACpD,0DAA0D;oBAC1D;;OAEC;oBACG,OAAO;oBACP,2GAA2G,GAAG,IAAI;oBAClH,8SAA8S;oBAC9S,4DAA4D,CAAC;gBAC/D,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAC,MAAM,iCAAiC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/I,IAAI,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAAC,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ;oBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;QACzG,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAC/B,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YAAC,IAAI,CAAC;gBAAC,IAAA,gBAAM,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;QAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED,6GAA6G;AAC7G,IAAI,CAAC;IACH,mDAAmD;IACnD,6DAA6D;IAC7D,aAAa;IACb,MAAM,OAAO,GAAuB,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,wBAAa,EAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,MAAM,EAAE,CAAC;YAAC,QAAQ,EAAE,CAAC;QAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "assert-json-body",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist-cjs/index.js",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
},
|
|
67
67
|
"homepage": "https://github.com/camunda/assert-json-body#readme",
|
|
68
68
|
"dependencies": {
|
|
69
|
+
"@apidevtools/swagger-parser": "^12.1.0",
|
|
69
70
|
"debug": "^4.4.3",
|
|
70
71
|
"js-yaml": "^4.1.0",
|
|
71
72
|
"openapi-types": "^12.1.3",
|
|
@@ -79,23 +80,25 @@
|
|
|
79
80
|
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
80
81
|
"@semantic-release/git": "^10.0.1",
|
|
81
82
|
"@semantic-release/github": "^10.0.6",
|
|
82
|
-
"@semantic-release/npm": "^
|
|
83
|
+
"@semantic-release/npm": "^13.0.2",
|
|
83
84
|
"@semantic-release/release-notes-generator": "^14.0.0",
|
|
84
85
|
"@types/debug": "^4.1.12",
|
|
85
86
|
"@types/js-yaml": "^4.0.9",
|
|
86
|
-
"@types/node": "^
|
|
87
|
+
"@types/node": "^24.10.4",
|
|
87
88
|
"eslint": "^8.57.1",
|
|
88
89
|
"globals": "^16.4.0",
|
|
89
90
|
"husky": "^9.0.11",
|
|
90
91
|
"prettier": "^3.2.5",
|
|
91
|
-
"semantic-release": "^
|
|
92
|
+
"semantic-release": "^25.0.2",
|
|
92
93
|
"tsx": "^4.7.0",
|
|
93
94
|
"typescript": "^5.4.5",
|
|
94
95
|
"typescript-eslint": "^8.44.1",
|
|
95
96
|
"vitest": "^2.0.5"
|
|
96
97
|
},
|
|
97
98
|
"publishConfig": {
|
|
98
|
-
"access": "public"
|
|
99
|
+
"access": "public",
|
|
100
|
+
"provenance": false,
|
|
101
|
+
"registry": "https://registry.npmjs.org/"
|
|
99
102
|
},
|
|
100
103
|
"release": {
|
|
101
104
|
"branches": [
|
|
@@ -110,7 +113,12 @@
|
|
|
110
113
|
"changelogFile": "CHANGELOG.md"
|
|
111
114
|
}
|
|
112
115
|
],
|
|
113
|
-
|
|
116
|
+
[
|
|
117
|
+
"@semantic-release/npm",
|
|
118
|
+
{
|
|
119
|
+
"npmPublish": true
|
|
120
|
+
}
|
|
121
|
+
],
|
|
114
122
|
[
|
|
115
123
|
"@semantic-release/git",
|
|
116
124
|
{
|
|
@@ -122,6 +130,11 @@
|
|
|
122
130
|
}
|
|
123
131
|
],
|
|
124
132
|
"@semantic-release/github"
|
|
133
|
+
],
|
|
134
|
+
"verifyConditions": [
|
|
135
|
+
"@semantic-release/changelog",
|
|
136
|
+
"@semantic-release/git",
|
|
137
|
+
"@semantic-release/github"
|
|
125
138
|
]
|
|
126
139
|
}
|
|
127
140
|
}
|