{"id":29222875,"url":"https://github.com/opentech-ux/lom-compiler","last_synced_at":"2026-04-30T03:32:30.944Z","repository":{"id":42627235,"uuid":"395001919","full_name":"opentech-ux/lom-compiler","owner":"opentech-ux","description":"Compiler to generate playable HTML wireframe site from layout description model (LOM)","archived":false,"fork":false,"pushed_at":"2023-03-06T07:57:31.000Z","size":1403,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-20T23:45:34.229Z","etag":null,"topics":["compiler","lom","npm","package","typescript","ux","wireframe"],"latest_commit_sha":null,"homepage":"https://opentech-ux.github.io/lom-compiler/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opentech-ux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-11T13:38:45.000Z","updated_at":"2024-03-31T18:09:08.000Z","dependencies_parsed_at":"2023-02-06T22:01:42.736Z","dependency_job_id":null,"html_url":"https://github.com/opentech-ux/lom-compiler","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/opentech-ux/lom-compiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentech-ux%2Flom-compiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentech-ux%2Flom-compiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentech-ux%2Flom-compiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentech-ux%2Flom-compiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opentech-ux","download_url":"https://codeload.github.com/opentech-ux/lom-compiler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentech-ux%2Flom-compiler/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261178424,"owners_count":23120824,"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","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":["compiler","lom","npm","package","typescript","ux","wireframe"],"created_at":"2025-07-03T04:08:03.233Z","updated_at":"2026-04-30T03:32:30.904Z","avatar_url":"https://github.com/opentech-ux.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenTech UX LOM Compiler\n\n[![npm version](https://badgen.net/npm/v/@opentech-ux/lom-compiler)](https://www.npmjs.com/package/@opentech-ux/lom-compiler)\n[![npm license](https://badgen.net/npm/license/@opentech-ux/lom-compiler)](https://www.npmjs.com/package/@opentech-ux/lom-compiler)\n[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fopentech-ux%2Flom-compiler%2Fbadge%3Fref%3Dmaster\u0026style=flat)](https://actions-badge.atrox.dev/opentech-ux/lom-compiler/goto?ref=master)\n\n-  [OpenTech UX LOM Compiler](#opentech-ux-lom-compiler)\n   -  [Description](#description)\n   -  [Installation](#installation)\n   -  [Importing](#importing)\n   -  [Uses examples](#uses-examples)\n   -  [License](#license)\n\n## Description\n\n[JSON schema](https://opentech-ux.github.io/lom-format/) file compiler for generating an interactive\nmodel of website navigation.\n\nThis compiler accepts custom files or files generated by the captor\n[script](https://github.com/opentech-ux/lom-captor) containing the JSON schema format. Consequently,\ngenerate a series of HTML files that represent a simulation of the navigation on a web site.\n\n## Installation\n\n```bash\nnpm install @opentech-ux/lom-compiler\n```\n\n## Importing\n\n```js\n// Using Node.js `require()`\nconst { LomCompiler } = require('@opentech-ux/lom-compiler');\n\n// Using ES6 imports\nimport { LomCompiler } from '@opentech-ux/lom-compiler';\n```\n\n## Uses examples\n\n-  Initial project folder structure\n\n   ```txt\n   Project folder/\n   ├─ build/\n   │  ├─ test-output/\n   ├─ data/\n   │  ├─ json/\n   │  │  ├─ basic-lom/\n   │  │  │  ├─ basic.lom.json\n   │  │  ├─ multi-lom/\n   │  │  │  ├─ basic.lom.json\n   │  │  │  ├─ script.lom.json\n   │  │  ├─ script-lom/\n   │  │  │  ├─ script.lom.json\n   ├─ index.js\n   ```\n\n-  Use examples in a JS file\n\n   ```js\n   // index.js\n   const BASE_DIR = 'build/test-output';\n   const folderName = 'basic-lom';\n\n   // Base directory is the executing file directory\n   new LomCompiler()\n      // Source file path\n      .source('data/json/basic-lom/basic.lom.json')\n      // Directory path where to save the result (folder will be created in case of needed)\n      .outputDir(`${BASE_DIR}/${folderName}`)\n      .compile();\n   ```\n\n   ```js\n   // index.js\n   const BASE_DIR = 'build/test-output';\n   const folderName = 'script-lom';\n\n   // Base directory defined\n   new LomCompiler(BASE_DIR)\n      // Source file path relative to base directory\n      .source('../../data/json/script-lom/script.lom.json')\n      // Folder name used inside the base directory\n      .outputDir(folderName)\n      .compile();\n   ```\n\n   ```js\n   // index.js\n   const BASE_DIR = 'build/test-output';\n   const folderName = 'multi-lom';\n\n   // Base directory defined\n   new LomCompiler(BASE_DIR)\n      // Source files directory path relative to base directory\n      .source('../../data/json/multi-lom')\n      // Folder name used inside the base directory\n      .outputDir(folderName)\n      .compile();\n   ```\n\n-  Project folder structure after executing the examples\n\n   ```txt\n   Project folder/\n   ├─ build/\n   │  ├─ test-output/\n   │  │  ├─ basic-lom/\n   │  │  │  ├─ otherPage/\n   │  │  │  │  ├─ index.html\n   │  │  │  ├─ index.html\n   │  │  ├─ script-lom/\n   │  │  │  ├─ about/\n   │  │  │  │  ├─ index.html\n   │  │  │  ├─ contact/\n   │  │  │  │  ├─ index.html\n   │  │  │  ├─ index.html\n   │  │  ├─ multi-lom/\n   │  │  │  ├─ about/\n   │  │  │  │  ├─ index.html\n   │  │  │  ├─ contact/\n   │  │  │  │  ├─ index.html\n   │  │  │  ├─ otherPage/\n   │  │  │  │  ├─ index.html\n   │  │  │  ├─ index.html\n   ├─ data/\n   │  ├─ json/\n   │  │  ├─ basic-lom/\n   │  │  │  ├─ basic.lom.json\n   │  │  ├─ multi-lom/\n   │  │  │  ├─ basic.lom.json\n   │  │  │  ├─ script.lom.json\n   │  │  ├─ script-lom/\n   │  │  │  ├─ script.lom.json\n   ├─ index.js\n   ```\n\n## License\n\n[APACHE 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentech-ux%2Flom-compiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopentech-ux%2Flom-compiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentech-ux%2Flom-compiler/lists"}