@zero-server/sdk 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +460 -437
- package/index.js +414 -412
- package/lib/app.js +1172 -1172
- package/lib/auth/authorize.js +399 -399
- package/lib/auth/enrollment.js +367 -367
- package/lib/auth/index.js +57 -57
- package/lib/auth/jwt.js +731 -731
- package/lib/auth/oauth.js +362 -362
- package/lib/auth/session.js +588 -588
- package/lib/auth/trustedDevice.js +409 -409
- package/lib/auth/twoFactor.js +1150 -1150
- package/lib/auth/webauthn.js +946 -946
- package/lib/body/index.js +14 -14
- package/lib/body/json.js +109 -109
- package/lib/body/multipart.js +440 -440
- package/lib/body/raw.js +71 -71
- package/lib/body/rawBuffer.js +160 -160
- package/lib/body/sendError.js +25 -25
- package/lib/body/text.js +75 -75
- package/lib/body/typeMatch.js +41 -41
- package/lib/body/urlencoded.js +235 -235
- package/lib/cli.js +845 -845
- package/lib/cluster.js +666 -666
- package/lib/debug.js +372 -372
- package/lib/env/index.js +460 -460
- package/lib/errors.js +683 -683
- package/lib/fetch/index.js +256 -256
- package/lib/grpc/balancer.js +378 -378
- package/lib/grpc/call.js +708 -708
- package/lib/grpc/client.js +764 -764
- package/lib/grpc/codec.js +1221 -1221
- package/lib/grpc/credentials.js +398 -398
- package/lib/grpc/frame.js +262 -262
- package/lib/grpc/health.js +287 -287
- package/lib/grpc/index.js +121 -121
- package/lib/grpc/metadata.js +461 -461
- package/lib/grpc/proto.js +821 -821
- package/lib/grpc/reflection.js +590 -590
- package/lib/grpc/server.js +445 -445
- package/lib/grpc/status.js +118 -118
- package/lib/grpc/watch.js +173 -173
- package/lib/http/index.js +10 -10
- package/lib/http/request.js +727 -727
- package/lib/http/response.js +799 -799
- package/lib/lifecycle.js +557 -557
- package/lib/middleware/compress.js +230 -230
- package/lib/middleware/cookieParser.js +237 -237
- package/lib/middleware/cors.js +93 -93
- package/lib/middleware/csrf.js +136 -136
- package/lib/middleware/errorHandler.js +101 -101
- package/lib/middleware/helmet.js +175 -175
- package/lib/middleware/index.js +19 -17
- package/lib/middleware/logger.js +74 -74
- package/lib/middleware/rateLimit.js +88 -88
- package/lib/middleware/requestId.js +53 -53
- package/lib/middleware/static.js +326 -326
- package/lib/middleware/timeout.js +71 -71
- package/lib/middleware/validator.js +254 -254
- package/lib/observe/health.js +326 -326
- package/lib/observe/index.js +50 -50
- package/lib/observe/logger.js +359 -359
- package/lib/observe/metrics.js +805 -805
- package/lib/observe/tracing.js +592 -592
- package/lib/orm/adapters/json.js +290 -290
- package/lib/orm/adapters/memory.js +764 -764
- package/lib/orm/adapters/mongo.js +764 -764
- package/lib/orm/adapters/mysql.js +933 -933
- package/lib/orm/adapters/postgres.js +1144 -1144
- package/lib/orm/adapters/redis.js +1534 -1534
- package/lib/orm/adapters/sql-base.js +212 -212
- package/lib/orm/adapters/sqlite.js +858 -858
- package/lib/orm/audit.js +649 -649
- package/lib/orm/cache.js +394 -394
- package/lib/orm/geo.js +387 -387
- package/lib/orm/index.js +784 -784
- package/lib/orm/migrate.js +432 -432
- package/lib/orm/model.js +1706 -1706
- package/lib/orm/plugin.js +375 -375
- package/lib/orm/procedures.js +836 -836
- package/lib/orm/profiler.js +233 -233
- package/lib/orm/query.js +1772 -1772
- package/lib/orm/replicas.js +241 -241
- package/lib/orm/schema.js +307 -307
- package/lib/orm/search.js +380 -380
- package/lib/orm/seed/data/commerce.js +136 -136
- package/lib/orm/seed/data/internet.js +111 -111
- package/lib/orm/seed/data/locations.js +204 -204
- package/lib/orm/seed/data/names.js +338 -338
- package/lib/orm/seed/data/person.js +128 -128
- package/lib/orm/seed/data/phone.js +211 -211
- package/lib/orm/seed/data/words.js +134 -134
- package/lib/orm/seed/factory.js +178 -178
- package/lib/orm/seed/fake.js +1186 -1186
- package/lib/orm/seed/index.js +18 -18
- package/lib/orm/seed/rng.js +70 -70
- package/lib/orm/seed/seeder.js +124 -124
- package/lib/orm/seed/unique.js +68 -68
- package/lib/orm/snapshot.js +366 -366
- package/lib/orm/tenancy.js +605 -605
- package/lib/orm/views.js +350 -350
- package/lib/router/index.js +436 -436
- package/lib/sse/index.js +8 -8
- package/lib/sse/stream.js +349 -349
- package/lib/ws/connection.js +451 -451
- package/lib/ws/handshake.js +125 -125
- package/lib/ws/index.js +14 -14
- package/lib/ws/room.js +223 -223
- package/package.json +73 -73
- package/types/app.d.ts +223 -223
- package/types/auth.d.ts +520 -520
- package/types/cluster.d.ts +75 -75
- package/types/env.d.ts +80 -80
- package/types/errors.d.ts +316 -316
- package/types/fetch.d.ts +43 -43
- package/types/grpc.d.ts +432 -432
- package/types/index.d.ts +384 -384
- package/types/lifecycle.d.ts +60 -60
- package/types/middleware.d.ts +320 -320
- package/types/observe.d.ts +304 -304
- package/types/orm.d.ts +1887 -1887
- package/types/request.d.ts +109 -109
- package/types/response.d.ts +157 -157
- package/types/router.d.ts +78 -78
- package/types/sse.d.ts +78 -78
- package/types/websocket.d.ts +126 -126
package/lib/grpc/index.js
CHANGED
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module grpc
|
|
3
|
-
* @description Full gRPC support for zero-server — zero external dependencies.
|
|
4
|
-
* Provides a proto3 parser, protobuf codec, gRPC framing, call objects,
|
|
5
|
-
* a service server, and a client for all four RPC patterns.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Proto3 schema parsing (messages, enums, services, imports)
|
|
9
|
-
* - Full protobuf binary encoding/decoding (all scalar types, nested, repeated, map, oneof, packed)
|
|
10
|
-
* - gRPC over HTTP/2 with length-prefixed framing and optional gzip compression
|
|
11
|
-
* - All four call types: unary, server-streaming, client-streaming, bidirectional
|
|
12
|
-
* - Server interceptors (middleware for gRPC calls)
|
|
13
|
-
* - Client with lazy connect, keep-alive, deadlines, and metadata
|
|
14
|
-
* - Graceful shutdown with call draining
|
|
15
|
-
* - Message size limits and deadline enforcement
|
|
16
|
-
*
|
|
17
|
-
* @example | Quick Start — Server
|
|
18
|
-
* const { createApp, parseProto } = require('@zero-server/sdk');
|
|
19
|
-
* const app = createApp();
|
|
20
|
-
* const schema = parseProto(`
|
|
21
|
-
* syntax = "proto3";
|
|
22
|
-
* package myapp;
|
|
23
|
-
* service Greeter {
|
|
24
|
-
* rpc SayHello (HelloRequest) returns (HelloReply);
|
|
25
|
-
* }
|
|
26
|
-
* message HelloRequest { string name = 1; }
|
|
27
|
-
* message HelloReply { string message = 1; }
|
|
28
|
-
* `);
|
|
29
|
-
*
|
|
30
|
-
* app.grpc(schema, 'Greeter', {
|
|
31
|
-
* SayHello(call) {
|
|
32
|
-
* return { message: 'Hello ' + call.request.name };
|
|
33
|
-
* },
|
|
34
|
-
* });
|
|
35
|
-
*
|
|
36
|
-
* app.listen(50051, { http2: true });
|
|
37
|
-
*
|
|
38
|
-
* @example | Quick Start — Client
|
|
39
|
-
* const { GrpcClient, parseProto } = require('@zero-server/sdk');
|
|
40
|
-
* const schema = parseProto(fs.readFileSync('hello.proto', 'utf8'));
|
|
41
|
-
* const client = new GrpcClient('http://localhost:50051', schema, 'Greeter');
|
|
42
|
-
* const reply = await client.call('SayHello', { name: 'World' });
|
|
43
|
-
* console.log(reply.message);
|
|
44
|
-
* client.close();
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
const { GrpcStatus, grpcToHttp, statusName, STATUS_NAMES } = require('./status');
|
|
48
|
-
const { Metadata } = require('./metadata');
|
|
49
|
-
const { Writer, Reader, encode, decode, WIRE_TYPE, TYPE_INFO } = require('./codec');
|
|
50
|
-
const { parseProto, parseProtoFile, tokenize } = require('./proto');
|
|
51
|
-
const { frameEncode, FrameParser, FRAME_HEADER_SIZE, MAX_FRAME_SIZE } = require('./frame');
|
|
52
|
-
const { BaseCall, UnaryCall, ServerStreamCall, ClientStreamCall, BidiStreamCall } = require('./call');
|
|
53
|
-
const { GrpcServiceRegistry } = require('./server');
|
|
54
|
-
const { GrpcClient } = require('./client');
|
|
55
|
-
const { HealthService, ServingStatus } = require('./health');
|
|
56
|
-
const { ReflectionService } = require('./reflection');
|
|
57
|
-
const { LoadBalancer, Subchannel, SubchannelState } = require('./balancer');
|
|
58
|
-
const { ChannelCredentials, createRotatingCredentials } = require('./credentials');
|
|
59
|
-
const { watchProto } = require('./watch');
|
|
60
|
-
|
|
61
|
-
module.exports = {
|
|
62
|
-
// Status codes
|
|
63
|
-
GrpcStatus,
|
|
64
|
-
grpcToHttp,
|
|
65
|
-
statusName,
|
|
66
|
-
STATUS_NAMES,
|
|
67
|
-
|
|
68
|
-
// Metadata
|
|
69
|
-
Metadata,
|
|
70
|
-
|
|
71
|
-
// Protobuf codec
|
|
72
|
-
Writer,
|
|
73
|
-
Reader,
|
|
74
|
-
encode,
|
|
75
|
-
decode,
|
|
76
|
-
WIRE_TYPE,
|
|
77
|
-
TYPE_INFO,
|
|
78
|
-
|
|
79
|
-
// Proto3 parser
|
|
80
|
-
parseProto,
|
|
81
|
-
parseProtoFile,
|
|
82
|
-
tokenize,
|
|
83
|
-
|
|
84
|
-
// gRPC framing
|
|
85
|
-
frameEncode,
|
|
86
|
-
FrameParser,
|
|
87
|
-
FRAME_HEADER_SIZE,
|
|
88
|
-
MAX_FRAME_SIZE,
|
|
89
|
-
|
|
90
|
-
// Call objects
|
|
91
|
-
BaseCall,
|
|
92
|
-
UnaryCall,
|
|
93
|
-
ServerStreamCall,
|
|
94
|
-
ClientStreamCall,
|
|
95
|
-
BidiStreamCall,
|
|
96
|
-
|
|
97
|
-
// Server
|
|
98
|
-
GrpcServiceRegistry,
|
|
99
|
-
|
|
100
|
-
// Client
|
|
101
|
-
GrpcClient,
|
|
102
|
-
|
|
103
|
-
// Health check
|
|
104
|
-
HealthService,
|
|
105
|
-
ServingStatus,
|
|
106
|
-
|
|
107
|
-
// Server reflection
|
|
108
|
-
ReflectionService,
|
|
109
|
-
|
|
110
|
-
// Load balancing
|
|
111
|
-
LoadBalancer,
|
|
112
|
-
Subchannel,
|
|
113
|
-
SubchannelState,
|
|
114
|
-
|
|
115
|
-
// Channel credentials
|
|
116
|
-
ChannelCredentials,
|
|
117
|
-
createRotatingCredentials,
|
|
118
|
-
|
|
119
|
-
// Proto hot-reload
|
|
120
|
-
watchProto,
|
|
121
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* @module grpc
|
|
3
|
+
* @description Full gRPC support for zero-server — zero external dependencies.
|
|
4
|
+
* Provides a proto3 parser, protobuf codec, gRPC framing, call objects,
|
|
5
|
+
* a service server, and a client for all four RPC patterns.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Proto3 schema parsing (messages, enums, services, imports)
|
|
9
|
+
* - Full protobuf binary encoding/decoding (all scalar types, nested, repeated, map, oneof, packed)
|
|
10
|
+
* - gRPC over HTTP/2 with length-prefixed framing and optional gzip compression
|
|
11
|
+
* - All four call types: unary, server-streaming, client-streaming, bidirectional
|
|
12
|
+
* - Server interceptors (middleware for gRPC calls)
|
|
13
|
+
* - Client with lazy connect, keep-alive, deadlines, and metadata
|
|
14
|
+
* - Graceful shutdown with call draining
|
|
15
|
+
* - Message size limits and deadline enforcement
|
|
16
|
+
*
|
|
17
|
+
* @example | Quick Start — Server
|
|
18
|
+
* const { createApp, parseProto } = require('@zero-server/sdk');
|
|
19
|
+
* const app = createApp();
|
|
20
|
+
* const schema = parseProto(`
|
|
21
|
+
* syntax = "proto3";
|
|
22
|
+
* package myapp;
|
|
23
|
+
* service Greeter {
|
|
24
|
+
* rpc SayHello (HelloRequest) returns (HelloReply);
|
|
25
|
+
* }
|
|
26
|
+
* message HelloRequest { string name = 1; }
|
|
27
|
+
* message HelloReply { string message = 1; }
|
|
28
|
+
* `);
|
|
29
|
+
*
|
|
30
|
+
* app.grpc(schema, 'Greeter', {
|
|
31
|
+
* SayHello(call) {
|
|
32
|
+
* return { message: 'Hello ' + call.request.name };
|
|
33
|
+
* },
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* app.listen(50051, { http2: true });
|
|
37
|
+
*
|
|
38
|
+
* @example | Quick Start — Client
|
|
39
|
+
* const { GrpcClient, parseProto } = require('@zero-server/sdk');
|
|
40
|
+
* const schema = parseProto(fs.readFileSync('hello.proto', 'utf8'));
|
|
41
|
+
* const client = new GrpcClient('http://localhost:50051', schema, 'Greeter');
|
|
42
|
+
* const reply = await client.call('SayHello', { name: 'World' });
|
|
43
|
+
* console.log(reply.message);
|
|
44
|
+
* client.close();
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
const { GrpcStatus, grpcToHttp, statusName, STATUS_NAMES } = require('./status');
|
|
48
|
+
const { Metadata } = require('./metadata');
|
|
49
|
+
const { Writer, Reader, encode, decode, WIRE_TYPE, TYPE_INFO } = require('./codec');
|
|
50
|
+
const { parseProto, parseProtoFile, tokenize } = require('./proto');
|
|
51
|
+
const { frameEncode, FrameParser, FRAME_HEADER_SIZE, MAX_FRAME_SIZE } = require('./frame');
|
|
52
|
+
const { BaseCall, UnaryCall, ServerStreamCall, ClientStreamCall, BidiStreamCall } = require('./call');
|
|
53
|
+
const { GrpcServiceRegistry } = require('./server');
|
|
54
|
+
const { GrpcClient } = require('./client');
|
|
55
|
+
const { HealthService, ServingStatus } = require('./health');
|
|
56
|
+
const { ReflectionService } = require('./reflection');
|
|
57
|
+
const { LoadBalancer, Subchannel, SubchannelState } = require('./balancer');
|
|
58
|
+
const { ChannelCredentials, createRotatingCredentials } = require('./credentials');
|
|
59
|
+
const { watchProto } = require('./watch');
|
|
60
|
+
|
|
61
|
+
module.exports = {
|
|
62
|
+
// Status codes
|
|
63
|
+
GrpcStatus,
|
|
64
|
+
grpcToHttp,
|
|
65
|
+
statusName,
|
|
66
|
+
STATUS_NAMES,
|
|
67
|
+
|
|
68
|
+
// Metadata
|
|
69
|
+
Metadata,
|
|
70
|
+
|
|
71
|
+
// Protobuf codec
|
|
72
|
+
Writer,
|
|
73
|
+
Reader,
|
|
74
|
+
encode,
|
|
75
|
+
decode,
|
|
76
|
+
WIRE_TYPE,
|
|
77
|
+
TYPE_INFO,
|
|
78
|
+
|
|
79
|
+
// Proto3 parser
|
|
80
|
+
parseProto,
|
|
81
|
+
parseProtoFile,
|
|
82
|
+
tokenize,
|
|
83
|
+
|
|
84
|
+
// gRPC framing
|
|
85
|
+
frameEncode,
|
|
86
|
+
FrameParser,
|
|
87
|
+
FRAME_HEADER_SIZE,
|
|
88
|
+
MAX_FRAME_SIZE,
|
|
89
|
+
|
|
90
|
+
// Call objects
|
|
91
|
+
BaseCall,
|
|
92
|
+
UnaryCall,
|
|
93
|
+
ServerStreamCall,
|
|
94
|
+
ClientStreamCall,
|
|
95
|
+
BidiStreamCall,
|
|
96
|
+
|
|
97
|
+
// Server
|
|
98
|
+
GrpcServiceRegistry,
|
|
99
|
+
|
|
100
|
+
// Client
|
|
101
|
+
GrpcClient,
|
|
102
|
+
|
|
103
|
+
// Health check
|
|
104
|
+
HealthService,
|
|
105
|
+
ServingStatus,
|
|
106
|
+
|
|
107
|
+
// Server reflection
|
|
108
|
+
ReflectionService,
|
|
109
|
+
|
|
110
|
+
// Load balancing
|
|
111
|
+
LoadBalancer,
|
|
112
|
+
Subchannel,
|
|
113
|
+
SubchannelState,
|
|
114
|
+
|
|
115
|
+
// Channel credentials
|
|
116
|
+
ChannelCredentials,
|
|
117
|
+
createRotatingCredentials,
|
|
118
|
+
|
|
119
|
+
// Proto hot-reload
|
|
120
|
+
watchProto,
|
|
121
|
+
};
|