Skip to content

Commit e97f991

Browse files
committed
readme
1 parent e628b64 commit e97f991

File tree

10 files changed

+285
-143
lines changed

10 files changed

+285
-143
lines changed

README.md

Lines changed: 94 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
# Hyperweb
2+
# Interweb, Inc.
33

44
<p align="center" width="100%">
55
<img src="https://raw.githubusercontent.com/hyperweb-io/lib-count/refs/heads/main/assets/logo.svg" alt="hyperweb" width="80"><br />
@@ -25,7 +25,7 @@
2525
</p>
2626

2727

28-
## 🚀 Interweb, Inc.
28+
## 🚀 Brands of Interweb, Inc.
2929

3030
### Hyperweb
3131

@@ -41,9 +41,95 @@ We're thrilled to share that [**Cosmology** has rebranded as **Hyperweb**](https
4141
- 🔗 **LaunchQL GitHub Organization:** [**launchql**](https://github.com/launchql)
4242
- 🌐 **LaunchQL Website:** [**launchql.com**](https://launchql.com)
4343

44+
### PGPM
45+
46+
- 🌐 **PGPM Website:** [**pgpm.io**](https://pgpm.io)
47+
48+
49+
## Overall Download Statistics
50+
51+
| Category | Total | Monthly | Weekly |
52+
| ------- | ------ | ------- | ----- |
53+
| **Total** | 90,710,173 | 3,630,311 | 935,627 |
54+
| Web2 | 32,823,319 | 1,853,790 | 463,149 |
55+
| Web3 | 54,753,862 | 1,567,716 | 415,163 |
56+
| Utilities | 3,979,238 | 208,805 | 57,315 |
57+
4458

4559
---
4660

61+
# Modular Postgres Stack
62+
63+
Modular PostgreSQL tooling for full-stack TypeScript development.
64+
65+
| [Modular Postgres Portal](https://launchql.com): Quick Start | [PGPM](https://pgpm.io/): Postgres Package Manager |
66+
|:---:|:---:|
67+
68+
Modular PostgreSQL development with pgpm workspaces, reusable database modules, and end-to-end TypeScript testing 🐘
69+
70+
## Education and Tutorials
71+
72+
1. 🚀 [Quickstart: Getting Up and Running](https://launchql.com/learn/quickstart)
73+
Get started with modular databases in minutes. Install prerequisites and deploy your first module.
74+
75+
2. 📦 [Modular PostgreSQL Development with Database Packages](https://launchql.com/learn/modular-postgres)
76+
Learn to organize PostgreSQL projects with pgpm workspaces and reusable database modules.
77+
78+
3. ✏️ [Authoring Database Changes](https://launchql.com/learn/authoring-database-changes)
79+
Master the workflow for adding, organizing, and managing database changes with pgpm.
80+
81+
4. 🧪 [End-to-End PostgreSQL Testing with TypeScript](https://launchql.com/learn/e2e-postgres-testing)
82+
Master end-to-end PostgreSQL testing with ephemeral databases, RLS testing, and CI/CD automation.
83+
84+
5.[Supabase Testing](https://launchql.com/learn/supabase)
85+
Use TypeScript-first tools to test Supabase projects with realistic RLS, policies, and auth contexts.
86+
87+
6. 💧 [Drizzle ORM Testing](https://launchql.com/learn/drizzle-testing)
88+
Run full-stack tests with Drizzle ORM, including database setup, teardown, and RLS enforcement.
89+
90+
7. 🔧 [Troubleshooting](https://launchql.com/learn/troubleshooting)
91+
Common issues and solutions for pgpm, PostgreSQL, and testing.
92+
93+
### 🧪 Testing
94+
95+
* [launchql/pgsql-test](https://github.com/launchql/launchql/tree/main/packages/pgsql-test): **📊 Isolated testing environments** with per-test transaction rollbacks—ideal for integration tests, complex migrations, and RLS simulation.
96+
* [launchql/supabase-test](https://github.com/launchql/launchql/tree/main/packages/supabase-test): **🧪 Supabase-native test harness** preconfigured for the local Supabase stack—per-test rollbacks, JWT/role context helpers, and CI/GitHub Actions ready.
97+
* [launchql/graphile-test](https://github.com/launchql/launchql/tree/main/packages/graphile-test): **🔐 Authentication mocking** for Graphile-focused test helpers and emulating row-level security contexts.
98+
* [launchql/pg-query-context](https://github.com/launchql/launchql/tree/main/packages/pg-query-context): **🔒 Session context injection** to add session-local context (e.g., `SET LOCAL`) into queries—ideal for setting `role`, `jwt.claims`, and other session settings.
99+
100+
### 🧠 Parsing & AST
101+
102+
* [launchql/pgsql-parser](https://github.com/launchql/pgsql-parser): **🔄 SQL conversion engine** that interprets and converts PostgreSQL syntax.
103+
* [launchql/libpg-query-node](https://github.com/launchql/libpg-query-node): **🌉 Node.js bindings** for `libpg_query`, converting SQL into parse trees.
104+
* [launchql/pg-proto-parser](https://github.com/launchql/pg-proto-parser): **📦 Protobuf parser** for parsing PostgreSQL Protocol Buffers definitions to generate TypeScript interfaces, utility functions, and JSON mappings for enums.
105+
* [@pgsql/enums](https://github.com/launchql/pgsql-parser/tree/main/packages/enums): **🏷️ TypeScript enums** for PostgreSQL AST for safe and ergonomic parsing logic.
106+
* [@pgsql/types](https://github.com/launchql/pgsql-parser/tree/main/packages/types): **📝 Type definitions** for PostgreSQL AST nodes in TypeScript.
107+
* [@pgsql/utils](https://github.com/launchql/pgsql-parser/tree/main/packages/utils): **🛠️ AST utilities** for constructing and transforming PostgreSQL syntax trees.
108+
* [launchql/pg-ast](https://github.com/launchql/launchql/tree/main/packages/pg-ast): **🔍 Low-level AST tools** and transformations for Postgres query structures.
109+
110+
### 🚀 API & Dev Tools
111+
112+
* [launchql/server](https://github.com/launchql/launchql/tree/main/packages/server): **⚡ Express-based API server** powered by PostGraphile to expose a secure, scalable GraphQL API over your Postgres database.
113+
* [launchql/explorer](https://github.com/launchql/launchql/tree/main/packages/explorer): **🔎 Visual API explorer** with GraphiQL for browsing across all databases and schemas—useful for debugging, documentation, and API prototyping.
114+
115+
### 🔁 Streaming & Uploads
116+
117+
* [launchql/s3-streamer](https://github.com/launchql/launchql/tree/main/packages/s3-streamer): **📤 Direct S3 streaming** for large files with support for metadata injection and content validation.
118+
* [launchql/etag-hash](https://github.com/launchql/launchql/tree/main/packages/etag-hash): **🏷️ S3-compatible ETags** created by streaming and hashing file uploads in chunks.
119+
* [launchql/etag-stream](https://github.com/launchql/launchql/tree/main/packages/etag-stream): **🔄 ETag computation** via Node stream transformer during upload or transfer.
120+
* [launchql/uuid-hash](https://github.com/launchql/launchql/tree/main/packages/uuid-hash): **🆔 Deterministic UUIDs** generated from hashed content, great for deduplication and asset referencing.
121+
* [launchql/uuid-stream](https://github.com/launchql/launchql/tree/main/packages/uuid-stream): **🌊 Streaming UUID generation** based on piped file content—ideal for upload pipelines.
122+
* [launchql/upload-names](https://github.com/launchql/launchql/tree/main/packages/upload-names): **📂 Collision-resistant filenames** utility for structured and unique file names for uploads.
123+
124+
### 🧰 CLI & Codegen
125+
126+
* [pgpm](https://github.com/launchql/launchql/tree/main/packages/pgpm): **🖥️ PostgreSQL Package Manager** for modular Postgres development. Works with database workspaces, scaffolding, migrations, seeding, and installing database packages.
127+
* [@launchql/cli](https://github.com/launchql/launchql/tree/main/packages/cli): **🖥️ Command-line toolkit** for managing LaunchQL projects—supports database scaffolding, migrations, seeding, code generation, and automation.
128+
* [launchql/launchql-gen](https://github.com/launchql/launchql/tree/main/packages/launchql-gen): **✨ Auto-generated GraphQL** mutations and queries dynamically built from introspected schema data.
129+
* [@launchql/query-builder](https://github.com/launchql/launchql/tree/main/packages/query-builder): **🏗️ SQL constructor** providing a robust TypeScript-based query builder for dynamic generation of `SELECT`, `INSERT`, `UPDATE`, `DELETE`, and stored procedure calls—supports advanced SQL features like `JOIN`, `GROUP BY`, and schema-qualified queries.
130+
* [@launchql/query](https://github.com/launchql/launchql/tree/main/packages/query): **🧩 Fluent GraphQL builder** for PostGraphile schemas. ⚡ Schema-aware via introspection, 🧩 composable and ergonomic for building deeply nested queries.
131+
---
132+
47133
# Interchain JavaScript Stack
48134

49135
A unified toolkit for building applications and smart contracts in the Interchain ecosystem with JavaScript.
@@ -53,6 +139,7 @@ A unified toolkit for building applications and smart contracts in the Interchai
53139

54140
A unified toolkit for building applications and smart contracts in the Interchain ecosystem ⚛️
55141

142+
56143
| Category | Tools | Downloads |
57144
|----------------------|------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
58145
| **Chain Information** | [**Chain Registry**](https://github.com/hyperweb-io/chain-registry), [**Utils**](https://www.npmjs.com/package/@chain-registry/utils), [**Client**](https://www.npmjs.com/package/@chain-registry/client) | ![Chain Registry](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fhyperweb-io%2Flib-count%2Fmain%2Fbadges%2Fproducts%2Fchain-registry%2Ftotal.json) |
@@ -64,15 +151,6 @@ A unified toolkit for building applications and smart contracts in the Interchai
64151
| **Testing Frameworks** | [**Starship**](https://github.com/hyperweb-io/starship) | ![Testing](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fhyperweb-io%2Flib-count%2Fmain%2Fbadges%2Fproducts%2Fstarship%2Ftotal.json) |
65152
| **TypeScript Smart Contracts** | [**Create Hyperweb App**](https://github.com/hyperweb-io/create-hyperweb-app) | ![TypeScript Smart Contracts](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fhyperweb-io%2Flib-count%2Fmain%2Fbadges%2Fproducts%2Fhyperwebjs%2Ftotal.json) |
66153
| **CosmWasm Contracts** | [**CosmWasm TS Codegen**](https://github.com/CosmWasm/ts-codegen) | ![CosmWasm Contracts](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fhyperweb-io%2Flib-count%2Fmain%2Fbadges%2Fproducts%2Fcosmwasm%2Ftotal.json) |
67-
## Overall Download Statistics
68-
69-
| Category | Total | Monthly | Weekly |
70-
| ------- | ------ | ------- | ----- |
71-
| **Total** | 90,710,173 | 3,630,311 | 935,627 |
72-
| Web2 | 32,823,319 | 1,853,790 | 463,149 |
73-
| Web3 | 54,753,862 | 1,567,716 | 415,163 |
74-
| Utilities | 3,979,238 | 208,805 | 57,315 |
75-
76154
## Table of Contents
77155

78156
- [launchql](#launchql)
@@ -964,6 +1042,7 @@ A unified toolkit for building applications and smart contracts in the Interchai
9641042
<img width="400px" src="https://github.com/user-attachments/assets/9d34000e-56ff-4e83-8e4d-612bc79712f4" />
9651043
</a>
9661044

1045+
9671046
---
9681047

9691048
## What Does This Rebrand Mean?
@@ -974,6 +1053,7 @@ Hyperweb represents the evolution of Cosmology's mission, focusing on accessibil
9741053
### 🤝 **Same Great Tools, New Identity**
9751054
All the tools and projects you know and love from Cosmology are now part of the Hyperweb ecosystem. Expect the same commitment to open-source collaboration with a fresh perspective.
9761055

1056+
9771057
---
9781058

9791059
## What's Next?
@@ -987,6 +1067,7 @@ All the tools and projects you know and love from Cosmology are now part of the
9871067
3. **Join the Movement**
9881068
Be part of the Hyperweb community and help us shape the future of decentralized technology.
9891069

1070+
9901071
---
9911072

9921073
### Thank You 💖
@@ -996,4 +1077,5 @@ To the amazing Cosmology community: thank you for being part of our journey. Wit
9961077
Let's build the future, together. 🚀
9971078

9981079

999-
<!-- README.md automatically generated on 2025-12-06T07:05:43.875Z from lib-count repository with latest download stats -->
1080+
1081+
<!-- README.md automatically generated on 2025-12-06T07:25:59.309Z from lib-count repository with latest download stats -->

packages/stats-db/src/tasks/npm/npm.gen-readme.ts

Lines changed: 43 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ function formatNumber(num: number): string {
1515
return num.toLocaleString();
1616
}
1717

18+
const SNIPPETS_DIR = path.resolve(__dirname, "../readme-snippets");
19+
20+
function readSnippet(filename: string): string {
21+
return fs.readFileSync(path.join(SNIPPETS_DIR, filename), "utf-8");
22+
}
23+
1824
async function getPackageStats(
1925
dbClient: PoolClient,
2026
packageName: string
@@ -310,42 +316,6 @@ function generateBadgesSection(repoName: string): string {
310316
`; // Ensured two newlines at the end to create a blank line before the next section
311317
}
312318

313-
function generateIntroSection(): string {
314-
return `
315-
## 🚀 Interweb, Inc.
316-
317-
### Hyperweb
318-
319-
We\'re thrilled to share that [**Cosmology** has rebranded as **Hyperweb**](https://hyperweb.io/blog/01-28-2025-journey-from-cosmology-to-hyperweb)! 🎉
320-
321-
- 🔗 **Hyperweb GitHub Organization:** [**hyperweb-io**](https://github.com/hyperweb-io)
322-
- 🌐 **Hyperweb Website:** [**hyperweb.io**](https://hyperweb.io)
323-
324-
📺 **Watch the [Hyperweb Announcement](https://www.youtube.com/watch?v=a_G2_KXRf1Y&list=PL_XyHnlG9MMvekTCbbJArAOwVlkCY54V5&index=2)**
325-
326-
### LaunchQL
327-
328-
- 🔗 **LaunchQL GitHub Organization:** [**launchql**](https://github.com/launchql)
329-
- 🌐 **LaunchQL Website:** [**launchql.com**](https://launchql.com)
330-
331-
`; // Ensured two newlines for a blank line before the --- separator
332-
}
333-
334-
function generateStackIntro(): string {
335-
return `
336-
---
337-
338-
# Interchain JavaScript Stack
339-
340-
A unified toolkit for building applications and smart contracts in the Interchain ecosystem with JavaScript.
341-
342-
| [Developer Portal](https://hyperweb.io): Quick Start | [Interweb Discord](https://discord.com/invite/xh3ZwHj2qQ): Support & Community | [GitHub Discussions](https://github.com/orgs/hyperweb-io/discussions): Technical Hub |
343-
|:---:|:---:|:---:|
344-
345-
A unified toolkit for building applications and smart contracts in the Interchain ecosystem ⚛️
346-
`;
347-
}
348-
349319
function generateToolsTable(
350320
repoName: string,
351321
categoryPackageStats: Map<string, CategoryStats>
@@ -374,6 +344,32 @@ function generateToolsTable(
374344
`;
375345
}
376346

347+
function getSortedVisibleCategories(): string[] {
348+
const visibleCategories = Object.keys(packages).filter(
349+
(key) => !readmeHiddenCategories.includes(key)
350+
);
351+
return visibleCategories.sort((a, b) => {
352+
const aIndex = readmeCategoryOrder.indexOf(a);
353+
const bIndex = readmeCategoryOrder.indexOf(b);
354+
if (aIndex !== -1 && bIndex !== -1) return aIndex - bIndex;
355+
if (aIndex !== -1) return -1;
356+
if (bIndex !== -1) return 1;
357+
return a.localeCompare(b);
358+
});
359+
}
360+
361+
function generateCategorySections(categoryStatsMap: Map<string, CategoryStats>): string {
362+
const categoryKeys = getSortedVisibleCategories();
363+
let content = generateToc(categoryKeys);
364+
for (const categoryName of categoryKeys) {
365+
const categoryData = categoryStatsMap.get(categoryName);
366+
if (categoryData) {
367+
content += generateCategoryTableSection(categoryName, categoryData);
368+
}
369+
}
370+
return content;
371+
}
372+
377373
function generateToc(packageCategories: string[]): string {
378374
const tocTitle = "## Table of Contents\n\n";
379375
const tocItems = packageCategories.map((categoryName) => {
@@ -417,70 +413,13 @@ function generateCategoryTableSection(
417413
return lines.join("\n") + "\n\n";
418414
}
419415

420-
function generateStackAnnouncement(): string {
421-
return `
422-
---
423-
424-
# Interchain JavaScript Stack Announcement
425-
426-
🎥 Watch the [Interchain JS presentation](https://www.youtube.com/watch?v=locvOlLDoVY&list=PL_XyHnlG9MMvekTCbbJArAOwVlkCY54V5&index=1).
427-
428-
<a href="https://www.youtube.com/watch?v=locvOlLDoVY&list=PL_XyHnlG9MMvekTCbbJArAOwVlkCY54V5&index=1">
429-
<img width="400px" src="https://github.com/user-attachments/assets/9d34000e-56ff-4e83-8e4d-612bc79712f4" />
430-
</a>
431-
`;
432-
}
433-
434-
function generateRebrandInfo(): string {
435-
return `
436-
---
437-
438-
## What Does This Rebrand Mean?
439-
440-
### 🌟 **A Unified Vision**
441-
Hyperweb represents the evolution of Cosmology\'s mission, focusing on accessibility, innovation, and empowering cross-chain development for everyone.
442-
443-
### 🤝 **Same Great Tools, New Identity**
444-
All the tools and projects you know and love from Cosmology are now part of the Hyperweb ecosystem. Expect the same commitment to open-source collaboration with a fresh perspective.
445-
`;
446-
}
447-
448-
function generateWhatsNext(): string {
449-
return `
450-
---
451-
452-
## What\'s Next?
453-
454-
1. **Explore Hyperweb**
455-
Visit [**hyperweb-io on GitHub**](https://github.com/hyperweb-io) to find all the tools, repositories, and resources under the new brand.
456-
457-
2. **Follow Our Growth**
458-
Stay tuned as we continue to innovate and expand the possibilities of cross-chain development with Hyperweb.
459-
460-
3. **Join the Movement**
461-
Be part of the Hyperweb community and help us shape the future of decentralized technology.
462-
`;
463-
}
464-
465-
function generateThankYou(): string {
466-
return `
467-
---
468-
469-
### Thank You 💖
470-
471-
To the amazing Cosmology community: thank you for being part of our journey. With Hyperweb, we\'re taking everything you love to the next level—and we\'re thrilled to have you with us.
472-
473-
Let's build the future, together. 🚀
474-
`;
475-
}
476-
477416
function generateTimestampComment(repoBaseName: string): string {
478417
return `\n\n<!-- README.md automatically generated on ${new Date().toISOString()} from ${repoBaseName} repository with latest download stats -->\n`;
479418
}
480419

481420
export async function generateReadmeNew(): Promise<string> {
482421
const db = new Database();
483-
let readmeContent = "# Hyperweb\n";
422+
let readmeContent = "# Interweb, Inc.\n";
484423
let repoName = "hyperweb-io/hyperweb-statistics";
485424
let repoBaseName = "hyperweb-statistics";
486425

@@ -582,44 +521,17 @@ export async function generateReadmeNew(): Promise<string> {
582521

583522
// Assemble README sections
584523
readmeContent += generateBadgesSection(repoName);
585-
readmeContent += generateIntroSection();
586-
readmeContent += generateStackIntro();
587-
readmeContent += generateToolsTable(repoName, categoryStatsMap);
524+
readmeContent += readSnippet("intro.md");
588525
readmeContent += generateOverallStatsTable(totals);
589-
590-
// Generate and add Table of Contents
591-
// Filter out hidden categories (they're still counted in totals)
592-
// Sort by readmeCategoryOrder preference, then alphabetically for unlisted
593-
const visibleCategories = Object.keys(packages).filter(
594-
(key) => !readmeHiddenCategories.includes(key)
595-
);
596-
const categoryKeys = visibleCategories.sort((a, b) => {
597-
const aIndex = readmeCategoryOrder.indexOf(a);
598-
const bIndex = readmeCategoryOrder.indexOf(b);
599-
// Both in order list: sort by position
600-
if (aIndex !== -1 && bIndex !== -1) return aIndex - bIndex;
601-
// Only a in list: a comes first
602-
if (aIndex !== -1) return -1;
603-
// Only b in list: b comes first
604-
if (bIndex !== -1) return 1;
605-
// Neither in list: alphabetical
606-
return a.localeCompare(b);
607-
});
608-
readmeContent += generateToc(categoryKeys);
609-
610-
// Add individual category tables
611-
for (const categoryName of categoryKeys) {
612-
// Use the same keys for order consistency
613-
const categoryData = categoryStatsMap.get(categoryName);
614-
if (categoryData) {
615-
readmeContent += generateCategoryTableSection(categoryName, categoryData);
616-
}
617-
}
618-
619-
readmeContent += generateStackAnnouncement();
620-
readmeContent += generateRebrandInfo();
621-
readmeContent += generateWhatsNext();
622-
readmeContent += generateThankYou();
526+
readmeContent += readSnippet("database-stack-intro.md");
527+
readmeContent += readSnippet("database-tooling.md");
528+
readmeContent += readSnippet("interchain-stack-intro.md");
529+
readmeContent += generateToolsTable(repoName, categoryStatsMap);
530+
readmeContent += generateCategorySections(categoryStatsMap);
531+
readmeContent += readSnippet("stack-announcement.md");
532+
readmeContent += readSnippet("rebrand-info.md");
533+
readmeContent += readSnippet("whats-next.md");
534+
readmeContent += readSnippet("thank-you.md");
623535
readmeContent += generateTimestampComment(repoBaseName);
624536

625537
return "\n" + readmeContent;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
2+
---
3+
4+
# Modular Postgres Stack
5+
6+
Modular PostgreSQL tooling for full-stack TypeScript development.
7+
8+
| [Modular Postgres Portal](https://launchql.com): Quick Start | [PGPM](https://pgpm.io/): Postgres Package Manager |
9+
|:---:|:---:|
10+
11+
Modular PostgreSQL development with pgpm workspaces, reusable database modules, and end-to-end TypeScript testing 🐘
12+

0 commit comments

Comments
 (0)