Skip to content

Commit 57be4f3

Browse files
basic conversion done
1 parent 2162a24 commit 57be4f3

10 files changed

Lines changed: 1015 additions & 46 deletions

File tree

README.md

Lines changed: 31 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,51 @@
1-
# {{ cookiecutter.project_name }}
1+
# codejson-crosswalk
22

3-
{{ cookiecutter.project_description }}
3+
A TypeScript npm package for bidirectional conversion between code.json and other metadata formats
44

55
## About the Project
66

7-
**{project statement}**
8-
9-
<!---
10-
### Project Vision
11-
**{project vision}** -->
12-
13-
<!--
14-
### Project Mission
15-
**{project mission}** -->
16-
17-
<!--
18-
### Agency Mission
19-
TODO: Good to include since this is an agency-led project -->
20-
21-
<!--
22-
### Team Mission
23-
TODO: Good to include since this is an agency-led project -->
7+
There is no automated bridge between code.json and other software metadata formats. This package provides a single function call to convert between code.json and codemeta.json (and future formats), with code.json at the center of a hub-and-spoke architecture.
248

259
## Core Team
2610

2711
A list of core team members responsible for the code and documentation in this repository can be found in [COMMUNITY.md](COMMUNITY.md).
2812

2913
## Repository Structure
3014

31-
<!-- TODO: Including the repository structure helps viewers quickly understand the project layout. Using the "tree -d" command can be a helpful way to generate this information, but, be sure to update it as the project evolves and changes over time. -->
32-
3315
```plaintext
3416
.
17+
├── src/
18+
│ ├── helpers/
19+
│ │ ├── convert.ts # Generic conversion engine
20+
│ │ ├── handle-nested-values.ts # Utilities for reading/writing nested object paths
21+
│ │ └── README.md # Documentation for the engine and helpers
22+
│ ├── metadata/
23+
│ │ └── codemeta/
24+
│ │ ├── codejson-mapping.ts # code.json → codemeta mapping definitions
25+
│ │ ├── codemeta-mapping.ts # codemeta → code.json mapping definitions
26+
│ │ ├── handler.ts # Coordinator functions for codemeta conversions
27+
│ │ └── README.md # Documentation for mapping files
28+
│ ├── types/
29+
│ │ └── MappingEntry.ts # Shared MappingEntry type definition
30+
│ └── index.ts # Package entry point and public API
31+
├── .github/ # GitHub Actions workflows
3532
```
3633

37-
38-
**{list directories and descriptions}**
39-
40-
<!-- TODO: Add a 'table of contents" for your documentation. Tier 0/1 projects with simple README.md files without many sections may or may not need this, but it is still extremely helpful to provide "bookmark" or "anchor" links to specific sections of your file to be referenced in tickets, docs, or other communication channels. -->
41-
42-
**{list of .md at top directory and descriptions}**
43-
4434
# Development and Software Delivery Lifecycle
4535

4636
The following guide is for members of the project team who have access to the repository as well as code contributors. The main difference between internal and external contributions is that external contributors will need to fork the project and will not be able to merge their own pull requests. For more information on contributing, see: [CONTRIBUTING.md](./CONTRIBUTING.md).
4737

4838
## Local Development
4939

