Feat/nova#1
Open
isma-is-dev wants to merge 4 commits intomainfrom
Open
Conversation
…mands (test, new, generate) - @nodeon/core: Result, Option, itertools, utils, assert, collections (HashMap, LinkedList, Stack, Queue) - @nodeon/test: describe/it/expect (20+ matchers with .not), spy/stub/mock, runner with lifecycle hooks - nodeon test: discover .test.no files, compile and run in sandboxed vm - nodeon new: interactive project scaffolding (fullstack/api/library/cli) - nodeon generate: entity/page/component/island/service/middleware/job/module generators - CLI help updated with all new commands, generate alias 'g' - Fixed parser compat: fn=expr in classes, reserved keyword methods, return fn(), object getters - 571 vitest pass (0 regression), 14 stdlib verification tests pass - Build: 35 .no files compiled, CLI bundle 226.5kb
…ib Tier 2, @nodeon/db, T? null safety
…lint, jobs, validation Phase 3.1: nodeon build --prod - Multi-phase production build pipeline (clean, copy assets, compile, pre-render, bundle islands, server entry) - src/cli/commands/build-prod.no with full Nova integration Phase 3.2: nodeon deploy (Docker/Vercel/Fly) - Dockerfile + docker-compose.yml generation with --run flag - Vercel adapter (vercel.json), Fly adapter (fly.toml) - Auto-builds if no dist/ found Phase 3.3: Authentication module (packages/nova/src/auth.js) - JWT sign/verify/decode (HS256, expiry, issuer, audience) - Password hashing (PBKDF2 with timing-safe compare) - Session store (in-memory with TTL, create/get/set/destroy/touch) - Auth middleware (Bearer token, path exclusions) - Session middleware (cookie-based, auto-create) - CSRF protection middleware Phase 3.4: Middleware pipeline (packages/nova/src/middleware.js) - createPipeline() composable middleware chain - CORS (origin whitelist, credentials, preflight) - Rate limiting (token bucket, configurable window/max) - JSON body parser (with size limit) - Request logger (short/long format, colored status) - Security headers (HSTS, X-Frame-Options, CSP, etc.) Phase 3.5: Type system control flow narrowing - Truthiness narrowing: if (x) removes null/undefined from unions - Negated typeof: if (typeof x !== 'string') narrows in else branch - Null/undefined check narrowing: if (x !== null) - instanceof narrowing: if (x instanceof Dog) - Positive/negative guard system with inverse guards for else branches - Match/switch exhaustiveness warnings for union types - 8 new type checker tests (89 total) - Both TS bootstrap and .no self-hosted compilers updated Phase 3.6: Cross-file type resolution - extractExportedTypes() parses imported .no files for type info - resolveModuleTypes() with module type cache - ImportDeclaration now resolves named/default imports from .no files - typeCheck() accepts optional filePath for resolution context Phase 3.7: nodeon lint (src/cli/commands/lint.no) - 7 built-in rules: no-unused-vars, no-any, no-implicit-return, prefer-const, max-line-length, no-console, no-empty-fn - Configurable via nodeon.json lint section - AST-based analysis with colored output Phase 3.8: Incremental compilation (packages/nova/src/incremental.js) - File content hashing (SHA-256) with persistent .nodeon-cache.json - Dependency tracking (import analysis) - needsRebuild(), filterChanged(), recordBuild(), finalize() Phase 3.9: Jobs and queues (packages/nova/src/jobs.js) - createJobQueue() with concurrency, retry, events - createScheduler() with cron expression support - Cron parser (@hourly/@daily aliases, ranges, steps) Phase 3.10: Forms and validation (packages/nova/src/validation.js) - schema() with composable validators - 15 validators: required, optional, minLength, maxLength, min, max, email, pattern, number, string, boolean, oneOf, url, matches, custom - Transformers: trim, toLowerCase, toNumber, defaultValue - validateBody/validateQuery middleware for HTTP CLI updates: - lint command routed in index.no - deploy command routed in index.no - Help text updated with deploy/lint/build --prod - Version bumped to 0.3.0 Tests: 594 passing (596 total, 2 skipped), 0 regressions Build: 40 compiled, 0 failed | compiler 172.9kb | CLI 279.8kb
- Remove verbose historical analysis and completed items - Consolidate into concise sections: Overview, Known Issues, Roadmap - Strip 1100+ lines of outdated status tables and implementation details - Keep only actionable bugs and future work items - Update to reflect current state (self-hosting complete, Phase 3 shipped)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.