-
Notifications
You must be signed in to change notification settings - Fork 18
Angular support, bug fixes, and the start of an API refactor #56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Add Validated base class with Zod schema integration - Refactor TechniqueImpl to use new architecture pattern - Replace interface declaration merging with schema-based approach - Add comprehensive relationship management with private fields - Include domain-specific utility methods (getAttackId, supportsPlatform, etc.) - Add technique-impl.example.ts demonstrating usage patterns - Remove TypeScript linting suppressions from implementation This proof of concept establishes the foundation for overhauling all *Impl classes to eliminate declaration merging workarounds and improve type safety.
- Rename DataSourceOptions → ContentOriginOptions - Rename DataSourceRegistration → ContentOriginRegistration - Rename registerDataSource() → registerContentOrigin() - Rename DataSourceMap → ContentOriginMap - Rename dataSources variable → contentOrigins - Change 'attack' source option to 'mitre' for clarity - Update all documentation in README.md, docs/, and docusaurus/docs/ - Update error messages and comments throughout codebase BREAKING CHANGE: API functions and types have been renamed. Update imports to use ContentOriginRegistration and registerContentOrigin instead of DataSourceRegistration and registerDataSource. Change source: 'attack' to source: 'mitre' in configurations.
- Refinements have been moved from @/refinements to @/schemas/refinements - Update downstream references accordingly
- Generator has been moved to the utils sub-package - Update downstream references accordingly
- Update test modules in test/documentation - Update references to content origin (from data source) - Update import paths - Fix some small type hinting issues
- Create tsup.config.ts to enable separate builds for browser (ESM), Node.js (ESM), and Node.js (CJS)
- Set platform: 'browser' for browser build
- Changed build script to use npx tsup (reads from tsup.config.ts)
- Changed all imports to use import { z } from 'zod/v4' (consistent pattern)
- Refactored readFile() to use universal fetch() API (works in both browser and Node.js)
- Wrapped process.env access in try-catch for browser safety
This change should (in theory) allow for the ADM to run as an an Angular dependency,
even when static analysis tools perform full code coverage for browser-only envs.
|
🎉 This PR is included in version 5.0.0-beta.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of what has changed
This is a catch all PR to get some ongoing work merged into a dev distribution channel
Firstly, there have been reports that the ADM cannot be used in Angular due to the Angular compiler performing static analysis at build time which triggers coverage of Node.js code, despite that code being conditioned behind environment checks. This PR contains some
tsupchanges that aims to transpile multiple copies of the ADM for different build environments. This requires additional interop testing before it can be merged into a stable distribution channel.Secondly, there are some bugs that need squashing.
Thirdly, I have started refactoring the library to draw a clearer line of separation between our Zod schemas, the TypeScript API, and general-purpose utilities. The TS API still needs major work, but the foundation has been laid with the new
Validatedclass.I'm mainly just trying to get this merged so I can perform some interop testing with Workbench.