50-
<!--- TODO - with example below:
51-
This project is monorepo with several apps. Please see the [api](./api/README.md) and [frontend](./frontend/README.md) READMEs for information on spinning up those projects locally. Also see the project [documentation](./documentation) for more info.
52-
-->
40+
This project uses [Bun](https://bun.sh/) as its runtime and package manager.
41+
42+
```bash
43+
# Install dependencies
44+
bun install
45+
46+
# Run tests
47+
bun test
48+
```
5349

5450
## Coding Style and Linters
5551

@@ -59,7 +55,6 @@ Each application has its own linting and testing guidelines. Lint and code tests
5955

6056
## Branching Model
6157

62-
<!--- TODO - with example below:
6358
This project follows [trunk-based development](https://trunkbaseddevelopment.com/), which means:
6459

6560
* Make small changes in [short-lived feature branches](https://trunkbaseddevelopment.com/short-lived-feature-branches/) and merge to `main` frequently.
@@ -79,29 +74,19 @@ Thank you for considering contributing to an Open Source project of the US Gover
7974

8075
## Community
8176

82-
The {{ cookiecutter.project_name }} team is taking a community-first and open source approach to the product development of this tool. We believe government software should be made in the open and be built and licensed such that anyone can download the code, run it themselves without paying money to third parties or using proprietary software, and use it as they will.
77+
The codejson-crosswalk team is taking a community-first and open source approach to the product development of this tool. We believe government software should be made in the open and be built and licensed such that anyone can download the code, run it themselves without paying money to third parties or using proprietary software, and use it as they will.
8378

8479
We know that we can learn from a wide variety of communities, including those who will use or will be impacted by the tool, who are experts in technology, or who have experience with similar technologies deployed in other spaces. We are dedicated to creating forums for continuous conversation and feedback to help shape the design and development of the tool.
8580

8681
We also recognize capacity building as a key part of involving a diverse open source community. We are doing our best to use accessible language, provide technical and process documents, and offer support to community members with a wide variety of backgrounds and skillsets.
8782

8883
### Community Guidelines
8984

90-
Principles and guidelines for participating in our open source community are can be found in [COMMUNITY.md](COMMUNITY.md). Please read them before joining or starting a conversation in this repo or one of the channels listed below. All community members and participants are expected to adhere to the community guidelines and code of conduct when participating in community spaces including: code repositories, communication channels and venues, and events.
91-
92-
<!--
93-
## Governance
94-
Information about how the {{ cookiecutter.project_name }} community is governed may be found in [GOVERNANCE.md](GOVERNANCE.md).
95-
-->
85+
Principles and guidelines for participating in our open source community can be found in [COMMUNITY.md](COMMUNITY.md). Please read them before joining or starting a conversation in this repo or one of the channels listed below. All community members and participants are expected to adhere to the community guidelines and code of conduct when participating in community spaces including: code repositories, communication channels and venues, and events.
9686

9787
## Feedback
9888

99-
If you have ideas for how we can improve or add to our capacity building efforts and methods for welcoming people into our community, please let us know at **{contact email}**. If you would like to comment on the tool itself, please let us know by filing an **issue on our GitHub repository.**
100-
101-
<!--
102-
## Glossary
103-
Information about terminology and acronyms used in this documentation may be found in [GLOSSARY.md](GLOSSARY.md).
104-
-->
89+
If you have ideas for how we can improve or add to our capacity building efforts and methods for welcoming people into our community, please let us know at opensource@cms.hhs.gov. If you would like to comment on the tool itself, please let us know by filing an **issue on our GitHub repository.**
10590

10691
## Policies
10792

@@ -121,7 +106,7 @@ For more information about our Security, Vulnerability, and Responsible Disclosu
121106

122107
A Software Bill of Materials (SBOM) is a formal record containing the details and supply chain relationships of various components used in building software.
123108

124-
In the spirit of [Executive Order 14028 - Improving the Nations Cyber Security](https://www.gsa.gov/technology/it-contract-vehicles-and-purchasing-programs/information-technology-category/it-security/executive-order-14028), a SBOM for this repository is provided here: https://github.com/{{ cookiecutter.project_org }}/{{ cookiecutter.project_repo_name }}/network/dependencies.
109+
In the spirit of [Executive Order 14028 - Improving the Nation's Cyber Security](https://www.gsa.gov/technology/it-contract-vehicles-and-purchasing-programs/information-technology-category/it-security/executive-order-14028), a SBOM for this repository is provided here: https://github.com/DSACMS/codejson-crosswalk/network/dependencies.
125110

126111
For more information and resources about SBOMs, visit: https://www.cisa.gov/sbom.
127112

codemeta.json

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
{
2+
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3+
"@type": "SoftwareSourceCode",
4+
"name": "codejson-crosswalk",
5+
"description": "An NPM package that converts code.json to a variety of different metadata types in both directions",
6+
"codeRepository": "https://github.com/DSACMS/codejson-crosswalk",
7+
"issueTracker": "https://github.com/DSACMS/codejson-crosswalk/issues",
8+
"license": "https://github.com/DSACMS/codejson-crosswalk/blob/main/LICENSE",
9+
"versionControlSystem": "git",
10+
"programmingLanguage": "TypeScript",
11+
"runtimePlatform": [
12+
"Windows",
13+
"macOS",
14+
"Linux"
15+
],
16+
"applicationCategory": "Library",
17+
"keywords": [
18+
"codejson",
19+
"converter",
20+
"crosswalk",
21+
"healthcare"
22+
],
23+
"operatingSystem": [
24+
"Windows",
25+
"macOS",
26+
"Linux"
27+
],
28+
"developmentStatus": "Development",
29+
"dateCreated": "2026-02-10T20:27:00Z",
30+
"dateModified": "2026-02-19T21:33:44Z",
31+
"softwareRequirements": "Node.js",
32+
"audience": {
33+
"@type": "Audience",
34+
"audienceType": "government"
35+
},
36+
"maintainer": {
37+
"@type": "Organization",
38+
"name": "CMS Open Source Program Office",
39+
"email": "opensource@cms.hhs.gov",
40+
"parentOrganization": {
41+
"@type": "Organization",
42+
"name": "Centers for Medicare & Medicaid Services"
43+
}
44+
},
45+
"producer": {
46+
"@type": "Organization",
47+
"name": "Centers for Medicare & Medicaid Services"
48+
},
49+
"provider": {
50+
"@type": "Organization",
51+
"name": "Centers for Medicare & Medicaid Services"
52+
},
53+
"isAccessibleForFree": true,
54+
"additionalProperty": [
55+
{
56+
"@type": "PropertyValue",
57+
"name": "repositoryVisibility",
58+
"value": "public"
59+
},
60+
{
61+
"@type": "PropertyValue",
62+
"name": "repositoryType",
63+
"value": "package"
64+
},
65+
{
66+
"@type": "PropertyValue",
67+
"name": "laborHours",
68+
"value": 1477.85
69+
},
70+
{
71+
"@type": "PropertyValue",
72+
"name": "reuseFrequency.forks",
73+
"value": 0
74+
},
75+
{
76+
"@type": "PropertyValue",
77+
"name": "reuseFrequency.clones",
78+
"value": 0
79+
},
80+
{
81+
"@type": "PropertyValue",
82+
"name": "maintenance",
83+
"value": "internal"
84+
},
85+
{
86+
"@type": "PropertyValue",
87+
"name": "SBOM",
88+
"value": "https://github.com/DSACMS/codejson-crosswalk/network/dependencies"
89+
},
90+
{
91+
"@type": "PropertyValue",
92+
"name": "fismaLevel",
93+
"value": "low"
94+
},
95+
{
96+
"@type": "PropertyValue",
97+
"name": "group",
98+
"value": "CMS/OA/DSAC"
99+
},
100+
{
101+
"@type": "PropertyValue",
102+
"name": "subsetInHealthcare",
103+
"value": "operational"
104+
},
105+
{
106+
"@type": "PropertyValue",
107+
"name": "AIUseCaseID",
108+
"value": "0"
109+
},
110+
{
111+
"@type": "PropertyValue",
112+
"name": "maturityModelTier",
113+
"value": 3
114+
},
115+
{
116+
"@type": "PropertyValue",
117+
"name": "localisation",
118+
"value": false
119+
},
120+
{
121+
"@type": "PropertyValue",
122+
"name": "userInput",
123+
"value": true
124+
}
125+
]
126+
}

0 commit comments

Comments
 (0)