{"id":"@lssm-tech/example.billingos-france-sme","slug":"example.billingos-france-sme","name":"@lssm-tech/example.billingos-france-sme","version":"2.0.6","path":"examples/billingos-france-sme","manifestPath":"examples/billingos-france-sme/package.json","manifestBlobSha":"3ec589724c350962ced3d174ab602131282f3ad6","layer":"examples","physicalArea":null,"primaryArea":"examples-and-patterns","classification":{"privateDeclared":null,"catalogFamily":"solutions","catalogKind":"example","catalogStatus":"active","adoptionMode":"reference-only","stability":"experimental"},"description":"Smallest BillingOS French SME quote-to-cash replay proof without providers or production PA submission.","descriptionOrigin":"package.json","catalog":{"family":"solutions","kind":"example","status":"active","adoptionMode":"reference-only","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./docs","./example","./proof","./companyos","./ui","./ui/BillingOsFranceSmePreview","./ui/billingos-france-sme-preview.data","./ui/billingos-france-sme.types"],"documentation":[{"title":"Example Billingos France Sme documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fexample.billingos-france-sme","kind":"readme"}],"examples":[],"replacements":[],"nonAdoptableRationale":"This example is published for reference and learning, not as a reusable library dependency.","visualTesting":{"status":"deferred","owner":"@contractspec-core","targetWave":"wave-3-react-packages","rationale":"Foundational Storybook adoption establishes shared catalogs and guardrails before this package migrates."}},"canonicalImports":[],"scripts":{"build":"contractspec-bun-build build","typecheck":"tsgo --noEmit","test":"bun test","smoke":"bun test src/billingos-france-sme.test.ts","lint:check":"node ../../scripts/biome.cjs check .","lint":"bun lint:fix","lint:fix":"node ../../scripts/biome.cjs check --write .","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.billing-france":"workspace:^","@lssm-tech/lib.billing-runtime":"workspace:^","@lssm-tech/lib.billing-spec":"workspace:^","@lssm-tech/integration.provider-payments":"workspace:^","@lssm-tech/lib.companyos-runtime":"workspace:^","@lssm-tech/lib.companyos-spec":"workspace:^","@lssm-tech/lib.contracts-runtime-core":"workspace:^","@lssm-tech/lib.contracts-runtime-server-rest":"workspace:^","@lssm-tech/lib.contracts-spec":"workspace:^","@lssm-tech/lib.schema":"workspace:^","@lssm-tech/lib.design-system":"workspace:^","@lssm-tech/lib.example-shared-ui":"workspace:^","@lssm-tech/module.billing-os":"workspace:^","lucide-react":"catalog:ui","react":"catalog:","react-dom":"catalog:"},"devDependencies":{"@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:","@types/react":"catalog:types","@types/react-dom":"catalog:types","@lssm-tech/tool.bun":"workspace:*"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./docs":"./src/docs/index.ts","./example":"./src/example.ts","./proof":"./src/proof.ts","./companyos":"./src/companyos.ts","./ui":"./src/ui/index.ts","./ui/BillingOsFranceSmePreview":"./src/ui/BillingOsFranceSmePreview.tsx","./ui/billingos-france-sme-preview.data":"./src/ui/billingos-france-sme-preview.data.ts","./ui/billingos-france-sme.types":"./src/ui/billingos-france-sme.types.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","browser":"./dist/browser/ui/index.js","bun":"./dist/ui/index.js","node":"./dist/node/ui/index.js","default":"./dist/ui/index.js"},"./ui/BillingOsFranceSmePreview":{"types":"./dist/ui/BillingOsFranceSmePreview.d.ts","browser":"./dist/browser/ui/BillingOsFranceSmePreview.js","bun":"./dist/ui/BillingOsFranceSmePreview.js","node":"./dist/node/ui/BillingOsFranceSmePreview.js","default":"./dist/ui/BillingOsFranceSmePreview.js"},"./ui/billingos-france-sme-preview.data":{"types":"./dist/ui/billingos-france-sme-preview.data.d.ts","browser":"./dist/browser/ui/billingos-france-sme-preview.data.js","bun":"./dist/ui/billingos-france-sme-preview.data.js","node":"./dist/node/ui/billingos-france-sme-preview.data.js","default":"./dist/ui/billingos-france-sme-preview.data.js"},"./ui/billingos-france-sme.types":{"types":"./dist/ui/billingos-france-sme.types.d.ts","browser":"./dist/browser/ui/billingos-france-sme.types.js","bun":"./dist/ui/billingos-france-sme.types.js","node":"./dist/node/ui/billingos-france-sme.types.js","default":"./dist/ui/billingos-france-sme.types.js"}},"types":null,"files":["LICENSE","README.md","dist","!**/*.test.*","!**/*.spec.*","!**/*.tsbuildinfo"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/example.billingos-france-sme","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"examples/billingos-france-sme/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./docs","importPath":"@lssm-tech/example.billingos-france-sme/docs","target":"./src/docs/index.ts","targets":[{"conditions":[],"target":"./src/docs/index.ts","sourcePath":"examples/billingos-france-sme/src/docs/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/src/docs/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./example","importPath":"@lssm-tech/example.billingos-france-sme/example","target":"./src/example.ts","targets":[{"conditions":[],"target":"./src/example.ts","sourcePath":"examples/billingos-france-sme/src/example.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/src/example.ts","sourceStatus":"verified source file"}]},{"subpath":"./proof","importPath":"@lssm-tech/example.billingos-france-sme/proof","target":"./src/proof.ts","targets":[{"conditions":[],"target":"./src/proof.ts","sourcePath":"examples/billingos-france-sme/src/proof.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/src/proof.ts","sourceStatus":"verified source file"}]},{"subpath":"./companyos","importPath":"@lssm-tech/example.billingos-france-sme/companyos","target":"./src/companyos.ts","targets":[{"conditions":[],"target":"./src/companyos.ts","sourcePath":"examples/billingos-france-sme/src/companyos.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/src/companyos.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui","importPath":"@lssm-tech/example.billingos-france-sme/ui","target":"./src/ui/index.ts","targets":[{"conditions":[],"target":"./src/ui/index.ts","sourcePath":"examples/billingos-france-sme/src/ui/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/src/ui/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/BillingOsFranceSmePreview","importPath":"@lssm-tech/example.billingos-france-sme/ui/BillingOsFranceSmePreview","target":"./src/ui/BillingOsFranceSmePreview.tsx","targets":[{"conditions":[],"target":"./src/ui/BillingOsFranceSmePreview.tsx","sourcePath":"examples/billingos-france-sme/src/ui/BillingOsFranceSmePreview.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/src/ui/BillingOsFranceSmePreview.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/billingos-france-sme-preview.data","importPath":"@lssm-tech/example.billingos-france-sme/ui/billingos-france-sme-preview.data","target":"./src/ui/billingos-france-sme-preview.data.ts","targets":[{"conditions":[],"target":"./src/ui/billingos-france-sme-preview.data.ts","sourcePath":"examples/billingos-france-sme/src/ui/billingos-france-sme-preview.data.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/src/ui/billingos-france-sme-preview.data.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/billingos-france-sme.types","importPath":"@lssm-tech/example.billingos-france-sme/ui/billingos-france-sme.types","target":"./src/ui/billingos-france-sme.types.ts","targets":[{"conditions":[],"target":"./src/ui/billingos-france-sme.types.ts","sourcePath":"examples/billingos-france-sme/src/ui/billingos-france-sme.types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/src/ui/billingos-france-sme.types.ts","sourceStatus":"verified source file"}]}],"entryCount":9,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Example Billingos France Sme documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fexample.billingos-france-sme","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/example.billingos-france-sme.txt"},"readme":{"status":"available","body":"# BillingOS V0 package\n\nAdditive BillingOS V0 surface. Core contracts stay country-neutral; France-specific readiness lives only in `@lssm-tech/lib.billing-france`. Runtime helpers are deterministic, backend-neutral, provider-free, and do not execute high-impact billing actions.\n\nFrance readiness metadata is not PA accreditation, production PA submission, legal advice, or tax advice.\n\n## CompanyOS module proof\n\nThe example exports `./companyos` as a first-class CompanyOS V1 operating-loop composition for BillingOS France SME. It models finance-owner authority, draft/dry-run-only agent operations, operator inbox routing, work graph hooks, and weekly review evidence around the replayed quote -> invoice -> payment -> France readiness path. Production invoice submission and France e-invoicing submission stay approval-gated; the module contains no provider credentials, network calls, or autonomous high-impact execution.\n\n## Preview / export workflow\n\nBillingOS France SME previews must stay deterministic, backend-neutral, provider-free, and approval-gated. The current `./ui` export wraps local quote-to-invoice, payment/reconciliation, France readiness, and CompanyOS approval-packet screens in the shared `NestedCommandShell` from `@lssm-tech/lib.example-shared-ui`; keep that reusable nested-safe shell as the outer preview frame for compatible BillingOS UI work. Preview screens must not introduce production PA submission, provider credentials, payment processing, legal/tax advice, or autonomous high-impact billing execution.\n\nKeep the France readiness pack as metadata and replay proof only. Preview docs, release notes, and `/llms*` guidance must repeat that the package is not PA accreditation and does not execute production e-invoicing.\n\n## Data-fetching engine integration\n\n`src/proof/data-fetching-integration.test.ts` proves BillingOS drives the canonical data-fetching engine (`@lssm-tech/lib.contracts-runtime-core` + `@lssm-tech/lib.contracts-runtime-server-rest`) end-to-end without weakening the safety model. All engine wiring lives in that `.test.ts` harness on purpose: the production example files must stay free of `fetch(`/`process.env`/credential literals (enforced by `safety.test.ts`), so the proof uses the real `createRestTransport` driven by an in-memory `fetch` double — deterministic, provider-free, no network.\n\nThe proof asserts: the `QueryResultEnvelope` read path (no `422`); one admitted draft mutation via `submitBillingMutation`; the admission gate parametrized over the **entire** `BillingActionKind` union (only `read`/`draft_quote`/`draft_invoice` reach `engine.mutate`; all 11 approval-gated kinds fail closed to a `pending approval` operator-review with no optimistic write); server-wins conflict rollback (never a silent overwrite); and offline queue-then-replay on reconnect.\n\nTwo decisions are load-bearing and documented in [`specs/billingos-consumer-guide/09-data-fetching-integration.md`](../../specs/billingos-consumer-guide/09-data-fetching-integration.md): **draft writes carry no `versionToken` this pass** (the event-log `version` is never mapped to the engine etag), and **pending-approval is not an optimistic / read-your-writes state** (approval-gated actions perform no local write). Production hosts inject a real `Transport`; the example never executes providers or production PA submission.\n\n## UI boundary\n\nThe preview UI is intentionally thin. It adapts the French SME fixture data into reusable workspaces from `@lssm-tech/module.billing-os/ui`, including quote creation/editing, invoice review, payment reconciliation, France readiness, and CompanyOS review screens. Example-local UI should stay limited to data mapping and preview shell wiring.\n\nDeclaration publication uses `contractspec-bun-build types` through\n`build:types`; `build` runs bundle and declaration generation. The build config\npreserves declared exports and excludes test-only files from generated build artifacts.\nPackage tests and typecheck remain separate verification gates.\n\nFull `build` regenerates JavaScript and declarations in one output transaction,\nrestoring previous `dist` if either stage fails. Standalone `build:bundle` still\npreserves declarations; use full `build` to reconcile obsolete output layouts.\n","sourcePath":"examples/billingos-france-sme/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/billingos-france-sme/README.md","blobSha":"6715188c75d992471c49a08cd840414e3459daf3","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"examples-and-patterns","areaTitle":"Examples and implementation patterns","displayName":"example.billingos-france-sme","runtimes":["node"],"platforms":["server"],"kind":"example","scope":"Package manifest","canonicalRoute":"/docs/packages/example.billingos-france-sme/","contextUrl":"/docs/packages/example.billingos-france-sme.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}