@venizia/ignis-boot 0.2.1-0 → 0.2.1-10
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 +1 -1
- package/dist/cjs/bun/auto-group.d.ts +22 -0
- package/dist/cjs/bun/auto-group.d.ts.map +1 -0
- package/dist/cjs/bun/auto-group.js +51 -0
- package/dist/cjs/bun/auto-group.js.map +1 -0
- package/dist/cjs/bun/auto-loader.d.ts +13 -0
- package/dist/cjs/bun/auto-loader.d.ts.map +1 -0
- package/dist/cjs/bun/auto-loader.js +63 -0
- package/dist/cjs/bun/auto-loader.js.map +1 -0
- package/dist/cjs/bun/auto.d.ts +5 -0
- package/dist/cjs/bun/auto.d.ts.map +1 -0
- package/dist/cjs/bun/auto.js +11 -0
- package/dist/cjs/bun/auto.js.map +1 -0
- package/dist/cjs/bun/group-resolver.d.ts +16 -0
- package/dist/cjs/bun/group-resolver.d.ts.map +1 -0
- package/dist/cjs/bun/group-resolver.js +44 -0
- package/dist/cjs/bun/group-resolver.js.map +1 -0
- package/dist/cjs/bun/index.d.ts +7 -0
- package/dist/cjs/bun/index.d.ts.map +1 -0
- package/dist/cjs/bun/index.js +23 -0
- package/dist/cjs/bun/index.js.map +1 -0
- package/dist/cjs/bun/plugin.d.ts +44 -0
- package/dist/cjs/bun/plugin.d.ts.map +1 -0
- package/dist/cjs/bun/plugin.js +299 -0
- package/dist/cjs/bun/plugin.js.map +1 -0
- package/dist/cjs/bun/scan-cache.d.ts +22 -0
- package/dist/cjs/bun/scan-cache.d.ts.map +1 -0
- package/dist/cjs/bun/scan-cache.js +89 -0
- package/dist/cjs/bun/scan-cache.js.map +1 -0
- package/dist/cjs/bun/sources.d.ts +49 -0
- package/dist/cjs/bun/sources.d.ts.map +1 -0
- package/dist/cjs/bun/sources.js +115 -0
- package/dist/cjs/bun/sources.js.map +1 -0
- package/dist/cjs/clis/artifacts.js +4 -2
- package/dist/cjs/clis/artifacts.js.map +1 -1
- package/dist/cjs/generator/common/constants.d.ts +13 -0
- package/dist/cjs/generator/common/constants.d.ts.map +1 -1
- package/dist/cjs/generator/common/constants.js +19 -4
- package/dist/cjs/generator/common/constants.js.map +1 -1
- package/dist/cjs/generator/common/types.d.ts +16 -1
- package/dist/cjs/generator/common/types.d.ts.map +1 -1
- package/dist/cjs/generator/emitter.d.ts +12 -0
- package/dist/cjs/generator/emitter.d.ts.map +1 -1
- package/dist/cjs/generator/emitter.js +23 -6
- package/dist/cjs/generator/emitter.js.map +1 -1
- package/dist/cjs/generator/index.d.ts +2 -0
- package/dist/cjs/generator/index.d.ts.map +1 -1
- package/dist/cjs/generator/index.js +12 -6
- package/dist/cjs/generator/index.js.map +1 -1
- package/dist/cjs/generator/reexport.d.ts +28 -0
- package/dist/cjs/generator/reexport.d.ts.map +1 -0
- package/dist/cjs/generator/reexport.js +131 -0
- package/dist/cjs/generator/reexport.js.map +1 -0
- package/dist/cjs/generator/scanner.d.ts +3 -1
- package/dist/cjs/generator/scanner.d.ts.map +1 -1
- package/dist/cjs/generator/scanner.js +72 -17
- package/dist/cjs/generator/scanner.js.map +1 -1
- package/dist/cjs/vite/index.d.ts +2 -0
- package/dist/cjs/vite/index.d.ts.map +1 -0
- package/dist/cjs/vite/index.js +18 -0
- package/dist/cjs/vite/index.js.map +1 -0
- package/dist/cjs/vite/plugin.d.ts +33 -0
- package/dist/cjs/vite/plugin.d.ts.map +1 -0
- package/dist/cjs/vite/plugin.js +51 -0
- package/dist/cjs/vite/plugin.js.map +1 -0
- package/dist/esm/bun/auto-group.d.ts +22 -0
- package/dist/esm/bun/auto-group.d.ts.map +1 -0
- package/dist/esm/bun/auto-group.js +47 -0
- package/dist/esm/bun/auto-group.js.map +1 -0
- package/dist/esm/bun/auto-loader.d.ts +13 -0
- package/dist/esm/bun/auto-loader.d.ts.map +1 -0
- package/dist/esm/bun/auto-loader.js +59 -0
- package/dist/esm/bun/auto-loader.js.map +1 -0
- package/dist/esm/bun/auto.d.ts +5 -0
- package/dist/esm/bun/auto.d.ts.map +1 -0
- package/dist/esm/bun/auto.js +9 -0
- package/dist/esm/bun/auto.js.map +1 -0
- package/dist/esm/bun/group-resolver.d.ts +16 -0
- package/dist/esm/bun/group-resolver.d.ts.map +1 -0
- package/dist/esm/bun/group-resolver.js +40 -0
- package/dist/esm/bun/group-resolver.js.map +1 -0
- package/dist/esm/bun/index.d.ts +7 -0
- package/dist/esm/bun/index.d.ts.map +1 -0
- package/dist/esm/bun/index.js +7 -0
- package/dist/esm/bun/index.js.map +1 -0
- package/dist/esm/bun/plugin.d.ts +44 -0
- package/dist/esm/bun/plugin.d.ts.map +1 -0
- package/dist/esm/bun/plugin.js +292 -0
- package/dist/esm/bun/plugin.js.map +1 -0
- package/dist/esm/bun/scan-cache.d.ts +22 -0
- package/dist/esm/bun/scan-cache.d.ts.map +1 -0
- package/dist/esm/bun/scan-cache.js +85 -0
- package/dist/esm/bun/scan-cache.js.map +1 -0
- package/dist/esm/bun/sources.d.ts +49 -0
- package/dist/esm/bun/sources.d.ts.map +1 -0
- package/dist/esm/bun/sources.js +111 -0
- package/dist/esm/bun/sources.js.map +1 -0
- package/dist/esm/clis/artifacts.js +5 -3
- package/dist/esm/clis/artifacts.js.map +1 -1
- package/dist/esm/generator/common/constants.d.ts +13 -0
- package/dist/esm/generator/common/constants.d.ts.map +1 -1
- package/dist/esm/generator/common/constants.js +17 -3
- package/dist/esm/generator/common/constants.js.map +1 -1
- package/dist/esm/generator/common/types.d.ts +16 -1
- package/dist/esm/generator/common/types.d.ts.map +1 -1
- package/dist/esm/generator/emitter.d.ts +12 -0
- package/dist/esm/generator/emitter.d.ts.map +1 -1
- package/dist/esm/generator/emitter.js +23 -6
- package/dist/esm/generator/emitter.js.map +1 -1
- package/dist/esm/generator/index.d.ts +2 -0
- package/dist/esm/generator/index.d.ts.map +1 -1
- package/dist/esm/generator/index.js +12 -6
- package/dist/esm/generator/index.js.map +1 -1
- package/dist/esm/generator/reexport.d.ts +28 -0
- package/dist/esm/generator/reexport.d.ts.map +1 -0
- package/dist/esm/generator/reexport.js +124 -0
- package/dist/esm/generator/reexport.js.map +1 -0
- package/dist/esm/generator/scanner.d.ts +3 -1
- package/dist/esm/generator/scanner.d.ts.map +1 -1
- package/dist/esm/generator/scanner.js +75 -20
- package/dist/esm/generator/scanner.js.map +1 -1
- package/dist/esm/package.json +3 -1
- package/dist/esm/vite/index.d.ts +2 -0
- package/dist/esm/vite/index.d.ts.map +1 -0
- package/dist/esm/vite/index.js +2 -0
- package/dist/esm/vite/index.js.map +1 -0
- package/dist/esm/vite/plugin.d.ts +33 -0
- package/dist/esm/vite/plugin.d.ts.map +1 -0
- package/dist/esm/vite/plugin.js +47 -0
- package/dist/esm/vite/plugin.js.map +1 -0
- package/package.json +26 -4
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { BaseHelper } from '@venizia/ignis-helpers';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { dirname } from 'node:path';
|
|
4
|
+
import ts from 'typescript';
|
|
5
|
+
import { ArtifactStereotypes } from './common/index.js';
|
|
6
|
+
/** Follows a named import through `export *` and renaming re-exports until it reaches a source module, so a framework that re-exports the kernel's decorators is recognised. Reads declarations only; never builds a type-checked program. */
|
|
7
|
+
export class StereotypeReexportResolver extends BaseHelper {
|
|
8
|
+
static { this.MAX_DEPTH = 10; }
|
|
9
|
+
constructor(opts) {
|
|
10
|
+
super({ scope: StereotypeReexportResolver.name });
|
|
11
|
+
/** One scan reads the same barrels many times: resolutions, parsed files and answers are memoized per resolver. */
|
|
12
|
+
this.resolutions = new Map();
|
|
13
|
+
this.sources = new Map();
|
|
14
|
+
this.origins = new Map();
|
|
15
|
+
this.sourceModules = opts.sourceModules;
|
|
16
|
+
this.options = StereotypeReexportResolver.compilerOptionsFor({ root: opts.root });
|
|
17
|
+
}
|
|
18
|
+
/** The nearest tsconfig's options (for `paths` aliases), with bundler resolution as the fallback. */
|
|
19
|
+
static compilerOptionsFor(opts) {
|
|
20
|
+
const configPath = ts.findConfigFile(opts.root, ts.sys.fileExists);
|
|
21
|
+
const fallback = {
|
|
22
|
+
module: ts.ModuleKind.ESNext,
|
|
23
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
24
|
+
allowJs: true,
|
|
25
|
+
};
|
|
26
|
+
if (!configPath) {
|
|
27
|
+
return fallback;
|
|
28
|
+
}
|
|
29
|
+
const parsed = ts.parseJsonConfigFileContent(ts.readConfigFile(configPath, ts.sys.readFile).config, ts.sys, dirname(configPath));
|
|
30
|
+
return { ...fallback, ...parsed.options };
|
|
31
|
+
}
|
|
32
|
+
/** The kernel name `name` (exported by `specifier`, as seen from `fromFile`) originates as, or `undefined` when the chain never reaches a source module. */
|
|
33
|
+
originOf(opts) {
|
|
34
|
+
const key = `${dirname(opts.fromFile)}|${opts.specifier}|${opts.name}`;
|
|
35
|
+
if (!this.origins.has(key)) {
|
|
36
|
+
this.origins.set(key, this.follow({ ...opts, depth: 0, seen: new Set() }));
|
|
37
|
+
}
|
|
38
|
+
return this.origins.get(key);
|
|
39
|
+
}
|
|
40
|
+
resolveFile(opts) {
|
|
41
|
+
const key = `${dirname(opts.fromFile)}|${opts.specifier}`;
|
|
42
|
+
if (!this.resolutions.has(key)) {
|
|
43
|
+
this.resolutions.set(key, ts.resolveModuleName(opts.specifier, opts.fromFile, this.options, ts.sys).resolvedModule
|
|
44
|
+
?.resolvedFileName);
|
|
45
|
+
}
|
|
46
|
+
return this.resolutions.get(key);
|
|
47
|
+
}
|
|
48
|
+
parse(opts) {
|
|
49
|
+
let source = this.sources.get(opts.file);
|
|
50
|
+
if (!source) {
|
|
51
|
+
source = ts.createSourceFile(opts.file, readFileSync(opts.file, 'utf8'), ts.ScriptTarget.Latest, true);
|
|
52
|
+
this.sources.set(opts.file, source);
|
|
53
|
+
}
|
|
54
|
+
return source;
|
|
55
|
+
}
|
|
56
|
+
isSourceModule(opts) {
|
|
57
|
+
return (ArtifactStereotypes.SOURCE_MODULES.test(opts.specifier) ||
|
|
58
|
+
this.sourceModules.has(opts.specifier));
|
|
59
|
+
}
|
|
60
|
+
follow(opts) {
|
|
61
|
+
const { fromFile, specifier, name, depth, seen } = opts;
|
|
62
|
+
if (this.isSourceModule({ specifier })) {
|
|
63
|
+
return name;
|
|
64
|
+
}
|
|
65
|
+
if (depth >= StereotypeReexportResolver.MAX_DEPTH) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
const resolved = this.resolveFile({ fromFile, specifier });
|
|
69
|
+
const visit = `${resolved}#${name}`;
|
|
70
|
+
if (!resolved || seen.has(visit)) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
seen.add(visit);
|
|
74
|
+
const source = this.parse({ file: resolved });
|
|
75
|
+
const next = (target) => this.follow({ fromFile: resolved, ...target, depth: depth + 1, seen });
|
|
76
|
+
const importedBy = new Map();
|
|
77
|
+
for (const statement of source.statements) {
|
|
78
|
+
if (!ts.isImportDeclaration(statement) || !ts.isStringLiteral(statement.moduleSpecifier)) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const bindings = statement.importClause?.namedBindings;
|
|
82
|
+
if (!bindings || !ts.isNamedImports(bindings)) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
for (const element of bindings.elements) {
|
|
86
|
+
importedBy.set(element.name.text, {
|
|
87
|
+
specifier: statement.moduleSpecifier.text,
|
|
88
|
+
name: (element.propertyName ?? element.name).text,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
for (const statement of source.statements) {
|
|
93
|
+
if (!ts.isExportDeclaration(statement) || statement.isTypeOnly) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const fromSpecifier = statement.moduleSpecifier && ts.isStringLiteral(statement.moduleSpecifier)
|
|
97
|
+
? statement.moduleSpecifier.text
|
|
98
|
+
: undefined;
|
|
99
|
+
if (!statement.exportClause) {
|
|
100
|
+
const origin = fromSpecifier ? next({ specifier: fromSpecifier, name }) : undefined;
|
|
101
|
+
if (origin) {
|
|
102
|
+
return origin;
|
|
103
|
+
}
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (!ts.isNamedExports(statement.exportClause)) {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
for (const element of statement.exportClause.elements) {
|
|
110
|
+
if (element.name.text !== name) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const original = (element.propertyName ?? element.name).text;
|
|
114
|
+
if (fromSpecifier) {
|
|
115
|
+
return next({ specifier: fromSpecifier, name: original });
|
|
116
|
+
}
|
|
117
|
+
const imported = importedBy.get(original);
|
|
118
|
+
return imported ? next(imported) : undefined;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=reexport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reexport.js","sourceRoot":"","sources":["../../../src/generator/reexport.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,10 @@ export declare class ArtifactScanner extends BaseHelper {
|
|
|
14
14
|
/** `kept` feeds the index; `hidden` is what only a user pattern excluded (a default pattern wins, so tests and generated files are never reported). */
|
|
15
15
|
private partitionSourceFiles;
|
|
16
16
|
private scanFile;
|
|
17
|
-
/** local identifier -> stereotype name, for named imports from an IGNIS module (aliases resolved). */
|
|
17
|
+
/** local identifier -> stereotype name, for named imports from an IGNIS module or a caller-named source module (aliases resolved). */
|
|
18
18
|
private collectStereotypeImports;
|
|
19
|
+
/** The identifiers called as decorators on the file's top-level classes (`@service()`, `@kit.service()` is not followed). */
|
|
20
|
+
private collectClassDecoratorNames;
|
|
19
21
|
private collectExportClauseNames;
|
|
20
22
|
private artifactTypesOf;
|
|
21
23
|
private typeOfInjectableCall;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/generator/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,wBAAwB,CAAC;AAI9D,OAAO,
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/generator/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EAEtB,MAAM,UAAU,CAAC;AAGlB,yGAAyG;AACzG,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAkB;IAE1C,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,eAAe;IAIrC,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,EAAE;IAI5C,+JAA+J;IAC/J,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW;IA8B/C,oIAAoI;IACpI,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,aAAa;IAMrB,uJAAuJ;IACvJ,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,QAAQ;IAgFhB,sIAAsI;IACtI,OAAO,CAAC,wBAAwB;IAkDhC,6HAA6H;IAC7H,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,eAAe;IA0CvB,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,cAAc;CAMvB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { BaseHelper, getError } from '@venizia/ignis-helpers';
|
|
2
|
-
import { readFileSync } from 'node:fs';
|
|
3
|
-
import { join, resolve } from 'node:path';
|
|
2
|
+
import { globSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { join, matchesGlob, resolve } from 'node:path';
|
|
4
4
|
import ts from 'typescript';
|
|
5
|
-
import { ArtifactStereotypes, ArtifactTypes, } from './common/index.js';
|
|
5
|
+
import { ArtifactStereotypes, ArtifactTypes, ScanSkipReasons, } from './common/index.js';
|
|
6
|
+
import { StereotypeReexportResolver } from './reexport.js';
|
|
6
7
|
/** Finds exported classes carrying a stereotype decorator by reading the source, never by running it. */
|
|
7
8
|
export class ArtifactScanner extends BaseHelper {
|
|
8
9
|
constructor() {
|
|
@@ -17,18 +18,31 @@ export class ArtifactScanner extends BaseHelper {
|
|
|
17
18
|
/** `scan` plus the decorated classes a caller's own `ignore` pattern hid - the generator prints them so a stale pattern cannot drop an artifact in silence. */
|
|
18
19
|
scanWithReport(opts) {
|
|
19
20
|
const root = resolve(opts.root);
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
const { kept, hidden } = this.partitionSourceFiles({
|
|
22
|
+
root,
|
|
23
|
+
defaultGlobs: ArtifactStereotypes.DEFAULT_IGNORE,
|
|
24
|
+
userGlobs: opts.ignore ?? [],
|
|
25
|
+
});
|
|
26
|
+
const sourceModules = new Set(opts.sourceModules);
|
|
27
|
+
const resolver = opts.followReexports
|
|
28
|
+
? new StereotypeReexportResolver({ root, sourceModules })
|
|
29
|
+
: undefined;
|
|
30
|
+
const skipped = [];
|
|
31
|
+
const artifacts = this.sortArtifacts(kept.flatMap(filePath => this.scanFile({ filePath, sourceModules, resolver, skipped })));
|
|
32
|
+
const ignored = this.sortArtifacts(hidden.flatMap(filePath => this.scanHiddenFile({ filePath, sourceModules, resolver })));
|
|
33
|
+
for (const artifact of ignored) {
|
|
34
|
+
skipped.push({
|
|
35
|
+
className: artifact.className,
|
|
36
|
+
filePath: artifact.filePath,
|
|
37
|
+
reason: ScanSkipReasons.IGNORED,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return { artifacts, ignored, skipped };
|
|
27
41
|
}
|
|
28
42
|
/** A hidden file is only reported on, never a reason to fail: a scan error becomes one warning and the file contributes nothing. */
|
|
29
43
|
scanHiddenFile(opts) {
|
|
30
44
|
try {
|
|
31
|
-
return this.scanFile({
|
|
45
|
+
return this.scanFile({ ...opts, isHidden: true });
|
|
32
46
|
}
|
|
33
47
|
catch (error) {
|
|
34
48
|
const reason = error instanceof Error ? error.message : String(error);
|
|
@@ -43,20 +57,25 @@ export class ArtifactScanner extends BaseHelper {
|
|
|
43
57
|
partitionSourceFiles(opts) {
|
|
44
58
|
const kept = [];
|
|
45
59
|
const hidden = [];
|
|
46
|
-
const
|
|
47
|
-
for (const relative of
|
|
48
|
-
if (relative.endsWith('.d.ts') ||
|
|
60
|
+
const sources = globSync(ArtifactStereotypes.SOURCE_GLOB, { cwd: opts.root });
|
|
61
|
+
for (const relative of sources) {
|
|
62
|
+
if (relative.endsWith('.d.ts') ||
|
|
63
|
+
opts.defaultGlobs.some(pattern => matchesGlob(relative, pattern))) {
|
|
49
64
|
continue;
|
|
50
65
|
}
|
|
51
|
-
const target = opts.userGlobs.some(
|
|
66
|
+
const target = opts.userGlobs.some(pattern => matchesGlob(relative, pattern)) ? hidden : kept;
|
|
52
67
|
target.push(join(opts.root, relative));
|
|
53
68
|
}
|
|
54
69
|
return { kept: kept.sort(), hidden: hidden.sort() };
|
|
55
70
|
}
|
|
56
71
|
scanFile(opts) {
|
|
57
|
-
const { filePath, isHidden = false } = opts;
|
|
72
|
+
const { filePath, sourceModules, resolver, skipped, isHidden = false } = opts;
|
|
58
73
|
const source = ts.createSourceFile(filePath, readFileSync(filePath, 'utf8'), ts.ScriptTarget.Latest, true);
|
|
59
|
-
const stereotypeByLocalName = this.collectStereotypeImports({
|
|
74
|
+
const stereotypeByLocalName = this.collectStereotypeImports({
|
|
75
|
+
source,
|
|
76
|
+
sourceModules,
|
|
77
|
+
resolver,
|
|
78
|
+
});
|
|
60
79
|
if (stereotypeByLocalName.size === 0) {
|
|
61
80
|
return [];
|
|
62
81
|
}
|
|
@@ -88,6 +107,11 @@ export class ArtifactScanner extends BaseHelper {
|
|
|
88
107
|
const isAbstract = has(ts.SyntaxKind.AbstractKeyword);
|
|
89
108
|
if (!isNamedExport || isAbstract) {
|
|
90
109
|
if (!isHidden) {
|
|
110
|
+
skipped?.push({
|
|
111
|
+
className,
|
|
112
|
+
filePath,
|
|
113
|
+
reason: isAbstract ? ScanSkipReasons.ABSTRACT : ScanSkipReasons.NOT_EXPORTED,
|
|
114
|
+
});
|
|
91
115
|
this.logger
|
|
92
116
|
.for('scanFile')
|
|
93
117
|
.warn('Skipped %s in %s | %s', className, filePath, isAbstract ? 'abstract' : 'not a named export');
|
|
@@ -98,14 +122,20 @@ export class ArtifactScanner extends BaseHelper {
|
|
|
98
122
|
});
|
|
99
123
|
return found;
|
|
100
124
|
}
|
|
101
|
-
/** local identifier -> stereotype name, for named imports from an IGNIS module (aliases resolved). */
|
|
125
|
+
/** local identifier -> stereotype name, for named imports from an IGNIS module or a caller-named source module (aliases resolved). */
|
|
102
126
|
collectStereotypeImports(opts) {
|
|
103
127
|
const result = new Map();
|
|
128
|
+
// Only a name a class actually wears as a decorator is worth following through re-exports.
|
|
129
|
+
const decoratorNames = opts.resolver
|
|
130
|
+
? this.collectClassDecoratorNames({ source: opts.source })
|
|
131
|
+
: new Set();
|
|
104
132
|
for (const statement of opts.source.statements) {
|
|
105
133
|
if (!ts.isImportDeclaration(statement) || !ts.isStringLiteral(statement.moduleSpecifier)) {
|
|
106
134
|
continue;
|
|
107
135
|
}
|
|
108
|
-
|
|
136
|
+
const specifier = statement.moduleSpecifier.text;
|
|
137
|
+
const isSourceModule = ArtifactStereotypes.SOURCE_MODULES.test(specifier) || opts.sourceModules.has(specifier);
|
|
138
|
+
if (!isSourceModule && !opts.resolver) {
|
|
109
139
|
continue;
|
|
110
140
|
}
|
|
111
141
|
const bindings = statement.importClause?.namedBindings;
|
|
@@ -113,7 +143,16 @@ export class ArtifactScanner extends BaseHelper {
|
|
|
113
143
|
continue;
|
|
114
144
|
}
|
|
115
145
|
for (const element of bindings.elements) {
|
|
116
|
-
const
|
|
146
|
+
const name = (element.propertyName ?? element.name).text;
|
|
147
|
+
if (!isSourceModule && !decoratorNames.has(element.name.text)) {
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
const imported = isSourceModule
|
|
151
|
+
? name
|
|
152
|
+
: opts.resolver?.originOf({ fromFile: opts.source.fileName, specifier, name });
|
|
153
|
+
if (!imported) {
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
117
156
|
const isStereotype = imported in ArtifactStereotypes.BY_DECORATOR ||
|
|
118
157
|
imported === ArtifactStereotypes.ROOT_DECORATOR;
|
|
119
158
|
if (isStereotype) {
|
|
@@ -123,6 +162,22 @@ export class ArtifactScanner extends BaseHelper {
|
|
|
123
162
|
}
|
|
124
163
|
return result;
|
|
125
164
|
}
|
|
165
|
+
/** The identifiers called as decorators on the file's top-level classes (`@service()`, `@kit.service()` is not followed). */
|
|
166
|
+
collectClassDecoratorNames(opts) {
|
|
167
|
+
const names = new Set();
|
|
168
|
+
for (const statement of opts.source.statements) {
|
|
169
|
+
if (!ts.isClassDeclaration(statement)) {
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
for (const decorator of ts.getDecorators(statement) ?? []) {
|
|
173
|
+
const expression = decorator.expression;
|
|
174
|
+
if (ts.isCallExpression(expression) && ts.isIdentifier(expression.expression)) {
|
|
175
|
+
names.add(expression.expression.text);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return names;
|
|
180
|
+
}
|
|
126
181
|
collectExportClauseNames(opts) {
|
|
127
182
|
const names = new Set();
|
|
128
183
|
for (const statement of opts.source.statements) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/generator/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/generator/scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vite/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/vite/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** The slice of Vite's plugin contract this plugin uses - typed here so `@venizia/ignis-boot` does not depend on `vite`. */
|
|
2
|
+
export interface IIgnisVitePlugin {
|
|
3
|
+
name: string;
|
|
4
|
+
enforce: 'pre';
|
|
5
|
+
config: () => {
|
|
6
|
+
optimizeDeps: {
|
|
7
|
+
exclude: string[];
|
|
8
|
+
};
|
|
9
|
+
build: {
|
|
10
|
+
rolldownOptions: {
|
|
11
|
+
output: {
|
|
12
|
+
keepNames: boolean;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
configResolved: (config: {
|
|
18
|
+
root: string;
|
|
19
|
+
}) => void;
|
|
20
|
+
resolveId: (id: string) => string | undefined;
|
|
21
|
+
load: (id: string) => string | undefined;
|
|
22
|
+
transform: (code: string, id: string) => string | undefined;
|
|
23
|
+
watchChange: (id: string) => void;
|
|
24
|
+
}
|
|
25
|
+
/** `IgnisArtifactsPlugin` for Vite: serves `ignis:artifacts`, replaces `@venizia/ignis-boot/auto` with an eager import of it (a browser bundle is tree-shaken only when eager), and inlines every `ArtifactGroup.define` / `application` call. Names are kept in the build, because binding keys are built from `Class.name` and a minifier renames classes. */
|
|
26
|
+
export declare class IgnisArtifactsVitePlugin {
|
|
27
|
+
static readonly RESOLVED_VIRTUAL: string;
|
|
28
|
+
/** `root`: the `src` to scan (default: the one beside the `package.json` of Vite's root). */
|
|
29
|
+
static create(opts?: {
|
|
30
|
+
root?: string;
|
|
31
|
+
}): IIgnisVitePlugin;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugin.ts"],"names":[],"mappings":"AAKA,4HAA4H;AAC5H,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM;QACZ,YAAY,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;QACpC,KAAK,EAAE;YAAE,eAAe,EAAE;gBAAE,MAAM,EAAE;oBAAE,SAAS,EAAE,OAAO,CAAA;iBAAE,CAAA;aAAE,CAAA;SAAE,CAAC;KAChE,CAAC;IACF,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9C,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC5D,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,gWAAgW;AAChW,qBAAa,wBAAwB;IACnC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,SAAuC;IAMvE,6FAA6F;IAC7F,MAAM,CAAC,MAAM,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,gBAAgB;CAqC9D"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
import { ArtifactScanner } from '../generator/index.js';
|
|
3
|
+
import { IgnisArtifactsPlugin } from '../bun/plugin.js';
|
|
4
|
+
import { ArtifactSources } from '../bun/sources.js';
|
|
5
|
+
/** `IgnisArtifactsPlugin` for Vite: serves `ignis:artifacts`, replaces `@venizia/ignis-boot/auto` with an eager import of it (a browser bundle is tree-shaken only when eager), and inlines every `ArtifactGroup.define` / `application` call. Names are kept in the build, because binding keys are built from `Class.name` and a minifier renames classes. */
|
|
6
|
+
export class IgnisArtifactsVitePlugin {
|
|
7
|
+
static { this.RESOLVED_VIRTUAL = `\0${IgnisArtifactsPlugin.VIRTUAL}`; }
|
|
8
|
+
static {
|
|
9
|
+
ArtifactSources.useScanner({ scanner: ArtifactScanner.getInstance() });
|
|
10
|
+
}
|
|
11
|
+
/** `root`: the `src` to scan (default: the one beside the `package.json` of Vite's root). */
|
|
12
|
+
static create(opts = {}) {
|
|
13
|
+
let root = opts.root ? resolve(opts.root) : '';
|
|
14
|
+
let groupFiles = new Set();
|
|
15
|
+
const autoModule = `import { ${IgnisArtifactsPlugin.EXPORT_NAME} } from '${IgnisArtifactsPlugin.VIRTUAL}';\nimport { AutoArtifactGroup } from './auto-group';\nexport default new AutoArtifactGroup({ content: ${IgnisArtifactsPlugin.EXPORT_NAME} });\n`;
|
|
16
|
+
return {
|
|
17
|
+
name: IgnisArtifactsPlugin.NAME,
|
|
18
|
+
enforce: 'pre',
|
|
19
|
+
// Pre-bundling would hide `auto` inside a dependency chunk, out of reach of `load`.
|
|
20
|
+
config: () => ({
|
|
21
|
+
optimizeDeps: { exclude: ['@venizia/ignis-boot'] },
|
|
22
|
+
build: { rolldownOptions: { output: { keepNames: true } } },
|
|
23
|
+
}),
|
|
24
|
+
configResolved: config => {
|
|
25
|
+
root ||= ArtifactSources.packageSource({ from: config.root });
|
|
26
|
+
groupFiles = new Set(IgnisArtifactsPlugin.groupDefinitionFiles({ root }));
|
|
27
|
+
},
|
|
28
|
+
resolveId: id => id === IgnisArtifactsPlugin.VIRTUAL ? IgnisArtifactsVitePlugin.RESOLVED_VIRTUAL : undefined,
|
|
29
|
+
load: id => {
|
|
30
|
+
if (id === IgnisArtifactsVitePlugin.RESOLVED_VIRTUAL) {
|
|
31
|
+
return IgnisArtifactsPlugin.render({ root });
|
|
32
|
+
}
|
|
33
|
+
return IgnisArtifactsPlugin.AUTO_MODULE.test(id) ? autoModule : undefined;
|
|
34
|
+
},
|
|
35
|
+
transform: (code, id) => groupFiles.has(id)
|
|
36
|
+
? IgnisArtifactsPlugin.rewriteGroups({ filePath: id, source: code })
|
|
37
|
+
: undefined,
|
|
38
|
+
// A file added, removed or edited under the root can change the index: rescan on the next load.
|
|
39
|
+
watchChange: id => {
|
|
40
|
+
if (id.startsWith(root)) {
|
|
41
|
+
ArtifactSources.clear();
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiBjD,gWAAgW;AAChW,MAAM,OAAO,wBAAwB;aACnB,qBAAgB,GAAG,KAAK,oBAAoB,CAAC,OAAO,EAAE,CAAC;IAEvE;QACE,eAAe,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,6FAA6F;IAC7F,MAAM,CAAC,MAAM,CAAC,OAA0B,EAAE;QACxC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,IAAI,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,MAAM,UAAU,GAAG,YAAY,oBAAoB,CAAC,WAAW,YAAY,oBAAoB,CAAC,OAAO,0GAA0G,oBAAoB,CAAC,WAAW,QAAQ,CAAC;QAE1P,OAAO;YACL,IAAI,EAAE,oBAAoB,CAAC,IAAI;YAC/B,OAAO,EAAE,KAAK;YACd,oFAAoF;YACpF,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACb,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAE;gBAClD,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;aAC5D,CAAC;YACF,cAAc,EAAE,MAAM,CAAC,EAAE;gBACvB,IAAI,KAAK,eAAe,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9D,UAAU,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;YACD,SAAS,EAAE,EAAE,CAAC,EAAE,CACd,EAAE,KAAK,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;YAC7F,IAAI,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,KAAK,wBAAwB,CAAC,gBAAgB,EAAE,CAAC;oBACrD,OAAO,oBAAoB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,OAAO,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,CAAC;YACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CACtB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChB,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACpE,CAAC,CAAC,SAAS;YACf,gGAAgG;YAChG,WAAW,EAAE,EAAE,CAAC,EAAE;gBAChB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-boot",
|
|
3
|
-
"version": "0.2.1-
|
|
3
|
+
"version": "0.2.1-10",
|
|
4
4
|
"description": "Build-time artifact index generator for IGNIS applications: scans decorated classes with the TypeScript AST and emits one static registration file per package, so bun build --compile sees plain imports.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"artifact-index",
|
|
@@ -49,6 +49,24 @@
|
|
|
49
49
|
"require": "./dist/cjs/generator/index.js",
|
|
50
50
|
"default": "./dist/cjs/generator/index.js"
|
|
51
51
|
},
|
|
52
|
+
"./bun": {
|
|
53
|
+
"types": "./dist/cjs/bun/index.d.ts",
|
|
54
|
+
"import": "./dist/esm/bun/index.js",
|
|
55
|
+
"require": "./dist/cjs/bun/index.js",
|
|
56
|
+
"default": "./dist/cjs/bun/index.js"
|
|
57
|
+
},
|
|
58
|
+
"./auto": {
|
|
59
|
+
"types": "./dist/cjs/bun/auto.d.ts",
|
|
60
|
+
"import": "./dist/esm/bun/auto.js",
|
|
61
|
+
"require": "./dist/cjs/bun/auto.js",
|
|
62
|
+
"default": "./dist/cjs/bun/auto.js"
|
|
63
|
+
},
|
|
64
|
+
"./vite": {
|
|
65
|
+
"types": "./dist/cjs/vite/index.d.ts",
|
|
66
|
+
"import": "./dist/esm/vite/index.js",
|
|
67
|
+
"require": "./dist/cjs/vite/index.js",
|
|
68
|
+
"default": "./dist/cjs/vite/index.js"
|
|
69
|
+
},
|
|
52
70
|
"./build-info": {
|
|
53
71
|
"types": "./dist/cjs/build-info/index.d.ts",
|
|
54
72
|
"import": "./dist/esm/build-info/index.js",
|
|
@@ -68,7 +86,10 @@
|
|
|
68
86
|
"publishConfig": {
|
|
69
87
|
"access": "public"
|
|
70
88
|
},
|
|
71
|
-
"sideEffects":
|
|
89
|
+
"sideEffects": [
|
|
90
|
+
"./dist/cjs/bun/auto.js",
|
|
91
|
+
"./dist/esm/bun/auto.js"
|
|
92
|
+
],
|
|
72
93
|
"scripts": {
|
|
73
94
|
"force-update": "sh ./scripts/force-update.sh",
|
|
74
95
|
"prepublishOnly": "make rebuild",
|
|
@@ -76,11 +97,12 @@
|
|
|
76
97
|
"test:watch": "NODE_ENV=test bun test --watch --env-file=.env.test"
|
|
77
98
|
},
|
|
78
99
|
"dependencies": {
|
|
79
|
-
"@venizia/ignis-helpers": "
|
|
100
|
+
"@venizia/ignis-helpers": "0.2.2-9",
|
|
101
|
+
"@venizia/ignis-inversion": "0.2.2-6"
|
|
80
102
|
},
|
|
81
103
|
"devDependencies": {
|
|
82
104
|
"@types/bun": "^1.4.1",
|
|
83
|
-
"@venizia/dev-configs": "
|
|
105
|
+
"@venizia/dev-configs": "0.3.1-4",
|
|
84
106
|
"eslint": "^10.10.0",
|
|
85
107
|
"oxfmt": "0.73.0",
|
|
86
108
|
"oxlint": "1.88.0",
|