Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
486ff80
feat(framework): add API reference docs and module exports
tomaszpacior Mar 2, 2026
b636966
fix(framework): move and stabilize core module generator
tomaszpacior Mar 2, 2026
1efef95
Revert "fix(framework): move and stabilize core module generator"
tomaszpacior Mar 2, 2026
c8122fc
docs(framework): align TypeDoc and strengthen contracts
tomaszpacior Mar 3, 2026
c73a727
fix(integrations.mocked): align mocked search payload with framework
tomaszpacior Mar 3, 2026
940c853
Merge branch 'main' into docs/framework-api-typedoc-markdown
tomaszpacior Mar 9, 2026
872417c
feat: code review improvements
tomaszpacior Mar 9, 2026
1f01c53
fix: small fix
tomaszpacior Mar 9, 2026
9c82697
feat: code review improvements
tomaszpacior Mar 9, 2026
2503454
feat: code review improvements
tomaszpacior Mar 9, 2026
45abcf5
fix: build issue
tomaszpacior Mar 10, 2026
a229de6
fix: build issue
tomaszpacior Mar 10, 2026
dbbba41
fix: build issue
tomaszpacior Mar 10, 2026
4e50758
fix(docs): restore build cache before Vercel deploy to fix TypeDoc @o…
tomaszpacior Mar 10, 2026
24ba936
fix(ci): restore build cache in deploy-docs-preview and deploy-storyb…
tomaszpacior Mar 10, 2026
9ea4ddb
Merge branch 'main' into docs/framework-api-typedoc-markdown
tomaszpacior Mar 10, 2026
12d07fb
fix(mocked-dxp): align SearchPayload and SearchService with framework…
tomaszpacior Mar 10, 2026
29503ab
feat(docs): improve OpenAPI docs and schema descriptions
tomaszpacior Mar 12, 2026
5b718cc
fix: eidt front_base_urls
tomaszpacior Mar 12, 2026
9bddd21
Merge branch 'main' into docs/framework-api-typedoc-markdown
tomaszpacior Mar 24, 2026
edb765d
Merge branch 'main' into docs/framework-api-typedoc-markdown
tomaszpacior Mar 24, 2026
b906bff
Merge branch 'main' into docs/framework-api-typedoc-markdown
tomaszpacior Mar 27, 2026
441cb0f
docs(api): improve REST API reference and OpenAPI coverage
tomaszpacior Mar 27, 2026
3e457dd
chore(changeset): add changeset for REST API docs and OpenAPI work
tomaszpacior Mar 27, 2026
ab5f7a3
chore(changeset): list all affected packages in polite-dingos
tomaszpacior Mar 27, 2026
0b23781
ci(github): fix npm ci failing on postman-code-generators postinstall
tomaszpacior Mar 27, 2026
9c7a8ec
fix(ci): emit only package names from turbo dry-run for job outputs
tomaszpacior Mar 30, 2026
4c5863c
docs(ci): build OpenAPI docs from committed snapshot
tomaszpacior Mar 30, 2026
6f034e4
docs: scope OpenAPI gitignore and set API code-sample tabs
tomaszpacior Mar 30, 2026
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
5 changes: 5 additions & 0 deletions .changeset/orange-cobras-drum.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@o2s/framework': minor
---

feat(framework): expose richer API surface and add framework API reference docs
1 change: 1 addition & 0 deletions apps/docs/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
# Generated files
.docusaurus
.cache-loader
/docs/api

# Misc
.DS_Store
Expand Down
17 changes: 17 additions & 0 deletions apps/docs/docs/guides/framework-api-reference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
sidebar_position: 210
---

# @o2s/framework API Reference

The `@o2s/framework` package provides types, modules, models, and SDK for building API Harmonization servers and frontend integrations.

## Full reference (TypeDoc)

