Yusra H. 판매

Feathers is a TypeScript/JavaScript framework for building REST and real-time web APIs, supporting multiple databases, OAuth, Socket.io, and any frontend including React, Angular, and React Native.
This block provides the full Feathers framework monorepo source: core service layer, authentication (server + client), database adapters, transport layers (Express, Koa, Socket.io), schema validation, and CLI tooling. The typical buyer is a Node.js/TypeScript developer building a REST or real-time API who wants to run, extend, or self-host Feathers from source rather than consuming it only via npm.
adapter-commons/ - Shared base classes and utilities for database adapter packagesadapter-tests/ - Standard test suite runner for validating any Feathers adapterauthentication/ - Server-side authentication service, JWT strategy, and hooksauthentication-client/ - Client-side authentication plugin with token storageauthentication-local/ - Local (username/password) authentication strategyauthentication-oauth/ - OAuth2 authentication strategycli/ - Feathers CLI for project scaffolding and code generationclient/ - Isomorphic Feathers client bundlecommons/ - Internal shared utilities (lodash-like helpers, event handling)configuration/ - App configuration loader with schema validationcreate-feathers/ - npm create feathers bootstrappererrors/ - Standard Feathers error classes (NotFound, BadRequest, etc.)express/ - Express.js transport integrationfeathers/ - Core application factory and service registrationgenerators/ - Plop-based code generators used by the CLIknex/ - Knex.js (SQL) database adapterkoa/ - Koa.js transport integrationmemory/ - In-memory database adapter (great for testing)mongodb/ - MongoDB adapterrest-client/ - REST transport client (fetch / axios)schema/ - JSON Schema / TypeBox schema definitions and resolverssocketio/ - Socket.io server transportsocketio-client/ - Socket.io client transporttransport-commons/ - Shared logic for all transport packages격리된 샌드박스를 띄워 서버에서 바로 실행하세요 — 로컬 설정 불필요.
이 버전에 대한 Tetrees AI Review
This Express backend / api completed archive review. Structure, dependency manifests, documentation, functional source, and common risk patterns were checked by the Tetrees verification pipeline; runtime phases are stated separately.
Deterministic AVCP artifact review
파이프라인 avcp-2026-08-04.1 · SHA-256 9e35ed2d13b5f7c3…
This version-scoped review deterministically inspects the submitted archive for structure, dependencies, documentation, functional source, and common malicious or high-risk signals. Build and test phases are reported as passed only after an isolated sandbox audition. It is not a guarantee of perfect security.
검토일 2026년 8월 4일
이 제품을 AI IDE, 웹 빌더 또는 클라우드 IDE로 바로 가져오세요.
Tetrees를 호환 AI IDE에 연결해 보유 제품을 불러오고, 판매자 업로드 권한을 노출하지 않은 채 검증된 ZIP을 받으세요.
아직 리뷰가 없습니다.
토론을 불러오는 중…
typebox/npm install @feathersjs/feathers @feathersjs/errors @feathersjs/commons
npm install @feathersjs/express @feathersjs/socketio # transports
npm install @feathersjs/authentication @feathersjs/authentication-local
npm install @feathersjs/authentication-client
npm install @feathersjs/adapter-commons
npm install @feathersjs/schema @feathersjs/typebox # validation
npm install @feathersjs/configuration # config loader
npm install jsonwebtoken # JWT peer dep
npm install typescript ts-node --save-dev
No native build steps, pod installs, or binary compilation are required for the pure Node.js usage path.
source/ directory into your project root (e.g. ./source/).tsconfig.json add path aliases so local builds resolve against the source packages instead of published npm versions:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@feathersjs/feathers": ["source/feathers/src"],
"@feathersjs/errors": ["source/errors/src"],
"@feathersjs/commons": ["source/commons/src"],
"@feathersjs/authentication": ["source/authentication/src"],
"@feathersjs/authentication-client": ["source/authentication-client/src"],
"@feathersjs/adapter-commons": ["source/adapter-commons/src"]
}
}
}
tsconfig.json in a references array if you need project-reference builds.NODE_CONFIG_DIR=./config # for @feathersjs/configuration
npm install in the monorepo root to hoist shared devDependencies, or install individually in each source/<package>/ directory.selectimport { select } from './source/adapter-commons/src'
function select(params: Params, ...otherFields: string[]): (result: any) => any
Returns a function that filters a result object or array to only the fields listed in params.query.$select plus any extra otherFields you name. Use it at the end of custom find/get implementations to honour client field projection without extra boilerplate.
adapterTestsimport adapterTests, { AdapterTestName } from './source/adapter-tests/src'
const adapterTests: (testNames: AdapterTestName[]) => (
app: any,
errors: any,
serviceName: any,
idProp?: string
) => void
Registers the standard Feathers adapter test suite inside an existing Mocha describe block. Pass the list of test names you want to run; the function warns if a requested name is not found in the suite. Use this to validate any new database adapter against the canonical Feathers contract.
AuthenticationServiceimport { AuthenticationService } from './source/authentication/src'
class AuthenticationService extends AuthenticationBase {
// registers strategies, issues/verifies JWTs, exposes /authentication endpoint
}
The central server-side authentication class. Register it on your Feathers app at the /authentication path, attach one or more strategies (e.g. JWTStrategy, LocalStrategy), and it handles token creation, verification, and revocation automatically via the standard Feathers service interface.
authenticate (hook)import { authenticate } from './source/authentication/src'
// or
import { hooks } from './source/authentication/src'
// hooks.authenticate, hooks.connection, hooks.event
A Feathers hook that protects service methods. Accepts one or more strategy names; throws NotAuthenticated if no valid token/session matches. Use it in app.service('messages').hooks({ before: { all: [authenticate('jwt')] } }).
Creates a Feathers application, registers the authentication service with a JWT strategy, and protects a messages service.
import { feathers } from '@feathersjs/feathers'
import { AuthenticationService, JWTStrategy, authenticate } from '@feathersjs/authentication'
import { MemoryService } from '@feathersjs/memory'
const app = feathers()
const authService = new AuthenticationService(app)
authService.register('jwt', new JWTStrategy())
app.use('/authentication', authService)
app.use('/messages', new MemoryService())
app.service('messages').hooks({
before: {
all: [authenticate('jwt')]
}
})
app.listen(3030).then(() => console.log('Feathers running on port 3030'))
Validates a custom adapter implementation against all standard Feathers CRUD + query contracts.
import { adapterTests } from './source/adapter-tests/src'
import { feathers } from '@feathersjs/feathers'
import errors from '@feathersjs/errors'
import MyCustomAdapter from './my-adapter'
const testNames = [
'.get', '.find', '.create', '.update', '.patch', '.remove',
'.find + equal', '.find + $limit', '.find + $skip'
]
const app = feathers()
app.use('/test', new MyCustomAdapter({ paginate: { default: 10, max: 50 } }))
describe('My adapter', adapterTests(testNames)(app, errors, 'test', 'id'))
selectApplies $select projection inside a custom service find method.
import { select } from './source/adapter-commons/src'
import { Params } from '@feathersjs/feathers'
class MyService {
private data = [
{ id: 1, name: 'Alice', secret: 'hidden' },
{ id: 2, name: 'Bob', secret: 'hidden' }
]
async find(params: Params) {
// select honours params.query.$select automatically
const filter = select(params, 'id') // 'id' always included
return filter(this.data)
}
}
// Client sends: GET /my-service?$select[]=id&$select[]=name
// Result: [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }]
adapter-commons/ - AdapterBase class, query normalisation (filterQuery), field selection helper (select), and sort utilities shared by all adapters.adapter-tests/ - adapterTests runner that composes basicTests, methodTests, and syntaxTests into a single Mocha-compatible suite.authentication/ - AuthenticationService, AuthenticationBase, JWTStrategy, and the authenticate/connection/event hooks for server-side auth.authentication-client/ - AuthenticationClient class, MemoryStorage/StorageWrapper, and client hooks (authentication, populateHeader) for browser and Node clients.authentication-local/ - LocalStrategy that validates plaintext or hashed passwords against a user service.authentication-oauth/ - OAuth2 strategy base class and provider-specific integrations.cli/ - The feathers CLI binary; delegates to generators/ for code generation commands.client/ - Pre-bundled isomorphic client combining rest-client and socketio-client.commons/ - Low-level utilities (_ object with pick, omit, etc.) and event-mixin logic used across all packages.configuration/ - Loads config/default.json (and environment overlays) via node-config; validates against a JSON schema.create-feathers/ - npm init feathers entry point; calls the CLI generators interactively.errors/ - FeathersError base and all standard subclasses (BadRequest, NotAuthenticated, NotFound, etc.).express/ - express() wrapper that adds Feathers service routing, error handling middleware, and REST transport.feathers/ - Core feathers() factory, Application class, hook execution engine, and service mixin.generators/ - Plop templates and actions for generating services, hooks, authentication, and adapters.knex/ - KnexAdapter providing full CRUD over any Knex-supported SQL database.koa/ - Koa middleware transport equivalent to the Express package.memory/ - MemoryService backed by an in-process Map; ideal for tests and prototyping.mongodb/ - MongoDBAdapter wrapping the native mongodb driver.rest-client/ - fetch and axios based REST transport for the Feathers client.schema/ - Resolver system (resolve, Resolver) and JSON-Schema-based validators used with services.socketio/ - Socket.io server transport that maps socket events to Feathers service calls.socketio-client/ - Socket.io client transport for use with the Feathers client.transport-commons/ - Routing, channel, and event-publishing logic shared by Express, Koa, and Socket.io transports.typebox/ - TypeBox schema helpers (Type, query schema builders) integrated with @feathersjs/schema.tsconfig paths point into source/ while node_modules also has the published packages, TypeScript resolves both and emits duplicate-identifier errors. Fix: remove the published packages from node_modules or use npm link for each source package.AuthenticationService throws a cryptic error at startup when authentication.secret is missing from config. Fix: add "secret": "<32-char-random>" to config/default.json and never commit it."type": "module" in sub-package package.json). Mixing with CommonJS consumers requires "esModuleInterop": true and "module": "NodeNext" in your tsconfig. Fix: set both flags and use .js extensions in relative imports.jsonwebtoken v8 and v9 have incompatible type signatures. Fix: pin to jsonwebtoken@^9.0.0 and @types/jsonwebtoken@^9.0.0 together.adapterTests outside Mocha: The test runner calls describe/it globally; running it under Jest without a Mocha shim causes ReferenceError. Fix: use the jest-circus runner or install @jest/globals and patch globals before calling adapterTests.select returning empty objects: Forgetting to include the ID field in $select causes downstream lookups to fail. Fix: always pass idProp as an otherField argument: select(params, idProp).I have a copy of the Feathers framework monorepo source in `./source/` and a
usage guide in `./USAGE.md`. The upstream package is `@feathersjs/feathers`.
Please help me integrate this source into my existing Node.js/TypeScript project
step by step:
1. Read `USAGE.md` fully before writing any code.
2. Add the `tsconfig.json` path aliases described in the "Project setup" section
so my project resolves `@feathersjs/*` imports from `./source/` instead of
from `node_modules`.
3. Create a `src/app.ts` that imports `feathers` from `./source/feathers/src`,
registers an `AuthenticationService` from `./source/authentication/src` with
a `JWTStrategy`, and registers a `MemoryService` from `./source/memory/src`
protected by the `authenticate('jwt')` hook.
4. Show me how to run the `adapterTests` from `./source/adapter-tests/src`
against the `MemoryService` using Mocha.
5. Use only exports that appear in `USAGE.md`'s "Public API" section. Do not
invent any API surface.
6. Point out any peer dependencies I still need to install.
The Feathers framework is released under the MIT License. See source/feathers/LICENSE (and individual package LICENSE files) for the full text. Upstream repository and package: @feathersjs/feathers by the Feathers contributors.
This product’s unique contribution is clean room implementation of valuable code block into AVCP compatible standard.
전체 설치 가이드와 연동 프롬프트는 구매 후 열람할 수 있습니다.
Automation, Utilities & Developer Tools
무료