@simplysm/lint 14.0.46 → 14.0.48

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 ADDED
@@ -0,0 +1,130 @@
1
+ # @simplysm/lint
2
+
3
+ Simplysm 모노레포 전용 ESLint 플러그인 및 공유 Flat Config 설정. 커스텀 규칙 8개와 권장 설정을 제공한다.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @simplysm/lint
9
+ ```
10
+
11
+ ## API Overview
12
+
13
+ ### Plugin (`@simplysm/lint/eslint-plugin`)
14
+
15
+ | API | Type | Description |
16
+ |-----|------|-------------|
17
+ | `default` | object | `{ rules: {...} }` 형태의 ESLint 플러그인 객체. 8개의 커스텀 규칙을 포함한다 |
18
+
19
+ #### Rules
20
+
21
+ | Rule | Type | Fixable | Description |
22
+ |------|------|---------|-------------|
23
+ | `no-hard-private` | problem | autofix | ECMAScript `#private` 필드를 금지하고 TypeScript `private _` 스타일을 강제한다. 선언(`#field`, `#method()`, `accessor #field`)과 사용(`this.#field`) 모두 감지. 이름 충돌 시 `nameConflict` 메시지 보고 |
24
+ | `no-subpath-imports-from-simplysm` | problem | autofix | `@simplysm/*` 패키지에서 `src` 하위 경로 import를 금지한다. 정적 import, 동적 import, re-export 모두 감지. `@simplysm/pkg/src/...` -> `@simplysm/pkg`로 자동 수정 |
25
+ | `ts-no-throw-not-implemented-error` | suggestion | - | `@simplysm/core-common`의 `NotImplementedError` 사용을 경고한다. named import, aliased import, namespace import 모두 감지. 동적 import는 미감지 |
26
+ | `ts-no-unused-injects` | problem | autofix | 미사용 Angular `inject()` 필드를 감지하여 제거한다. 클래스 내 `inject()` 호출로 초기화된 프로퍼티 중 다른 곳에서 참조되지 않는 필드를 보고 |
27
+ | `ts-no-unused-protected-readonly` | problem | autofix | Angular `@Component` 클래스의 미사용 `protected readonly` 필드를 감지하여 제거한다. 인라인 템플릿과 클래스 본문 모두에서 참조 여부를 확인 |
28
+ | `ng-template-no-todo-comments` | problem | - | HTML 템플릿 내 `<!-- TODO: ... -->` 주석을 경고한다. raw text regex 방식으로 동작 |
29
+ | `ng-template-no-strict-null-check` | problem | - | Angular 템플릿에서 `=== null`, `!== null`, `=== undefined`, `!== undefined` 사용을 금지한다. `== null` / `!= null`로 통일하도록 강제. autofix 미제공(인라인 템플릿 offset 매핑 문제) |
30
+ | `ng-template-sd-require-binding-attrs` | problem | autofix | `sd-*` 컴포넌트에서 허용 목록 외 plain attribute 사용을 금지하고 Angular property binding(`[attr]="..."`)을 강제한다 |
31
+
32
+ #### `ng-template-sd-require-binding-attrs` Options
33
+
34
+ 유일하게 사용자 옵션을 받는 규칙이다.
35
+
36
+ | Field | Type | Default | Description |
37
+ |-------|------|---------|-------------|
38
+ | `selectorPrefixes` | `string[]` | `["sd-"]` | 검사 대상 엘리먼트의 태그명 접두사 목록 |
39
+ | `allowAttributes` | `string[]` | `["id", "class", "style", "title", "tabindex", "role"]` | plain attribute로 허용할 속성명 목록 |
40
+ | `allowAttributePrefixes` | `string[]` | `["aria-", "data-", "sd-"]` | plain attribute로 허용할 속성명 접두사 목록 |
41
+
42
+ ### Recommended Config (`@simplysm/lint/eslint-recommended`)
43
+
44
+ | API | Type | Description |
45
+ |-----|------|-------------|
46
+ | `default` | `FlatConfig.Config[]` | `tseslint.config()`으로 생성된 Flat Config 배열. 커스텀 플러그인과 외부 플러그인을 조합한 권장 설정 |
47
+
48
+ #### Config 블록 구성
49
+
50
+ | 파일 패턴 | 적용 플러그인 | 주요 규칙 |
51
+ |-----------|-------------|-----------|
52
+ | `**/*.js`, `**/*.mjs`, `**/*.cjs` | `@simplysm`, `import`, `unused-imports` | `no-hard-private`, `no-subpath-imports-from-simplysm`, `require-await`, `no-shadow` |
53
+ | `**/*.ts` | `@typescript-eslint`, `@simplysm`, `import`, `unused-imports`, `angular-eslint` | 전체 커스텀 규칙 + `require-await`, `strict-boolean-expressions`, `prefer-readonly`, `only-throw-error`, `no-array-delete` 등 |
54
+ | `**/*.html` | `@simplysm`, `@angular-eslint/template` (recommended + accessibility) | `ng-template-no-strict-null-check`, `ng-template-no-todo-comments`, `ng-template-sd-require-binding-attrs` |
55
+ | `**/tests/**/*.ts` | - | `no-console`, `import/no-extraneous-dependencies`, `ts-no-throw-not-implemented-error` 비활성화 |
56
+ | `**/vitest.config.ts` | - | `no-restricted-properties` 비활성화 (`process.env` 접근 허용) |
57
+
58
+ #### 공유 규칙 변수
59
+
60
+ | Variable | Description |
61
+ |----------|-------------|
62
+ | `commonRules` | `eqeqeq` (`null` 비교만 `==` 허용), `no-warning-comments`, `no-self-compare`, `array-callback-return` |
63
+ | `noNodeBuiltinsRules` | `Buffer` 전역 사용 금지, `buffer`/`events`/`eventemitter3` import 금지 |
64
+ | `noDirectEnvAccessRules` | `process.env` 및 `import.meta.env` 직접 접근 금지 (`env("...")` 사용 강제), `NODE_ENV` 환경변수 사용 금지 |
65
+ | `unusedImportsRules` | 미사용 import 자동 제거 (`_` 접두사 변수 무시) |
66
+
67
+ #### Ignores
68
+
69
+ `node_modules/`, `dist/`, `.*` (dotfiles), `_*` (underscore-prefixed) 디렉토리를 무시한다.
70
+
71
+ ### Utility (internal)
72
+
73
+ | API | Type | Description |
74
+ |-----|------|-------------|
75
+ | `createRule` | const | `ESLintUtils.RuleCreator` 래퍼. 규칙 문서 URL을 자동 생성한다. 패키지 내부에서만 사용되며 entrypoint에서 export되지 않는다 |
76
+
77
+ ## Usage Examples
78
+
79
+ ### Flat Config에서 권장 설정 사용
80
+
81
+ ```typescript
82
+ // eslint.config.js
83
+ import recommended from "@simplysm/lint/eslint-recommended";
84
+
85
+ export default [
86
+ ...recommended,
87
+ // 프로젝트별 추가 설정
88
+ ];
89
+ ```
90
+
91
+ ### 플러그인만 사용하여 개별 규칙 활성화
92
+
93
+ ```typescript
94
+ // eslint.config.js
95
+ import plugin from "@simplysm/lint/eslint-plugin";
96
+
97
+ export default [
98
+ {
99
+ plugins: {
100
+ "@simplysm": plugin,
101
+ },
102
+ rules: {
103
+ "@simplysm/no-hard-private": "error",
104
+ "@simplysm/no-subpath-imports-from-simplysm": "error",
105
+ },
106
+ },
107
+ ];
108
+ ```
109
+
110
+ ### `ng-template-sd-require-binding-attrs` 옵션 커스터마이징
111
+
112
+ ```typescript
113
+ // eslint.config.js
114
+ export default [
115
+ ...recommended,
116
+ {
117
+ files: ["**/*.html"],
118
+ rules: {
119
+ "@simplysm/ng-template-sd-require-binding-attrs": [
120
+ "error",
121
+ {
122
+ selectorPrefixes: ["sd-", "app-"],
123
+ allowAttributes: ["id", "class", "style", "title", "tabindex", "role", "name"],
124
+ allowAttributePrefixes: ["aria-", "data-", "sd-", "app-"],
125
+ },
126
+ ],
127
+ },
128
+ },
129
+ ];
130
+ ```
@@ -1 +1 @@
1
- {"version":3,"file":"ts-no-unused-protected-readonly.d.ts","sourceRoot":"","sources":["../../src/rules/ts-no-unused-protected-readonly.ts"],"names":[],"mappings":"AA8OA;;;;;;;GAOG;;;;AACH,wBAkHG"}
1
+ {"version":3,"file":"ts-no-unused-protected-readonly.d.ts","sourceRoot":"","sources":["../../src/rules/ts-no-unused-protected-readonly.ts"],"names":[],"mappings":"AAsPA;;;;;;;GAOG;;;;AACH,wBAkHG"}
@@ -44,7 +44,7 @@ function collectExprIdentifiers(ast, localVars, ids) {
44
44
  }
