@nocobase/app-plugin-foundation 0.1.0-beta.0 → 0.1.0-beta.2

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.
Files changed (122) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +17 -3
  3. package/dist/client/api.d.ts +2 -0
  4. package/dist/client/api.d.ts.map +1 -1
  5. package/dist/client/api.js +9 -3
  6. package/dist/client/api.js.map +1 -1
  7. package/dist/client/business-modules.d.ts.map +1 -1
  8. package/dist/client/business-modules.js +6 -0
  9. package/dist/client/business-modules.js.map +1 -1
  10. package/dist/client/components/collections-browser.d.ts +7 -0
  11. package/dist/client/components/collections-browser.d.ts.map +1 -0
  12. package/dist/client/components/collections-browser.js +63 -0
  13. package/dist/client/components/collections-browser.js.map +1 -0
  14. package/dist/client/components/foundation-page.d.ts +2 -1
  15. package/dist/client/components/foundation-page.d.ts.map +1 -1
  16. package/dist/client/components/foundation-page.js +17 -7
  17. package/dist/client/components/foundation-page.js.map +1 -1
  18. package/dist/client/components/module-matrix.d.ts.map +1 -1
  19. package/dist/client/components/module-matrix.js +10 -7
  20. package/dist/client/components/module-matrix.js.map +1 -1
  21. package/dist/client/components/ui/dialog.d.ts +18 -0
  22. package/dist/client/components/ui/dialog.d.ts.map +1 -0
  23. package/dist/client/components/ui/dialog.js +37 -0
  24. package/dist/client/components/ui/dialog.js.map +1 -0
  25. package/dist/client/components/ui/input.d.ts +4 -0
  26. package/dist/client/components/ui/input.d.ts.map +1 -0
  27. package/dist/client/components/ui/input.js +8 -0
  28. package/dist/client/components/ui/input.js.map +1 -0
  29. package/dist/client/components/ui/tooltip.d.ts +8 -0
  30. package/dist/client/components/ui/tooltip.d.ts.map +1 -0
  31. package/dist/client/components/ui/tooltip.js +17 -0
  32. package/dist/client/components/ui/tooltip.js.map +1 -0
  33. package/dist/client/locales/de-DE.d.ts.map +1 -1
  34. package/dist/client/locales/de-DE.js +21 -2
  35. package/dist/client/locales/de-DE.js.map +1 -1
  36. package/dist/client/locales/en-US.d.ts +19 -0
  37. package/dist/client/locales/en-US.d.ts.map +1 -1
  38. package/dist/client/locales/en-US.js +21 -2
  39. package/dist/client/locales/en-US.js.map +1 -1
  40. package/dist/client/locales/es-ES.d.ts.map +1 -1
  41. package/dist/client/locales/es-ES.js +21 -2
  42. package/dist/client/locales/es-ES.js.map +1 -1
  43. package/dist/client/locales/fr-FR.d.ts.map +1 -1
  44. package/dist/client/locales/fr-FR.js +21 -2
  45. package/dist/client/locales/fr-FR.js.map +1 -1
  46. package/dist/client/locales/id-ID.d.ts.map +1 -1
  47. package/dist/client/locales/id-ID.js +21 -2
  48. package/dist/client/locales/id-ID.js.map +1 -1
  49. package/dist/client/locales/ja-JP.d.ts.map +1 -1
  50. package/dist/client/locales/ja-JP.js +21 -2
  51. package/dist/client/locales/ja-JP.js.map +1 -1
  52. package/dist/client/locales/pt-BR.d.ts.map +1 -1
  53. package/dist/client/locales/pt-BR.js +21 -2
  54. package/dist/client/locales/pt-BR.js.map +1 -1
  55. package/dist/client/locales/vi-VN.d.ts.map +1 -1
  56. package/dist/client/locales/vi-VN.js +21 -2
  57. package/dist/client/locales/vi-VN.js.map +1 -1
  58. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  59. package/dist/client/locales/zh-CN.js +21 -2
  60. package/dist/client/locales/zh-CN.js.map +1 -1
  61. package/dist/client/locales/zh-TW.d.ts.map +1 -1
  62. package/dist/client/locales/zh-TW.js +21 -2
  63. package/dist/client/locales/zh-TW.js.map +1 -1
  64. package/dist/server/api-evidence.d.ts +13 -0
  65. package/dist/server/api-evidence.d.ts.map +1 -0
  66. package/dist/server/api-evidence.js +194 -0
  67. package/dist/server/api-evidence.js.map +1 -0
  68. package/dist/server/capabilities/data.d.ts +3 -1
  69. package/dist/server/capabilities/data.d.ts.map +1 -1
  70. package/dist/server/capabilities/data.js +47 -12
  71. package/dist/server/capabilities/data.js.map +1 -1
  72. package/dist/server/capabilities/intelligence.d.ts.map +1 -1
  73. package/dist/server/capabilities/intelligence.js +26 -18
  74. package/dist/server/capabilities/intelligence.js.map +1 -1
  75. package/dist/server/capabilities/types.d.ts +4 -1
  76. package/dist/server/capabilities/types.d.ts.map +1 -1
  77. package/dist/server/capabilities/types.js.map +1 -1
  78. package/dist/server/inventory.d.ts +9 -3
  79. package/dist/server/inventory.d.ts.map +1 -1
  80. package/dist/server/inventory.js +40 -14
  81. package/dist/server/inventory.js.map +1 -1
  82. package/dist/server/module-manifest.d.ts.map +1 -1
  83. package/dist/server/module-manifest.js +1 -0
  84. package/dist/server/module-manifest.js.map +1 -1
  85. package/dist/server/module-sources.d.ts.map +1 -1
  86. package/dist/server/module-sources.js +94 -147
  87. package/dist/server/module-sources.js.map +1 -1
  88. package/dist/server/read-queue.d.ts +10 -0
  89. package/dist/server/read-queue.d.ts.map +1 -0
  90. package/dist/server/read-queue.js +50 -0
  91. package/dist/server/read-queue.js.map +1 -0
  92. package/dist/server/request-evidence.d.ts +14 -0
  93. package/dist/server/request-evidence.d.ts.map +1 -0
  94. package/dist/server/request-evidence.js +179 -0
  95. package/dist/server/request-evidence.js.map +1 -0
  96. package/dist/server/routes/index.d.ts.map +1 -1
  97. package/dist/server/routes/index.js +28 -5
  98. package/dist/server/routes/index.js.map +1 -1
  99. package/dist/server/routes/schemas.d.ts +7 -1
  100. package/dist/server/routes/schemas.d.ts.map +1 -1
  101. package/dist/server/routes/schemas.js +22 -0
  102. package/dist/server/routes/schemas.js.map +1 -1
  103. package/dist/server/services/foundation.d.ts +8 -1
  104. package/dist/server/services/foundation.d.ts.map +1 -1
  105. package/dist/server/services/foundation.js +98 -8
  106. package/dist/server/services/foundation.js.map +1 -1
  107. package/dist/server/source-evidence.d.ts +9 -0
  108. package/dist/server/source-evidence.d.ts.map +1 -1
  109. package/dist/server/source-evidence.js +145 -1
  110. package/dist/server/source-evidence.js.map +1 -1
  111. package/dist/server/static-values.d.ts +18 -0
  112. package/dist/server/static-values.d.ts.map +1 -0
  113. package/dist/server/static-values.js +257 -0
  114. package/dist/server/static-values.js.map +1 -0
  115. package/dist/server/tokens.d.ts +7 -1
  116. package/dist/server/tokens.d.ts.map +1 -1
  117. package/dist/server/tokens.js.map +1 -1
  118. package/dist/shared/foundation.d.ts +13 -0
  119. package/dist/shared/foundation.d.ts.map +1 -1
  120. package/dist/shared/foundation.js.map +1 -1
  121. package/package.json +9 -9
  122. package/skills/nocobase-app-plugin-foundation/SKILL.md +17 -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 ??= this.collect().finally(() => {
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
- return this.pending;
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(() => resolve('timeout'), this.collectorTimeoutMs);
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 failed(collector, [{ code: 'COLLECTOR_TIMEOUT' }]);
121
- const issues = context.probe?.issues ?? [];
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,21 @@ 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 returned local functions and React's identity-preserving callback wrapper only. */
23
+ functions(node: ts.Node, seen?: Set<ts.Node>): readonly ts.SignatureDeclaration[];
24
+ /** Resolve local value aliases and re-exports without executing a module. */
25
+ values(node: ts.Node, seen?: Set<ts.Node>): readonly ts.Node[];
26
+ private serviceMethod;
18
27
  }
19
28
  //# 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;IAMvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAL9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;gBAGpD,OAAO,EAAE,SAAS,cAAc,EAAE,EACjB,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAyBpD,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;IAyIM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,SAAS;CAGpD"}
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,8FAA8F;IACvF,SAAS,CACd,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,IAAI,GAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAsB,GACtC,SAAS,EAAE,CAAC,oBAAoB,EAAE;IA2CrC,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.checker.getSymbolAtLocation(node);
171
+ const symbol = this.symbol(node);
135
172
  if (symbol)
136
173
  follow(symbol);
137
174
  }
