Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion apps/ctl/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ OWOX Data Marts Control CLI.
`owox` runs and manages a local or self-managed OWOX Data Marts runtime.
`owox-ctl` controls an existing OWOX Data Marts instance through the HTTP API.

The full user documentation lives in [docs/api/owox-ctl.md](../../docs/api/owox-ctl.md).
The full user documentation lives in
[owox-ctl API documentation](https://docs.owox.com/docs/api/owox-ctl/).

## Install

Expand Down
1 change: 1 addition & 0 deletions apps/ctl/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
"node": ">=22.16.0"
},
"files": [
"./README.md",
"./bin",
"./dist/**/*.d.ts",
"./dist/**/*.js",
Expand Down
11 changes: 11 additions & 0 deletions apps/ctl/src/package-readme.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { readFileSync } from 'node:fs';

describe('package README', () => {
const readme = readFileSync(new URL('../README.md', import.meta.url), 'utf8');

it('links to the full CLI documentation with a stable package-safe URL', () => {
expect(readme).toContain('https://docs.owox.com/docs/api/owox-ctl/');
expect(readme).not.toContain('../../docs/api/owox-ctl.md');
expect(readme).not.toContain('github.com/OWOX/owox-data-marts/blob/main/docs');
});
});
16 changes: 16 additions & 0 deletions packages/api-client/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# @owox/api-client

TypeScript/JavaScript client for calling the OWOX Data Marts API from custom
scripts, internal tools, automation, and local agent workflows.

## Install

```bash
npm install @owox/api-client
```

## Documentation

- [@owox/api-client guide](https://docs.owox.com/docs/api/api-client/)
- [API Keys](https://docs.owox.com/docs/api/api-keys/)
- [OpenAPI and Swagger UI](https://docs.owox.com/docs/api/openapi/)
1 change: 1 addition & 0 deletions packages/api-client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
"ts-jest": "^29.4.6"
},
"files": [
"README.md",
"dist"
],
"exports": {
Expand Down
26 changes: 26 additions & 0 deletions packages/api-client/src/package-readme.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { existsSync, readFileSync } from 'node:fs';

describe('package README', () => {
const readmeUrl = new URL('../README.md', import.meta.url);

it('provides npm users with install and package-safe documentation links', () => {
if (!existsSync(readmeUrl)) {
throw new Error('packages/api-client/README.md must exist for npm package publishing');
}

const readme = readFileSync(readmeUrl, 'utf8');

expect(readme).toContain('# @owox/api-client');
expect(readme).toContain('npm install @owox/api-client');
expect(readme).toContain('https://docs.owox.com/docs/api/api-client/');
expect(readme).toContain('https://docs.owox.com/docs/api/api-keys/');
expect(readme).toContain('https://docs.owox.com/docs/api/openapi/');
expect(readme).not.toContain('github.com/OWOX/owox-data-marts/blob/main/docs');
expect(readme).not.toContain('new OWOXApiClient');
expect(readme).not.toContain('## Basic usage');
expect(readme).not.toContain('## Error handling');
expect(readme).not.toContain('./api-keys/');
expect(readme).not.toContain('./owox-ctl/');
expect(readme).not.toContain('./openapi/');
});
});
Loading