Skip to content
Merged

Dev #32

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
2 changes: 1 addition & 1 deletion .agents/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ This workspace is a **Turborepo** monorepo using **Bun** workspaces for high-per
│ └── tscheck/ # TypeScript & AST checking module
├── apps/
│ ├── native/ # Interactive Expo playground app (iOS / Android / Web)
│ └── docs/ # Astro 5 + Starlight documentation portal (https://react-native-library-docs.netlify.app)
│ └── docs/ # Astro 5 + Starlight documentation portal (https://react-native-library-docs.vercel.app)
├── scripts/ # Workspace maintenance & audit scripts (e.g. audit-codebase.ts)
└── .agents/ # Centralized AI rules, skills, and configuration
```
Expand Down
2 changes: 1 addition & 1 deletion .agents/rules/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Welcome to the **Masum Dev** React Native & Expo Library Workspace. This project
│ └── tscheck/ # TypeScript & AST checking module
├── apps/
│ ├── native/ # Interactive Expo playground app (iOS / Android / Web)
│ └── docs/ # Astro 5 + Starlight documentation portal (https://react-native-library-docs.netlify.app)
│ └── docs/ # Astro 5 + Starlight documentation portal (https://react-native-library-docs.vercel.app)
├── scripts/ # Workspace maintenance & audit scripts (e.g. audit-codebase.ts)
├── .agents/ # Centralized AI rules, skills, and configuration
├── turbo.json # Turborepo task orchestration
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Welcome to **Masum Dev** monorepo repository. This project contains high-perform
│ └── tscheck/ # TypeScript & AST auditing module
├── apps/
│ ├── native/ # Interactive Expo playground app (iOS / Android / Web)
│ └── docs/ # Astro 5 + Starlight documentation portal (https://react-native-library-docs.netlify.app)
│ └── docs/ # Astro 5 + Starlight documentation portal (https://react-native-library-docs.vercel.app)
├── CONTEXT.md # Monorepo architecture & domain context
├── RULES.md # Mandatory development & contribution rules
├── README.md # Monorepo setup & getting started guide
Expand Down Expand Up @@ -104,5 +104,5 @@ https://raw.githubusercontent.com/masumrpg/react-native-library/main/packages/ts

## 📄 Documentation

Visit our official documentation portal at **[https://react-native-library-docs.netlify.app](https://react-native-library-docs.netlify.app)** for guides, component API references, and interactive code samples.
Visit our official documentation portal at **[https://react-native-library-docs.vercel.app](https://react-native-library-docs.vercel.app)** for guides, component API references, and interactive code samples.

100 changes: 67 additions & 33 deletions apps/cli/markforge/markforge.full-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ import {
PaperSizeEnum,
SyntaxTheme,
WatermarkPosition,
SignatureAlign,
SignatureStyle,
CoverPagePreset,
} from "@masumdev/markforge";

/**
Expand All @@ -14,8 +17,8 @@ import {
* Any property that is optional or alternative is also presented as a commented line for quick toggling.
*/
export default defineConfig({
// Target output formats (using OutputFormat enum or strings: "docx" | "pdf" | "html" | "png")
to: [OutputFormat.DOCX, OutputFormat.PDF, OutputFormat.HTML],
// Target output formats (using OutputFormat enum or strings: "docx" | "pdf" | "html" | "txt" | "png")
to: [OutputFormat.DOCX, OutputFormat.PDF, OutputFormat.HTML, OutputFormat.TXT, OutputFormat.PNG],
// to: [OutputFormat.PDF], // Single target compilation

// Output directory where compiled documents will be saved
Expand All @@ -39,29 +42,25 @@ export default defineConfig({
// fontMono: "Fira Code, monospace",
// },

// Page orientation (Orientation.PORTRAIT or Orientation.LANDSCAPE)
orientation: Orientation.PORTRAIT,
// orientation: Orientation.LANDSCAPE,
// Page geometry and layout
orientation: Orientation.PORTRAIT, // "portrait" | "landscape"
paperSize: PaperSizeEnum.A4, // "A4" | "Letter" | "Legal" | "A3" | "A5"

// Standard paper size (A4, Letter, Legal, A3, A5)
paperSize: PaperSizeEnum.A4,

// Page margins (supports CSS units: "3cm", "25mm", "1in", or numbers in pt)
// Precise document margins with standard units (cm, mm, in, pt)
margins: {
top: "3cm",
top: "2.5cm",
bottom: "2.5cm",
left: "2.5cm",
right: "2.5cm",
},

// Document running headers with dynamic variable substitution & per-zone slot styling
// Document running headers with dynamic token interpolation & per-zone slot styling
header: {
// Left slot: Can be a plain string template OR a rich HeaderFooterSlot object
// Left slot: Custom colored title token
left: {
text: "{company}",
text: "{title}",
color: "#0D998D",
fontSize: 9,
fontFamily: "Inter, Segoe UI, sans-serif",
fontSize: 8.5,
bold: true,
},
// Center slot: Plain string template using default header styles
Expand All @@ -75,6 +74,7 @@ export default defineConfig({
},
// Horizontal separator line under header
divider: false,
// dividerColor: "#E2E8F0",
},

// Document running footers with dynamic page numbering & per-zone slot styling
Expand All @@ -101,15 +101,18 @@ export default defineConfig({
},
// Horizontal separator line above footer
divider: false,
// dividerColor: "#E2E8F0",
},

// Automatic Table of Contents generation
toc: true,
// tocTitle: "TABLE OF CONTENTS",
// tocDepth: 3,

// Dedicated Standalone Front Cover Page Builder
coverPage: {
enabled: true,
preset: "modern", // Options: "modern" | "corporate-split" | "minimal" | "card"
preset: CoverPagePreset.MODERN, // Options: "modern" | "corporate-split" | "minimal" | "card" or CoverPagePreset Enum
title: "{title}",
subtitle: "{subtitle}",
author: "{author}",
Expand All @@ -120,17 +123,35 @@ export default defineConfig({
badgeColor: "#ECFDFD",
badgeTextColor: "#0D998D",
logo: "./assets/company-logo.png", // Company logo path or Base64 data URI
logoWidth: 120, // Logo display width in px
logoWidth: 120, // Logo display width in px or css string (e.g. "120px")
footerText: "Proprietary & Confidential — Masum Dev Technologies",

// Symmetric Custom Styling Properties (uncomment to customize):
// backgroundColor: "#0A192F",
// bgGradient: "linear-gradient(135deg, #0A192F 0%, #0D998D 100%)",
// textColor: "#F8FAFC",
// titleColor: "#38BDF8",
// subtitleColor: "#94A3B8",
// accentColor: "#0D998D",
// address: "Jakarta, Indonesia",
// email: "contact@masumdev.com",
// phone: "+62 812 3456 7890",
// website: "https://react-native-library-docs.vercel.app",
// social: {
// github: "https://github.com/masumrpg",
// twitter: "https://x.com/masumdev",
// linkedin: "https://linkedin.com/in/masumdev",
// },
// copyright: "Copyright (c) {year} {company}. All Rights Reserved.",
},
// coverPage: false, // Set to false to disable front cover page entirely

// Hierarchical decimal section numbering (e.g. 1., 1.1, 1.1.1)
numberHeadings: {
enabled: true,
depth: 3, // Max heading depth to number (H1..H3)
depth: 3, // Max heading depth to number (H1..H3)
skipH1: false, // Number from H1 downwards (set true if H1 is document title)
prefix: "", // Optional prefix (e.g. "Section ")
prefix: "", // Optional prefix (e.g. "Section ")
},
// numberHeadings: false, // Set to false to disable section numbering

Expand All @@ -140,9 +161,9 @@ export default defineConfig({
// PDF Document Security & Password Encryption
// security: {
// userPassword: "masumdev_secret", // Password required to open document
// ownerPassword: "masumdev_admin", // Master password required to modify permissions
// ownerPassword: "masumdev_admin", // Master password required to modify permissions
// permissions: {
// printing: "highResolution", // "highResolution" | "lowResolution" | false
// printing: "highResolution", // "highResolution" | "lowResolution" | false
// modifying: false,
// copying: true,
// annotating: true,
Expand Down Expand Up @@ -174,8 +195,8 @@ export default defineConfig({

// Document signature & approval blocks (1 to 4 signatory slots with customizable style and alignment)
signatures: {
align: "space-between", // "space-between" | "center" | "left" | "right"
style: "line", // "line" | "box" | "clean"
align: SignatureAlign.SPACE_BETWEEN, // SignatureAlign.SPACE_BETWEEN | SignatureAlign.CENTER | SignatureAlign.LEFT | SignatureAlign.RIGHT
style: SignatureStyle.LINE, // SignatureStyle.LINE | SignatureStyle.BOX | SignatureStyle.CLEAN
items: [
{
title: "Prepared by",
Expand Down Expand Up @@ -211,28 +232,41 @@ export default defineConfig({
company: "{company}",
address: "Jakarta, Indonesia",
email: "contact@masumdev.com",
// phone: "+62 812 3456 7890",
website: "https://react-native-library-docs.netlify.app",
// social: {
// github: "https://github.com/masumrpg",
// // twitter: "https://x.com/masumdev",
// // linkedin: "https://linkedin.com/in/masumdev",
// },
phone: "+62 812 3456 7890",
website: "https://react-native-library-docs.vercel.app",
social: {
github: "https://github.com/masumrpg",
twitter: "https://x.com/masumdev",
linkedin: "https://linkedin.com/in/masumdev",
},
copyright: "Copyright (c) {year} {company}. All Rights Reserved.",
// bgGradient: "#fff",

// Symmetric Custom Styling Properties (uncomment to customize):
// backgroundColor: "#0A192F",
// bgGradient: "linear-gradient(135deg, #0A192F 0%, #0D998D 100%)",
// textColor: "#F8FAFC",
// titleColor: "#38BDF8",
// subtitleColor: "#94A3B8",
// accentColor: "#0D998D",
// badge: "MASUM DEV TECHNOLOGIES",
// badgeColor: "#0D998D",
// badgeTextColor: "#FFFFFF",
// footerText: "End of Official Specification Document",
},
// backCover: false, // Set to false to disable back cover closing page

// Fallback metadata dictionary
// Fallback metadata dictionary & arbitrary dynamic token interpolation
metadata: {
title: "Complete MarkForge Reference Manual",
subtitle: "Enterprise Document Compiler & Visual Architecture",
author: "Ma'sum",
company: "Masum Dev Technologies",
version: "1.0.0",
date: "2026-08-29",
year: "2026",
lang: "en",
metakuda: "Kuda"
metakuda: "CONFIDENTIAL DRAFT",
custom_project_code: "MF-2026-PROD",
},

// Custom external stylesheet path(s) to inject into HTML and PDF documents
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import starlight from '@astrojs/starlight';

// https://astro.build/config
export default defineConfig({
site: 'https://react-native-library-docs.netlify.app',
site: 'https://react-native-library-docs.vercel.app',
integrations: [
starlight({
title: 'Masum Dev',
Expand Down
13 changes: 13 additions & 0 deletions apps/docs/src/content/docs/markforge/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,19 @@ sidebar:
description: Release history and version notes for @masumdev/markforge.
---

## [0.5.0] - 2026-09-03

### Plain Text (.txt) Document Publishing Engine

- **Plain Text (.txt) Output Format**:
- Added native support for compiling Markdown documents into structured plain text files (`OutputFormat.TXT` or `"txt"` in `to:` array / `--to txt`).
- Structured document rendering with centered title banner, Table of Contents, double (`=`) and single (`-`) divider rules, callout tags (`| [NOTE]`), blockquotes (`> text`), code blocks with language annotations, and task item checkboxes (`[x]` / `[ ]`).
- ASCII grid-aligned tables with dynamic column width calculation and text padding.
- Complete support for footnotes (`[1] text`), approval signatures, and back cover closing card with dynamic metadata token replacement.
- Terminal CLI and Ink UI integration with green badge color highlighting for `[TXT]` documents in the compilation summary table.

---

## [0.4.1] - 2026-08-30

### Enhancements, Security, CLI, and Configuration Refinements
Expand Down
8 changes: 4 additions & 4 deletions apps/docs/src/content/docs/markforge/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import {

export default defineConfig({
// Target output formats
to: [OutputFormat.DOCX, OutputFormat.PDF, OutputFormat.HTML],
to: [OutputFormat.DOCX, OutputFormat.PDF, OutputFormat.HTML, OutputFormat.TXT],

// Output destination directory
outputDir: ".temp/output",
Expand Down Expand Up @@ -81,7 +81,7 @@ export default defineConfig({
address: "Jakarta, Indonesia",
email: "contact@masumdev.com",
phone: "+62 812 3456 7890",
website: "https://react-native-library-docs.netlify.app",
website: "https://react-native-library-docs.vercel.app",
social: {
github: "https://github.com/masumrpg",
},
Expand Down Expand Up @@ -210,7 +210,7 @@ export default defineConfig({

| Property | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `to` | `OutputFormat[]` | `['docx', 'pdf']` | Array of output file formats to compile: `OutputFormat.DOCX`, `OutputFormat.PDF`, `OutputFormat.HTML`, `OutputFormat.PNG`. |
| `to` | `OutputFormat[]` | `['docx', 'pdf']` | Array of output file formats to compile: `OutputFormat.DOCX`, `OutputFormat.PDF`, `OutputFormat.HTML`, `OutputFormat.TXT`, `OutputFormat.PNG`. |
| `outputDir` | `string` | `'.'` | Destination folder for compiled document files. Created automatically if it does not exist. |
| `clean` | `boolean` | `false` | When `true`, removes existing compiled documents in `outputDir` prior to compilation. |

Expand Down Expand Up @@ -351,7 +351,7 @@ backCover: {
address: "Jakarta, Indonesia",
email: "contact@masumdev.com",
phone: "+62 812 3456 7890",
website: "https://react-native-library-docs.netlify.app",
website: "https://react-native-library-docs.vercel.app",
logo: "./assets/company-logo.png",
logoWidth: 120,
social: {
Expand Down
6 changes: 3 additions & 3 deletions apps/docs/src/content/docs/rn-qr-code/customization.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: Custom eye corner radii, linear & radial gradients, logos, and imag
import { Code } from '@astrojs/starlight/components';

export const customEyeCode = `<QRCode
value="https://react-native-library-docs.netlify.app/rn-qr-code/"
value="https://react-native-library-docs.vercel.app/rn-qr-code/"
size={200}
eye={{
topLeft: {
Expand All @@ -33,7 +33,7 @@ export const customEyeCode = `<QRCode
/>`;

export const gradientCode = `<QRCode
value="https://react-native-library-docs.netlify.app/rn-qr-code/"
value="https://react-native-library-docs.vercel.app/rn-qr-code/"
size={240}
gradient={{
type: 'linear',
Expand All @@ -51,7 +51,7 @@ export const gradientCode = `<QRCode
/>`;

export const logoCode = `<QRCode
value="https://react-native-library-docs.netlify.app/rn-qr-code/"
value="https://react-native-library-docs.vercel.app/rn-qr-code/"
size={240}
errorCorrectionLevel="H"
logo={{
Expand Down
4 changes: 2 additions & 2 deletions apps/docs/src/content/docs/rn-qr-code/usage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { QRCode } from '@masumdev/rn-qr-code';
export function BasicQRCodeExample() {
return (
<QRCode
value="https://react-native-library-docs.netlify.app/rn-qr-code/"
value="https://react-native-library-docs.vercel.app/rn-qr-code/"
size={200}
variant="BASIC"
/>
Expand Down Expand Up @@ -46,7 +46,7 @@ import { Skeleton } from '@masumdev/rn-ui';
export function AsyncQRCodeExample() {
return (
<QRCode
value="https://react-native-library-docs.netlify.app/rn-qr-code/"
value="https://react-native-library-docs.vercel.app/rn-qr-code/"
size={180}
isAsync
renderLoading={() => (
Expand Down
13 changes: 13 additions & 0 deletions apps/docs/src/content/docs/tscheck/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,19 @@ sidebar:
description: Release history and version notes for @masumdev/tscheck.
---

### v0.2.3

#### Bug Fixes & Improvements
- **Default Report Server Behavior**:
- Changed default `serve` option to `false`. Running `tscheck` now executes the audit and exits cleanly without starting an HTTP background server or blocking the shell.
- Report server is only launched when explicitly enabled via `-s` / `--serve [port]`, `-p` / `--port <number>`, or `-O` / `--open`.
- **CLI Options & Configuration Precedence**:
- Fixed Commander option defaults so that configuration file values for `editor` and `format` are properly respected when CLI flags are omitted.
- Added `-p, --port <number>` flag for configuring the local report server port.
- Added clean terminal unmounting on non-interactive audit completion.

---

### v0.2.2

#### New Features
Expand Down
4 changes: 2 additions & 2 deletions apps/docs/src/content/docs/tscheck/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ When no explicit configuration file path is passed via `-c` or `--config`, `tsch
"markdown": true,
"html": true,
"ai": true,
"serve": true,
"serve": false,
"open": false,
"port": 5500,
"editor": "vscode",
Expand Down Expand Up @@ -213,4 +213,4 @@ const b: any = 2;

- **Author**: **[Ma'sum](https://github.com/masumrpg)**
- **Repository**: [GitHub Repository](https://github.com/masumrpg/react-native-library)
- **Docs Portal**: [https://react-native-library-docs.netlify.app](https://react-native-library-docs.netlify.app)
- **Docs Portal**: [https://react-native-library-docs.vercel.app/](https://react-native-library-docs.vercel.app/)
4 changes: 2 additions & 2 deletions apps/docs/src/content/docs/tscheck/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import { LinkCard, CardGrid, Card } from '@astrojs/starlight/components';
<img src="https://img.shields.io/badge/Coverage-100%25-10B981?style=for-the-badge&logo=bun&logoColor=white&label=Coverage" alt="test coverage" />
</a>
<a href="https://github.com/masumrpg/react-native-library/actions/workflows/ci.yml">
<img src="https://img.shields.io/badge/Tests-61%20Passed-10B981?style=for-the-badge&logo=bun&logoColor=white&label=Tests" alt="tests passing" />
<img src="https://img.shields.io/badge/Tests-62%20Passed-10B981?style=for-the-badge&logo=bun&logoColor=white&label=Tests" alt="tests passing" />
</a>
<a href="https://github.com/masumrpg/react-native-library/actions/workflows/ci.yml">
<img src="https://img.shields.io/badge/CI-Passing-10B981?style=for-the-badge&logo=githubactions&logoColor=white&label=CI" alt="ci status" />
Expand Down Expand Up @@ -63,7 +63,7 @@ import { LinkCard, CardGrid, Card } from '@astrojs/starlight/components';
Generates single-file self-contained HTML audit reports with live filtering, dark/light mode toggle, and clickable deprecation links.
</Card>
<Card title="100% Green Code Coverage" icon="approve-check">
Guaranteed reliability with 56 unit and end-to-end integration tests spanning AST rules, terminal rendering, configuration parsing, and CLI subprocess execution.
Guaranteed reliability with 62 unit and end-to-end integration tests spanning AST rules, terminal rendering, configuration parsing, and CLI subprocess execution.
</Card>
</CardGrid>

Expand Down
Loading
Loading