npm package: @lu.musuhi/cim.ts
Description: TypeScript implementation of the DMTF Common Information Model (CIM) Schema classes.
Author: Anton Rybakov
Latest version: 0.1.1

# TypeScript CIM Core - DMTF Common Information Model

[![DMTF CIM 2.55](https://img.shields.io/badge/DMTF-CIM%20Schema-0B5CAD.svg)](https://www.dmtf.org/standards/cim)
[![TypeScript](https://img.shields.io/badge/TypeScript-ES2024-blue.svg)](https://www.typescriptlang.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

**Early Development Stage** - A TypeScript implementation of the DMTF Common Information Model (CIM) Schema for building management models and infrastructure tooling.

This library focuses on CIM core classes, state machines, and type-safe value maps that form the foundation for modeling managed elements, services, and jobs. It is aligned with the DMTF CIM Schema v2.55 and is designed to be extended by concrete providers.

## Intended Use Cases

This library is being developed for:
- **Systems management platforms** implementing DMTF CIM semantics
- **Infrastructure and service providers** modeling managed resources
- **Automation tooling** that benefits from CIM state machines
- **Typed domain models** that follow CIM class contracts

## Current Status

**Early development** - Core class hierarchy and several foundational types are implemented. The project is expanding toward broader CIM Schema coverage.

## What's Implemented

- **Core class hierarchy** - CIM_ManagedElement, CIM_ManagedSystemElement, CIM_LogicalElement
- **Lifecycle state machines** - CIM_EnabledLogicalElement and CIM_Service behavior
- **Job model** - CIM_Job and CIM_ConcreteJob runtime APIs and JSON contracts
- **Type-safe enums** - CIM value maps for status, state, and job semantics
- **Interfaces** - ICIM_* contracts for data-only representations

## Architecture Notes

- **Type safety** - Strict TypeScript settings and explicit CIM value maps
- **Extensibility** - Abstract classes ready for provider-specific subclasses
- **CIM alignment** - Property constraints and semantics follow v2.55

## Getting Started

This project is not published to npm yet. To build locally:

```sh
npm install
npx tsc -p tsconfig.json
```

## Example

```typescript
import { CIM_ManagedElement } from "./src/cimManagedElement.js";

class MyElement extends CIM_ManagedElement {
    constructor() {
        super("Demo", "Example managed element", "MyElement");
    }
}
```

## Contributing

Contributions are welcome. Please open an issue or PR to discuss additions to the CIM class coverage.

## License and Attribution

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

### DMTF CIM Schema Attribution

This implementation is based on the **DMTF Common Information Model (CIM) Schema** specification, copyright © **Distributed Management Task Force, Inc. (DMTF)**. All rights reserved.

The CIM Schema is used under DMTF's policy allowing reproduction and implementation of DMTF specifications provided that correct attribution is given.

**Note**: Implementation of CIM elements may be subject to third-party patent rights. DMTF makes no representations regarding the existence of such rights. For patent disclosure information, visit: http://www.dmtf.org/about/policies/disclosures.php

## Related Links

- [DMTF CIM Schema](https://www.dmtf.org/standards/cim)
- [DMTF CIM Schema Overview](https://www.dmtf.org/standards/cim/cim_schema_v2550)