logicstamp-context 0.8.6 → 0.8.8
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/dist/cli/commands/clean.d.ts.map +1 -1
- package/dist/cli/commands/clean.js +8 -3
- package/dist/cli/commands/clean.js.map +1 -1
- package/dist/cli/commands/compare/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/compare/cleanup.js.map +1 -1
- package/dist/cli/commands/compare/core.d.ts.map +1 -1
- package/dist/cli/commands/compare/core.js +49 -35
- package/dist/cli/commands/compare/core.js.map +1 -1
- package/dist/cli/commands/compare/display.d.ts.map +1 -1
- package/dist/cli/commands/compare/display.js +31 -18
- package/dist/cli/commands/compare/display.js.map +1 -1
- package/dist/cli/commands/compare/multiFile.d.ts.map +1 -1
- package/dist/cli/commands/compare/multiFile.js +8 -8
- package/dist/cli/commands/compare/multiFile.js.map +1 -1
- package/dist/cli/commands/compare/singleFile.d.ts.map +1 -1
- package/dist/cli/commands/compare/singleFile.js +19 -13
- package/dist/cli/commands/compare/singleFile.js.map +1 -1
- package/dist/cli/commands/compare/types.d.ts.map +1 -1
- package/dist/cli/commands/compare/utils.d.ts.map +1 -1
- package/dist/cli/commands/compare/utils.js +2 -2
- package/dist/cli/commands/compare/utils.js.map +1 -1
- package/dist/cli/commands/context/bundleFormatter.d.ts.map +1 -1
- package/dist/cli/commands/context/bundleFormatter.js +9 -5
- package/dist/cli/commands/context/bundleFormatter.js.map +1 -1
- package/dist/cli/commands/context/configManager.d.ts.map +1 -1
- package/dist/cli/commands/context/configManager.js +5 -5
- package/dist/cli/commands/context/configManager.js.map +1 -1
- package/dist/cli/commands/context/contractBuilder.d.ts.map +1 -1
- package/dist/cli/commands/context/contractBuilder.js +4 -2
- package/dist/cli/commands/context/contractBuilder.js.map +1 -1
- package/dist/cli/commands/context/fileWriter.d.ts +1 -1
- package/dist/cli/commands/context/fileWriter.d.ts.map +1 -1
- package/dist/cli/commands/context/fileWriter.js +22 -14
- package/dist/cli/commands/context/fileWriter.js.map +1 -1
- package/dist/cli/commands/context/statsCalculator.d.ts.map +1 -1
- package/dist/cli/commands/context/statsCalculator.js +17 -6
- package/dist/cli/commands/context/statsCalculator.js.map +1 -1
- package/dist/cli/commands/context/tokenEstimator.d.ts +1 -1
- package/dist/cli/commands/context/tokenEstimator.d.ts.map +1 -1
- package/dist/cli/commands/context/tokenEstimator.js +54 -30
- package/dist/cli/commands/context/tokenEstimator.js.map +1 -1
- package/dist/cli/commands/context/watchMode/incrementalWatch.d.ts +1 -1
- package/dist/cli/commands/context/watchMode/incrementalWatch.d.ts.map +1 -1
- package/dist/cli/commands/context/watchMode/incrementalWatch.js +33 -25
- package/dist/cli/commands/context/watchMode/incrementalWatch.js.map +1 -1
- package/dist/cli/commands/context/watchMode/watchDiff.d.ts.map +1 -1
- package/dist/cli/commands/context/watchMode/watchDiff.js +58 -35
- package/dist/cli/commands/context/watchMode/watchDiff.js.map +1 -1
- package/dist/cli/commands/context/watchMode/watchMode.d.ts.map +1 -1
- package/dist/cli/commands/context/watchMode/watchMode.js +77 -46
- package/dist/cli/commands/context/watchMode/watchMode.js.map +1 -1
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +32 -11
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/ignore.d.ts.map +1 -1
- package/dist/cli/commands/ignore.js +5 -5
- package/dist/cli/commands/ignore.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +8 -4
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/security.d.ts +1 -1
- package/dist/cli/commands/security.d.ts.map +1 -1
- package/dist/cli/commands/security.js +28 -18
- package/dist/cli/commands/security.js.map +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +14 -9
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/handlers/cleanHandler.d.ts.map +1 -1
- package/dist/cli/handlers/cleanHandler.js.map +1 -1
- package/dist/cli/handlers/compareHandler.d.ts.map +1 -1
- package/dist/cli/handlers/compareHandler.js +77 -27
- package/dist/cli/handlers/compareHandler.js.map +1 -1
- package/dist/cli/handlers/contextHandler.d.ts.map +1 -1
- package/dist/cli/handlers/contextHandler.js +1 -1
- package/dist/cli/handlers/contextHandler.js.map +1 -1
- package/dist/cli/handlers/ignoreHandler.d.ts.map +1 -1
- package/dist/cli/handlers/ignoreHandler.js.map +1 -1
- package/dist/cli/handlers/initHandler.js.map +1 -1
- package/dist/cli/handlers/securityHandler.d.ts.map +1 -1
- package/dist/cli/handlers/securityHandler.js +1 -1
- package/dist/cli/handlers/securityHandler.js.map +1 -1
- package/dist/cli/handlers/styleHandler.d.ts.map +1 -1
- package/dist/cli/handlers/styleHandler.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/parser/argumentParser.d.ts.map +1 -1
- package/dist/cli/parser/argumentParser.js +4 -6
- package/dist/cli/parser/argumentParser.js.map +1 -1
- package/dist/cli/stamp.js +4 -2
- package/dist/cli/stamp.js.map +1 -1
- package/dist/core/astParser/detectors.d.ts +1 -1
- package/dist/core/astParser/detectors.d.ts.map +1 -1
- package/dist/core/astParser/detectors.js +56 -40
- package/dist/core/astParser/detectors.js.map +1 -1
- package/dist/core/astParser.d.ts +1 -1
- package/dist/core/astParser.d.ts.map +1 -1
- package/dist/core/astParser.js +11 -11
- package/dist/core/astParser.js.map +1 -1
- package/dist/core/contractBuilder.d.ts.map +1 -1
- package/dist/core/contractBuilder.js +10 -6
- package/dist/core/contractBuilder.js.map +1 -1
- package/dist/core/manifest.d.ts.map +1 -1
- package/dist/core/manifest.js +12 -5
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/pack/builder.d.ts.map +1 -1
- package/dist/core/pack/builder.js +7 -5
- package/dist/core/pack/builder.js.map +1 -1
- package/dist/core/pack/collector.d.ts.map +1 -1
- package/dist/core/pack/collector.js +4 -2
- package/dist/core/pack/collector.js.map +1 -1
- package/dist/core/pack/loader.d.ts.map +1 -1
- package/dist/core/pack/loader.js +21 -12
- package/dist/core/pack/loader.js.map +1 -1
- package/dist/core/pack/packageInfo.d.ts.map +1 -1
- package/dist/core/pack/packageInfo.js.map +1 -1
- package/dist/core/pack/resolver.d.ts.map +1 -1
- package/dist/core/pack/resolver.js +8 -3
- package/dist/core/pack/resolver.js.map +1 -1
- package/dist/core/pack.d.ts +9 -21
- package/dist/core/pack.d.ts.map +1 -1
- package/dist/core/pack.js +18 -27
- package/dist/core/pack.js.map +1 -1
- package/dist/core/signature.d.ts +1 -1
- package/dist/core/signature.d.ts.map +1 -1
- package/dist/core/signature.js +36 -14
- package/dist/core/signature.js.map +1 -1
- package/dist/core/violations.d.ts +3 -3
- package/dist/core/violations.d.ts.map +1 -1
- package/dist/core/violations.js +42 -21
- package/dist/core/violations.js.map +1 -1
- package/dist/extractors/express/expressExtractor.d.ts +1 -1
- package/dist/extractors/express/expressExtractor.d.ts.map +1 -1
- package/dist/extractors/express/expressExtractor.js +5 -4
- package/dist/extractors/express/expressExtractor.js.map +1 -1
- package/dist/extractors/express/index.d.ts +1 -1
- package/dist/extractors/express/index.d.ts.map +1 -1
- package/dist/extractors/express/index.js +1 -1
- package/dist/extractors/express/index.js.map +1 -1
- package/dist/extractors/nest/nestjsExtractor.d.ts +1 -1
- package/dist/extractors/nest/nestjsExtractor.d.ts.map +1 -1
- package/dist/extractors/nest/nestjsExtractor.js +4 -2
- package/dist/extractors/nest/nestjsExtractor.js.map +1 -1
- package/dist/extractors/react/componentExtractor.d.ts +1 -1
- package/dist/extractors/react/componentExtractor.d.ts.map +1 -1
- package/dist/extractors/react/componentExtractor.js +9 -3
- package/dist/extractors/react/componentExtractor.js.map +1 -1
- package/dist/extractors/react/eventExtractor.d.ts +1 -1
- package/dist/extractors/react/eventExtractor.d.ts.map +1 -1
- package/dist/extractors/react/eventExtractor.js +11 -6
- package/dist/extractors/react/eventExtractor.js.map +1 -1
- package/dist/extractors/react/hookParameterExtractor.d.ts +1 -1
- package/dist/extractors/react/hookParameterExtractor.d.ts.map +1 -1
- package/dist/extractors/react/hookParameterExtractor.js +14 -10
- package/dist/extractors/react/hookParameterExtractor.js.map +1 -1
- package/dist/extractors/react/index.d.ts +1 -1
- package/dist/extractors/react/index.d.ts.map +1 -1
- package/dist/extractors/react/index.js +1 -1
- package/dist/extractors/react/index.js.map +1 -1
- package/dist/extractors/react/propExtractor.d.ts +1 -1
- package/dist/extractors/react/propExtractor.d.ts.map +1 -1
- package/dist/extractors/react/propExtractor.js +17 -8
- package/dist/extractors/react/propExtractor.js.map +1 -1
- package/dist/extractors/react/stateExtractor.d.ts +1 -1
- package/dist/extractors/react/stateExtractor.d.ts.map +1 -1
- package/dist/extractors/react/stateExtractor.js +7 -3
- package/dist/extractors/react/stateExtractor.js.map +1 -1
- package/dist/extractors/shared/backendExtractor.d.ts +2 -2
- package/dist/extractors/shared/backendExtractor.d.ts.map +1 -1
- package/dist/extractors/shared/backendExtractor.js +8 -8
- package/dist/extractors/shared/backendExtractor.js.map +1 -1
- package/dist/extractors/shared/index.d.ts +1 -1
- package/dist/extractors/shared/index.d.ts.map +1 -1
- package/dist/extractors/shared/index.js +1 -1
- package/dist/extractors/shared/index.js.map +1 -1
- package/dist/extractors/shared/propTypeNormalizer.d.ts.map +1 -1
- package/dist/extractors/shared/propTypeNormalizer.js +4 -4
- package/dist/extractors/shared/propTypeNormalizer.js.map +1 -1
- package/dist/extractors/styling/antd.d.ts +1 -1
- package/dist/extractors/styling/antd.d.ts.map +1 -1
- package/dist/extractors/styling/antd.js +119 -45
- package/dist/extractors/styling/antd.js.map +1 -1
- package/dist/extractors/styling/chakra.d.ts +1 -1
- package/dist/extractors/styling/chakra.d.ts.map +1 -1
- package/dist/extractors/styling/chakra.js +144 -37
- package/dist/extractors/styling/chakra.js.map +1 -1
- package/dist/extractors/styling/index.d.ts +1 -1
- package/dist/extractors/styling/index.d.ts.map +1 -1
- package/dist/extractors/styling/index.js +1 -1
- package/dist/extractors/styling/index.js.map +1 -1
- package/dist/extractors/styling/layout.d.ts +1 -1
- package/dist/extractors/styling/layout.d.ts.map +1 -1
- package/dist/extractors/styling/layout.js +27 -19
- package/dist/extractors/styling/layout.js.map +1 -1
- package/dist/extractors/styling/material.d.ts +1 -1
- package/dist/extractors/styling/material.d.ts.map +1 -1
- package/dist/extractors/styling/material.js +129 -38
- package/dist/extractors/styling/material.js.map +1 -1
- package/dist/extractors/styling/motion.d.ts +1 -1
- package/dist/extractors/styling/motion.d.ts.map +1 -1
- package/dist/extractors/styling/motion.js +47 -19
- package/dist/extractors/styling/motion.js.map +1 -1
- package/dist/extractors/styling/radix.d.ts +1 -1
- package/dist/extractors/styling/radix.d.ts.map +1 -1
- package/dist/extractors/styling/radix.js +173 -29
- package/dist/extractors/styling/radix.js.map +1 -1
- package/dist/extractors/styling/scss.d.ts +1 -1
- package/dist/extractors/styling/scss.d.ts.map +1 -1
- package/dist/extractors/styling/scss.js +141 -23
- package/dist/extractors/styling/scss.js.map +1 -1
- package/dist/extractors/styling/shadcn.d.ts +1 -1
- package/dist/extractors/styling/shadcn.d.ts.map +1 -1
- package/dist/extractors/styling/shadcn.js +175 -59
- package/dist/extractors/styling/shadcn.js.map +1 -1
- package/dist/extractors/styling/styleExtractor.d.ts +1 -1
- package/dist/extractors/styling/styleExtractor.d.ts.map +1 -1
- package/dist/extractors/styling/styleExtractor.js +79 -39
- package/dist/extractors/styling/styleExtractor.js.map +1 -1
- package/dist/extractors/styling/styled.d.ts +1 -1
- package/dist/extractors/styling/styled.d.ts.map +1 -1
- package/dist/extractors/styling/styled.js +9 -5
- package/dist/extractors/styling/styled.js.map +1 -1
- package/dist/extractors/styling/styledJsx.d.ts +1 -1
- package/dist/extractors/styling/styledJsx.d.ts.map +1 -1
- package/dist/extractors/styling/styledJsx.js +9 -7
- package/dist/extractors/styling/styledJsx.js.map +1 -1
- package/dist/extractors/styling/tailwind.d.ts +1 -1
- package/dist/extractors/styling/tailwind.d.ts.map +1 -1
- package/dist/extractors/styling/tailwind.js +33 -22
- package/dist/extractors/styling/tailwind.js.map +1 -1
- package/dist/extractors/vue/componentExtractor.d.ts +1 -1
- package/dist/extractors/vue/componentExtractor.d.ts.map +1 -1
- package/dist/extractors/vue/componentExtractor.js +97 -35
- package/dist/extractors/vue/componentExtractor.js.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/types/UIFContract.d.ts.map +1 -1
- package/dist/types/UIFContract.js.map +1 -1
- package/dist/utils/cleanup.js +2 -2
- package/dist/utils/cleanup.js.map +1 -1
- package/dist/utils/codeSanitizer.d.ts.map +1 -1
- package/dist/utils/codeSanitizer.js +20 -13
- package/dist/utils/codeSanitizer.js.map +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +5 -5
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js.map +1 -1
- package/dist/utils/fileLock.d.ts.map +1 -1
- package/dist/utils/fileLock.js +3 -3
- package/dist/utils/fileLock.js.map +1 -1
- package/dist/utils/fsx.d.ts.map +1 -1
- package/dist/utils/fsx.js +11 -9
- package/dist/utils/fsx.js.map +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +16 -12
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/gitignore.d.ts.map +1 -1
- package/dist/utils/gitignore.js +13 -13
- package/dist/utils/gitignore.js.map +1 -1
- package/dist/utils/hash.d.ts.map +1 -1
- package/dist/utils/hash.js +19 -7
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/llmContext.d.ts.map +1 -1
- package/dist/utils/llmContext.js +1 -4
- package/dist/utils/llmContext.js.map +1 -1
- package/dist/utils/schemaValidator.d.ts.map +1 -1
- package/dist/utils/schemaValidator.js +9 -2
- package/dist/utils/schemaValidator.js.map +1 -1
- package/dist/utils/secretDetector.d.ts.map +1 -1
- package/dist/utils/secretDetector.js +14 -10
- package/dist/utils/secretDetector.js.map +1 -1
- package/dist/utils/stampignore.d.ts.map +1 -1
- package/dist/utils/stampignore.js +4 -4
- package/dist/utils/stampignore.js.map +1 -1
- package/dist/utils/tokens.d.ts.map +1 -1
- package/dist/utils/tokens.js.map +1 -1
- package/package.json +5 -1
package/dist/core/pack.d.ts
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import type { UIFContract } from '../types/UIFContract.js';
|
|
26
26
|
import type { ProjectManifest } from './manifest.js';
|
|
27
|
-
import { type
|
|
27
|
+
import { type BundleNode, type MissingDependency } from './pack/index.js';
|
|
28
28
|
/**
|
|
29
29
|
* Code inclusion mode for bundles
|
|
30
30
|
*/
|
|
@@ -49,11 +49,10 @@ export interface PackOptions {
|
|
|
49
49
|
/**
|
|
50
50
|
* A node in the bundle graph
|
|
51
51
|
*/
|
|
52
|
-
export type { BundleNode } from './pack/index.js';
|
|
53
52
|
/**
|
|
54
53
|
* Missing dependency information
|
|
55
54
|
*/
|
|
56
|
-
export type { MissingDependency } from './pack/index.js';
|
|
55
|
+
export type { BundleNode, MissingDependency } from './pack/index.js';
|
|
57
56
|
/**
|
|
58
57
|
* Complete bundle structure
|
|
59
58
|
*/
|
|
@@ -105,61 +104,50 @@ export interface LogicStampIndex {
|
|
|
105
104
|
source: string;
|
|
106
105
|
};
|
|
107
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Normalize a file path for cross-platform consistency
|
|
109
|
+
* Re-exports the canonical normalizeEntryId from utils/fsx
|
|
110
|
+
* This ensures all path normalization uses the same function
|
|
111
|
+
*/
|
|
112
|
+
export { normalizeEntryId } from '../utils/fsx.js';
|
|
108
113
|
/**
|
|
109
114
|
* Load manifest from file
|
|
110
115
|
*/
|
|
111
|
-
export { loadManifest } from './pack/index.js';
|
|
112
116
|
/**
|
|
113
117
|
* Load a sidecar contract file
|
|
114
118
|
* Sidecar path is computed from the manifest key (project-relative): resolved from projectRoot + key + '.uif.json'
|
|
115
119
|
*/
|
|
116
|
-
export { loadContract } from './pack/index.js';
|
|
117
|
-
/**
|
|
118
|
-
* Normalize a file path for cross-platform consistency
|
|
119
|
-
* Re-exports the canonical normalizeEntryId from utils/fsx
|
|
120
|
-
* This ensures all path normalization uses the same function
|
|
121
|
-
*/
|
|
122
|
-
export { normalizeEntryId } from '../utils/fsx.js';
|
|
123
120
|
/**
|
|
124
121
|
* Resolve input (path or name) to a manifest key
|
|
125
122
|
* This is the canonical resolution used by both pack and similar commands
|
|
126
123
|
*/
|
|
127
|
-
export { resolveKey } from './pack/index.js';
|
|
128
124
|
/**
|
|
129
125
|
* Find a component node by name or path
|
|
130
126
|
* Returns the component node and the manifest key it was found under
|
|
131
127
|
*/
|
|
132
|
-
export { findComponentByName } from './pack/index.js';
|
|
133
128
|
/**
|
|
134
129
|
* Resolve a dependency name to a manifest key
|
|
135
130
|
* Uses the canonical resolveKey() function for consistent resolution
|
|
136
131
|
* Prioritizes relative paths to avoid cross-directory conflicts
|
|
137
132
|
*/
|
|
138
|
-
export { resolveDependency } from './pack/index.js';
|
|
139
133
|
/**
|
|
140
134
|
* Perform BFS traversal to collect dependencies
|
|
141
135
|
*/
|
|
142
|
-
export { collectDependencies } from './pack/index.js';
|
|
143
136
|
/**
|
|
144
137
|
* Extract code header (JSDoc @uif block) from source file
|
|
145
138
|
*/
|
|
146
|
-
export { extractCodeHeader } from './pack/index.js';
|
|
147
139
|
/**
|
|
148
140
|
* Read full source code
|
|
149
141
|
*/
|
|
150
|
-
export { readSourceCode } from './pack/index.js';
|
|
151
142
|
/**
|
|
152
143
|
* Build edges from nodes based on dependencies
|
|
153
144
|
*/
|
|
154
|
-
export { buildEdges } from './pack/index.js';
|
|
155
145
|
/**
|
|
156
146
|
* Sort nodes deterministically for stable bundle hashes
|
|
157
147
|
*/
|
|
158
|
-
export { stableSort } from './pack/index.js';
|
|
159
148
|
/**
|
|
160
149
|
* Compute bundle hash from nodes using stable hashing
|
|
161
150
|
*/
|
|
162
|
-
export { computeBundleHash } from './pack/index.js';
|
|
163
151
|
/**
|
|
164
152
|
* Validate hash-lock: ensure contract hashes match current state
|
|
165
153
|
*
|
|
@@ -167,7 +155,7 @@ export { computeBundleHash } from './pack/index.js';
|
|
|
167
155
|
* (authoritative, not from header). fileHash() automatically strips @uif header block
|
|
168
156
|
* before hashing, so header updates won't cause hash churn.
|
|
169
157
|
*/
|
|
170
|
-
export { validateHashLock } from './pack/index.js';
|
|
158
|
+
export { buildEdges, collectDependencies, computeBundleHash, extractCodeHeader, findComponentByName, loadContract, loadManifest, readSourceCode, resolveDependency, resolveKey, stableSort, validateHashLock, } from './pack/index.js';
|
|
171
159
|
/**
|
|
172
160
|
* Main pack function - generates a bundle for a component
|
|
173
161
|
*/
|
package/dist/core/pack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/core/pack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/core/pack.ts"],"names":[],"mappings":"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"}
|
package/dist/core/pack.js
CHANGED
|
@@ -26,12 +26,11 @@
|
|
|
26
26
|
* Pack module - Generate LLM-ready context bundles for components
|
|
27
27
|
* Creates compact, hash-locked bundles with dependency graphs
|
|
28
28
|
*/
|
|
29
|
-
import { resolve, isAbsolute } from 'node:path';
|
|
30
|
-
import { getRelativePath } from '../utils/fsx.js';
|
|
31
|
-
import { normalizeEntryId } from '../utils/fsx.js';
|
|
32
29
|
import { createRequire } from 'node:module';
|
|
30
|
+
import { isAbsolute, resolve } from 'node:path';
|
|
31
|
+
import { getRelativePath, normalizeEntryId } from '../utils/fsx.js';
|
|
33
32
|
// Import from extracted modules
|
|
34
|
-
import {
|
|
33
|
+
import { buildEdges, collectDependencies, computeBundleHash, extractCodeHeader, extractPackageName, getPackageVersion, isThirdPartyPackage, loadContract, readSourceCode, recordSanitizationBatch, resolveKey, stableSort, validateHashLock, } from './pack/index.js';
|
|
35
34
|
// Load package.json to get version
|
|
36
35
|
const require = createRequire(import.meta.url);
|
|
37
36
|
const pkg = require('../../package.json');
|
|
@@ -88,61 +87,50 @@ function filterInternalComponentsFromMissing(missing, nodes, contractsMap) {
|
|
|
88
87
|
}
|
|
89
88
|
return filtered;
|
|
90
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Normalize a file path for cross-platform consistency
|
|
92
|
+
* Re-exports the canonical normalizeEntryId from utils/fsx
|
|
93
|
+
* This ensures all path normalization uses the same function
|
|
94
|
+
*/
|
|
95
|
+
export { normalizeEntryId } from '../utils/fsx.js';
|
|
91
96
|
/**
|
|
92
97
|
* Load manifest from file
|
|
93
98
|
*/
|
|
94
|
-
export { loadManifest } from './pack/index.js';
|
|
95
99
|
/**
|
|
96
100
|
* Load a sidecar contract file
|
|
97
101
|
* Sidecar path is computed from the manifest key (project-relative): resolved from projectRoot + key + '.uif.json'
|
|
98
102
|
*/
|
|
99
|
-
export { loadContract } from './pack/index.js';
|
|
100
|
-
/**
|
|
101
|
-
* Normalize a file path for cross-platform consistency
|
|
102
|
-
* Re-exports the canonical normalizeEntryId from utils/fsx
|
|
103
|
-
* This ensures all path normalization uses the same function
|
|
104
|
-
*/
|
|
105
|
-
export { normalizeEntryId } from '../utils/fsx.js';
|
|
106
103
|
/**
|
|
107
104
|
* Resolve input (path or name) to a manifest key
|
|
108
105
|
* This is the canonical resolution used by both pack and similar commands
|
|
109
106
|
*/
|
|
110
|
-
export { resolveKey } from './pack/index.js';
|
|
111
107
|
/**
|
|
112
108
|
* Find a component node by name or path
|
|
113
109
|
* Returns the component node and the manifest key it was found under
|
|
114
110
|
*/
|
|
115
|
-
export { findComponentByName } from './pack/index.js';
|
|
116
111
|
/**
|
|
117
112
|
* Resolve a dependency name to a manifest key
|
|
118
113
|
* Uses the canonical resolveKey() function for consistent resolution
|
|
119
114
|
* Prioritizes relative paths to avoid cross-directory conflicts
|
|
120
115
|
*/
|
|
121
|
-
export { resolveDependency } from './pack/index.js';
|
|
122
116
|
/**
|
|
123
117
|
* Perform BFS traversal to collect dependencies
|
|
124
118
|
*/
|
|
125
|
-
export { collectDependencies } from './pack/index.js';
|
|
126
119
|
/**
|
|
127
120
|
* Extract code header (JSDoc @uif block) from source file
|
|
128
121
|
*/
|
|
129
|
-
export { extractCodeHeader } from './pack/index.js';
|
|
130
122
|
/**
|
|
131
123
|
* Read full source code
|
|
132
124
|
*/
|
|
133
|
-
export { readSourceCode } from './pack/index.js';
|
|
134
125
|
/**
|
|
135
126
|
* Build edges from nodes based on dependencies
|
|
136
127
|
*/
|
|
137
|
-
export { buildEdges } from './pack/index.js';
|
|
138
128
|
/**
|
|
139
129
|
* Sort nodes deterministically for stable bundle hashes
|
|
140
130
|
*/
|
|
141
|
-
export { stableSort } from './pack/index.js';
|
|
142
131
|
/**
|
|
143
132
|
* Compute bundle hash from nodes using stable hashing
|
|
144
133
|
*/
|
|
145
|
-
export { computeBundleHash } from './pack/index.js';
|
|
146
134
|
/**
|
|
147
135
|
* Validate hash-lock: ensure contract hashes match current state
|
|
148
136
|
*
|
|
@@ -150,7 +138,7 @@ export { computeBundleHash } from './pack/index.js';
|
|
|
150
138
|
* (authoritative, not from header). fileHash() automatically strips @uif header block
|
|
151
139
|
* before hashing, so header updates won't cause hash churn.
|
|
152
140
|
*/
|
|
153
|
-
export { validateHashLock } from './pack/index.js';
|
|
141
|
+
export { buildEdges, collectDependencies, computeBundleHash, extractCodeHeader, findComponentByName, loadContract, loadManifest, readSourceCode, resolveDependency, resolveKey, stableSort, validateHashLock, } from './pack/index.js';
|
|
154
142
|
/**
|
|
155
143
|
* Main pack function - generates a bundle for a component
|
|
156
144
|
*/
|
|
@@ -162,7 +150,7 @@ export async function pack(entryId, manifest, options, projectRoot) {
|
|
|
162
150
|
if (!manifestKey) {
|
|
163
151
|
const componentKeys = Object.keys(manifest.components).slice(0, 5);
|
|
164
152
|
const suggestions = componentKeys.length > 0
|
|
165
|
-
? `\nAvailable components:\n${componentKeys.map(k => ` - ${k}`).join('\n')}${componentKeys.length < manifest.totalComponents ? `\n ... and ${manifest.totalComponents - componentKeys.length} more` : ''}`
|
|
153
|
+
? `\nAvailable components:\n${componentKeys.map((k) => ` - ${k}`).join('\n')}${componentKeys.length < manifest.totalComponents ? `\n ... and ${manifest.totalComponents - componentKeys.length} more` : ''}`
|
|
166
154
|
: '';
|
|
167
155
|
throw new Error(`Component not found: ${entryId} (normalized: ${normalizedEntry}).` +
|
|
168
156
|
suggestions);
|
|
@@ -178,9 +166,12 @@ export async function pack(entryId, manifest, options, projectRoot) {
|
|
|
178
166
|
const sanitizationInfos = [];
|
|
179
167
|
for (const manifestKey of Array.from(visited)) {
|
|
180
168
|
// Try to get contract from in-memory map first (standalone mode), then from sidecar file
|
|
181
|
-
const contract = options.contractsMap?.get(manifestKey) ||
|
|
169
|
+
const contract = options.contractsMap?.get(manifestKey) ||
|
|
170
|
+
(await loadContract(manifestKey, projectRoot));
|
|
182
171
|
if (!contract) {
|
|
183
|
-
const absolutePath = isAbsolute(manifestKey)
|
|
172
|
+
const absolutePath = isAbsolute(manifestKey)
|
|
173
|
+
? manifestKey
|
|
174
|
+
: resolve(projectRoot, manifestKey);
|
|
184
175
|
const sidecarPath = `${absolutePath}.uif.json`;
|
|
185
176
|
if (options.strict) {
|
|
186
177
|
throw new Error(`Missing contract for ${manifestKey} (strict mode enabled). ` +
|
|
@@ -217,8 +208,8 @@ export async function pack(entryId, manifest, options, projectRoot) {
|
|
|
217
208
|
}
|
|
218
209
|
// Get code/header based on options
|
|
219
210
|
// Use manifestKey with projectRoot for file operations
|
|
220
|
-
let codeHeader
|
|
221
|
-
let code
|
|
211
|
+
let codeHeader;
|
|
212
|
+
let code;
|
|
222
213
|
if (options.includeCode === 'header') {
|
|
223
214
|
const headerResult = await extractCodeHeader(manifestKey, projectRoot);
|
|
224
215
|
codeHeader = headerResult.header;
|
package/dist/core/pack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/core/pack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;GAGG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/core/pack.ts"],"names":[],"mappings":"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"}
|
package/dist/core/signature.d.ts
CHANGED
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
/**
|
|
26
26
|
* Logic Signature Builder - Applies contract presets and generates predictions
|
|
27
27
|
*/
|
|
28
|
-
import type { AstExtract } from './astParser.js';
|
|
29
28
|
import type { ContractPreset, LogicSignature } from '../types/UIFContract.js';
|
|
29
|
+
import type { AstExtract } from './astParser.js';
|
|
30
30
|
export interface SignatureResult {
|
|
31
31
|
signature: LogicSignature;
|
|
32
32
|
prediction: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/core/signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;GAEG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/core/signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,cAAc,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,cAAc,GACrB,eAAe,CA4HjB;AAiGD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAmDvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CA8E1E"}
|
package/dist/core/signature.js
CHANGED
|
@@ -26,19 +26,21 @@
|
|
|
26
26
|
* Build logic signature with preset validation
|
|
27
27
|
*/
|
|
28
28
|
export function buildLogicSignature(ast, preset) {
|
|
29
|
+
const backendRoutes = ast.backend?.routes;
|
|
29
30
|
const signature = {
|
|
30
31
|
props: ast.props,
|
|
31
32
|
emits: ast.emits,
|
|
32
33
|
state: Object.keys(ast.state).length > 0 ? ast.state : undefined,
|
|
33
34
|
// For backend files, aggregate API signatures from all routes
|
|
34
|
-
...(
|
|
35
|
+
...(backendRoutes &&
|
|
36
|
+
backendRoutes.length > 0 && {
|
|
35
37
|
apiSignature: (() => {
|
|
36
38
|
// Aggregate parameters from all routes
|
|
37
39
|
const allParameters = {};
|
|
38
40
|
const returnTypes = new Set();
|
|
39
41
|
const requestTypes = new Set();
|
|
40
42
|
const responseTypes = new Set();
|
|
41
|
-
for (const route of
|
|
43
|
+
for (const route of backendRoutes) {
|
|
42
44
|
// Collect route path parameters (e.g., :id -> id)
|
|
43
45
|
if (route.params) {
|
|
44
46
|
for (const param of route.params) {
|
|
@@ -56,7 +58,8 @@ export function buildLogicSignature(ast, preset) {
|
|
|
56
58
|
if (route.apiSignature?.parameters) {
|
|
57
59
|
for (const [paramName, paramType] of Object.entries(route.apiSignature.parameters)) {
|
|
58
60
|
// Prefer more specific types over 'string' defaults
|
|
59
|
-
if (!allParameters[paramName] ||
|
|
61
|
+
if (!allParameters[paramName] ||
|
|
62
|
+
allParameters[paramName] === 'string') {
|
|
60
63
|
allParameters[paramName] = paramType;
|
|
61
64
|
}
|
|
62
65
|
}
|
|
@@ -66,7 +69,8 @@ export function buildLogicSignature(ast, preset) {
|
|
|
66
69
|
returnTypes.add(route.apiSignature.returnType);
|
|
67
70
|
}
|
|
68
71
|
// Collect request types (for POST/PUT/PATCH)
|
|
69
|
-
if (['POST', 'PUT', 'PATCH'].includes(route.method) &&
|
|
72
|
+
if (['POST', 'PUT', 'PATCH'].includes(route.method) &&
|
|
73
|
+
route.apiSignature?.requestType) {
|
|
70
74
|
requestTypes.add(route.apiSignature.requestType);
|
|
71
75
|
}
|
|
72
76
|
// Collect response types
|
|
@@ -83,17 +87,26 @@ export function buildLogicSignature(ast, preset) {
|
|
|
83
87
|
if (returnTypes.size > 0) {
|
|
84
88
|
const returnTypeArray = Array.from(returnTypes);
|
|
85
89
|
// If all routes have the same return type, use it; otherwise use first
|
|
86
|
-
aggregated.returnType =
|
|
90
|
+
aggregated.returnType =
|
|
91
|
+
returnTypeArray.length === 1
|
|
92
|
+
? returnTypeArray[0]
|
|
93
|
+
: returnTypeArray[0];
|
|
87
94
|
}
|
|
88
95
|
// Use most common request type, or first if all different
|
|
89
96
|
if (requestTypes.size > 0) {
|
|
90
97
|
const requestTypeArray = Array.from(requestTypes);
|
|
91
|
-
aggregated.requestType =
|
|
98
|
+
aggregated.requestType =
|
|
99
|
+
requestTypeArray.length === 1
|
|
100
|
+
? requestTypeArray[0]
|
|
101
|
+
: requestTypeArray[0];
|
|
92
102
|
}
|
|
93
103
|
// Use most common response type, or first if all different
|
|
94
104
|
if (responseTypes.size > 0) {
|
|
95
105
|
const responseTypeArray = Array.from(responseTypes);
|
|
96
|
-
aggregated.responseType =
|
|
106
|
+
aggregated.responseType =
|
|
107
|
+
responseTypeArray.length === 1
|
|
108
|
+
? responseTypeArray[0]
|
|
109
|
+
: responseTypeArray[0];
|
|
97
110
|
}
|
|
98
111
|
return Object.keys(aggregated).length > 0 ? aggregated : undefined;
|
|
99
112
|
})(),
|
|
@@ -181,7 +194,8 @@ function applyDisplayOnlyPreset(ast, prediction, violations) {
|
|
|
181
194
|
export function generateBehavioralPredictions(ast) {
|
|
182
195
|
const predictions = [];
|
|
183
196
|
// Form handling patterns
|
|
184
|
-
if (ast.hooks.includes('useForm') ||
|
|
197
|
+
if (ast.hooks.includes('useForm') ||
|
|
198
|
+
ast.functions.some((f) => f.includes('validate'))) {
|
|
185
199
|
predictions.push('Includes form validation logic');
|
|
186
200
|
}
|
|
187
201
|
// Side effects
|
|
@@ -220,20 +234,25 @@ export function generateBehavioralPredictions(ast) {
|
|
|
220
234
|
* Infer component description from file name and structure
|
|
221
235
|
*/
|
|
222
236
|
export function inferDescription(filePath, ast) {
|
|
223
|
-
const fileName = filePath
|
|
237
|
+
const fileName = filePath
|
|
238
|
+
.split(/[/\\]/)
|
|
239
|
+
.pop()
|
|
240
|
+
?.replace(/\.(tsx?|jsx?)$/, '') || 'Component';
|
|
224
241
|
// Check kind first - non-React files should get appropriate labels
|
|
225
242
|
if (ast.kind === 'node:cli') {
|
|
226
243
|
return `${fileName} - CLI entry point`;
|
|
227
244
|
}
|
|
228
245
|
if (ast.kind === 'ts:module') {
|
|
229
246
|
// Check for common utility patterns
|
|
230
|
-
if (fileName.toLowerCase().includes('util') ||
|
|
247
|
+
if (fileName.toLowerCase().includes('util') ||
|
|
248
|
+
fileName.toLowerCase().includes('helper')) {
|
|
231
249
|
return `${fileName} - Utility module`;
|
|
232
250
|
}
|
|
233
251
|
if (fileName.toLowerCase().includes('config')) {
|
|
234
252
|
return `${fileName} - Configuration module`;
|
|
235
253
|
}
|
|
236
|
-
if (fileName.toLowerCase().includes('type') ||
|
|
254
|
+
if (fileName.toLowerCase().includes('type') ||
|
|
255
|
+
fileName.toLowerCase().includes('interface')) {
|
|
237
256
|
return `${fileName} - Type definitions`;
|
|
238
257
|
}
|
|
239
258
|
return `${fileName} - TypeScript module`;
|
|
@@ -249,16 +268,19 @@ export function inferDescription(filePath, ast) {
|
|
|
249
268
|
if (fileName.toLowerCase().includes('form')) {
|
|
250
269
|
return `${fileName} - Form component with validation`;
|
|
251
270
|
}
|
|
252
|
-
if (fileName.toLowerCase().includes('modal') ||
|
|
271
|
+
if (fileName.toLowerCase().includes('modal') ||
|
|
272
|
+
fileName.toLowerCase().includes('dialog')) {
|
|
253
273
|
return `${fileName} - Modal/dialog component`;
|
|
254
274
|
}
|
|
255
|
-
if (fileName.toLowerCase().includes('input') ||
|
|
275
|
+
if (fileName.toLowerCase().includes('input') ||
|
|
276
|
+
fileName.toLowerCase().includes('field')) {
|
|
256
277
|
return `${fileName} - Form input field`;
|
|
257
278
|
}
|
|
258
279
|
if (fileName.toLowerCase().includes('card')) {
|
|
259
280
|
return `${fileName} - Card display component`;
|
|
260
281
|
}
|
|
261
|
-
if (fileName.toLowerCase().includes('nav') ||
|
|
282
|
+
if (fileName.toLowerCase().includes('nav') ||
|
|
283
|
+
fileName.toLowerCase().includes('menu')) {
|
|
262
284
|
return `${fileName} - Navigation component`;
|
|
263
285
|
}
|
|
264
286
|
// Default description based on state and emits
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/core/signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAeH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAe,EACf,MAAsB;IAEtB,MAAM,SAAS,GAAmB;QAChC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAChE,8DAA8D;QAC9D,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/core/signature.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* Provides consistent breaking change detection across watch and compare commands.
|
|
5
5
|
* Uses adapters to normalize different input formats to a common internal representation.
|
|
6
6
|
*/
|
|
7
|
-
import type { Violation, ViolationsSummary } from '../utils/config.js';
|
|
8
|
-
import type { BundleChanges } from '../cli/commands/context/watchMode/watchDiff.js';
|
|
9
7
|
import type { CompareResult } from '../cli/commands/compare/types.js';
|
|
8
|
+
import type { BundleChanges } from '../cli/commands/context/watchMode/watchDiff.js';
|
|
9
|
+
import type { Violation, ViolationsSummary } from '../utils/config.js';
|
|
10
10
|
export type { Violation, ViolationsSummary } from '../utils/config.js';
|
|
11
11
|
/**
|
|
12
12
|
* Input types for violation detection
|
|
@@ -30,7 +30,7 @@ export declare function summarizeViolations(violations: Violation[]): Violations
|
|
|
30
30
|
/**
|
|
31
31
|
* Display violations to console
|
|
32
32
|
*/
|
|
33
|
-
export declare function displayViolations(violations: Violation[],
|
|
33
|
+
export declare function displayViolations(violations: Violation[], _options?: {
|
|
34
34
|
quiet?: boolean;
|
|
35
35
|
}): void;
|
|
36
36
|
//# sourceMappingURL=violations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"violations.d.ts","sourceRoot":"","sources":["../../src/core/violations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"violations.d.ts","sourceRoot":"","sources":["../../src/core/violations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AA6UtE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAAE,CAO5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,EAAE,GACtB,iBAAiB,CAYnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,IAAI,CAuBN"}
|
package/dist/core/violations.js
CHANGED
|
@@ -101,18 +101,30 @@ function normalizeFromCompare(result, gitBaseline) {
|
|
|
101
101
|
for (const delta of deltas) {
|
|
102
102
|
switch (delta.type) {
|
|
103
103
|
case 'props': {
|
|
104
|
-
const oldObj =
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
? delta.
|
|
104
|
+
const oldObj = delta.old &&
|
|
105
|
+
typeof delta.old === 'object' &&
|
|
106
|
+
!Array.isArray(delta.old)
|
|
107
|
+
? delta.old
|
|
108
|
+
: {};
|
|
109
|
+
const newObj = delta.new &&
|
|
110
|
+
typeof delta.new === 'object' &&
|
|
111
|
+
!Array.isArray(delta.new)
|
|
112
|
+
? delta.new
|
|
113
|
+
: {};
|
|
108
114
|
normalizedChange.props = diffObjects(oldObj, newObj);
|
|
109
115
|
break;
|
|
110
116
|
}
|
|
111
117
|
case 'emits': {
|
|
112
|
-
const oldObj =
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
? delta.
|
|
118
|
+
const oldObj = delta.old &&
|
|
119
|
+
typeof delta.old === 'object' &&
|
|
120
|
+
!Array.isArray(delta.old)
|
|
121
|
+
? delta.old
|
|
122
|
+
: {};
|
|
123
|
+
const newObj = delta.new &&
|
|
124
|
+
typeof delta.new === 'object' &&
|
|
125
|
+
!Array.isArray(delta.new)
|
|
126
|
+
? delta.new
|
|
127
|
+
: {};
|
|
116
128
|
normalizedChange.emits = diffObjects(oldObj, newObj);
|
|
117
129
|
break;
|
|
118
130
|
}
|
|
@@ -129,10 +141,16 @@ function normalizeFromCompare(result, gitBaseline) {
|
|
|
129
141
|
break;
|
|
130
142
|
}
|
|
131
143
|
case 'state': {
|
|
132
|
-
const oldObj =
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
? delta.
|
|
144
|
+
const oldObj = delta.old &&
|
|
145
|
+
typeof delta.old === 'object' &&
|
|
146
|
+
!Array.isArray(delta.old)
|
|
147
|
+
? delta.old
|
|
148
|
+
: {};
|
|
149
|
+
const newObj = delta.new &&
|
|
150
|
+
typeof delta.new === 'object' &&
|
|
151
|
+
!Array.isArray(delta.new)
|
|
152
|
+
? delta.new
|
|
153
|
+
: {};
|
|
136
154
|
normalizedChange.state = diffObjects(oldObj, newObj);
|
|
137
155
|
break;
|
|
138
156
|
}
|
|
@@ -141,8 +159,11 @@ function normalizeFromCompare(result, gitBaseline) {
|
|
|
141
159
|
}
|
|
142
160
|
}
|
|
143
161
|
// Only add if there are actual changes to detect
|
|
144
|
-
if (normalizedChange.props ||
|
|
145
|
-
normalizedChange.
|
|
162
|
+
if (normalizedChange.props ||
|
|
163
|
+
normalizedChange.emits ||
|
|
164
|
+
normalizedChange.state ||
|
|
165
|
+
normalizedChange.functions ||
|
|
166
|
+
normalizedChange.variables) {
|
|
146
167
|
normalized.push(normalizedChange);
|
|
147
168
|
}
|
|
148
169
|
}
|
|
@@ -256,8 +277,8 @@ export function detectViolations(input) {
|
|
|
256
277
|
* Create a summary of violations
|
|
257
278
|
*/
|
|
258
279
|
export function summarizeViolations(violations) {
|
|
259
|
-
const errors = violations.filter(v => v.severity === 'error');
|
|
260
|
-
const warnings = violations.filter(v => v.severity === 'warning');
|
|
280
|
+
const errors = violations.filter((v) => v.severity === 'error');
|
|
281
|
+
const warnings = violations.filter((v) => v.severity === 'warning');
|
|
261
282
|
return {
|
|
262
283
|
timestamp: new Date().toISOString(),
|
|
263
284
|
totalViolations: violations.length,
|
|
@@ -270,21 +291,21 @@ export function summarizeViolations(violations) {
|
|
|
270
291
|
/**
|
|
271
292
|
* Display violations to console
|
|
272
293
|
*/
|
|
273
|
-
export function displayViolations(violations,
|
|
294
|
+
export function displayViolations(violations, _options = {}) {
|
|
274
295
|
if (violations.length === 0)
|
|
275
296
|
return;
|
|
276
|
-
const errors = violations.filter(v => v.severity === 'error');
|
|
277
|
-
const warnings = violations.filter(v => v.severity === 'warning');
|
|
297
|
+
const errors = violations.filter((v) => v.severity === 'error');
|
|
298
|
+
const warnings = violations.filter((v) => v.severity === 'warning');
|
|
278
299
|
console.log(`\n ⚠️ Strict Mode: ${violations.length} violation(s) detected`);
|
|
279
300
|
if (errors.length > 0) {
|
|
280
301
|
console.log(`\n ❌ Errors (${errors.length}):`);
|
|
281
|
-
errors.forEach(v => {
|
|
302
|
+
errors.forEach((v) => {
|
|
282
303
|
console.log(` ${v.message}`);
|
|
283
304
|
});
|
|
284
305
|
}
|
|
285
306
|
if (warnings.length > 0) {
|
|
286
307
|
console.log(`\n ⚠️ Warnings (${warnings.length}):`);
|
|
287
|
-
warnings.forEach(v => {
|
|
308
|
+
warnings.forEach((v) => {
|
|
288
309
|
console.log(` ${v.message}`);
|
|
289
310
|
});
|
|
290
311
|
}
|