@codyswann/lisa 2.191.5 → 2.191.6
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/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +52 -0
- package/eslint-plugin-code-organization/rules/enforce-statement-order.js +15 -0
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
|
@@ -242,6 +242,34 @@ ruleTester.run("enforce-statement-order", rule, {
|
|
|
242
242
|
`,
|
|
243
243
|
options: [{ checkAllFunctionBodies: false }],
|
|
244
244
|
},
|
|
245
|
+
|
|
246
|
+
// super() is a language-mandated prologue, not a side effect: definitions
|
|
247
|
+
// after it must not be flagged (derived constructors cannot avoid this)
|
|
248
|
+
{
|
|
249
|
+
code: `
|
|
250
|
+
class NetworkStage extends Stage {
|
|
251
|
+
constructor(scope, id, props) {
|
|
252
|
+
super(scope, id, props);
|
|
253
|
+
const environment = props.environment;
|
|
254
|
+
const natGatewayCount = environment === "production" ? 3 : 1;
|
|
255
|
+
configureNetwork(environment, natGatewayCount);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
`,
|
|
259
|
+
},
|
|
260
|
+
|
|
261
|
+
// super() alone with only definitions after it
|
|
262
|
+
{
|
|
263
|
+
code: `
|
|
264
|
+
class Widget extends Base {
|
|
265
|
+
constructor(options) {
|
|
266
|
+
super(options);
|
|
267
|
+
const name = options.name;
|
|
268
|
+
this.name = name;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
`,
|
|
272
|
+
},
|
|
245
273
|
],
|
|
246
274
|
|
|
247
275
|
invalid: [
|
|
@@ -523,6 +551,30 @@ ruleTester.run("enforce-statement-order", rule, {
|
|
|
523
551
|
],
|
|
524
552
|
},
|
|
525
553
|
|
|
554
|
+
// super() neutrality must not mask real violations: a definition after a
|
|
555
|
+
// genuine side effect inside a derived constructor is still flagged
|
|
556
|
+
{
|
|
557
|
+
code: `
|
|
558
|
+
class NetworkStage extends Stage {
|
|
559
|
+
constructor(scope, id, props) {
|
|
560
|
+
super(scope, id, props);
|
|
561
|
+
configureNetwork(props);
|
|
562
|
+
const environment = props.environment;
|
|
563
|
+
this.environment = environment;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
`,
|
|
567
|
+
errors: [
|
|
568
|
+
{
|
|
569
|
+
messageId: "wrongOrder",
|
|
570
|
+
data: {
|
|
571
|
+
current: DEFINITIONS,
|
|
572
|
+
previous: SIDE_EFFECTS,
|
|
573
|
+
},
|
|
574
|
+
},
|
|
575
|
+
],
|
|
576
|
+
},
|
|
577
|
+
|
|
526
578
|
// Object method with side effect before definition
|
|
527
579
|
{
|
|
528
580
|
code: `
|
|
@@ -122,6 +122,21 @@ module.exports = {
|
|
|
122
122
|
return ORDER.DEFINITION;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
// super(...) is a language-mandated constructor prologue: it must run
|
|
126
|
+
// before any `this` access, so definitions that follow it are
|
|
127
|
+
// unavoidable. Treat it as order-neutral rather than a side effect.
|
|
128
|
+
if (statement.type === "ExpressionStatement") {
|
|
129
|
+
const expression = unwrapExpression(statement.expression);
|
|
130
|
+
|
|
131
|
+
if (
|
|
132
|
+
expression &&
|
|
133
|
+
expression.type === "CallExpression" &&
|
|
134
|
+
expression.callee.type === "Super"
|
|
135
|
+
) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
125
140
|
// Expression statements with function calls are side effects
|
|
126
141
|
if (isFunctionCallExpression(statement)) {
|
|
127
142
|
return ORDER.SIDE_EFFECT;
|
package/package.json
CHANGED
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"ws": ">=8.20.1"
|
|
96
96
|
},
|
|
97
97
|
"name": "@codyswann/lisa",
|
|
98
|
-
"version": "2.191.
|
|
98
|
+
"version": "2.191.6",
|
|
99
99
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
100
100
|
"main": "dist/index.js",
|
|
101
101
|
"exports": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.6",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.6",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.6",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.6",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.6",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|