@no22/dison 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -1
- package/dist/cli.js +12 -1
- package/dist/cli.js.map +1 -1
- package/dist/collisions.d.ts +22 -0
- package/dist/collisions.d.ts.map +1 -1
- package/dist/collisions.js +116 -0
- package/dist/collisions.js.map +1 -1
- package/dist/core.d.ts +2 -2
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +14 -7
- package/dist/core.js.map +1 -1
- package/dist/generated-runtime.d.ts.map +1 -1
- package/dist/generated-runtime.js +8 -2
- package/dist/generated-runtime.js.map +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +26 -4
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -142,7 +142,9 @@ needed) for the place it's written:
|
|
|
142
142
|
and concurrent async requests don't interfere.
|
|
143
143
|
- **Directly inside a class body** → a **class scope**: that class's
|
|
144
144
|
declarative DI wiring, shared by all its instances and inherited by
|
|
145
|
-
subclasses (which can override just the parts they change).
|
|
145
|
+
subclasses (which can override just the parts they change). If the
|
|
146
|
+
same class body wires the same key twice, the last configuration
|
|
147
|
+
wins (new in 1.6.0).
|
|
146
148
|
|
|
147
149
|
```dison
|
|
148
150
|
class UserService {
|
|
@@ -235,6 +237,11 @@ bind Repository = PostgresRepository("postgres://localhost/db");
|
|
|
235
237
|
The arguments are type-checked against the replacement's constructor,
|
|
236
238
|
and a standalone `bind`'s arguments can capture local variables.
|
|
237
239
|
|
|
240
|
+
When bind chains redirect the replacement (`bind A = B("x"); bind B = C;`),
|
|
241
|
+
`A` resolves all the way to `new C()` and `B`'s arguments are not used —
|
|
242
|
+
arguments only matter on the *final* replacement of a chain. This is by
|
|
243
|
+
design: a chain replaces `B` wholesale, constructor call included.
|
|
244
|
+
|
|
238
245
|
### `token`
|
|
239
246
|
|
|
240
247
|
Most name clashes are resolved automatically (see *Automatic collision
|
|
@@ -297,6 +304,13 @@ classes defined in another — as long as they all resolve
|
|
|
297
304
|
`@no22/dison/runtime` to the same installed copy (in practice: they're part of the same project
|
|
298
305
|
and share a common `node_modules` ancestor, which is the normal case).
|
|
299
306
|
|
|
307
|
+
The CLI also fails the build with a specific fix suggestion when a
|
|
308
|
+
`bind`/`override` in one file could **never match** its declaration in
|
|
309
|
+
another — e.g. you bound a class without importing it, or imported it
|
|
310
|
+
`type`-only where the identity key needs the runtime value (new in
|
|
311
|
+
1.6.0). Previously such mistakes were silent no-ops unless you ran
|
|
312
|
+
`tsc`.
|
|
313
|
+
|
|
300
314
|
## Requirements
|
|
301
315
|
|
|
302
316
|
The generated code targets a modern TypeScript/Node toolchain:
|
|
@@ -309,6 +323,12 @@ The generated code targets a modern TypeScript/Node toolchain:
|
|
|
309
323
|
`@types/node`.
|
|
310
324
|
- Everything else (`injectable`/`override`/`bind`, global and class
|
|
311
325
|
scopes) has no special requirement beyond a current TypeScript.
|
|
326
|
+
Since 1.6.0, a **single-file** transpile that uses no local scopes
|
|
327
|
+
emits no `node:async_hooks` import at all (a synchronous stub is
|
|
328
|
+
inlined instead), so that output also runs outside Node — in a
|
|
329
|
+
browser, for example. Multi-file output shares state through
|
|
330
|
+
`@no22/dison/runtime`, which does import `node:async_hooks`, so
|
|
331
|
+
multi-file projects remain Node-oriented.
|
|
312
332
|
|
|
313
333
|
The runtime module (`@no22/dison/runtime`) is shipped pre-compiled, so
|
|
314
334
|
these requirements apply to *your generated `.ts` files*, not to the
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import * as path from 'path';
|
|
4
|
-
import { transpileDisonToTS, findBindCollisions, computeIdentityKeyClassesByFile, computeCompanionPlanByFile } from './core.js'; // ※NodeNext環境のために.jsをつけます
|
|
4
|
+
import { transpileDisonToTS, findBindCollisions, findCrossFileKeyMismatches, computeIdentityKeyClassesByFile, computeCompanionPlanByFile } from './core.js'; // ※NodeNext環境のために.jsをつけます
|
|
5
5
|
// 複数ファイルの生成コードが共有ランタイム(DI_REGISTRY/TYPE_BINDINGS等)を
|
|
6
6
|
// importする際に使うパッケージのサブパス。@no22/disonパッケージ自身が
|
|
7
7
|
// この下に実体(src/generated-runtime.ts→dist/generated-runtime.js)を
|
|
@@ -57,6 +57,17 @@ function transpileMultipleFiles(inputFiles) {
|
|
|
57
57
|
throw new Error(`Possible bind/injectable type-name collisions across files` +
|
|
58
58
|
` (${collisions.length}). No files were generated.\n${details}`);
|
|
59
59
|
}
|
|
60
|
+
// クロスファイルキー不一致(import忘れ・type-onlyインポートのクラス)の検出
|
|
61
|
+
// (docs/cross-file-key-mismatch.md)。文字列キーに落ちた識別子が他ファイルの
|
|
62
|
+
// identity/companionキー宣言と決して一致しない=bind/overrideが黙って無効になる
|
|
63
|
+
// ケースを、変換前にエラーとして報告する。
|
|
64
|
+
const mismatches = findCrossFileKeyMismatches(fileInputs);
|
|
65
|
+
if (mismatches.length > 0) {
|
|
66
|
+
const details = mismatches.map((c) => ` - ${c.message}`).join('\n');
|
|
67
|
+
throw new Error(`Cross-file key mismatches detected (${mismatches.length}):` +
|
|
68
|
+
` these bind/override/injectable keys can never match their declarations.` +
|
|
69
|
+
` No files were generated.\n${details}`);
|
|
70
|
+
}
|
|
60
71
|
console.log(`🎉 Using "${RUNTIME_PACKAGE_SPECIFIER}" as the shared runtime (the target project must have "@no22/dison" installed as a dependency).`);
|
|
61
72
|
// 各ファイルが他のプロジェクトファイルからvalue-importしている具象クラスを解決し、
|
|
62
73
|
// 宣言元ファイルと同じ実体キーを使うよう transpile に渡す(docs/type-identity-
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC,CAAC,0BAA0B;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/collisions.d.ts
CHANGED
|
@@ -39,6 +39,28 @@ export declare function computeIdentityKeyClassesByFile(files: DisonFileInput[])
|
|
|
39
39
|
* 他ファイル由来 interface のローカル名 -> {specifier, 元名})。
|
|
40
40
|
*/
|
|
41
41
|
export declare function computeCompanionPlanByFile(files: DisonFileInput[]): Map<string, CompanionPlan>;
|
|
42
|
+
/**
|
|
43
|
+
* 複数ファイルモードのクロスファイルキー不一致検出(docs/cross-file-key-mismatch.md、
|
|
44
|
+
* 仕様監査2026-07 #4)。
|
|
45
|
+
*
|
|
46
|
+
* このファイルで文字列キーに落ちる(またはキー評価が失敗し続ける)裸の識別子が、
|
|
47
|
+
* 他のプロジェクトファイルでは identity(クラス実体)/companion Symbol でキー化される
|
|
48
|
+
* 宣言を持つ場合、キーは決して一致せず bind/override が黙って無効になる。これを
|
|
49
|
+
* transpile時エラーとして検出する。
|
|
50
|
+
*
|
|
51
|
+
* 対象サイト: bindの左辺・差し替え先、override対象クラス、injectableの型注釈
|
|
52
|
+
* (いずれも "as トークン" なしの裸の識別子のみ)。判定:
|
|
53
|
+
* - ローカル宣言あり / value-import済み → 安全(identity/companion側でキー化)。
|
|
54
|
+
* - type-only import されたプロジェクトのクラス → エラー(実体キーには値が必要。
|
|
55
|
+
* "type" を外すよう案内)。interface の type-only import は companion の既存機構
|
|
56
|
+
* (importedProjectInterfaceLocalNames が typeOnly も対象にする)で解決されるので安全。
|
|
57
|
+
* - importなしで他プロジェクトファイルにクラス/interface宣言あり → エラー
|
|
58
|
+
* (importするか as トークンを案内)。
|
|
59
|
+
* - どこにも宣言なし → 対象外(外部パッケージ型の文字列キーは正当。純粋な
|
|
60
|
+
* タイプミスは従来どおりtscの担当。const代入クラス等ヒューリスティックで
|
|
61
|
+
* 追えない宣言形への誤検出を避けるための線引き)。
|
|
62
|
+
*/
|
|
63
|
+
export declare function findCrossFileKeyMismatches(files: DisonFileInput[]): BindCollisionDiagnostic[];
|
|
42
64
|
/**
|
|
43
65
|
* 複数の.disファイルを横断して、`bind`の左辺や`injectable`の型注釈に
|
|
44
66
|
* 使われている型名(クラス/interface/型エイリアスを問わない)の衝突を
|
package/dist/collisions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collisions.d.ts","sourceRoot":"","sources":["../src/collisions.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,aAAa;IAG5B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAG3B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAwFD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAOjG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CA2D9F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,uBAAuB,EAAE,CAiIrF"}
|
|
1
|
+
{"version":3,"file":"collisions.d.ts","sourceRoot":"","sources":["../src/collisions.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,aAAa;IAG5B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAG3B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAwFD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAOjG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CA2D9F;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,uBAAuB,EAAE,CA6F7F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,uBAAuB,EAAE,CAiIrF"}
|
package/dist/collisions.js
CHANGED
|
@@ -158,6 +158,122 @@ export function computeCompanionPlanByFile(files) {
|
|
|
158
158
|
}
|
|
159
159
|
return result;
|
|
160
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* 複数ファイルモードのクロスファイルキー不一致検出(docs/cross-file-key-mismatch.md、
|
|
163
|
+
* 仕様監査2026-07 #4)。
|
|
164
|
+
*
|
|
165
|
+
* このファイルで文字列キーに落ちる(またはキー評価が失敗し続ける)裸の識別子が、
|
|
166
|
+
* 他のプロジェクトファイルでは identity(クラス実体)/companion Symbol でキー化される
|
|
167
|
+
* 宣言を持つ場合、キーは決して一致せず bind/override が黙って無効になる。これを
|
|
168
|
+
* transpile時エラーとして検出する。
|
|
169
|
+
*
|
|
170
|
+
* 対象サイト: bindの左辺・差し替え先、override対象クラス、injectableの型注釈
|
|
171
|
+
* (いずれも "as トークン" なしの裸の識別子のみ)。判定:
|
|
172
|
+
* - ローカル宣言あり / value-import済み → 安全(identity/companion側でキー化)。
|
|
173
|
+
* - type-only import されたプロジェクトのクラス → エラー(実体キーには値が必要。
|
|
174
|
+
* "type" を外すよう案内)。interface の type-only import は companion の既存機構
|
|
175
|
+
* (importedProjectInterfaceLocalNames が typeOnly も対象にする)で解決されるので安全。
|
|
176
|
+
* - importなしで他プロジェクトファイルにクラス/interface宣言あり → エラー
|
|
177
|
+
* (importするか as トークンを案内)。
|
|
178
|
+
* - どこにも宣言なし → 対象外(外部パッケージ型の文字列キーは正当。純粋な
|
|
179
|
+
* タイプミスは従来どおりtscの担当。const代入クラス等ヒューリスティックで
|
|
180
|
+
* 追えない宣言形への誤検出を避けるための線引き)。
|
|
181
|
+
*/
|
|
182
|
+
export function findCrossFileKeyMismatches(files) {
|
|
183
|
+
const classIndex = buildProjectClassIndex(files);
|
|
184
|
+
const interfaceIndex = buildProjectInterfaceIndex(files);
|
|
185
|
+
const diagnostics = [];
|
|
186
|
+
for (const file of files) {
|
|
187
|
+
const tokens = new Lexer(file.source).tokenize();
|
|
188
|
+
const typeKinds = collectDeclaredTypeKinds(tokens);
|
|
189
|
+
const ast = new Parser(tokens, typeKinds).parseProgram();
|
|
190
|
+
const normSelf = normalizeExtensionlessAbsolutePath(file.path);
|
|
191
|
+
// このファイル内に何らかの宣言がある名前(クラス/abstract/interface/型エイリアス)。
|
|
192
|
+
// ローカル宣言があればそのファイル内では identity/companion 側でキー化される。
|
|
193
|
+
const localNames = new Set([...typeKinds.classNames, ...typeKinds.nonNewableTypeNames]);
|
|
194
|
+
const importsByLocalName = new Map(collectImportBindings(tokens).map((b) => [b.localName, b]));
|
|
195
|
+
// 他プロジェクトファイルで name を宣言しているファイルを探す。
|
|
196
|
+
const declaredElsewhere = (name) => {
|
|
197
|
+
const out = [];
|
|
198
|
+
for (const g of files) {
|
|
199
|
+
const normG = normalizeExtensionlessAbsolutePath(g.path);
|
|
200
|
+
if (normG === normSelf)
|
|
201
|
+
continue;
|
|
202
|
+
if (classIndex.get(normG)?.has(name))
|
|
203
|
+
out.push({ file: g.path, kind: "class" });
|
|
204
|
+
else if (interfaceIndex.get(normG)?.has(name))
|
|
205
|
+
out.push({ file: g.path, kind: "interface" });
|
|
206
|
+
}
|
|
207
|
+
return out;
|
|
208
|
+
};
|
|
209
|
+
const check = (typeKey, hasToken, site) => {
|
|
210
|
+
if (hasToken)
|
|
211
|
+
return;
|
|
212
|
+
const name = baseIdentifierOf(typeKey);
|
|
213
|
+
if (name !== typeKey)
|
|
214
|
+
return; // ジェネリクス等の複合型は文字列キーが正当
|
|
215
|
+
if (localNames.has(name))
|
|
216
|
+
return;
|
|
217
|
+
const imp = importsByLocalName.get(name);
|
|
218
|
+
if (imp !== undefined && !imp.typeOnly)
|
|
219
|
+
return; // value-import済み(外部パッケージ含め安全)
|
|
220
|
+
if (imp !== undefined && imp.typeOnly) {
|
|
221
|
+
// type-only import: 宣言元がプロジェクトのクラスの場合のみ問題
|
|
222
|
+
// (interfaceのtype-only importはcompanion機構が解決する。外部パッケージは文字列キーで一貫)。
|
|
223
|
+
if (!imp.specifier.startsWith("."))
|
|
224
|
+
return;
|
|
225
|
+
const resolved = normalizeExtensionlessAbsolutePath(path.resolve(path.dirname(file.path), imp.specifier));
|
|
226
|
+
if (classIndex.get(resolved)?.has(imp.importedName)) {
|
|
227
|
+
diagnostics.push({
|
|
228
|
+
name,
|
|
229
|
+
message: `${file.path}'s ${site}: "${name}" is imported type-only from "${imp.specifier}", ` +
|
|
230
|
+
`but it is a class matched by identity there — an identity key needs the runtime value. ` +
|
|
231
|
+
`Remove "type" from the import.`,
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
// importなし: 他プロジェクトファイルの宣言と同名なら、文字列キーは決して一致しない。
|
|
237
|
+
const decls = declaredElsewhere(name);
|
|
238
|
+
if (decls.length === 0)
|
|
239
|
+
return;
|
|
240
|
+
const where = decls.map((d) => `${d.file} (as a ${d.kind})`).join(", ");
|
|
241
|
+
diagnostics.push({
|
|
242
|
+
name,
|
|
243
|
+
message: `${file.path}'s ${site}: "${name}" is declared in ${where} and matched by ` +
|
|
244
|
+
`${decls[0].kind === "class" ? "class identity" : "a companion Symbol"} there, ` +
|
|
245
|
+
`but this file neither declares nor imports it, so it would fall back to a string key ` +
|
|
246
|
+
`that can never match. Import it from the declaring file, or key both sides explicitly ` +
|
|
247
|
+
`with "as <token>".`,
|
|
248
|
+
});
|
|
249
|
+
};
|
|
250
|
+
const visitBind = (entry, label) => {
|
|
251
|
+
check(entry.originalTypeKey, entry.token !== undefined, `bind "${entry.originalTypeName}" (${label})`);
|
|
252
|
+
check(entry.replacementTypeKey, false, `bind replacement "${entry.replacementTypeName}" (${label})`);
|
|
253
|
+
};
|
|
254
|
+
for (const node of ast) {
|
|
255
|
+
if (node.kind === "injectable") {
|
|
256
|
+
check(node.typeKey, node.token !== undefined, `injectable "${node.propName}"`);
|
|
257
|
+
}
|
|
258
|
+
else if (node.kind === "configuration") {
|
|
259
|
+
const label = node.name !== undefined ? `configuration "${node.name}"` : "anonymous configuration";
|
|
260
|
+
for (const entry of node.entries) {
|
|
261
|
+
if (entry.kind === "bind")
|
|
262
|
+
visitBind(entry, label);
|
|
263
|
+
else
|
|
264
|
+
check(entry.className, false, `override "${entry.className}" (${label})`);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
else if (node.kind === "standalone-bind") {
|
|
268
|
+
visitBind(node.entry, "standalone");
|
|
269
|
+
}
|
|
270
|
+
else if (node.kind === "standalone-override") {
|
|
271
|
+
check(node.entry.className, false, `override "${node.entry.className}" (standalone)`);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return diagnostics;
|
|
276
|
+
}
|
|
161
277
|
/**
|
|
162
278
|
* 複数の.disファイルを横断して、`bind`の左辺や`injectable`の型注釈に
|
|
163
279
|
* 使われている型名(クラス/interface/型エイリアスを問わない)の衝突を
|
package/dist/collisions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collisions.js","sourceRoot":"","sources":["../src/collisions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collisions.js","sourceRoot":"","sources":["../src/collisions.ts"],"names":[],"mappings":"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"}
|
package/dist/core.d.ts
CHANGED
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
* -----------------------------------------------------------
|
|
236
236
|
*/
|
|
237
237
|
import { DISON_RUNTIME_MODULE_SOURCE } from "./runtime.js";
|
|
238
|
-
import { findBindCollisions, computeIdentityKeyClassesByFile, computeCompanionPlanByFile } from "./collisions.js";
|
|
238
|
+
import { findBindCollisions, findCrossFileKeyMismatches, computeIdentityKeyClassesByFile, computeCompanionPlanByFile } from "./collisions.js";
|
|
239
239
|
import type { DisonFileInput, BindCollisionDiagnostic, CompanionImportInfo } from "./collisions.js";
|
|
240
240
|
export interface TranspileOptions {
|
|
241
241
|
runtimeModulePath?: string;
|
|
@@ -249,6 +249,6 @@ export interface TranspileOptions {
|
|
|
249
249
|
* トークナイザ+パーサを経由してもなお100%元の文字列のまま出力される。
|
|
250
250
|
*/
|
|
251
251
|
export declare function transpileDisonToTS(sourceCode: string, options?: TranspileOptions): string;
|
|
252
|
-
export { DISON_RUNTIME_MODULE_SOURCE, findBindCollisions, computeIdentityKeyClassesByFile, computeCompanionPlanByFile };
|
|
252
|
+
export { DISON_RUNTIME_MODULE_SOURCE, findBindCollisions, findCrossFileKeyMismatches, computeIdentityKeyClassesByFile, computeCompanionPlanByFile };
|
|
253
253
|
export type { DisonFileInput, BindCollisionDiagnostic, CompanionImportInfo };
|
|
254
254
|
//# sourceMappingURL=core.d.ts.map
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2OG;AAgBH,OAAO,EAA+B,2BAA2B,EAAyB,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2OG;AAgBH,OAAO,EAA+B,2BAA2B,EAAyB,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC9I,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEpG,MAAM,WAAW,gBAAgB;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAW3B,kBAAkB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAQtC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAMjC,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CA4E7F;AAID,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,CAAC;AACpJ,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,CAAC"}
|
package/dist/core.js
CHANGED
|
@@ -239,7 +239,7 @@ import { collectDeclaredTypeKinds, trueInterfaceOrAliasNames, identityKeyableCla
|
|
|
239
239
|
import { Parser } from "./parser.js";
|
|
240
240
|
import { generate, resolveFromActivateBindings, generateFromImportStatements, generateCompanionDeclarations, generateCompanionImportStatements, collectDiUsedTypeNames, companionName, } from "./codegen.js";
|
|
241
241
|
import { generateRuntimeDeclarations, DISON_RUNTIME_MODULE_SOURCE, DISON_RUNTIME_IMPORTS } from "./runtime.js";
|
|
242
|
-
import { findBindCollisions, computeIdentityKeyClassesByFile, computeCompanionPlanByFile } from "./collisions.js";
|
|
242
|
+
import { findBindCollisions, findCrossFileKeyMismatches, computeIdentityKeyClassesByFile, computeCompanionPlanByFile } from "./collisions.js";
|
|
243
243
|
/**
|
|
244
244
|
* Dison言語のソースコードを受け取り、完全に動作するTypeScriptコードに変換する。
|
|
245
245
|
* DSL構文(configuration / override / injectable / activate / bind)以外の部分は、
|
|
@@ -292,16 +292,23 @@ export function transpileDisonToTS(sourceCode, options = {}) {
|
|
|
292
292
|
companionImportList.push({ localName, originalName: info.originalName, specifier: info.specifier });
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
-
//
|
|
296
|
-
//
|
|
297
|
-
//
|
|
295
|
+
// ランタイム前置き(docs/spec-audit-2026-07.md #7):
|
|
296
|
+
// - 複数ファイルモード: 生成ファイル自身は AsyncLocalStorage を参照しない
|
|
297
|
+
// (als は共有ランタイムモジュール側にある)ため、node:async_hooks の import は
|
|
298
|
+
// 生成ファイルには出さない。
|
|
299
|
+
// - 単一ファイルモード: ローカルスコープの configuration を使うファイルだけが
|
|
300
|
+
// 本物の AsyncLocalStorage(node:async_hooks)を必要とする。使わないファイルは
|
|
301
|
+
// 同期スタブでインライン生成し、Node 以外のランタイムでも動く生成物にする。
|
|
302
|
+
const usesLocalScope = ast.some((n) => n.kind === "configuration" && n.scope === "local");
|
|
298
303
|
const header = `// --- Auto-generated TypeScript code ---\n\n`;
|
|
299
304
|
const prelude = options.runtimeModulePath
|
|
300
|
-
? `${header}
|
|
305
|
+
? `${header}import {\n` +
|
|
301
306
|
` bindTypeLazy,\n resolveType,\n registerOverrideLazy,\n` +
|
|
302
307
|
` __disonCurrentScope,\n __disonResolveInjectable,\n __disonEnterScopeLazy,\n __disonBuildFrameLazy,\n` +
|
|
303
308
|
`} from ${JSON.stringify(options.runtimeModulePath)};\n\n`
|
|
304
|
-
:
|
|
309
|
+
: usesLocalScope
|
|
310
|
+
? `${header}${DISON_RUNTIME_IMPORTS}\n${generateRuntimeDeclarations("", "node")}\n`
|
|
311
|
+
: `${header}\n${generateRuntimeDeclarations("", "stub")}\n`;
|
|
305
312
|
// ES Modules の import はファイル先頭にしか書けないため、import 系(companion import、
|
|
306
313
|
// "activate ... from" の import)を前置きの直後にまとめて出す。companion の const 宣言
|
|
307
314
|
// (export const __dison_token_X = Symbol(...))は import ではないので、すべての import
|
|
@@ -313,5 +320,5 @@ export function transpileDisonToTS(sourceCode, options = {}) {
|
|
|
313
320
|
}
|
|
314
321
|
// 公開API: 複数ファイル対応(docs/multi-file-support.md、
|
|
315
322
|
// docs/bind-interface-token.md)。CLIが複数ファイルを一括処理する際に使う。
|
|
316
|
-
export { DISON_RUNTIME_MODULE_SOURCE, findBindCollisions, computeIdentityKeyClassesByFile, computeCompanionPlanByFile };
|
|
323
|
+
export { DISON_RUNTIME_MODULE_SOURCE, findBindCollisions, findCrossFileKeyMismatches, computeIdentityKeyClassesByFile, computeCompanionPlanByFile };
|
|
317
324
|
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2OG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC/G,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,QAAQ,EACR,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,EACtB,aAAa,GAGd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated-runtime.d.ts","sourceRoot":"","sources":["../src/generated-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAcrD,KAAK,cAAc,GAAG,MAAM,GAAG,CAAC;AAChC,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC7C,KAAK,WAAW,GAAG;IAAE,CAAC,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AACtD,KAAK,mBAAmB,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,UAAU,CAAC;IAAC,CAAC,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F,UAAU,YAAY;IACpB,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1D,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AACD,UAAU,YAAa,SAAQ,YAAY;IACzC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;CAClC;AAmCD,eAAO,MAAM,WAAW,6CAAoD,CAAC;AAE7E,wBAAgB,mBAAmB,IAAI,YAAY,GAAG,SAAS,CAAmC;
|
|
1
|
+
{"version":3,"file":"generated-runtime.d.ts","sourceRoot":"","sources":["../src/generated-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,14 +57,20 @@ let __dison_classScopeCtx;
|
|
|
57
57
|
// A class-body configuration is placed as a static __dison_classScope_N field. Walk
|
|
58
58
|
// this.constructor's prototype chain (child -> parent) and collect the fields each class
|
|
59
59
|
// owns (inheritance: a subclass inherits its parent's class scope and can override just
|
|
60
|
-
// the delta).
|
|
60
|
+
// the delta). Within one class the frames are collected in reverse definition order,
|
|
61
|
+
// so when the same class body has several configurations for the same key, the LAST
|
|
62
|
+
// one wins (matching the last-assignment-wins intuition, and the behavior of
|
|
63
|
+
// sequential global registrations and nested local scopes).
|
|
61
64
|
function __disonClassScopes(cls) {
|
|
62
65
|
const out = [];
|
|
63
66
|
for (let c = cls; c && c !== Function.prototype && c !== Object; c = Object.getPrototypeOf(c)) {
|
|
67
|
+
const own = [];
|
|
64
68
|
for (const key of Object.getOwnPropertyNames(c)) {
|
|
65
69
|
if (key.indexOf('__dison_classScope') === 0)
|
|
66
|
-
|
|
70
|
+
own.push(c[key]);
|
|
67
71
|
}
|
|
72
|
+
for (let i = own.length - 1; i >= 0; i--)
|
|
73
|
+
out.push(own[i]);
|
|
68
74
|
}
|
|
69
75
|
return out;
|
|
70
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated-runtime.js","sourceRoot":"","sources":["../src/generated-runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generated-runtime.js","sourceRoot":"","sources":["../src/generated-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const DISON_RUNTIME_IMPORTS = "import { AsyncLocalStorage } from \"node:async_hooks\";\n";
|
|
2
|
-
export declare function generateRuntimeDeclarations(exportKeyword: "" | "export "): string;
|
|
2
|
+
export declare function generateRuntimeDeclarations(exportKeyword: "" | "export ", alsMode?: "node" | "stub"): string;
|
|
3
3
|
export declare const DISON_RUNTIME_MODULE_SOURCE: string;
|
|
4
4
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,qBAAqB,8DAA4D,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,qBAAqB,8DAA4D,CAAC;AAQ/F,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,EAAE,GAAG,SAAS,EAC7B,OAAO,GAAE,MAAM,GAAG,MAAe,GAChC,MAAM,CAmRR;AAMD,eAAO,MAAM,2BAA2B,EAAE,MAMF,CAAC"}
|
package/dist/runtime.js
CHANGED
|
@@ -29,8 +29,25 @@
|
|
|
29
29
|
// あるため、宣言本体(generateRuntimeDeclarations)とは分けて提供する。単一ファイル
|
|
30
30
|
// モードでは core.ts が、複数ファイルモードでは共有ランタイムモジュールが先頭に付ける。
|
|
31
31
|
export const DISON_RUNTIME_IMPORTS = `import { AsyncLocalStorage } from "node:async_hooks";\n`;
|
|
32
|
-
|
|
32
|
+
// alsMode(docs/spec-audit-2026-07.md #7):
|
|
33
|
+
// - "node": 本物の AsyncLocalStorage を使う(要 node:async_hooks import)。ローカル
|
|
34
|
+
// スコープを使うファイル・共有ランタイムモジュールはこちら。
|
|
35
|
+
// - "stub": 同期変数によるスタブ。ローカルスコープを使わないファイルでは、alsの
|
|
36
|
+
// ストアは__disonResolveInjectableの同期的なenter/restoreペアでしか触られないため
|
|
37
|
+
// ただの変数と等価。node:async_hooks への依存が消え、ブラウザ等でも動く。
|
|
38
|
+
export function generateRuntimeDeclarations(exportKeyword, alsMode = "node") {
|
|
33
39
|
const E = exportKeyword;
|
|
40
|
+
const alsDecl = alsMode === "node"
|
|
41
|
+
? `${E}const __dison_als = new AsyncLocalStorage<__DisonFrame | undefined>();\n`
|
|
42
|
+
: `// AsyncLocalStorage stub: this file uses no local scopes, so the store is only\n` +
|
|
43
|
+
`// touched synchronously (enter/restore pairs inside __disonResolveInjectable).\n` +
|
|
44
|
+
`// A plain variable is equivalent, and it avoids importing the Node-only\n` +
|
|
45
|
+
`// async-hooks module (the generated file also runs outside Node).\n` +
|
|
46
|
+
`${E}const __dison_als = {\n` +
|
|
47
|
+
` _store: undefined as __DisonFrame | undefined,\n` +
|
|
48
|
+
` getStore(): __DisonFrame | undefined { return this._store; },\n` +
|
|
49
|
+
` enterWith(store: __DisonFrame | undefined): void { this._store = store; },\n` +
|
|
50
|
+
`};\n`;
|
|
34
51
|
return (`// --- registration queue (docs/config-forward-reference.md) ---\n` +
|
|
35
52
|
`// Registrations are queued (with a global sequence number) and applied lazily the\n` +
|
|
36
53
|
`// first time a registry is read. Key expressions are passed as thunks, so a\n` +
|
|
@@ -87,7 +104,7 @@ export function generateRuntimeDeclarations(exportKeyword) {
|
|
|
87
104
|
` store.pending = remaining;\n` +
|
|
88
105
|
`}\n\n` +
|
|
89
106
|
`// --- scope infrastructure (docs/scoped-configuration.md) ---\n` +
|
|
90
|
-
|
|
107
|
+
alsDecl +
|
|
91
108
|
`// Current scope frame (undefined = global only). Captured by injectable at construction.\n` +
|
|
92
109
|
`${E}function __disonCurrentScope(): __DisonFrame | undefined { return __dison_als.getStore(); }\n\n` +
|
|
93
110
|
`// Class scopes (an anonymous configuration directly inside a class body).\n` +
|
|
@@ -101,13 +118,18 @@ export function generateRuntimeDeclarations(exportKeyword) {
|
|
|
101
118
|
`// A class-body configuration is placed as a static __dison_classScope_N field. Walk\n` +
|
|
102
119
|
`// this.constructor's prototype chain (child -> parent) and collect the fields each class\n` +
|
|
103
120
|
`// owns (inheritance: a subclass inherits its parent's class scope and can override just\n` +
|
|
104
|
-
`// the delta)
|
|
121
|
+
`// the delta). Within one class the frames are collected in reverse definition order,\n` +
|
|
122
|
+
`// so when the same class body has several configurations for the same key, the LAST\n` +
|
|
123
|
+
`// one wins (matching the last-assignment-wins intuition, and the behavior of\n` +
|
|
124
|
+
`// sequential global registrations and nested local scopes).\n` +
|
|
105
125
|
`function __disonClassScopes(cls: Function): __DisonFrame[] {\n` +
|
|
106
126
|
` const out: __DisonFrame[] = [];\n` +
|
|
107
127
|
` for (let c: any = cls; c && c !== Function.prototype && c !== Object; c = Object.getPrototypeOf(c)) {\n` +
|
|
128
|
+
` const own: __DisonFrame[] = [];\n` +
|
|
108
129
|
` for (const key of Object.getOwnPropertyNames(c)) {\n` +
|
|
109
|
-
` if (key.indexOf('__dison_classScope') === 0)
|
|
130
|
+
` if (key.indexOf('__dison_classScope') === 0) own.push(c[key]);\n` +
|
|
110
131
|
` }\n` +
|
|
132
|
+
` for (let i = own.length - 1; i >= 0; i--) out.push(own[i]);\n` +
|
|
111
133
|
` }\n` +
|
|
112
134
|
` return out;\n` +
|
|
113
135
|
`}\n` +
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,gBAAgB;AAChB,wEAAwE;AACxE,EAAE;AACF,qDAAqD;AACrD,2CAA2C;AAC3C,kCAAkC;AAClC,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,iCAAiC;AACjC,EAAE;AACF,uDAAuD;AACvD,4DAA4D;AAC5D,yDAAyD;AACzD,iDAAiD;AACjD,4CAA4C;AAC5C,oDAAoD;AACpD,sCAAsC;AACtC,EAAE;AACF,4DAA4D;AAC5D,wCAAwC;AACxC,+CAA+C;AAC/C,6CAA6C;AAC7C,mDAAmD;AACnD,4DAA4D;AAE5D,wDAAwD;AACxD,yDAAyD;AACzD,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,yDAAyD,CAAC;AAE/F,MAAM,UAAU,2BAA2B,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED