@knapsack/spec-utils 4.78.13 → 4.78.14--canary.6061.f07d142.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/CHANGELOG.md +0 -12
- package/package.json +10 -10
- package/.turbo/turbo-build.log +0 -4
- package/.turbo/turbo-lint.log +0 -4
- package/.turbo/turbo-test.log +0 -50
- package/dist/align/align.vtest.d.ts +0 -2
- package/dist/align/align.vtest.d.ts.map +0 -1
- package/dist/align/align.vtest.js +0 -46
- package/dist/align/align.vtest.js.map +0 -1
- package/dist/analyze-exports.sandbox-components.vtest.d.ts +0 -2
- package/dist/analyze-exports.sandbox-components.vtest.d.ts.map +0 -1
- package/dist/analyze-exports.sandbox-components.vtest.js +0 -51
- package/dist/analyze-exports.sandbox-components.vtest.js.map +0 -1
- package/dist/analyze-exports.vtest.d.ts +0 -2
- package/dist/analyze-exports.vtest.d.ts.map +0 -1
- package/dist/analyze-exports.vtest.js +0 -160
- package/dist/analyze-exports.vtest.js.map +0 -1
- package/dist/convert-to-spec.vtest.d.ts +0 -2
- package/dist/convert-to-spec.vtest.d.ts.map +0 -1
- package/dist/convert-to-spec.vtest.js +0 -131
- package/dist/convert-to-spec.vtest.js.map +0 -1
- package/dist/get-ts-config.vtest.d.ts +0 -2
- package/dist/get-ts-config.vtest.d.ts.map +0 -1
- package/dist/get-ts-config.vtest.js +0 -9
- package/dist/get-ts-config.vtest.js.map +0 -1
- package/dist/resolve.vtest.d.ts +0 -2
- package/dist/resolve.vtest.d.ts.map +0 -1
- package/dist/resolve.vtest.js +0 -57
- package/dist/resolve.vtest.js.map +0 -1
- package/dist/utils.vtest.d.ts +0 -2
- package/dist/utils.vtest.d.ts.map +0 -1
- package/dist/utils.vtest.js +0 -37
- package/dist/utils.vtest.js.map +0 -1
- package/src/align/align.vtest.ts +0 -56
- package/src/align/get-exports.bench.ts +0 -28
- package/src/align/resolve.bench.ts +0 -20
- package/src/align/utils.ts +0 -14
- package/src/analyze-exports.sandbox-components.vtest.ts +0 -53
- package/src/analyze-exports.ts +0 -54
- package/src/analyze-exports.vtest.ts +0 -178
- package/src/analyze-symbol.ts +0 -213
- package/src/analyze-type.ts +0 -316
- package/src/boot.ts +0 -31
- package/src/convert-to-spec.ts +0 -196
- package/src/convert-to-spec.vtest.ts +0 -136
- package/src/get-exports.ts +0 -70
- package/src/get-ts-config.ts +0 -96
- package/src/get-ts-config.vtest.ts +0 -9
- package/src/index.ts +0 -5
- package/src/resolve.ts +0 -54
- package/src/resolve.vtest.ts +0 -69
- package/src/test-fixtures/basics.ts +0 -17
- package/src/test-fixtures/functions.ts +0 -50
- package/src/test-fixtures/index.ts +0 -2
- package/src/types.ts +0 -66
- package/src/utils.ts +0 -61
- package/src/utils.vtest.ts +0 -39
package/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
# v4.78.13 (Fri Apr 25 2025)
|
|
2
|
-
|
|
3
|
-
#### 🏠 Internal
|
|
4
|
-
|
|
5
|
-
- Network flow diagram for customer security review [#6051](https://github.com/knapsack-labs/app-monorepo/pull/6051) ([@freneticpixel](https://github.com/freneticpixel))
|
|
6
|
-
|
|
7
|
-
#### Authors: 1
|
|
8
|
-
|
|
9
|
-
- Jim Frenette ([@freneticpixel](https://github.com/freneticpixel))
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
1
|
# v4.78.11 (Thu Apr 24 2025)
|
|
14
2
|
|
|
15
3
|
#### 🏠 Internal
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knapsack/spec-utils",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "4.78.
|
|
4
|
+
"version": "4.78.14--canary.6061.f07d142.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
@@ -20,17 +20,17 @@
|
|
|
20
20
|
"test": "vitest run"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@knapsack/utils": "4.78.
|
|
23
|
+
"@knapsack/utils": "4.78.14--canary.6061.f07d142.0",
|
|
24
24
|
"typescript": "^5.8.3"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@knapsack/angular-sandbox-components": "4.78.
|
|
28
|
-
"@knapsack/eslint-config-starter": "4.78.
|
|
29
|
-
"@knapsack/file-utils": "4.78.
|
|
30
|
-
"@knapsack/prettier-config": "4.78.
|
|
31
|
-
"@knapsack/sandbox-components": "4.78.
|
|
32
|
-
"@knapsack/types": "4.78.
|
|
33
|
-
"@knapsack/typescript-config-starter": "4.78.
|
|
27
|
+
"@knapsack/angular-sandbox-components": "4.78.14--canary.6061.f07d142.0",
|
|
28
|
+
"@knapsack/eslint-config-starter": "4.78.14--canary.6061.f07d142.0",
|
|
29
|
+
"@knapsack/file-utils": "4.78.14--canary.6061.f07d142.0",
|
|
30
|
+
"@knapsack/prettier-config": "4.78.14--canary.6061.f07d142.0",
|
|
31
|
+
"@knapsack/sandbox-components": "4.78.14--canary.6061.f07d142.0",
|
|
32
|
+
"@knapsack/types": "4.78.14--canary.6061.f07d142.0",
|
|
33
|
+
"@knapsack/typescript-config-starter": "4.78.14--canary.6061.f07d142.0",
|
|
34
34
|
"@mui/material": "^5.17.1",
|
|
35
35
|
"@types/node": "^20.17.24",
|
|
36
36
|
"eslint": "^8.57.0",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"directory": "apps/client/libs/spec-utils",
|
|
46
46
|
"type": "git"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "f07d1425c60049cb1889b747bfb002262b7e53f2"
|
|
49
49
|
}
|
package/.turbo/turbo-build.log
DELETED
package/.turbo/turbo-lint.log
DELETED
package/.turbo/turbo-test.log
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> @knapsack/spec-utils@4.78.12 test /home/runner/work/app-monorepo/app-monorepo/apps/client/libs/spec-utils
|
|
3
|
-
> vitest run
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
[1m[7m[36m RUN [39m[27m[22m [36mv3.1.1 [39m[90m/home/runner/work/app-monorepo/app-monorepo/apps/client/libs/spec-utils[39m
|
|
7
|
-
[2mCoverage enabled with [22m[33mv8[39m
|
|
8
|
-
|
|
9
|
-
[32m✓[39m src/convert-to-spec.vtest.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
10
|
-
[32m✓[39m src/get-ts-config.vtest.ts [2m([22m[2m1 test[22m[2m)[22m[32m 36[2mms[22m[39m
|
|
11
|
-
[32m✓[39m src/resolve.vtest.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 26[2mms[22m[39m
|
|
12
|
-
[32m✓[39m src/utils.vtest.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
13
|
-
[32m✓[39m src/analyze-exports.vtest.ts [2m([22m[2m20 tests[22m[2m)[22m[33m 2247[2mms[22m[39m
|
|
14
|
-
[33m[2m✓[22m[39m analyze-exports tests for .ts files[2m > [22mgets export names [33m 1196[2mms[22m[39m
|
|
15
|
-
[33m[2m✓[22m[39m analyze-exports tests for .d.ts files[2m > [22mgets export names [33m 1043[2mms[22m[39m
|
|
16
|
-
[32m✓[39m src/analyze-exports.sandbox-components.vtest.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 5778[2mms[22m[39m
|
|
17
|
-
[33m[2m✓[22m[39m analyze-exports sandbox components[2m > [22manalyzes react exports [33m 2182[2mms[22m[39m
|
|
18
|
-
[33m[2m✓[22m[39m analyze-exports sandbox components[2m > [22manalyzes angular exports [33m 3594[2mms[22m[39m
|
|
19
|
-
[32m✓[39m src/align/align.vtest.ts [2m([22m[2m8 tests[22m[2m)[22m[33m 7566[2mms[22m[39m
|
|
20
|
-
[33m[2m✓[22m[39m '@knapsack/sandbox-components/react'[2m > [22mfinds same export names in ts and js [33m 2113[2mms[22m[39m
|
|
21
|
-
[33m[2m✓[22m[39m '@knapsack/angular-sandbox-components'[2m > [22mfinds same export names in ts and js [33m 1548[2mms[22m[39m
|
|
22
|
-
[33m[2m✓[22m[39m '@mui/material'[2m > [22mfinds same export names in ts and js [33m 2116[2mms[22m[39m
|
|
23
|
-
[33m[2m✓[22m[39m '@knapsack/utils'[2m > [22mfinds same export names in ts and js [33m 1747[2mms[22m[39m
|
|
24
|
-
|
|
25
|
-
[2m Test Files [22m [1m[32m7 passed[39m[22m[90m (7)[39m
|
|
26
|
-
[2m Tests [22m [1m[32m44 passed[39m[22m[90m (44)[39m
|
|
27
|
-
[2m Start at [22m 18:33:46
|
|
28
|
-
[2m Duration [22m 10.42s[2m (transform 471ms, setup 95ms, collect 10.01s, tests 15.66s, environment 2ms, prepare 838ms)[22m
|
|
29
|
-
|
|
30
|
-
[34m % [39m[2mCoverage report from [22m[33mv8[39m
|
|
31
|
-
-------------------|---------|----------|---------|---------|-------------------
|
|
32
|
-
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
|
|
33
|
-
-------------------|---------|----------|---------|---------|-------------------
|
|
34
|
-
All files | 79.48 | 75 | 84.21 | 79.48 |
|
|
35
|
-
src | 83.6 | 76.15 | 94.11 | 83.6 |
|
|
36
|
-
...ze-exports.ts | 55.55 | 100 | 50 | 55.55 | 31-54
|
|
37
|
-
...yze-symbol.ts | 98.85 | 96.55 | 100 | 98.85 | 120-121
|
|
38
|
-
analyze-type.ts | 97.93 | 94.59 | 100 | 97.93 | 226-227,238-239
|
|
39
|
-
boot.ts | 100 | 100 | 100 | 100 |
|
|
40
|
-
...rt-to-spec.ts | 65.45 | 48.27 | 100 | 65.45 | ...81-185,188-194
|
|
41
|
-
get-exports.ts | 64.4 | 50 | 100 | 64.4 | ...35,47-50,56-70
|
|
42
|
-
get-ts-config.ts | 67.16 | 36.36 | 100 | 67.16 | ...84,86-88,92-94
|
|
43
|
-
resolve.ts | 95.83 | 66.66 | 100 | 95.83 | 51-52
|
|
44
|
-
types.ts | 0 | 0 | 0 | 0 |
|
|
45
|
-
utils.ts | 85.71 | 85.71 | 100 | 85.71 | 58-60
|
|
46
|
-
src/align | 23.72 | 0 | 0 | 23.72 |
|
|
47
|
-
...orts.bench.ts | 0 | 0 | 0 | 0 | 1-28
|
|
48
|
-
resolve.bench.ts | 0 | 0 | 0 | 0 | 1-20
|
|
49
|
-
utils.ts | 100 | 100 | 100 | 100 |
|
|
50
|
-
-------------------|---------|----------|---------|---------|-------------------
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"align.vtest.d.ts","sourceRoot":"","sources":["../../src/align/align.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, assert } from 'vitest';
|
|
2
|
-
import { realpath } from 'node:fs/promises';
|
|
3
|
-
import { getJsExportNames, resolvePath } from '@knapsack/file-utils';
|
|
4
|
-
import { resolveTsModule } from '../resolve.js';
|
|
5
|
-
import { getTsExports } from '../get-exports.js';
|
|
6
|
-
import { paths } from './utils.js';
|
|
7
|
-
describe.for(paths)(`$path`, ({ path }) => {
|
|
8
|
-
it('resolves to same file path', async () => {
|
|
9
|
-
const { absolutePath } = await resolvePath({
|
|
10
|
-
path,
|
|
11
|
-
resolveType: 'types',
|
|
12
|
-
});
|
|
13
|
-
const { resolvedFileName } = resolveTsModule({
|
|
14
|
-
moduleName: path,
|
|
15
|
-
containingFile: import.meta.filename,
|
|
16
|
-
});
|
|
17
|
-
expect(await realpath(resolvedFileName)).toBe(await realpath(absolutePath));
|
|
18
|
-
});
|
|
19
|
-
it('finds same export names in ts and js', {
|
|
20
|
-
timeout: 10000,
|
|
21
|
-
}, async () => {
|
|
22
|
-
const { exports } = getTsExports({
|
|
23
|
-
fileName: path,
|
|
24
|
-
});
|
|
25
|
-
const exportNamesFromTs = exports.map((e) => e.getName());
|
|
26
|
-
const { exports: exportNamesFromJs } = await getJsExportNames({
|
|
27
|
-
path,
|
|
28
|
-
});
|
|
29
|
-
// the ts details will contain things like types that the js details don't
|
|
30
|
-
// this makes sure that all we found in js is also found in ts
|
|
31
|
-
const exportNamesFromJsSet = new Set(exportNamesFromJs);
|
|
32
|
-
exportNamesFromTs.forEach((e) => {
|
|
33
|
-
exportNamesFromJsSet.delete(e);
|
|
34
|
-
});
|
|
35
|
-
if (path === '@mui/material') {
|
|
36
|
-
// pulling these out b/c they fail test, but we got the other ones
|
|
37
|
-
exportNamesFromJsSet.delete('FormLabelRoot');
|
|
38
|
-
exportNamesFromJsSet.delete('private_createMixins');
|
|
39
|
-
exportNamesFromJsSet.delete('usePagination');
|
|
40
|
-
}
|
|
41
|
-
assert.isEmpty(exportNamesFromJsSet, `found ${exportNamesFromJsSet.size} extra exports in js: ${[
|
|
42
|
-
...exportNamesFromJsSet,
|
|
43
|
-
].join(', ')}`);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
//# sourceMappingURL=align.vtest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"align.vtest.js","sourceRoot":"","sources":["../../src/align/align.vtest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACxC,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,WAAW,CAAC;YACzC,IAAI;YACJ,WAAW,EAAE,OAAO;SACrB,CAAC,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAAC;YAC3C,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;SACrC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CACA,sCAAsC,EACtC;QACE,OAAO,EAAE,KAAM;KAChB,EACD,KAAK,IAAI,EAAE;QACT,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAE1D,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAC5D,IAAI;SACL,CAAC,CAAC;QAEH,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACxD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC7B,kEAAkE;YAClE,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7C,oBAAoB,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACpD,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,OAAO,CACZ,oBAAoB,EACpB,SAAS,oBAAoB,CAAC,IAAI,yBAAyB;YACzD,GAAG,oBAAoB;SACxB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-exports.sandbox-components.vtest.d.ts","sourceRoot":"","sources":["../src/analyze-exports.sandbox-components.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { analyzeExports } from './analyze-exports.js';
|
|
3
|
-
import { assertTypeInfo } from './utils.js';
|
|
4
|
-
describe('analyze-exports sandbox components', () => {
|
|
5
|
-
it('analyzes react exports', () => {
|
|
6
|
-
const exports = analyzeExports({
|
|
7
|
-
fileName: '@knapsack/sandbox-components/react',
|
|
8
|
-
});
|
|
9
|
-
const { Button } = exports;
|
|
10
|
-
expect(Button).toBeTruthy();
|
|
11
|
-
assertTypeInfo(Button.typeInfo, 'function');
|
|
12
|
-
const { parameters } = Button.typeInfo;
|
|
13
|
-
const [props] = parameters;
|
|
14
|
-
assertTypeInfo(props.typeInfo, 'object');
|
|
15
|
-
const { properties } = props.typeInfo;
|
|
16
|
-
const { size } = properties;
|
|
17
|
-
assertTypeInfo(size.typeInfo, 'union');
|
|
18
|
-
const { items } = size.typeInfo;
|
|
19
|
-
const sizeValues = items
|
|
20
|
-
.map((item) => {
|
|
21
|
-
assertTypeInfo(item, 'stringLiteral');
|
|
22
|
-
return item.value;
|
|
23
|
-
})
|
|
24
|
-
.sort();
|
|
25
|
-
expect(sizeValues).toEqual(['large', 'medium', 'small'].sort());
|
|
26
|
-
});
|
|
27
|
-
it('analyzes angular exports', () => {
|
|
28
|
-
const exports = analyzeExports({
|
|
29
|
-
fileName: '@knapsack/angular-sandbox-components',
|
|
30
|
-
});
|
|
31
|
-
const { KsButtonComponent } = exports;
|
|
32
|
-
expect(KsButtonComponent).toBeTruthy();
|
|
33
|
-
assertTypeInfo(KsButtonComponent.typeInfo, 'class');
|
|
34
|
-
const { prototype } = KsButtonComponent.typeInfo;
|
|
35
|
-
assertTypeInfo(prototype.typeInfo, 'object');
|
|
36
|
-
const { hasArrow, click, size, handleClick } = prototype.typeInfo.properties;
|
|
37
|
-
assertTypeInfo(hasArrow.typeInfo, 'boolean');
|
|
38
|
-
assertTypeInfo(handleClick.typeInfo, 'function');
|
|
39
|
-
expect(click.typeInfo.tsRawType).toBe('EventEmitter<void>');
|
|
40
|
-
assertTypeInfo(size.typeInfo, 'union');
|
|
41
|
-
const { items } = size.typeInfo;
|
|
42
|
-
const sizeValues = items
|
|
43
|
-
.map((item) => {
|
|
44
|
-
assertTypeInfo(item, 'stringLiteral');
|
|
45
|
-
return item.value;
|
|
46
|
-
})
|
|
47
|
-
.sort();
|
|
48
|
-
expect(sizeValues).toEqual(['large', 'medium', 'small'].sort());
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=analyze-exports.sandbox-components.vtest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-exports.sandbox-components.vtest.js","sourceRoot":"","sources":["../src/analyze-exports.sandbox-components.vtest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-exports.vtest.d.ts","sourceRoot":"","sources":["../src/analyze-exports.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { analyzeExports } from './analyze-exports.js';
|
|
4
|
-
import { assertTypeInfo } from './utils.js';
|
|
5
|
-
const tsDetailsSrc = join(import.meta.dirname, '../src/test-fixtures/index.ts');
|
|
6
|
-
const tsDetailsDts = join(import.meta.dirname, '../dist/test-fixtures/index.d.ts');
|
|
7
|
-
[tsDetailsSrc, tsDetailsDts].forEach((fileName) => {
|
|
8
|
-
const ext = fileName.endsWith('.d.ts') ? '.d.ts' : '.ts';
|
|
9
|
-
const exports = analyzeExports({ fileName });
|
|
10
|
-
describe(`analyze-exports tests for ${ext} files`, () => {
|
|
11
|
-
it(`gets export names`, () => {
|
|
12
|
-
const results = analyzeExports({
|
|
13
|
-
fileName,
|
|
14
|
-
});
|
|
15
|
-
const exportNames = Object.keys(results);
|
|
16
|
-
expect(exportNames).toContain('complexFuncTypes');
|
|
17
|
-
expect(exportNames).toContain('doIt');
|
|
18
|
-
});
|
|
19
|
-
it(`handles basics: number`, () => {
|
|
20
|
-
const { typeInfo } = exports.aNumber;
|
|
21
|
-
expect(typeInfo.type).toBe('number');
|
|
22
|
-
});
|
|
23
|
-
it(`handles string union`, () => {
|
|
24
|
-
const { typeInfo } = exports.stringUnion;
|
|
25
|
-
assertTypeInfo(typeInfo, 'union');
|
|
26
|
-
const { items } = typeInfo;
|
|
27
|
-
const sizes = items.map((item) => {
|
|
28
|
-
if (item.type !== 'stringLiteral') {
|
|
29
|
-
throw new Error(`Expected type to be stringLiteral, got ${item.type}`);
|
|
30
|
-
}
|
|
31
|
-
return item.value;
|
|
32
|
-
});
|
|
33
|
-
expect(sizes).toEqual(['small', 'medium', 'large']);
|
|
34
|
-
});
|
|
35
|
-
it(`handles string via type alias`, () => {
|
|
36
|
-
const { typeInfo } = exports.stringViaTypeAlias;
|
|
37
|
-
expect(typeInfo.type).toBe('string');
|
|
38
|
-
});
|
|
39
|
-
it(`handles jsdoc`, () => {
|
|
40
|
-
const { jsDoc } = exports.complexFuncTypes;
|
|
41
|
-
if (!jsDoc) {
|
|
42
|
-
throw new Error('jsDoc is undefined');
|
|
43
|
-
}
|
|
44
|
-
expect(jsDoc.description).toBe('Some basic types');
|
|
45
|
-
expect(jsDoc.jsDocTags.length).toBe(1);
|
|
46
|
-
expect(jsDoc.jsDocTags).toEqual([
|
|
47
|
-
{ name: 'link', text: 'https://www.example.com' },
|
|
48
|
-
]);
|
|
49
|
-
});
|
|
50
|
-
it(`handles basics: string[]`, () => {
|
|
51
|
-
const { typeInfo } = exports.anArrayOfStrings;
|
|
52
|
-
assertTypeInfo(typeInfo, 'array');
|
|
53
|
-
expect(typeInfo.items.type).toBe('string');
|
|
54
|
-
expect(typeInfo.tsRawType).toBe('string[]');
|
|
55
|
-
});
|
|
56
|
-
it(`handles basics: object`, () => {
|
|
57
|
-
const { typeInfo } = exports.anObject;
|
|
58
|
-
assertTypeInfo(typeInfo, 'object');
|
|
59
|
-
const { properties: { a, b, c }, } = typeInfo;
|
|
60
|
-
expect(a.typeInfo.type).toBe('number');
|
|
61
|
-
expect(b.typeInfo.type).toBe('string');
|
|
62
|
-
assertTypeInfo(c.typeInfo, 'array');
|
|
63
|
-
expect(c.typeInfo.items.type).toBe('string');
|
|
64
|
-
expect(c.typeInfo.tsRawType).toBe('string[]');
|
|
65
|
-
});
|
|
66
|
-
it(`handles function with basic parameters`, () => {
|
|
67
|
-
const { typeInfo } = exports.aFunction;
|
|
68
|
-
assertTypeInfo(typeInfo, 'function');
|
|
69
|
-
const { parameters, returnType, tsRawType } = typeInfo;
|
|
70
|
-
if (!returnType) {
|
|
71
|
-
throw new Error('returnType is undefined');
|
|
72
|
-
}
|
|
73
|
-
const [param] = parameters;
|
|
74
|
-
expect(tsRawType).toBe('(a: number) => number');
|
|
75
|
-
expect(param.name).toBe('a');
|
|
76
|
-
expect(param.typeInfo.type).toBe('number');
|
|
77
|
-
expect(returnType.type).toBe('number');
|
|
78
|
-
});
|
|
79
|
-
it(`handles async function with basic parameters`, () => {
|
|
80
|
-
const { typeInfo } = exports.asyncFunction;
|
|
81
|
-
assertTypeInfo(typeInfo, 'function');
|
|
82
|
-
const { parameters, returnType, tsRawType } = typeInfo;
|
|
83
|
-
if (!returnType) {
|
|
84
|
-
throw new Error('returnType is undefined');
|
|
85
|
-
}
|
|
86
|
-
const [param] = parameters;
|
|
87
|
-
expect(param.name).toBe('a');
|
|
88
|
-
expect(param.typeInfo.type).toBe('number');
|
|
89
|
-
expect(tsRawType).toBe('(a: number) => Promise<number>');
|
|
90
|
-
expect(returnType.type).toBe('misc');
|
|
91
|
-
});
|
|
92
|
-
it(`handles function with complex parameters`, () => {
|
|
93
|
-
const { typeInfo } = exports.complexFuncTypes;
|
|
94
|
-
assertTypeInfo(typeInfo, 'function');
|
|
95
|
-
const [param] = typeInfo.parameters;
|
|
96
|
-
expect(param.name).toBe('obj');
|
|
97
|
-
assertTypeInfo(param.typeInfo, 'object');
|
|
98
|
-
const { properties } = param.typeInfo;
|
|
99
|
-
Object.entries(properties).forEach(([key, { typeInfo: propInfo }]) => {
|
|
100
|
-
switch (key) {
|
|
101
|
-
case 'aString': {
|
|
102
|
-
expect(propInfo.type).toBe('string');
|
|
103
|
-
expect(propInfo.isOptional).toBe(false);
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
case 'anOptionalString': {
|
|
107
|
-
expect(propInfo.type).toBe('string');
|
|
108
|
-
expect(propInfo.isOptional).toBe(true);
|
|
109
|
-
break;
|
|
110
|
-
}
|
|
111
|
-
case 'aBoolean': {
|
|
112
|
-
expect(propInfo.type).toBe('boolean');
|
|
113
|
-
expect(propInfo.isOptional).toBe(false);
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
116
|
-
case 'someSizes': {
|
|
117
|
-
assertTypeInfo(propInfo, 'union');
|
|
118
|
-
const sizes = propInfo.items.map((item) => {
|
|
119
|
-
assertTypeInfo(item, 'stringLiteral');
|
|
120
|
-
return item.value;
|
|
121
|
-
});
|
|
122
|
-
expect(sizes).toEqual(['small', 'medium', 'large']);
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
case 'anArray': {
|
|
126
|
-
assertTypeInfo(propInfo, 'array');
|
|
127
|
-
expect(propInfo.items.type).toBe('string');
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
130
|
-
case 'aFunc': {
|
|
131
|
-
assertTypeInfo(propInfo, 'function');
|
|
132
|
-
const { parameters, returnType } = propInfo;
|
|
133
|
-
if (!returnType) {
|
|
134
|
-
throw new Error('returnType is undefined');
|
|
135
|
-
}
|
|
136
|
-
const [p] = parameters;
|
|
137
|
-
expect(p.name).toBe('a');
|
|
138
|
-
expect(p.typeInfo.type).toBe('string');
|
|
139
|
-
expect(returnType.type).toBe('string');
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
case 'anotherFunc': {
|
|
143
|
-
assertTypeInfo(propInfo, 'function');
|
|
144
|
-
const { parameters } = propInfo;
|
|
145
|
-
const [p] = parameters;
|
|
146
|
-
expect(p.name).toBe('opt');
|
|
147
|
-
assertTypeInfo(p.typeInfo, 'object');
|
|
148
|
-
const { onFoo } = p.typeInfo.properties;
|
|
149
|
-
assertTypeInfo(onFoo.typeInfo, 'function');
|
|
150
|
-
const [onFooParam] = onFoo.typeInfo.parameters;
|
|
151
|
-
expect(onFooParam.name).toBe('a');
|
|
152
|
-
expect(onFooParam.typeInfo.type).toBe('string');
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
//# sourceMappingURL=analyze-exports.vtest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-exports.vtest.js","sourceRoot":"","sources":["../src/analyze-exports.vtest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convert-to-spec.vtest.d.ts","sourceRoot":"","sources":["../src/convert-to-spec.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { convertToSpec } from './convert-to-spec.js';
|
|
3
|
-
// these two are up here to make TS happy
|
|
4
|
-
const typeInfoStubBase = {
|
|
5
|
-
tsRawType: '',
|
|
6
|
-
tsMetadata: null,
|
|
7
|
-
};
|
|
8
|
-
const tsMetadata = null;
|
|
9
|
-
describe('convert-to-spec', () => {
|
|
10
|
-
it('handles string', () => {
|
|
11
|
-
const { prop } = convertToSpec({
|
|
12
|
-
typeInfo: {
|
|
13
|
-
type: 'string',
|
|
14
|
-
...typeInfoStubBase,
|
|
15
|
-
},
|
|
16
|
-
trustRequiredProps: false,
|
|
17
|
-
});
|
|
18
|
-
expect(prop).toEqual({
|
|
19
|
-
type: 'string',
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
it('handles boolean', () => {
|
|
23
|
-
const { prop } = convertToSpec({
|
|
24
|
-
typeInfo: {
|
|
25
|
-
type: 'boolean',
|
|
26
|
-
...typeInfoStubBase,
|
|
27
|
-
},
|
|
28
|
-
trustRequiredProps: false,
|
|
29
|
-
});
|
|
30
|
-
expect(prop).toEqual({
|
|
31
|
-
type: 'boolean',
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
it('handles object', () => {
|
|
35
|
-
const { prop } = convertToSpec({
|
|
36
|
-
typeInfo: {
|
|
37
|
-
type: 'object',
|
|
38
|
-
...typeInfoStubBase,
|
|
39
|
-
properties: {
|
|
40
|
-
name: {
|
|
41
|
-
name: 'name',
|
|
42
|
-
typeInfo: {
|
|
43
|
-
type: 'string',
|
|
44
|
-
tsRawType: '',
|
|
45
|
-
tsMetadata: null,
|
|
46
|
-
},
|
|
47
|
-
tsMetadata,
|
|
48
|
-
},
|
|
49
|
-
age: {
|
|
50
|
-
name: 'age',
|
|
51
|
-
typeInfo: {
|
|
52
|
-
isOptional: true,
|
|
53
|
-
type: 'number',
|
|
54
|
-
...typeInfoStubBase,
|
|
55
|
-
},
|
|
56
|
-
tsMetadata,
|
|
57
|
-
},
|
|
58
|
-
shoePrefs: {
|
|
59
|
-
name: 'shoePrefs',
|
|
60
|
-
typeInfo: {
|
|
61
|
-
type: 'union',
|
|
62
|
-
...typeInfoStubBase,
|
|
63
|
-
items: [
|
|
64
|
-
{
|
|
65
|
-
type: 'stringLiteral',
|
|
66
|
-
value: 'sandals',
|
|
67
|
-
...typeInfoStubBase,
|
|
68
|
-
},
|
|
69
|
-
{ type: 'stringLiteral', value: 'boots', ...typeInfoStubBase },
|
|
70
|
-
],
|
|
71
|
-
},
|
|
72
|
-
tsMetadata,
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
trustRequiredProps: true,
|
|
77
|
-
});
|
|
78
|
-
expect(prop).toEqual({
|
|
79
|
-
type: 'object',
|
|
80
|
-
required: ['name', 'shoePrefs'],
|
|
81
|
-
properties: {
|
|
82
|
-
name: {
|
|
83
|
-
type: 'string',
|
|
84
|
-
},
|
|
85
|
-
age: {
|
|
86
|
-
type: 'number',
|
|
87
|
-
},
|
|
88
|
-
shoePrefs: {
|
|
89
|
-
type: 'string',
|
|
90
|
-
enum: ['sandals', 'boots'],
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
it('handles array of objects', () => {
|
|
96
|
-
const { prop } = convertToSpec({
|
|
97
|
-
typeInfo: {
|
|
98
|
-
type: 'array',
|
|
99
|
-
items: {
|
|
100
|
-
type: 'object',
|
|
101
|
-
properties: {
|
|
102
|
-
name: {
|
|
103
|
-
name: 'name',
|
|
104
|
-
typeInfo: {
|
|
105
|
-
type: 'string',
|
|
106
|
-
...typeInfoStubBase,
|
|
107
|
-
},
|
|
108
|
-
tsMetadata,
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
...typeInfoStubBase,
|
|
112
|
-
},
|
|
113
|
-
...typeInfoStubBase,
|
|
114
|
-
},
|
|
115
|
-
trustRequiredProps: false,
|
|
116
|
-
});
|
|
117
|
-
expect(prop).toEqual({
|
|
118
|
-
type: 'array',
|
|
119
|
-
items: {
|
|
120
|
-
type: 'object',
|
|
121
|
-
required: [],
|
|
122
|
-
properties: {
|
|
123
|
-
name: {
|
|
124
|
-
type: 'string',
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
//# sourceMappingURL=convert-to-spec.vtest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convert-to-spec.vtest.js","sourceRoot":"","sources":["../src/convert-to-spec.vtest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,yCAAyC;AACzC,MAAM,gBAAgB,GAAG;IACvB,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,IAAyC;CACtD,CAAC;AACF,MAAM,UAAU,GAAG,IAA2C,CAAC;AAE/D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAC7B,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,GAAG,gBAAgB;aACpB;YACD,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,QAAQ;SACO,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAC7B,QAAQ,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,GAAG,gBAAgB;aACpB;YACD,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,SAAS;SACM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAC7B,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,GAAG,gBAAgB;gBACnB,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,SAAS,EAAE,EAAE;4BACb,UAAU,EAAE,IAAyC;yBACtD;wBACD,UAAU;qBACX;oBACD,GAAG,EAAE;wBACH,IAAI,EAAE,KAAK;wBACX,QAAQ,EAAE;4BACR,UAAU,EAAE,IAAI;4BAChB,IAAI,EAAE,QAAQ;4BACd,GAAG,gBAAgB;yBACpB;wBACD,UAAU;qBACX;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,WAAW;wBACjB,QAAQ,EAAE;4BACR,IAAI,EAAE,OAAO;4BACb,GAAG,gBAAgB;4BACnB,KAAK,EAAE;gCACL;oCACE,IAAI,EAAE,eAAe;oCACrB,KAAK,EAAE,SAAS;oCAChB,GAAG,gBAAgB;iCACpB;gCACD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE;6BAC/D;yBACF;wBACD,UAAU;qBACX;iBACF;aACF;YACD,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;iBACf;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;iBACf;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;iBAC3B;aACF;SACoB,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAC7B,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,GAAG,gBAAgB;6BACpB;4BACD,UAAU;yBACX;qBACF;oBACD,GAAG,gBAAgB;iBACpB;gBACD,GAAG,gBAAgB;aACpB;YACD,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;SACoB,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-ts-config.vtest.d.ts","sourceRoot":"","sources":["../src/get-ts-config.vtest.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { getTsConfigJson } from './get-ts-config.js';
|
|
3
|
-
describe('get-ts-config', () => {
|
|
4
|
-
it('reads this pkg tsconfig.json', () => {
|
|
5
|
-
const { tsConfig } = getTsConfigJson({ basePath: import.meta.dirname });
|
|
6
|
-
expect(Object.keys(tsConfig.options).length).toBeGreaterThan(0);
|
|
7
|
-
});
|
|
8
|
-
});
|
|
9
|
-
//# sourceMappingURL=get-ts-config.vtest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-ts-config.vtest.js","sourceRoot":"","sources":["../src/get-ts-config.vtest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/resolve.vtest.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.vtest.d.ts","sourceRoot":"","sources":["../src/resolve.vtest.ts"],"names":[],"mappings":""}
|