45
45
  }
46
46
  }
47
- else if (val != null && typeof val === "object" && typeof val.constructor === "function") {
47
+ else if (val != null && typeof val === "object") {
48
48
  collectExprIdentifiers(val, localVars, ids);
49
49
  }
50
50
  }
@@ -68,6 +68,12 @@ function collectTemplateNodeIdentifiers(node, localVars, ids) {
68
68
  if (node instanceof TmplAstLetDeclaration && typeof node.name === "string") {
69
69
  currentLocals.add(node.name);
70
70
  }
71
+ // @let value 표현식: 타입 선언(LetDeclaration.value: AST)과 런타임 형상(ASTWithSource 유사체)이
72
+ // 불일치하므로, 공통 node.value?.ast 경로에 의존하지 않고 명시 분기로 추출한다.
73
+ if (node instanceof TmplAstLetDeclaration) {
74
+ const expr = node.value.ast ?? node.value;
75
+ collectExprIdentifiers(expr, currentLocals, ids);
76
+ }
71
77
  // @if 브랜치의 expressionAlias (예: `@if (cond; as alias)`)
72
78
  if (node instanceof TmplAstIfBlockBranch && node.expressionAlias?.name != null) {
73
79
  currentLocals.add(node.expressionAlias.name);
@@ -83,8 +89,9 @@ function collectTemplateNodeIdentifiers(node, localVars, ids) {
83
89
  }
84
90
  }
85
91
  }