@@ -163,7 +200,114 @@ 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 returned local functions and React's identity-preserving callback wrapper only. */
216
+ functions(node, seen = new Set()) {
217
+ if (seen.has(node) || seen.size >= 32)
218
+ return [];
219
+ seen = new Set(seen).add(node);
220
+ return this.values(node).flatMap((value) => {
221
+ if (ts.isFunctionLike(value))
222
+ return [value];
223
+ if (!ts.isCallExpression(value))
224
+ return [];
225
+ const callback = (this.symbol(value.expression)?.declarations ?? []).some((declaration) => {
226
+ if (!ts.isImportSpecifier(declaration) ||
227
+ declaration.isTypeOnly ||
228
+ (declaration.propertyName?.text ?? declaration.name.text) !==
229
+ 'useCallback')
230
+ return false;
231
+ const statement = declaration.parent.parent.parent;
232
+ return (ts.isImportDeclaration(statement) &&
233
+ !statement.importClause?.isTypeOnly &&
234
+ ts.isStringLiteralLike(statement.moduleSpecifier) &&
235
+ statement.moduleSpecifier.text === 'react');
236
+ });
237
+ if (callback && value.arguments[0])
238
+ return [...this.functions(value.arguments[0], seen)];
239
+ return this.functions(value.expression, seen).flatMap((fn) => {
240
+ const results = [];
241
+ const visit = (child) => {
242
+ if (ts.isReturnStatement(child) && child.expression)
243
+ results.push(...this.functions(child.expression, seen));
244
+ else if (!ts.isFunctionLike(child))
245
+ ts.forEachChild(child, visit);
246
+ };
247
+ if ('body' in fn && fn.body) {
248
+ if (ts.isArrowFunction(fn) && !ts.isBlock(fn.body))
249
+ results.push(...this.functions(fn.body, seen));
250
+ else
251
+ visit(fn.body);
252
+ }
253
+ return results;
254
+ });
255
+ });
256
+ }
257
+ /** Resolve local value aliases and re-exports without executing a module. */
258
+ values(node, seen = new Set()) {
259
+ if (seen.has(node))
260
+ return [];
261
+ seen.add(node);
262
+ if (ts.isIdentifier(node))
263
+ return this.declarations(node).flatMap((item) => this.values(item, seen));
264
+ if (ts.isVariableDeclaration(node))
265
+ return node.initializer ? this.values(node.initializer, seen) : [];
266
+ if (ts.isExportAssignment(node))
267
+ return this.values(node.expression, seen);
268
+ if (ts.isParenthesizedExpression(node) ||
269
+ ts.isAsExpression(node) ||
270
+ ts.isSatisfiesExpression(node))
271
+ return this.values(node.expression, seen);
272
+ return [node];
273
+ }
274
+ serviceMethod(receiver, method) {
275
+ const roots = [];
276
+ for (const value of this.values(receiver)) {
277
+ if (!ts.isCallExpression(value) ||
278
+ !ts.isPropertyAccessExpression(value.expression) ||
279
+ value.expression.name.text !== 'resolve')
280
+ continue;
281
+ const token = value.arguments[0];
282
+ const declaration = token && this.declarations(token)[0];
283
+ const factories = declaration
284
+ ? (this.services.get(declaration) ?? [])
285
+ : [];
286
+ // Competing registrations cannot establish which implementation this runtime selected.
287
+ if (factories.length !== 1)
288
+ continue;
289
+ for (const factory of factories) {
290
+ const find = (node) => {
291
+ if (ts.isNewExpression(node)) {
292
+ for (const candidate of this.values(node.expression)) {
293
+ if (!ts.isClassDeclaration(candidate) &&
294
+ !ts.isClassExpression(candidate))
295
+ continue;
296
+ roots.push(node);
297
+ roots.push(candidate);
298
+ for (const member of candidate.members)
299
+ if (ts.isMethodDeclaration(member) &&
300
+ member.name &&
301
+ member.name.getText() === method)
302
+ roots.push(member);
303
+ }
304
+ }
305
+ ts.forEachChild(node, find);
306
+ };
307
+ this.values(factory).forEach(find);
308
+ }
309
+ }
310
+ return roots;
311
+ }
168
312
  }
