murashit_codex-panel/scripts/lint/no-generated-app-server-import-shapes.grit
2026-06-25 21:29:40 +09:00

62 lines
2.5 KiB
Text

language js
private pattern js_non_import_module_reference() {
or {
JsExportNamedFromClause(),
JsExportFromClause(),
TsImportType(),
JsImportCallExpression()
}
}
private pattern js_static_module_reference() {
or {
JsImport(),
JsExportNamedFromClause(),
JsExportFromClause()
}
}
private pattern js_module_reference() {
or {
JsImport(),
JsExportNamedFromClause(),
JsExportFromClause(),
TsImportType(),
JsImportCallExpression()
}
}
or {
JsImport() as $stmt where {
$stmt <: contains `$source` where { $source <: r"^[\"'].*generated/app-server/v2/Thread[\"']$" },
not { $stmt <: r".*\bThread\s+as\s+AppServerThread\b.*" },
register_diagnostic(span=$stmt, message="Import generated app-server Thread as AppServerThread, or use the Panel-owned domain Thread model.", severity="error")
},
js_non_import_module_reference() as $stmt where {
$stmt <: contains `$source` where { $source <: r"^[\"'].*generated/app-server/v2/Thread[\"']$" },
register_diagnostic(span=$stmt, message="Import generated app-server Thread as AppServerThread, or use the Panel-owned domain Thread model.", severity="error")
},
js_static_module_reference() as $stmt where {
$filename <: r".*/src/app-server/protocol/turn\.ts$",
$stmt <: contains `$source` where {
$source <: r"^[\"'].*generated/app-server/.*[\"']$",
not { $source <: r"^[\"'].*generated/app-server/v2/ThreadItem[\"']$" }
},
register_diagnostic(span=$stmt, message="Only generated ThreadItem is allowed in the turn protocol exception. Model other turn payload shapes locally.", severity="error")
},
js_module_reference() as $stmt where {
$filename <: r".*/src/app-server/protocol/server-requests\.ts$",
$stmt <: contains `$source` where {
$source <: r"^[\"'].*generated/app-server/.*[\"']$",
not { $source <: r"^[\"'].*generated/app-server/(?:RequestId|ServerRequest)[\"']$" }
},
register_diagnostic(span=$stmt, message="Only generated RequestId and ServerRequest are allowed in the server request protocol exception.", severity="error")
},
`require($source)` as $stmt where {
$filename <: r".*/src/app-server/protocol/server-requests\.ts$",
$source <: r"^[\"'].*generated/app-server/.*[\"']$",
not { $source <: r"^[\"'].*generated/app-server/(?:RequestId|ServerRequest)[\"']$" },
register_diagnostic(span=$stmt, message="Only generated RequestId and ServerRequest are allowed in the server request protocol exception.", severity="error")
}
}