The detailed reference (all types, classes, methods) is generated automatically from the source at docs build time ([TypeDoc](https://typedoc.org/) + [typedoc-plugin-markdown](https://github.com/typedoc2md/typedoc-plugin-markdown)).

**[Open full @o2s/framework API reference →](/docs/api)**

## How it is updated

API documentation is generated when you run `npm run build` or `npm run start` in the docs app from `packages/framework`. No manual update is required.
1 change: 1 addition & 0 deletions apps/docs/docs/guides/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ This section provides practical instructions and best practices for working with
- **[Code style](./code-style.md)** – Ensure consistency across the codebase with established coding conventions.
- **[Adding new components with generators](./using-generators.md)** – Learn how to extend and customize O2S by quickly bootstrapping its components.
- **[The SDK](./sdk.md)** – Understand how to interact with the API Harmonization Server using the built-in TypeScript SDK.
- **[@o2s/framework API Reference](./framework-api-reference.md)** – Auto-generated type and module documentation for the core framework.

### Integrations

Expand Down
13 changes: 12 additions & 1 deletion apps/docs/docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import tailwindPlugin from './plugins/tailwind-config';

// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)

let hideDocs = false;
const hideDocs = false;

const config: Config = {
title: 'Open Self Service',
Expand Down Expand Up @@ -257,6 +257,17 @@ const config: Config = {
},
},
plugins: [
[
'docusaurus-plugin-typedoc',
{
entryPoints: ['../../packages/framework/src/index.ts', '../../packages/framework/src/sdk.ts'],
tsconfig: '../../packages/framework/tsconfig.json',
out: 'docs/api',
name: '@o2s/framework API',
excludePrivate: true,
readme: 'none',
},
],
tailwindPlugin,
'@docusaurus/theme-mermaid',
'docusaurus-plugin-image-zoom',
Expand Down
5 changes: 4 additions & 1 deletion apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.9.2",
"docusaurus-plugin-typedoc": "^1.4.0",
"typedoc": "^0.28.17",
"typedoc-plugin-markdown": "^4.10.0",
"@docusaurus/tsconfig": "3.9.2",
"@docusaurus/types": "3.9.2",
"@o2s/eslint-config": "*",
Expand Down Expand Up @@ -68,4 +71,4 @@
"engines": {
"node": ">=18.0"
}
}
}
178 changes: 178 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/framework/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,4 @@
"@nestjs/core": "^11",
"rxjs": "^7"
}
}
}
18 changes: 18 additions & 0 deletions packages/framework/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,39 @@ export type { ApiConfig } from './api-config';

export * as Models from './utils/models';

/** Headless CMS: pages, entries, blocks, header/footer, app config. */
export * as CMS from './modules/cms';
/** Support tickets: list, single, create. */
export * as Tickets from './modules/tickets';
/** User notifications: list, single, mark as read. */
export * as Notifications from './modules/notifications';
/** Articles and categories (knowledge base, blog). */
export * as Articles from './modules/articles';
/** Invoices: list, single, PDF. */
export * as Invoices from './modules/invoices';
/** Resources, services, assets: list, purchase, compatible/featured. */
export * as Resources from './modules/resources';
/** Users and current-user: get, update, delete, customers. */
export * as Users from './modules/users';
/** Organizations: list, single, membership check. */
export * as Organizations from './modules/organizations';
/** Authentication (no controller): service for login/session. */
export * as Auth from './modules/auth';
/** Cache (no controller): service for get/set/delete. */
export * as Cache from './modules/cache';
/** Billing accounts: list, single. */
export * as BillingAccounts from './modules/billing-accounts';
/** Search: payload/result types; optional service/controller. */
export * as Search from './modules/search';
/** Products: list, single, related. */
export * as Products from './modules/products';
/** Orders: list, single. */
export * as Orders from './modules/orders';
/** Carts: CRUD, items, promotions, prepare checkout. */
export * as Carts from './modules/carts';
/** Customer addresses: list, CRUD, set default. */
export * as Customers from './modules/customers';
/** Payments: providers, sessions (create/update/cancel). */
export * as Payments from './modules/payments';
/** Checkout: addresses, shipping, payment, place order. */
export * as Checkout from './modules/checkout';
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ import { LoggerService } from '@o2s/utils.logger';

import { ArticlesService } from './articles.service';

/**
* HTTP controller for articles and categories. Base path: `/articles`.
* All methods delegate to {@link ArticlesService}.
*/
@Controller('/articles')
@UseInterceptors(LoggerService)
export class ArticleController {
Expand Down
Loading
Loading