86
- // 보간 / BoundText
87
- if (node.value?.ast != null) {
92
+ // 보간 / BoundText / BoundAttribute 등 ASTWithSource 노드용 공통 경로.
93
+ // LetDeclaration 은 위에서 명시 분기로 처리되므로 여기서 제외한다 (이중 수집 방지).
94
+ if (!(node instanceof TmplAstLetDeclaration) && node.value?.ast != null) {
88
95
  collectExprIdentifiers(node.value.ast, currentLocals, ids);
89
96
  }
90
97
  // @if 브랜치 조건 표현식
@@ -1 +1 @@
1
- {"version":3,"file":"ts-no-unused-protected-readonly.js","sourceRoot":"","sources":["../../src/rules/ts-no-unused-protected-readonly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ts-no-unused-protected-readonly.js","sourceRoot":"","sources":["../../src/rules/ts-no-unused-protected-readonly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAC;AACzE,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,SAAS,YAAY,CACnB,IAAmB,EACnB,QAAoC;IAEpC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK;YAAE,SAAS;QACnE,MAAM,KAAK,GAAI,IAA2C,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;oBACtD,YAAY,CAAC,CAAkB,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YACzE,YAAY,CAAC,KAAsB,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,GAAQ,EAAE,SAAsB,EAAE,GAAgB;IAChF,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO;IAEnD,IACE,GAAG,YAAY,YAAY;QAC3B,CAAC,GAAG,CAAC,QAAQ,YAAY,gBAAgB,IAAI,GAAG,CAAC,QAAQ,YAAY,YAAY,CAAC;QAClF,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC5B,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EACxB,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,UAAU;YAAE,SAAS;QAC3E,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACvC,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAClD,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,8BAA8B,CACrC,IAAS,EACT,SAAsB,EACtB,GAAgB;IAEhB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAEzC,8CAA8C;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,gEAAgE;IAChE,IAAI,IAAI,YAAY,qBAAqB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3E,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,+EAA+E;IAC/E,sDAAsD;IACtD,IAAI,IAAI,YAAY,qBAAqB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAI,IAAI,CAAC,KAA2B,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;QACjE,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,uDAAuD;IACvD,IAAI,IAAI,YAAY,oBAAoB,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QAC/E,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,uEAAuE;IACvE,IAAI,IAAI,YAAY,mBAAmB,EAAE,CAAC;QACxC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3C,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,yDAAyD;IACzD,IAAI,CAAC,CAAC,IAAI,YAAY,qBAAqB,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QACxE,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;IACD,iBAAiB;IACjB,IAAI,IAAI,YAAY,oBAAoB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QACpE,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,cAAc;IACd,IAAI,IAAI,YAAY,kBAAkB,EAAE,CAAC;QACvC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,6BAA6B;IAC7B,IAAI,IAAI,YAAY,sBAAsB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QACtE,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,2EAA2E;IAC3E,IAAI,IAAI,YAAY,mBAAmB,EAAE,CAAC;QACxC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5D,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,2DAA2D;IAC3D,IAAI,IAAI,YAAY,oBAAoB,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAClF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,IAAI,OAAO,YAAY,2BAA2B,EAAE,CAAC;oBACnD,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,0BAA0B;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IACD,uBAAuB;IACvB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IACD,6BAA6B;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC5B,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IACD,uCAAuC;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,kDAAkD;IAClD,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,8BAA8B,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,IAAI,IAAI,YAAY,kBAAkB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,8BAA8B,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,IAAI,YAAY,2BAA2B,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,8BAA8B,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,IAAI,YAAY,mBAAmB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QAC9D,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,sEAAsE;IACtE,IAAI,IAAI,YAAY,oBAAoB,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,KAAqB,EACrB,SAAsB,EACtB,GAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,8BAA8B,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QACxD,IAAI,IAAI,YAAY,qBAAqB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3E,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAAC,YAAoB;IACtD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC/C,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,eAAe,UAAU,CAAC;IACxB,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,iEAAiE;SAC/E;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,WAAW,EAAE,uEAAuE;SACrF;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,OAAO;YACL,mCAAmC,CACjC,SAA+D;gBAE/D,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC;wBACxD,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;wBACnC,OAAO,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC;oBAClF,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBAEH,IAAI,kBAAkB,IAAI,IAAI;oBAAE,OAAO;gBAEvC,MAAM,IAAI,GAAG,kBAAkB,CAAC,UAAqC,CAAC;gBACtE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;oBAAE,OAAO;gBAElF,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAC3C,CAAC,CAAC,EAA0B,EAAE,CAC5B,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,QAAQ;oBAClC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBACxC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAC5B,CAAC;gBAEF,IAAI,YAAY,IAAI,IAAI;oBAAE,OAAO;gBAEjC,IAAI,YAAY,GAAG,EAAE,CAAC;gBACtB,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;gBACzC,IAAI,aAAa,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;oBAC1D,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvE,CAAC;qBAAM,IACL,aAAa,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;oBAC7C,OAAO,aAAa,CAAC,KAAK,KAAK,QAAQ,EACvC,CAAC;oBACD,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC;gBACrC,CAAC;gBAED,IAAI,YAAY,KAAK,EAAE;oBAAE,OAAO;gBAEhC,MAAM,uBAAuB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CACxD,CAAC,IAAI,EAAuC,EAAE,CAC5C,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,kBAAkB;oBAC/C,IAAI,CAAC,aAAa,KAAK,WAAW;oBAClC,IAAI,CAAC,QAAQ,KAAK,IAAI;oBACtB,CAAC,IAAI,CAAC,MAAM;oBACZ,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,CAC9C,CAAC;gBAEF,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;gBAErE,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;oBAC5C,MAAM,SAAS,GAAI,KAAK,CAAC,GAA2B,CAAC,IAAI,CAAC;oBAE1D,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAE1D,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wBACtD,IAAI,MAAM,KAAK,KAAK;4BAAE,OAAO,KAAK,CAAC;wBACnC,IAAI,KAAK,GAAG,KAAK,CAAC;wBAClB,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;4BAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gCACvE,KAAK,GAAG,IAAI,CAAC;4BACf,CAAC;wBACH,CAAC,CAAC,CAAC;wBACH,OAAO,KAAK,CAAC;oBACf,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC;wBACpC,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,KAAK;4BACX,SAAS,EAAE,aAAa;4BACxB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BACzB,GAAG,CAAC,KAAK;gCACP,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gCAC3B,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gCAEzB,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gCACnD,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gCACnD,IAAI,YAAY,EAAE,CAAC;oCACjB,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gCACtC,CAAC;gCAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gCACxD,IAAI,aAAa,EAAE,CAAC;oCAClB,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gCACjC,CAAC;gCAED,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;4BACzC,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/lint",
3
- "version": "14.0.46",
3
+ "version": "14.0.48",
4
4
  "description": "심플리즘 패키지 - ESLint plugin",
5
5
  "author": "심플리즘",
6
6
  "license": "Apache-2.0",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@angular-eslint/utils": "^21.3.1",
30
- "@angular/compiler": "^21.2.8",
30
+ "@angular/compiler": "^21.2.9",
31
31
  "@typescript-eslint/utils": "^8.58.2",
32
32
  "angular-eslint": "^21.3.1",
33
33
  "eslint": "^9.39.4",
@@ -62,7 +62,7 @@ function collectExprIdentifiers(ast: any, localVars: Set<string>, ids: Set<strin
62
62
  collectExprIdentifiers(v, localVars, ids);
63
63
  }
64
64
  }
65
- } else if (val != null && typeof val === "object" && typeof val.constructor === "function") {
65
+ } else if (val != null && typeof val === "object") {
66
66
  collectExprIdentifiers(val, localVars, ids);
67
67
  }
68
68
  }
@@ -94,6 +94,13 @@ function collectTemplateNodeIdentifiers(
94
94
  currentLocals.add(node.name);
95
95
  }
96
96
 
97
+ // @let value 표현식: 타입 선언(LetDeclaration.value: AST)과 런타임 형상(ASTWithSource 유사체)이
98
+ // 불일치하므로, 공통 node.value?.ast 경로에 의존하지 않고 명시 분기로 추출한다.
99
+ if (node instanceof TmplAstLetDeclaration) {
100
+ const expr = (node.value as { ast?: unknown }).ast ?? node.value;
101
+ collectExprIdentifiers(expr, currentLocals, ids);
102
+ }
103
+
97
104
  // @if 브랜치의 expressionAlias (예: `@if (cond; as alias)`)
98
105
  if (node instanceof TmplAstIfBlockBranch && node.expressionAlias?.name != null) {
99
106
  currentLocals.add(node.expressionAlias.name);
@@ -111,8 +118,9 @@ function collectTemplateNodeIdentifiers(
111
118
  }
112
119
  }
113
120
 
114
- // 보간 / BoundText
115
- if (node.value?.ast != null) {
121
+ // 보간 / BoundText / BoundAttribute 등 ASTWithSource 노드용 공통 경로.
122
+ // LetDeclaration 은 위에서 명시 분기로 처리되므로 여기서 제외한다 (이중 수집 방지).
123
+ if (!(node instanceof TmplAstLetDeclaration) && node.value?.ast != null) {
116
124
  collectExprIdentifiers(node.value.ast, currentLocals, ids);
117
125
  }
118
126
  // @if 브랜치 조건 표현식