169
313
  //# sourceMappingURL=source-evidence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-evidence.js","sourceRoot":"","sources":["../../server/source-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAO5B,0GAA0G;AAC1G,MAAM,OAAO,cAAc;IAMN;IALF,OAAO,CAAiB;IACxB,OAAO,CAA8B;IAEtD,YACE,OAAkC,EACjB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;QAEzD,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,OAAO,GAAuB;YAClC,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;YAC9B,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;YAC5B,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ;SACzB,CAAC;QACF,MAAM,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,OAAO,GAAG,EAAE;aACd,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC;aACtD,cAAc,EAAE,CAAC;IACtB,CAAC;IAEM,OAAO,CACZ,IAAY,EACZ,KAA0B;QAM1B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAW,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAa,CAAC;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,IAAY,EAAQ,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;YAC1C,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC5D,MAAM,KAAK,GACT,MAAM;gBACN,IAAI,CAAC,OAAO;qBACT,kBAAkB,CAAC,MAAM,CAAC;qBAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,QAAQ,GAAG,KAAK,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,WAAoB,EAAE,IAAa,EAAW,EAAE;YAChE,IAAI,SAAS,GAAwB,WAAW,CAAC;YACjD,OACE,SAAS;gBACT,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC;gBAClC,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC;gBAElC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;YAC/B,IACE,CAAC,SAAS;gBACV,CAAC,SAAS,CAAC,eAAe;gBAC1B,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,eAAe,CAAC;gBAElD,OAAO,KAAK,CAAC;YACf,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CACjC,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CACtD,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAE,QAAQ,GAAG,KAAK,CAAC;;oBAC1C,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,IAAI;gBAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;gBACnC,QAAQ,GAAG,KAAK,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,MAAiB,EAAQ,EAAE;YACzC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO;YAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;gBACpD,IACE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC;oBACjC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACjC,CAAC;oBACD,IAAI,WAAW,CAAC,UAAU;wBAAE,SAAS;oBACrC,IACE,QAAQ,CACN,WAAW,EACX,WAAW,CAAC,YAAY,EAAE,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CACxD;wBAED,SAAS;oBACX,IAAI,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK;wBACrC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC1C,IAAI,CAAC,WAAW,CAAC,UAAU;wBAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAChE,CAAC;qBAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7C,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACxB,CAAC;qBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClE,KAAK,CAAC,WAAW,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;YACpC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO;YACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAW,CAAC;YACtE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACzC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAAE,OAAO;YACzE,IACE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBAC9B,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAC9B,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9D,+DAA+D;gBAC/D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;oBAC/B,IACE,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;wBACnC,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;wBAEhC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,IACE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC;gBACnC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAChC,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnE,MAAM,SAAS,GAAG,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;gBACrE,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,MAAM;oBAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YACD,IACE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa,EACpD,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,QAAQ,IAAI,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CACjC,GAAG,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAC3C,CAAC;oBACF,IAAI,MAAM;wBAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;yBACnC,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAAE,QAAQ,GAAG,KAAK,CAAC;;wBACnD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC;;oBAAM,QAAQ,GAAG,KAAK,CAAC;YAC1B,CAAC;YACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,+FAA+F;gBAC/F,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC;oBAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,KAAK;YAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;YAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,IAAa;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF"}
1
+ {"version":3,"file":"source-evidence.js","sourceRoot":"","sources":["../../server/source-evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
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
+ /** Interpret only literal inputs, local returns and decidable branches; never invoke application code. */
14
+ private call;
15
+ strings(node: ts.Node, dynamic?: boolean): string[];
16
+ }
17
+ export {};
18
+ //# 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;IAqGrB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,QAAQ;IAmChB,OAAO,CAAC,KAAK;IA2Db,0GAA0G;IAC1G,OAAO,CAAC,IAAI;IAwDL,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,UAAQ,GAAG,MAAM,EAAE;CAsBzD"}