@nocobase/app-plugin-foundation 0.1.0-beta.0 → 0.1.0-beta.1
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 +14 -0
- package/README.md +13 -3
- package/dist/client/api.d.ts +2 -0
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/api.js +9 -3
- package/dist/client/api.js.map +1 -1
- package/dist/client/business-modules.d.ts.map +1 -1
- package/dist/client/business-modules.js +6 -0
- package/dist/client/business-modules.js.map +1 -1
- package/dist/client/components/collections-browser.d.ts +7 -0
- package/dist/client/components/collections-browser.d.ts.map +1 -0
- package/dist/client/components/collections-browser.js +63 -0
- package/dist/client/components/collections-browser.js.map +1 -0
- package/dist/client/components/foundation-page.d.ts +2 -1
- package/dist/client/components/foundation-page.d.ts.map +1 -1
- package/dist/client/components/foundation-page.js +17 -7
- package/dist/client/components/foundation-page.js.map +1 -1
- package/dist/client/components/module-matrix.d.ts.map +1 -1
- package/dist/client/components/module-matrix.js +10 -7
- package/dist/client/components/module-matrix.js.map +1 -1
- package/dist/client/components/ui/dialog.d.ts +18 -0
- package/dist/client/components/ui/dialog.d.ts.map +1 -0
- package/dist/client/components/ui/dialog.js +37 -0
- package/dist/client/components/ui/dialog.js.map +1 -0
- package/dist/client/components/ui/input.d.ts +4 -0
- package/dist/client/components/ui/input.d.ts.map +1 -0
- package/dist/client/components/ui/input.js +8 -0
- package/dist/client/components/ui/input.js.map +1 -0
- package/dist/client/components/ui/tooltip.d.ts +8 -0
- package/dist/client/components/ui/tooltip.d.ts.map +1 -0
- package/dist/client/components/ui/tooltip.js +17 -0
- package/dist/client/components/ui/tooltip.js.map +1 -0
- package/dist/client/locales/de-DE.d.ts.map +1 -1
- package/dist/client/locales/de-DE.js +21 -2
- package/dist/client/locales/de-DE.js.map +1 -1
- package/dist/client/locales/en-US.d.ts +19 -0
- package/dist/client/locales/en-US.d.ts.map +1 -1
- package/dist/client/locales/en-US.js +21 -2
- package/dist/client/locales/en-US.js.map +1 -1
- package/dist/client/locales/es-ES.d.ts.map +1 -1
- package/dist/client/locales/es-ES.js +21 -2
- package/dist/client/locales/es-ES.js.map +1 -1
- package/dist/client/locales/fr-FR.d.ts.map +1 -1
- package/dist/client/locales/fr-FR.js +21 -2
- package/dist/client/locales/fr-FR.js.map +1 -1
- package/dist/client/locales/id-ID.d.ts.map +1 -1
- package/dist/client/locales/id-ID.js +21 -2
- package/dist/client/locales/id-ID.js.map +1 -1
- package/dist/client/locales/ja-JP.d.ts.map +1 -1
- package/dist/client/locales/ja-JP.js +21 -2
- package/dist/client/locales/ja-JP.js.map +1 -1
- package/dist/client/locales/pt-BR.d.ts.map +1 -1
- package/dist/client/locales/pt-BR.js +21 -2
- package/dist/client/locales/pt-BR.js.map +1 -1
- package/dist/client/locales/vi-VN.d.ts.map +1 -1
- package/dist/client/locales/vi-VN.js +21 -2
- package/dist/client/locales/vi-VN.js.map +1 -1
- package/dist/client/locales/zh-CN.d.ts.map +1 -1
- package/dist/client/locales/zh-CN.js +21 -2
- package/dist/client/locales/zh-CN.js.map +1 -1
- package/dist/client/locales/zh-TW.d.ts.map +1 -1
- package/dist/client/locales/zh-TW.js +21 -2
- package/dist/client/locales/zh-TW.js.map +1 -1
- package/dist/server/api-evidence.d.ts +13 -0
- package/dist/server/api-evidence.d.ts.map +1 -0
- package/dist/server/api-evidence.js +178 -0
- package/dist/server/api-evidence.js.map +1 -0
- package/dist/server/capabilities/data.d.ts +3 -1
- package/dist/server/capabilities/data.d.ts.map +1 -1
- package/dist/server/capabilities/data.js +47 -12
- package/dist/server/capabilities/data.js.map +1 -1
- package/dist/server/capabilities/intelligence.d.ts.map +1 -1
- package/dist/server/capabilities/intelligence.js +26 -18
- package/dist/server/capabilities/intelligence.js.map +1 -1
- package/dist/server/capabilities/types.d.ts +4 -1
- package/dist/server/capabilities/types.d.ts.map +1 -1
- package/dist/server/capabilities/types.js.map +1 -1
- package/dist/server/inventory.d.ts +9 -3
- package/dist/server/inventory.d.ts.map +1 -1
- package/dist/server/inventory.js +40 -14
- package/dist/server/inventory.js.map +1 -1
- package/dist/server/module-manifest.d.ts.map +1 -1
- package/dist/server/module-manifest.js +1 -0
- package/dist/server/module-manifest.js.map +1 -1
- package/dist/server/module-sources.d.ts.map +1 -1
- package/dist/server/module-sources.js +94 -147
- package/dist/server/module-sources.js.map +1 -1
- package/dist/server/read-queue.d.ts +10 -0
- package/dist/server/read-queue.d.ts.map +1 -0
- package/dist/server/read-queue.js +50 -0
- package/dist/server/read-queue.js.map +1 -0
- package/dist/server/request-evidence.d.ts +14 -0
- package/dist/server/request-evidence.d.ts.map +1 -0
- package/dist/server/request-evidence.js +141 -0
- package/dist/server/request-evidence.js.map +1 -0
- package/dist/server/routes/index.d.ts.map +1 -1
- package/dist/server/routes/index.js +28 -5
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/schemas.d.ts +7 -1
- package/dist/server/routes/schemas.d.ts.map +1 -1
- package/dist/server/routes/schemas.js +22 -0
- package/dist/server/routes/schemas.js.map +1 -1
- package/dist/server/services/foundation.d.ts +8 -1
- package/dist/server/services/foundation.d.ts.map +1 -1
- package/dist/server/services/foundation.js +98 -8
- package/dist/server/services/foundation.js.map +1 -1
- package/dist/server/source-evidence.d.ts +7 -0
- package/dist/server/source-evidence.d.ts.map +1 -1
- package/dist/server/source-evidence.js +103 -1
- package/dist/server/source-evidence.js.map +1 -1
- package/dist/server/static-values.d.ts +16 -0
- package/dist/server/static-values.d.ts.map +1 -0
- package/dist/server/static-values.js +181 -0
- package/dist/server/static-values.js.map +1 -0
- package/dist/server/tokens.d.ts +7 -1
- package/dist/server/tokens.d.ts.map +1 -1
- package/dist/server/tokens.js.map +1 -1
- package/dist/shared/foundation.d.ts +13 -0
- package/dist/shared/foundation.d.ts.map +1 -1
- package/dist/shared/foundation.js.map +1 -1
- package/package.json +4 -4
- package/skills/nocobase-app-plugin-foundation/SKILL.md +13 -3
|
@@ -2,6 +2,8 @@ import { databaseManagerToken } from '@nocobase/db';
|
|
|
2
2
|
import { availableCapabilities } from '../../shared/available-capabilities.js';
|
|
3
3
|
import { CAPABILITY_COLLECTORS, } from '../capabilities/index.js';
|
|
4
4
|
import { Inventory, Probe } from '../inventory.js';
|
|
5
|
+
import { ReadQueue } from '../read-queue.js';
|
|
6
|
+
import { applicationCollections, dataModelingSummary, } from '../capabilities/data.js';
|
|
5
7
|
import { InstalledPackages } from '../packages.js';
|
|
6
8
|
import { collectModuleSources } from '../module-sources.js';
|
|
7
9
|
import { collectProviderInventory, } from '../provider-inventory.js';
|
|
@@ -13,6 +15,9 @@ export class DefaultFoundationService {
|
|
|
13
15
|
options;
|
|
14
16
|
cached;
|
|
15
17
|
pending;
|
|
18
|
+
reads = new ReadQueue();
|
|
19
|
+
recordCount;
|
|
20
|
+
applicationCollections;
|
|
16
21
|
packages;
|
|
17
22
|
cacheTtlMs;
|
|
18
23
|
collectorTimeoutMs;
|
|
@@ -28,16 +33,26 @@ export class DefaultFoundationService {
|
|
|
28
33
|
}
|
|
29
34
|
async overview(options = {}) {
|
|
30
35
|
if (!options.refresh &&
|
|
36
|
+
!options.countRecords &&
|
|
31
37
|
this.cached &&
|
|
32
38
|
this.now() - this.cached.at < this.cacheTtlMs)
|
|
33
39
|
return this.cached.overview;
|
|
34
40
|
// Concurrent requests share one collection rather than each scanning every table.
|
|
35
|
-
this.pending
|
|
41
|
+
if (this.pending) {
|
|
42
|
+
const pending = this.pending;
|
|
43
|
+
const result = await pending.result;
|
|
44
|
+
return options.countRecords && !pending.counts
|
|
45
|
+
? this.overview(options)
|
|
46
|
+
: result;
|
|
47
|
+
}
|
|
48
|
+
const counts = options.countRecords === true;
|
|
49
|
+
const result = this.collect(counts).finally(() => {
|
|
36
50
|
this.pending = undefined;
|
|
37
51
|
});
|
|
38
|
-
|
|
52
|
+
this.pending = { counts, result };
|
|
53
|
+
return result;
|
|
39
54
|
}
|
|
40
|
-
async collect() {
|
|
55
|
+
async collect(countRecords) {
|
|
41
56
|
const started = this.now();
|
|
42
57
|
const { container } = this.options;
|
|
43
58
|
const database = container.has(databaseManagerToken)
|
|
@@ -46,14 +61,22 @@ export class DefaultFoundationService {
|
|
|
46
61
|
let inventory;
|
|
47
62
|
let databaseUnreadable = false;
|
|
48
63
|
if (database) {
|
|
64
|
+
const abort = new AbortController();
|
|
65
|
+
const timer = setTimeout(() => abort.abort(), this.collectorTimeoutMs);
|
|
49
66
|
try {
|
|
50
|
-
inventory = await Inventory.read(database);
|
|
67
|
+
inventory = await Inventory.read(database, this.reads, abort.signal);
|
|
51
68
|
}
|
|
52
69
|
catch {
|
|
53
70
|
databaseUnreadable = true;
|
|
54
71
|
}
|
|
72
|
+
finally {
|
|
73
|
+
clearTimeout(timer);
|
|
74
|
+
}
|
|
55
75
|
}
|
|
56
76
|
const applicationName = await this.packages.applicationName();
|
|
77
|
+
let ownedCollections = inventory
|
|
78
|
+
? applicationCollections(new Probe(inventory))
|
|
79
|
+
: undefined;
|
|
57
80
|
const capabilities = await mapWithConcurrency(this.collectors, CONCURRENCY, (collector) => databaseUnreadable && !DATABASE_FREE.has(collector.key)
|
|
58
81
|
? Promise.resolve(failed(collector, [
|
|
59
82
|
{ code: 'SOURCE_UNREADABLE', source: 'database' },
|
|
@@ -64,6 +87,7 @@ export class DefaultFoundationService {
|
|
|
64
87
|
config: this.options.config,
|
|
65
88
|
applicationName,
|
|
66
89
|
hasClient: this.options.hasClient,
|
|
90
|
+
countRecords,
|
|
67
91
|
}));
|
|
68
92
|
const inventoryOfProviders = await collectProviderInventory(this.options.rootDir, this.options.runtimeProviders?.(), this.options.serverRegistrationsComplete?.());
|
|
69
93
|
// An unclassified runtime extension may own Collections absent from our ownership catalog. Its rows must not be
|
|
@@ -71,6 +95,7 @@ export class DefaultFoundationService {
|
|
|
71
95
|
if (inventoryOfProviders.entries.some((entry) => entry.categories.length === 0 &&
|
|
72
96
|
entry.origin === 'unverified' &&
|
|
73
97
|
entry.registration === 'observed')) {
|
|
98
|
+
ownedCollections = undefined;
|
|
74
99
|
const index = capabilities.findIndex((entry) => entry.key === 'dataModeling');
|
|
75
100
|
const data = capabilities[index];
|
|
76
101
|
if (data && data.completeness !== 'failed')
|
|
@@ -92,6 +117,31 @@ export class DefaultFoundationService {
|
|
|
92
117
|
],
|
|
93
118
|
};
|
|
94
119
|
}
|
|
120
|
+
const signature = JSON.stringify(inventory?.collections
|
|
121
|
+
.filter((item) => item.kind === 'table')
|
|
122
|
+
.map((item) => item.name)
|
|
123
|
+
.sort());
|
|
124
|
+
const data = capabilities.find((item) => item.key === 'dataModeling');
|
|
125
|
+
const recordMetric = data?.metrics.find((item) => item.key === 'businessRecords');
|
|
126
|
+
if (this.recordCount?.signature !== signature)
|
|
127
|
+
this.recordCount = undefined;
|
|
128
|
+
if (countRecords && recordMetric?.complete && recordMetric.value !== null) {
|
|
129
|
+
this.recordCount = {
|
|
130
|
+
signature,
|
|
131
|
+
metric: recordMetric,
|
|
132
|
+
checkedAt: new Date(this.now()).toISOString(),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
else if (this.recordCount &&
|
|
136
|
+
data?.completeness !== 'failed' &&
|
|
137
|
+
!data?.facts.some((item) => item.code === 'collectionOwnershipUnknown')) {
|
|
138
|
+
const index = capabilities.findIndex((item) => item.key === 'dataModeling');
|
|
139
|
+
if (data)
|
|
140
|
+
capabilities[index] = {
|
|
141
|
+
...data,
|
|
142
|
+
metrics: data.metrics.map((item) => item.key === 'businessRecords' ? this.recordCount.metric : item),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
95
145
|
const moduleSources = await collectModuleSources(this.options.rootDir, this.options.runtimeProviders?.());
|
|
96
146
|
const finished = this.now();
|
|
97
147
|
const overview = {
|
|
@@ -100,25 +150,65 @@ export class DefaultFoundationService {
|
|
|
100
150
|
inventory: inventoryOfProviders,
|
|
101
151
|
availableCapabilities: availableCapabilities(capabilities, inventoryOfProviders),
|
|
102
152
|
checkedAt: new Date(finished).toISOString(),
|
|
153
|
+
...(this.recordCount &&
|
|
154
|
+
!data?.facts.some((item) => item.code === 'collectionOwnershipUnknown')
|
|
155
|
+
? { recordCountCheckedAt: this.recordCount.checkedAt }
|
|
156
|
+
: {}),
|
|
103
157
|
durationMs: finished - started,
|
|
104
158
|
connection: 'default',
|
|
105
159
|
};
|
|
160
|
+
this.applicationCollections = ownedCollections;
|
|
106
161
|
this.cached = { at: finished, overview };
|
|
107
162
|
return overview;
|
|
108
163
|
}
|
|
164
|
+
async collections(options) {
|
|
165
|
+
await this.overview();
|
|
166
|
+
if (!this.applicationCollections)
|
|
167
|
+
return undefined;
|
|
168
|
+
const search = options.search.trim().toLocaleLowerCase();
|
|
169
|
+
const matching = this.applicationCollections
|
|
170
|
+
.filter((item) => `${item.name}\n${item.title ?? ''}`
|
|
171
|
+
.toLocaleLowerCase()
|
|
172
|
+
.includes(search))
|
|
173
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
174
|
+
return {
|
|
175
|
+
items: matching
|
|
176
|
+
.slice(options.offset, options.offset + 50)
|
|
177
|
+
.map(({ name, title, kind }) => ({
|
|
178
|
+
name,
|
|
179
|
+
...(title ? { title } : {}),
|
|
180
|
+
kind,
|
|
181
|
+
})),
|
|
182
|
+
total: matching.length,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
109
185
|
async run(collector, context) {
|
|
110
186
|
let timer;
|
|
187
|
+
const abort = new AbortController();
|
|
188
|
+
const probe = context.probe
|
|
189
|
+
? new Probe(context.probe.inventory, abort.signal)
|
|
190
|
+
: undefined;
|
|
111
191
|
const timeout = new Promise((resolve) => {
|
|
112
|
-
timer = setTimeout(() =>
|
|
192
|
+
timer = setTimeout(() => {
|
|
193
|
+
resolve('timeout');
|
|
194
|
+
abort.abort();
|
|
195
|
+
}, this.collectorTimeoutMs);
|
|
113
196
|
});
|
|
114
197
|
try {
|
|
115
198
|
const findings = await Promise.race([
|
|
116
|
-
collector.collect(context),
|
|
199
|
+
collector.collect({ ...context, probe }),
|
|
117
200
|
timeout,
|
|
118
201
|
]);
|
|
119
202
|
if (findings === 'timeout')
|
|
120
|
-
return
|
|
121
|
-
|
|
203
|
+
return collector.key === 'dataModeling' && probe
|
|
204
|
+
? {
|
|
205
|
+
...failed(collector, [{ code: 'COLLECTOR_TIMEOUT' }]),
|
|
206
|
+
...dataModelingSummary(probe),
|
|
207
|
+
packages: await this.resolvePackages(collector.packages),
|
|
208
|
+
completeness: 'partial',
|
|
209
|
+
}
|
|
210
|
+
: failed(collector, [{ code: 'COLLECTOR_TIMEOUT' }]);
|
|
211
|
+
const issues = probe?.issues ?? [];
|
|
122
212
|
return {
|
|
123
213
|
key: collector.key,
|
|
124
214
|
status: findings.status,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundation.js","sourceRoot":"","sources":["../../../server/services/foundation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"foundation.js","sourceRoot":"","sources":["../../../server/services/foundation.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,19 @@ export declare class SourceEvidence {
|
|
|
8
8
|
private readonly resolutions;
|
|
9
9
|
private readonly checker;
|
|
10
10
|
private readonly sources;
|
|
11
|
+
private readonly services;
|
|
11
12
|
constructor(sources: readonly EvidenceSource[], resolutions: ReadonlyMap<string, string>);
|
|
13
|
+
/** Only declarations reachable from the provider entry establish service registrations. */
|
|
14
|
+
registerServices(entries: readonly string[]): void;
|
|
12
15
|
collect(file: string, roots?: readonly ts.Node[]): {
|
|
13
16
|
references: Set<string>;
|
|
14
17
|
nodes: Map<string, Set<ts.Node>>;
|
|
15
18
|
complete: boolean;
|
|
16
19
|
};
|
|
17
20
|
symbol(node: ts.Node): ts.Symbol | undefined;
|
|
21
|
+
declarations(node: ts.Node): readonly ts.Declaration[];
|
|
22
|
+
/** Resolve local value aliases and re-exports without executing a module. */
|
|
23
|
+
values(node: ts.Node, seen?: Set<ts.Node>): readonly ts.Node[];
|
|
24
|
+
private serviceMethod;
|
|
18
25
|
}
|
|
19
26
|
//# sourceMappingURL=source-evidence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-evidence.d.ts","sourceRoot":"","sources":["../../server/source-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC;CAC7B;AAED,0GAA0G;AAC1G,qBAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"source-evidence.d.ts","sourceRoot":"","sources":["../../server/source-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC;CAC7B;AAED,0GAA0G;AAC1G,qBAAa,cAAc;IAOvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAN9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8C;gBAGrE,OAAO,EAAE,SAAS,cAAc,EAAE,EACjB,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAyB3D,2FAA2F;IACpF,gBAAgB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAoClD,OAAO,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,GACzB;QACD,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACjC,QAAQ,EAAE,OAAO,CAAC;KACnB;IA2IM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,SAAS;IAU5C,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC,WAAW,EAAE;IAO7D,6EAA6E;IACtE,MAAM,CACX,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,IAAI,GAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAsB,GACtC,SAAS,EAAE,CAAC,IAAI,EAAE;IAiBrB,OAAO,CAAC,aAAa;CA8CtB"}
|
|
@@ -4,6 +4,7 @@ export class SourceEvidence {
|
|
|
4
4
|
resolutions;
|
|
5
5
|
checker;
|
|
6
6
|
sources;
|
|
7
|
+
services = new Map();
|
|
7
8
|
constructor(sources, resolutions) {
|
|
8
9
|
this.resolutions = resolutions;
|
|
9
10
|
this.sources = new Map(sources.map((source) => [source.file, source]));
|
|
@@ -27,6 +28,40 @@ export class SourceEvidence {
|
|
|
27
28
|
.createProgram([...this.sources.keys()], options, host)
|
|
28
29
|
.getTypeChecker();
|
|
29
30
|
}
|
|
31
|
+
/** Only declarations reachable from the provider entry establish service registrations. */
|
|
32
|
+
registerServices(entries) {
|
|
33
|
+
const calls = new Set();
|
|
34
|
+
const visit = (node) => {
|
|
35
|
+
if (calls.has(node))
|
|
36
|
+
return;
|
|
37
|
+
calls.add(node);
|
|
38
|
+
if (ts.isCallExpression(node) &&
|
|
39
|
+
ts.isPropertyAccessExpression(node.expression) &&
|
|
40
|
+
['singleton', 'instance'].includes(node.expression.name.text)) {
|
|
41
|
+
const [token, factory] = node.arguments;
|
|
42
|
+
const declaration = token && this.declarations(token)[0];
|
|
43
|
+
if (declaration && factory)
|
|
44
|
+
this.services.set(declaration, [
|
|
45
|
+
...(this.services.get(declaration) ?? []),
|
|
46
|
+
factory,
|
|
47
|
+
]);
|
|
48
|
+
}
|
|
49
|
+
ts.forEachChild(node, visit);
|
|
50
|
+
};
|
|
51
|
+
for (const entry of entries)
|
|
52
|
+
for (const nodes of this.collect(entry).nodes.values()) {
|
|
53
|
+
for (const node of nodes) {
|
|
54
|
+
if (ts.isCallExpression(node))
|
|
55
|
+
visit(node);
|
|
56
|
+
if (ts.isClassDeclaration(node) || ts.isClassExpression(node)) {
|
|
57
|
+
for (const member of node.members)
|
|
58
|
+
if (ts.isMethodDeclaration(member) &&
|
|
59
|
+
['register', 'boot'].includes(member.name.getText()))
|
|
60
|
+
visit(member);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
30
65
|
collect(file, roots) {
|
|
31
66
|
const references = new Set();
|
|
32
67
|
const nodes = new Map();
|
|
@@ -123,6 +158,8 @@ export class SourceEvidence {
|
|
|
123
158
|
}
|
|
124
159
|
if (ts.isPropertyAccessExpression(node) &&
|
|
125
160
|
ts.isIdentifier(node.expression)) {
|
|
161
|
+
for (const root of this.serviceMethod(node.expression, node.name.text))
|
|
162
|
+
visit(root);
|
|
126
163
|
const receiver = this.checker.getSymbolAtLocation(node.expression);
|
|
127
164
|
const namespace = receiver?.declarations?.find(ts.isNamespaceImport);
|
|
128
165
|
if (namespace) {
|
|
@@ -131,7 +168,7 @@ export class SourceEvidence {
|
|
|
131
168
|
}
|
|
132
169
|
}
|
|
133
170
|
if (ts.isIdentifier(node)) {
|
|
134
|
-
const symbol = this.
|
|
171
|
+
const symbol = this.symbol(node);
|
|
135
172
|
if (symbol)
|
|
136
173
|
follow(symbol);
|
|
137
174
|
}
|
|
@@ -163,7 +200,72 @@ export class SourceEvidence {
|
|
|
163
200
|
return { references, nodes, complete };
|
|
164
201
|
}
|
|
165
202
|
symbol(node) {
|
|
203
|
+
if (node.parent &&
|
|
204
|
+
ts.isShorthandPropertyAssignment(node.parent) &&
|
|
205
|
+
node.parent.name === node)
|
|
206
|
+
return this.checker.getShorthandAssignmentValueSymbol(node.parent);
|
|
166
207
|
return this.checker.getSymbolAtLocation(node);
|
|
167
208
|
}
|
|
209
|
+
declarations(node) {
|
|
210
|
+
let symbol = this.symbol(node);
|
|
211
|
+
if (symbol && symbol.flags & ts.SymbolFlags.Alias)
|
|
212
|
+
symbol = this.checker.getAliasedSymbol(symbol);
|
|
213
|
+
return symbol?.declarations ?? [];
|
|
214
|
+
}
|
|
215
|
+
/** Resolve local value aliases and re-exports without executing a module. */
|
|
216
|
+
values(node, seen = new Set()) {
|
|
217
|
+
if (seen.has(node))
|
|
218
|
+
return [];
|
|
219
|
+
seen.add(node);
|
|
220
|
+
if (ts.isIdentifier(node))
|
|
221
|
+
return this.declarations(node).flatMap((item) => this.values(item, seen));
|
|
222
|
+
if (ts.isVariableDeclaration(node))
|
|
223
|
+
return node.initializer ? this.values(node.initializer, seen) : [];
|
|
224
|
+
if (ts.isExportAssignment(node))
|
|
225
|
+
return this.values(node.expression, seen);
|
|
226
|
+
if (ts.isParenthesizedExpression(node) ||
|
|
227
|
+
ts.isAsExpression(node) ||
|
|
228
|
+
ts.isSatisfiesExpression(node))
|
|
229
|
+
return this.values(node.expression, seen);
|
|
230
|
+
return [node];
|
|
231
|
+
}
|
|
232
|
+
serviceMethod(receiver, method) {
|
|
233
|
+
const roots = [];
|
|
234
|
+
for (const value of this.values(receiver)) {
|
|
235
|
+
if (!ts.isCallExpression(value) ||
|
|
236
|
+
!ts.isPropertyAccessExpression(value.expression) ||
|
|
237
|
+
value.expression.name.text !== 'resolve')
|
|
238
|
+
continue;
|
|
239
|
+
const token = value.arguments[0];
|
|
240
|
+
const declaration = token && this.declarations(token)[0];
|
|
241
|
+
const factories = declaration
|
|
242
|
+
? (this.services.get(declaration) ?? [])
|
|
243
|
+
: [];
|
|
244
|
+
// Competing registrations cannot establish which implementation this runtime selected.
|
|
245
|
+
if (factories.length !== 1)
|
|
246
|
+
continue;
|
|
247
|
+
for (const factory of factories) {
|
|
248
|
+
const find = (node) => {
|
|
249
|
+
if (ts.isNewExpression(node)) {
|
|
250
|
+
for (const candidate of this.values(node.expression)) {
|
|
251
|
+
if (!ts.isClassDeclaration(candidate) &&
|
|
252
|
+
!ts.isClassExpression(candidate))
|
|
253
|
+
continue;
|
|
254
|
+
roots.push(node);
|
|
255
|
+
roots.push(candidate);
|
|
256
|
+
for (const member of candidate.members)
|
|
257
|
+
if (ts.isMethodDeclaration(member) &&
|
|
258
|
+
member.name &&
|
|
259
|
+
member.name.getText() === method)
|
|
260
|
+
roots.push(member);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
ts.forEachChild(node, find);
|
|
264
|
+
};
|
|
265
|
+
this.values(factory).forEach(find);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return roots;
|
|
269
|
+
}
|
|
168
270
|
}
|
|
169
271
|
//# sourceMappingURL=source-evidence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-evidence.js","sourceRoot":"","sources":["../../server/source-evidence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"source-evidence.js","sourceRoot":"","sources":["../../server/source-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import type { SourceEvidence } from './source-evidence.js';
|
|
3
|
+
type Bindings = ReadonlyMap<ts.Declaration, readonly ts.Node[]>;
|
|
4
|
+
/** A bounded literal evaluator. Calls, getters, spreads and unknown conditions are never executed or guessed. */
|
|
5
|
+
export declare class StaticValues {
|
|
6
|
+
private readonly analysis;
|
|
7
|
+
private readonly bindings;
|
|
8
|
+
constructor(analysis: SourceEvidence, bindings?: Bindings);
|
|
9
|
+
values(node: ts.Node, seen?: Set<ts.Node>): readonly ts.Node[];
|
|
10
|
+
private hasSpread;
|
|
11
|
+
private property;
|
|
12
|
+
private atoms;
|
|
13
|
+
strings(node: ts.Node, dynamic?: boolean): string[];
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=static-values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-values.d.ts","sourceRoot":"","sources":["../../server/static-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,KAAK,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAGhE,iHAAiH;AACjH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,QAAQ,EAAE,cAAc,EACxB,QAAQ,GAAE,QAAoB;IAG1C,MAAM,CACX,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,IAAI,GAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAa,GAC7B,SAAS,EAAE,CAAC,IAAI,EAAE;IA0FrB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,QAAQ;IAmChB,OAAO,CAAC,KAAK;IA+CN,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,UAAQ,GAAG,MAAM,EAAE;CAsBzD"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
const MAX_VALUES = 32;
|
|
3
|
+
/** A bounded literal evaluator. Calls, getters, spreads and unknown conditions are never executed or guessed. */
|
|
4
|
+
export class StaticValues {
|
|
5
|
+
analysis;
|
|
6
|
+
bindings;
|
|
7
|
+
constructor(analysis, bindings = new Map()) {
|
|
8
|
+
this.analysis = analysis;
|
|
9
|
+
this.bindings = bindings;
|
|
10
|
+
}
|
|
11
|
+
values(node, seen = new Set()) {
|
|
12
|
+
if (seen.has(node) || seen.size >= MAX_VALUES)
|
|
13
|
+
return [];
|
|
14
|
+
seen = new Set(seen).add(node);
|
|
15
|
+
const next = (value) => this.values(value, seen);
|
|
16
|
+
if (ts.isIdentifier(node))
|
|
17
|
+
return this.analysis
|
|
18
|
+
.declarations(node)
|
|
19
|
+
.flatMap(next)
|
|
20
|
+
.slice(0, MAX_VALUES);
|
|
21
|
+
if (ts.isParameter(node))
|
|
22
|
+
return (this.bindings.get(node) ?? (node.initializer ? [node.initializer] : []))
|
|
23
|
+
.flatMap(next)
|
|
24
|
+
.slice(0, MAX_VALUES);
|
|
25
|
+
if (ts.isBindingElement(node)) {
|
|
26
|
+
const owner = node.parent.parent;
|
|
27
|
+
const containers = ts.isParameter(owner)
|
|
28
|
+
? this.values(owner, seen)
|
|
29
|
+
: ts.isVariableDeclaration(owner) && owner.initializer
|
|
30
|
+
? this.values(owner.initializer, seen)
|
|
31
|
+
: [];
|
|
32
|
+
if (ts.isParameter(owner) &&
|
|
33
|
+
this.bindings.has(owner) &&
|
|
34
|
+
!containers.length)
|
|
35
|
+
return [];
|
|
36
|
+
if (containers.some((value) => this.hasSpread(value)))
|
|
37
|
+
return [];
|
|
38
|
+
const name = node.propertyName ?? node.name;
|
|
39
|
+
const found = ts.isIdentifier(name) || ts.isStringLiteralLike(name)
|
|
40
|
+
? containers.flatMap((value) => this.property(value, name.text, seen))
|
|
41
|
+
: [];
|
|
42
|
+
const declared = (ts.isIdentifier(name) || ts.isStringLiteralLike(name)) &&
|
|
43
|
+
containers.some((value) => ts.isObjectLiteralExpression(value)
|
|
44
|
+
? value.properties.some((entry) => entry.name &&
|
|
45
|
+
(ts.isIdentifier(entry.name) ||
|
|
46
|
+
ts.isStringLiteralLike(entry.name)) &&
|
|
47
|
+
entry.name.text === name.text)
|
|
48
|
+
: ts.isJsxAttributes(value) &&
|
|
49
|
+
value.properties.some((entry) => ts.isJsxAttribute(entry) &&
|
|
50
|
+
entry.name.getText() === name.text));
|
|
51
|
+
return found.length || declared
|
|
52
|
+
? found
|
|
53
|
+
: node.initializer
|
|
54
|
+
? next(node.initializer)
|
|
55
|
+
: [];
|
|
56
|
+
}
|
|
57
|
+
if (ts.isVariableDeclaration(node)) {
|
|
58
|
+
if (node.initializer)
|
|
59
|
+
return next(node.initializer);
|
|
60
|
+
const loop = node.parent.parent;
|
|
61
|
+
if (ts.isForOfStatement(loop))
|
|
62
|
+
return this.values(loop.expression, seen)
|
|
63
|
+
.flatMap((value) => ts.isArrayLiteralExpression(value)
|
|
64
|
+
? value.elements.flatMap(next)
|
|
65
|
+
: [])
|
|
66
|
+
.slice(0, MAX_VALUES);
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
if (ts.isParenthesizedExpression(node) ||
|
|
70
|
+
ts.isAsExpression(node) ||
|
|
71
|
+
ts.isSatisfiesExpression(node) ||
|
|
72
|
+
ts.isNonNullExpression(node))
|
|
73
|
+
return next(node.expression);
|
|
74
|
+
if (ts.isConditionalExpression(node))
|
|
75
|
+
return this.atoms(node.condition, seen)
|
|
76
|
+
.flatMap((value) => next(value ? node.whenTrue : node.whenFalse))
|
|
77
|
+
.slice(0, MAX_VALUES);
|
|
78
|
+
if (ts.isPropertyAccessExpression(node))
|
|
79
|
+
return this.values(node.expression, seen)
|
|
80
|
+
.flatMap((value) => this.property(value, node.name.text, seen))
|
|
81
|
+
.slice(0, MAX_VALUES);
|
|
82
|
+
return [node];
|
|
83
|
+
}
|
|
84
|
+
hasSpread(node) {
|
|
85
|
+
return ts.isObjectLiteralExpression(node)
|
|
86
|
+
? node.properties.some(ts.isSpreadAssignment)
|
|
87
|
+
: ts.isJsxAttributes(node) &&
|
|
88
|
+
node.properties.some(ts.isJsxSpreadAttribute);
|
|
89
|
+
}
|
|
90
|
+
property(node, name, seen) {
|
|
91
|
+
if (this.hasSpread(node))
|
|
92
|
+
return [];
|
|
93
|
+
if (ts.isObjectLiteralExpression(node)) {
|
|
94
|
+
const entry = node.properties.find((item) => item.name &&
|
|
95
|
+
(ts.isIdentifier(item.name) || ts.isStringLiteralLike(item.name)) &&
|
|
96
|
+
item.name.text === name);
|
|
97
|
+
const value = entry && ts.isPropertyAssignment(entry)
|
|
98
|
+
? entry.initializer
|
|
99
|
+
: entry && ts.isShorthandPropertyAssignment(entry)
|
|
100
|
+
? entry.name
|
|
101
|
+
: undefined;
|
|
102
|
+
return value ? this.values(value, seen) : [];
|
|
103
|
+
}
|
|
104
|
+
if (ts.isJsxAttributes(node)) {
|
|
105
|
+
const entry = node.properties.find((item) => ts.isJsxAttribute(item) && item.name.getText() === name);
|
|
106
|
+
if (entry && ts.isJsxAttribute(entry) && entry.initializer) {
|
|
107
|
+
const value = ts.isJsxExpression(entry.initializer)
|
|
108
|
+
? entry.initializer.expression
|
|
109
|
+
: entry.initializer;
|
|
110
|
+
return value ? this.values(value, seen) : [];
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
atoms(node, seen = new Set()) {
|
|
116
|
+
return this.values(node, seen)
|
|
117
|
+
.flatMap((value) => {
|
|
118
|
+
if (ts.isStringLiteralLike(value))
|
|
119
|
+
return [value.text];
|
|
120
|
+
if (ts.isNumericLiteral(value))
|
|
121
|
+
return [Number(value.text)];
|
|
122
|
+
if (value.kind === ts.SyntaxKind.TrueKeyword)
|
|
123
|
+
return [true];
|
|
124
|
+
if (value.kind === ts.SyntaxKind.FalseKeyword)
|
|
125
|
+
return [false];
|
|
126
|
+
if (value.kind === ts.SyntaxKind.NullKeyword)
|
|
127
|
+
return [null];
|
|
128
|
+
if (ts.isPrefixUnaryExpression(value) &&
|
|
129
|
+
value.operator === ts.SyntaxKind.ExclamationToken)
|
|
130
|
+
return this.atoms(value.operand, new Set(seen).add(value)).map((item) => !item);
|
|
131
|
+
if (!ts.isBinaryExpression(value))
|
|
132
|
+
return [];
|
|
133
|
+
const next = new Set(seen).add(value);
|
|
134
|
+
return this.atoms(value.left, next)
|
|
135
|
+
.flatMap((left) => this.atoms(value.right, next).flatMap((right) => {
|
|
136
|
+
switch (value.operatorToken.kind) {
|
|
137
|
+
case ts.SyntaxKind.EqualsEqualsEqualsToken:
|
|
138
|
+
return [left === right];
|
|
139
|
+
case ts.SyntaxKind.ExclamationEqualsEqualsToken:
|
|
140
|
+
return [left !== right];
|
|
141
|
+
case ts.SyntaxKind.BarBarToken:
|
|
142
|
+
return [left || right];
|
|
143
|
+
case ts.SyntaxKind.AmpersandAmpersandToken:
|
|
144
|
+
return [left && right];
|
|
145
|
+
case ts.SyntaxKind.QuestionQuestionToken:
|
|
146
|
+
return [left ?? right];
|
|
147
|
+
case ts.SyntaxKind.PlusToken:
|
|
148
|
+
return typeof left === 'string' || typeof right === 'string'
|
|
149
|
+
? [String(left) + String(right)]
|
|
150
|
+
: typeof left === 'number' && typeof right === 'number'
|
|
151
|
+
? [left + right]
|
|
152
|
+
: [];
|
|
153
|
+
default:
|
|
154
|
+
return [];
|
|
155
|
+
}
|
|
156
|
+
}))
|
|
157
|
+
.slice(0, MAX_VALUES);
|
|
158
|
+
})
|
|
159
|
+
.slice(0, MAX_VALUES);
|
|
160
|
+
}
|
|
161
|
+
strings(node, dynamic = false) {
|
|
162
|
+
return this.values(node)
|
|
163
|
+
.flatMap((value) => {
|
|
164
|
+
if (ts.isStringLiteralLike(value))
|
|
165
|
+
return [value.text];
|
|
166
|
+
if (!ts.isTemplateExpression(value))
|
|
167
|
+
return this.atoms(value).filter((item) => typeof item === 'string');
|
|
168
|
+
let paths = [value.head.text];
|
|
169
|
+
for (const span of value.templateSpans) {
|
|
170
|
+
const known = this.atoms(span.expression).map(String);
|
|
171
|
+
const parts = known.length ? known : dynamic ? [':dynamic'] : [];
|
|
172
|
+
paths = paths
|
|
173
|
+
.flatMap((prefix) => parts.map((part) => prefix + part + span.literal.text))
|
|
174
|
+
.slice(0, MAX_VALUES);
|
|
175
|
+
}
|
|
176
|
+
return paths;
|
|
177
|
+
})
|
|
178
|
+
.slice(0, MAX_VALUES);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=static-values.js.map
|