{"id":30714901,"url":"https://github.com/theoliverlear/sigwarth-software-suite","last_synced_at":"2026-04-09T16:07:37.338Z","repository":{"id":311365184,"uuid":"1043468672","full_name":"theoliverlear/Sigwarth-Software-Suite","owner":"theoliverlear","description":"A repository for Maven, NPM, PyPI, and NuGet utility projects made by Sigwarth Software.","archived":false,"fork":false,"pushed_at":"2025-09-02T21:04:57.000Z","size":184,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-02T22:22:35.919Z","etag":null,"topics":["github-actions","java-library","library","maven","npm","pip","tools"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theoliverlear.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-23T23:25:36.000Z","updated_at":"2025-09-02T21:05:00.000Z","dependencies_parsed_at":"2025-08-24T11:08:55.936Z","dependency_job_id":null,"html_url":"https://github.com/theoliverlear/Sigwarth-Software-Suite","commit_stats":null,"previous_names":["theoliverlear/sigwarth-software-suite"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/theoliverlear/Sigwarth-Software-Suite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theoliverlear%2FSigwarth-Software-Suite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theoliverlear%2FSigwarth-Software-Suite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theoliverlear%2FSigwarth-Software-Suite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theoliverlear%2FSigwarth-Software-Suite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theoliverlear","download_url":"https://codeload.github.com/theoliverlear/Sigwarth-Software-Suite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theoliverlear%2FSigwarth-Software-Suite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273397840,"owners_count":25098235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-actions","java-library","library","maven","npm","pip","tools"],"created_at":"2025-09-03T05:48:06.704Z","updated_at":"2026-04-09T16:07:37.302Z","avatar_url":"https://github.com/theoliverlear.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sigwarth Software Suite ✨\n## Focused libraries, better solutions. ⚡\n\n---\n\nSigwarth Software Suite is a collection of Java modules that solve common\nproblems so you can ship faster. Each module is self‑contained and published \nunder the MIT License.\n\nThis repository is a Maven multi‑module project. You can use modules \nindividually or together.\n\n## ⭐️ What’s inside\n- Java-Suite (parent for Java libraries) 📦\n  - Builder-Suite — tiny factory/builder helper interfaces to standardize object construction.\n  - Net-Suite — simple HTTP/HTTPS utilities for fetching data with minimal setup.\n  - OpenAi-Suite — minimal wrappers for calling the OpenAI API using Java 11+ HttpClient.\n  - Spring-Boot-Suite 🌱\n    - Spring-Boot-Communication — small DTOs and helpers for API responses.\n    - Spring-Boot-Config — common Spring beans (e.g., ObjectMapper), basic security config.\n    - Spring-Boot-WebSocket — base WebSocket handler that parses requests and serializes responses.\n  - String-Suite — tiny string utilities (e.g., title case formatting). ✂️\n- Npm-Suite (parent for NPM packages) 📦\n  - Angular-Suite — prebuilt Angular components, directives, and services (Angular 18+).\n  - Styles-Suite — SCSS variables, mixins, and utility classes for consistent styling.\n\n## 🧭 Typical use cases\n- Quickly add a generic WebSocket handler and focus only on your Request-to-Response logic.\n- Fetch data from an HTTPS endpoint without pulling in a large HTTP client stack.\n- Call OpenAI’s Chat Completions with a minimal, readable wrapper.\n- Share common Spring Boot configuration across services.\n- Perform simple string transformations in utilities or services.\n\n## ✅ Why it’s handy\n- Small and focused: minimal code, easy to read, easy to extend.\n- Modular: depend on only what you need.\n- Modern Java: builds against Java 23 (compatible with current JDKs in CI).\n- MIT licensed: permissive and business‑friendly.\n\n## 🚀 Quick start\n\n1) Clone and build all modules locally 🛠️\n- Prereqs: JDK 23+ and Maven 3.9+ 📚\n- Windows PowerShell:\n\n```\n# From the repository root\nmvn -T 1C -DskipTests install\n```\n\n2) Add a module to your project (example: String-Suite) ➕\n\n- pom.xml\n```\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.sigwarthsoftware\u003c/groupId\u003e\n  \u003cartifactId\u003estring-suite\u003c/artifactId\u003e\n  \u003cversion\u003e0.0.6\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nIf you prefer consuming from GitHub Packages instead of a local install, add the GitHub Packages repository to your pom.xml or settings.xml and use the same coordinates. See the parent pom for the distributionManagement configuration. 📦\n\n3) Add an NPM package (example: @theoliverlear/styles-suite) 🧶\n\n- .npmrc\n```\n@theoliverlear:registry=https://npm.pkg.github.com\n```\n\n- Install\n```\nnpm install @theoliverlear/styles-suite\n```\n\n## 📦 Npm-Suite in detail\n\nNpm-Suite contains production-ready packages published to GitHub Packages under the @theoliverlear scope. Below is a quick tour of what you get and how to use it.\n\n- @theoliverlear/angular-suite — Angular components, directives, and services (Angular 18+)\n  - Install: `npm install @theoliverlear/angular-suite`\n  - Peer deps: @angular/* 18+, rxjs 7.8+, zone.js 0.15+, crypto-js\n  - What’s inside (selected):\n    - Components: `ss-anchor`, `ss-button`, `ss-footer`, `ss-head`, `ss-img`, `ss-input`, `ss-paragraph`, `ss-title`\n    - Directives: `[undraggable]`, `[unoptimizedImage]`\n    - Services: `DelayService`, `EmailValidatorService`, `HttpClientService`, `WebSocketService`\n    - Models: `TagType`, `ElementSize`, `ElementLink`, `TextElementLink`, `TargetType`\n  - Example usage:\n    - Module import:\n      ```ts\n      import { AngularSuiteModule } from '@theoliverlear/angular-suite';\n\n      @NgModule({ imports: [AngularSuiteModule] })\n      export class AppModule {}\n      ```\n    - ss-anchor (internal vs external links):\n      ```ts\n      import { TextElementLink } from '@theoliverlear/angular-suite';\n      import { TargetType, TagType } from '@theoliverlear/angular-suite';\n\n      link = new TextElementLink('/dashboard', TargetType.SELF, true, 'Go to dashboard', TagType.SPAN);\n      // template\n      // \u003css-anchor [elementLink]=\"link\"\u003e\u003c/ss-anchor\u003e\n      ```\n\n- @theoliverlear/styles-suite — SCSS functions and mixins for layouts and sizing\n  - Install: `npm install @theoliverlear/styles-suite`\n  - Entry: `index.scss` (Sass module system via @use/@forward)\n  - Mixins: `flex`, `size`, `square-size`, `basic-margin-padding`\n  - Functions: `calc-size`, `simple-calc`, `simplest-calc`, `simple-pixel-calc`, `add-alpha`\n  - Example usage (Sass):\n    ```scss\n    @use \"@theoliverlear/styles-suite\" as ss;\n\n    .container { @include ss.flex(space-between, center, column); }\n    .box { @include ss.square-size(3rem); }\n    .title { font-size: ss.calc-size(50, 30, 0.5); }\n    ```\n\n## 🧩 Usage examples\n\n- String-Suite (TitleFormatter) 🔡\n```java\nimport com.sigwarthsoftware.string.TitleFormatter;\n\nString once = TitleFormatter.formatTitleCase(\"hello world\");       // \"Hello world\"\nString words = TitleFormatter.formatTitleCases(\"hello big world\"); // \"Hello Big World\"\n```\n\n- Net-Suite (ApiDataRetriever) 🌐\n```java\nimport com.sigwarthsoftware.net.ApiDataRetriever;\n\nApiDataRetriever retriever = new ApiDataRetriever(\"https://api.github.com\");\nString json = retriever.getResponse();\n```\n\n- Spring-Boot-WebSocket (base handler) 🔌\n```java\nimport com.sigwarthsoftware.springboot.websocket.WebSocketHandler;\n\nimport org.springframework.stereotype.Component;\n\nclass EchoRequest { public String message; }\nclass EchoResponse { public String message; }\n\n@Component\npublic class EchoHandler extends WebSocketHandler\u003cEchoRequest, EchoResponse\u003e {\n  @Override\n  public EchoResponse makeResponse(EchoRequest request) {\n    EchoResponse response = new EchoResponse();\n    response.message = \"Echo: \" + request.message;\n    return response;\n  }\n}\n```\n\n- OpenAi-Suite (simple chat request) 🤖\n```java\nimport com.sigwarthsoftware.openai.message.ApiCall;\nimport com.sigwarthsoftware.openai.message.ApiSettings;\nimport com.sigwarthsoftware.openai.model.AiModel;\n\nApiCall call = new ApiCall(AiModel.GPT_4, ApiSettings.DEFAULT, \"Say hello\");\ncall.fetchResponse();\nString aiResponse = call.getResponse();\n```\nNote: Set environment variable OPENAI_KEY before running. 🔐\n\n## 🛣️ Roadmap / Ecosystems\nBeyond Java, the suite aims to provide helpers and publishing for multiple ecosystems:\n- NPM (Node.js) 📦 — utilities and tooling published to the npm registry.\n- PyPI (Pip) 🐍 — Python helpers available via pip install.\n- NuGet (.NET) 💠 — .NET packages for common tasks.\n\nThis README will evolve as cross-language modules land. Contributions are welcome! 🙌\n\n## 🛠️ Technology\n- Language: Java 23 ☕, JavaScript (Node.js), TypeScript (Node.js), Sass (SCSS)\n- Build: Maven (multi‑module reactor), GitHub Actions, Node.js\n- Libraries: Spring Boot (select modules), SLF4J, Lombok, Java HttpClient\n- NPM: Angular 18+, SCSS, TypeScript, RxJS, Zone.js, CryptoJS\n\n## ❓ Questions or help\nEmail Oliver Lear Sigwarth (@theoliverlear): sigwarthsoftware@gmail.com 📬\n\n## 📄 License\nMIT — see the license section in the project [pom.xml](./pom.xml) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheoliverlear%2Fsigwarth-software-suite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheoliverlear%2Fsigwarth-software-suite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheoliverlear%2Fsigwarth-software-suite/lists"}