@m1cro/server-sdk 0.1.1-beta.10 → 0.1.1-beta.11

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/dist/globals.d.ts CHANGED
@@ -1,7 +1,6 @@
1
+ import { B as Bridge, L as LogLevel } from './log-DvhHJYGt.js';
1
2
  import * as console from 'node:console';
2
-
3
- declare const logLevels: readonly ["trace", "debug", "info", "warn", "error", "none"];
4
- type LogLevel = (typeof logLevels)[number];
3
+ import 'cookie';
5
4
 
6
5
  declare global {
7
6
  var Bridge: Bridge;
package/dist/index.d.ts CHANGED
@@ -1,306 +1,14 @@
1
- import { JSONSchema4 } from 'json-schema';
2
- import { SetCookie } from 'cookie';
1
+ import { R as Router, H as HookEventMap, A as AppRole, E as EventHandler } from './log-DvhHJYGt.js';
2
+ export { a as AppId, b as Artifacts, c as Auth, B as Bridge, d as Entity, L as LogLevel, M as Method, e as Middleware, N as Namespace, P as Provider, f as Providers, g as Request, h as RequestBuilder, i as RequestHandler, j as Response, k as ResponseBuilder, l as RouteOptions, S as StatusCode, m as Subject, T as Tenant, V as Visibility } from './log-DvhHJYGt.js';
3
+ import 'cookie';
3
4
 
4
- type Record$1<K extends string | number | symbol = string, V = any> = {
5
- [key in K]: V;
6
- };
7
- type Variant<K extends PropertyKey, T extends object> = {
8
- [P in keyof T]: {
9
- [Q in K]: P;
10
- } & T[P] extends infer U ? {
11
- [Q in keyof U]: U[Q];
12
- } : never;
13
- }[keyof T];
14
- type EventHandler = <T>(event: string, data: T) => void | Promise<void>;
15
- type Visibility = 'private' | 'platform' | 'vendor' | 'public';
16
- interface Tenant {
17
- id: string;
18
- host: string;
19
- }
20
- interface AppId {
5
+ interface EntityModelRegistration {
21
6
  get name(): string;
22
- get namespace(): Namespace;
23
- toString(separator?: string): string;
24
- }
25
- declare const AppId: {
26
- parse(input: string): AppId;
27
- };
28
- type Namespace = 'system' | 'platform' | {
29
- vendor: string;
30
- };
31
- type AppRole = Variant<'type', AppRoleData>;
32
- type AppRoleData = {
33
- provider: {
34
- group: string;
7
+ get schema(): {
8
+ get shape(): unknown;
35
9
  };
36
- test: void;
37
- };
38
- interface Auth {
39
- subject: Subject;
40
- permissions: Permissions;
41
- }
42
- interface Subject {
43
- id: string;
44
- email: string;
45
- roles: string[];
46
- }
47
- interface Permissions {
48
- [key: string]: string[];
49
- }
50
- interface HookEventMap {
51
- start: [];
52
- install: [];
53
- }
54
-
55
- interface FindQuery<T extends Record$1 = Record$1> extends PromiseLike<T[]> {
56
- limit(limit: number): this;
57
- offset(offset: number): this;
58
- sort(sort: Sorting): this;
59
- }
60
- interface FindOneQuery<T extends Record$1 = Record$1> extends PromiseLike<T | undefined> {
61
- offset(offset: number): this;
62
- sort(sort: Sorting): this;
63
- }
64
-
65
- type InsertReturnMode = 'insertedIds' | 'documents';
66
- type InsertReturnType<T extends Record$1, R extends InsertReturnMode> = R extends 'insertedIds' ? string[] : R extends 'documents' ? T[] : never;
67
- interface InsertQuery<T extends Record$1 = Record$1, R extends InsertReturnMode = 'insertedIds'> extends PromiseLike<InsertReturnType<T, R>> {
68
- return(mode: 'insertedIds'): InsertQuery<T, 'insertedIds'>;
69
- return(mode: 'documents'): InsertQuery<T, 'documents'>;
70
- return(mode: InsertReturnMode): InsertQuery<T, typeof mode>;
71
- }
72
- type InsertOneReturnMode = 'insertedId' | 'document';
73
- type InsertOneReturnType<T extends Record$1, R extends InsertOneReturnMode> = R extends 'insertedId' ? string : R extends 'document' ? T : never;
74
- interface InsertOneQuery<T extends Record$1 = Record$1, R extends InsertOneReturnMode = 'insertedId'> extends PromiseLike<InsertOneReturnType<T, R>> {
75
- return(mode: 'insertedId'): InsertOneQuery<T, 'insertedId'>;
76
- return(mode: 'document'): InsertOneQuery<T, 'document'>;
77
- return(mode: InsertOneReturnMode): InsertOneQuery<T, typeof mode>;
78
- }
79
-
80
- type UpdateReturnMode = 'affectedRows' | 'oldDocuments' | 'newDocuments';
81
- type UpdateReturnType<T, R extends UpdateReturnMode> = R extends 'affectedRows' ? bigint : R extends 'oldDocuments' | 'newDocuments' ? T[] : never;
82
- interface UpdateQuery<T extends Record$1 = Record$1, R extends UpdateReturnMode = 'affectedRows'> extends PromiseLike<UpdateReturnType<T, R>> {
83
- limit(limit: number): this;
84
- offset(offset: number): this;
85
- sort(sort: Sorting): this;
86
- return(mode: 'affectedRows'): UpdateQuery<T, 'affectedRows'>;
87
- return(mode: 'oldDocuments'): UpdateQuery<T, 'oldDocuments'>;
88
- return(mode: 'newDocuments'): UpdateQuery<T, 'newDocuments'>;
89
- return(mode: UpdateReturnMode): UpdateQuery<T, typeof mode>;
90
- }
91
- type UpdateOneReturnMode = 'success' | 'oldDocument' | 'newDocument';
92
- type UpdateOneReturnType<T, R extends UpdateOneReturnMode> = R extends 'success' ? boolean : R extends 'oldDocument' | 'newDocument' ? T | undefined : never;
93
- interface UpdateOneQuery<T extends Record$1 = Record$1, R extends UpdateOneReturnMode = 'success'> extends PromiseLike<UpdateOneReturnType<T, R>> {
94
- offset(offset: number): this;
95
- sort(sort: Sorting): this;
96
- upsert(upsert: boolean): this;
97
- return(mode: 'success'): UpdateOneQuery<T, 'success'>;
98
- return(mode: 'oldDocument'): UpdateOneQuery<T, 'oldDocument'>;
99
- return(mode: 'newDocument'): UpdateOneQuery<T, 'newDocument'>;
100
- return(mode: UpdateOneReturnMode): UpdateOneQuery<T, typeof mode>;
101
10
  }
102
11
 
103
- type RemoveReturnMode = 'affectedRows' | 'documents';
104
- type RemoveReturnType<T, R extends RemoveReturnMode> = R extends 'affectedRows' ? bigint : R extends 'documents' ? T[] : never;
105
- interface RemoveQuery<T extends Record$1 = Record$1, R extends RemoveReturnMode = 'affectedRows'> extends PromiseLike<RemoveReturnType<T, R>> {
106
- limit(limit: number): this;
107
- offset(offset: number): this;
108
- sort(sort: Sorting): this;
109
- return(mode: 'affectedRows'): RemoveQuery<T, 'affectedRows'>;
110
- return(mode: 'documents'): RemoveQuery<T, 'documents'>;
111
- return(mode: RemoveReturnMode): RemoveQuery<T, typeof mode>;
112
- }
113
- type RemoveOneReturnMode = 'success' | 'document';
114
- type RemoveOneReturnType<T, R extends RemoveOneReturnMode> = R extends 'success' ? boolean : R extends 'document' ? T | undefined : never;
115
- interface RemoveOneQuery<T extends Record$1 = Record$1, R extends RemoveOneReturnMode = 'success'> extends PromiseLike<RemoveOneReturnType<T, R>> {
116
- offset(offset: number): this;
117
- sort(sort: Sorting): this;
118
- return(mode: 'success'): RemoveOneQuery<T, 'success'>;
119
- return(mode: 'document'): RemoveOneQuery<T, 'document'>;
120
- return(mode: RemoveOneReturnMode): RemoveOneQuery<T, typeof mode>;
121
- }
122
-
123
- interface Entity<T extends object = Record$1<string, unknown>> {
124
- get name(): string;
125
- find(query?: Record$1): FindQuery<T>;
126
- findOne(query?: Record$1): FindOneQuery<T>;
127
- insert(docs: T[]): InsertQuery<T>;
128
- insertOne(doc: T): InsertOneQuery<T>;
129
- update(query: Record$1, update: Record$1): UpdateQuery<T>;
130
- updateOne(query: Record$1, update: Record$1): UpdateOneQuery<T>;
131
- remove(query: Record$1): RemoveQuery<T>;
132
- removeOne(query: Record$1): RemoveOneQuery<T>;
133
- }
134
- interface Sorting {
135
- [field: string]: 'asc' | 'desc';
136
- }
137
-
138
- interface Artifacts {
139
- get<T>(key: string): T | undefined;
140
- set<T>(key: string, value: T): void;
141
- delete(key: string): void;
142
- get auth(): Auth | undefined;
143
- }
144
-
145
- type Method = 'get' | 'post' | 'put' | 'patch' | 'delete';
146
- declare enum StatusCode {
147
- Continue = 100,
148
- SwitchingProtocols = 101,
149
- Processing = 102,
150
- EarlyHints = 103,
151
- OK = 200,
152
- Created = 201,
153
- Accepted = 202,
154
- NonAuthoritativeInformation = 203,
155
- NoContent = 204,
156
- ResetContent = 205,
157
- PartialContent = 206,
158
- MultiStatus = 207,
159
- AlreadyReported = 208,
160
- IMUsed = 226,
161
- MultipleChoices = 300,
162
- MovedPermanently = 301,
163
- Found = 302,
164
- SeeOther = 303,
165
- NotModified = 304,
166
- UseProxy = 305,
167
- TemporaryRedirect = 307,
168
- PermanentRedirect = 308,
169
- BadRequest = 400,
170
- Unauthorized = 401,
171
- PaymentRequired = 402,
172
- Forbidden = 403,
173
- NotFound = 404,
174
- MethodNotAllowed = 405,
175
- NotAcceptable = 406,
176
- ProxyAuthenticationRequired = 407,
177
- RequestTimeout = 408,
178
- Conflict = 409,
179
- Gone = 410,
180
- LengthRequired = 411,
181
- PreconditionFailed = 412,
182
- ContentTooLarge = 413,
183
- URITooLong = 414,
184
- UnsupportedMediaType = 415,
185
- RangeNotSatisfiable = 416,
186
- ExpectationFailed = 417,
187
- ImATeapot = 418,
188
- MisdirectedRequest = 421,
189
- UnprocessableEntity = 422,
190
- Locked = 423,
191
- FailedDependency = 424,
192
- TooEarly = 425,
193
- UpgradeRequired = 426,
194
- PreconditionRequired = 428,
195
- TooManyRequests = 429,
196
- RequestHeaderFieldsTooLarge = 431,
197
- UnavailableForLegalReasons = 451,
198
- InternalServerError = 500,
199
- NotImplemented = 501,
200
- BadGateway = 502,
201
- ServiceUnavailable = 503,
202
- GatewayTimeout = 504,
203
- HTTPVersionNotSupported = 505,
204
- VariantAlsoNegotiates = 506,
205
- InsufficientStorage = 507,
206
- LoopDetected = 508,
207
- NotExtended = 510,
208
- NetworkAuthenticationRequired = 511
209
- }
210
- type RequestHandler = (req: Request, res: ResponseBuilder) => void | Promise<void>;
211
- type Middleware = (req: Request, res: ResponseBuilder, next: () => Promise<void>) => void | Promise<void>;
212
- interface Router {
213
- scope(path: string): Router;
214
- route(method: Method, path: string, handler: RequestHandler, options?: RouteOptions): Router;
215
- middleware(handler: Middleware, options?: MiddlewareOptions): Router;
216
- get(path: string, handler: RequestHandler, options?: RouteOptions): Router;
217
- post(path: string, handler: RequestHandler, options?: RouteOptions): Router;
218
- put(path: string, handler: RequestHandler, options?: RouteOptions): Router;
219
- patch(path: string, handler: RequestHandler, options?: RouteOptions): Router;
220
- delete(path: string, handler: RequestHandler, options?: RouteOptions): Router;
221
- }
222
- interface RouteOptions {
223
- timeoutMs?: number;
224
- permissions?: string[];
225
- authenticated?: boolean;
226
- visibility?: Visibility;
227
- }
228
- interface MiddlewareOptions {
229
- path?: string;
230
- priority?: number;
231
- }
232
- interface Request {
233
- get artifacts(): Artifacts;
234
- get method(): Method;
235
- get url(): URL;
236
- get params(): Record<string, string>;
237
- get headers(): Headers;
238
- cookie(name: string): string | undefined;
239
- body(): Promise<Uint8Array>;
240
- text(): Promise<string>;
241
- json<T>(): Promise<T>;
242
- }
243
- interface RequestBuilder {
244
- method(method: Method): this;
245
- url(url: string | URL): this;
246
- header(name: string, value: string): this;
247
- headers(headers: HeadersInit): this;
248
- cookie(name: string, value: string): this;
249
- body(bytes: Uint8Array): this;
250
- text(text: string): this;
251
- json<T>(json: T): this;
252
- }
253
- interface Response {
254
- get status(): number;
255
- get headers(): Headers;
256
- cookie(name: string): SetCookie | undefined;
257
- body(): Promise<Uint8Array>;
258
- text(): Promise<string>;
259
- json<T>(): Promise<T>;
260
- }
261
- interface ResponseBuilder {
262
- status(status: number): this;
263
- header(name: string, value: string): this;
264
- headers(headers: HeadersInit): this;
265
- cookie(name: string, value?: string, options?: SetCookieOptions): this;
266
- body(bytes: Uint8Array): this;
267
- text(text: string): this;
268
- json<T>(json: T): this;
269
- }
270
- interface SetCookieOptions {
271
- encode?: (s: string) => string;
272
- maxAge?: number;
273
- expires?: Date;
274
- domain?: string;
275
- path?: string;
276
- httpOnly?: boolean;
277
- secure?: boolean;
278
- partitioned?: boolean;
279
- priority?: 'low' | 'medium' | 'high';
280
- sameSite?: boolean | 'lax' | 'strict' | 'none';
281
- }
282
-
283
- interface Call extends RequestBuilder, PromiseLike<Response> {
284
- }
285
-
286
- interface Providers {
287
- list(group: string): Provider[];
288
- }
289
- interface Provider {
290
- get app(): AppId;
291
- get group(): string;
292
- get id(): string;
293
- call(path: string, method: Method): Call;
294
- get(path: string): Call;
295
- post(path: string): Call;
296
- put(path: string): Call;
297
- patch(path: string): Call;
298
- delete(path: string): Call;
299
- }
300
- declare const Provider: {
301
- fromId(id: string): Provider;
302
- };
303
-
304
12
  type EntryPoint = (app: App) => unknown;
305
13
  interface App {
306
14
  get router(): Router;
@@ -310,7 +18,7 @@ interface App {
310
18
  capabilities(capabilities: {
311
19
  [app: string]: string[];
312
20
  }): App;
313
- entity(name: string, schema: JSONSchema4): App;
21
+ entity(model: EntityModelRegistration): App;
314
22
  subscribe(pattern: string, handler: EventHandler): App;
315
23
  }
316
24
 
@@ -538,4 +246,4 @@ declare namespace error {
538
246
  export { error_BadGateway as BadGateway, error_BadRequest as BadRequest, error_Base as Base, error_Conflict as Conflict, error_ContentTooLarge as ContentTooLarge, error_ExpectationFailed as ExpectationFailed, error_FailedDependency as FailedDependency, error_Forbidden as Forbidden, error_GatewayTimeout as GatewayTimeout, error_Gone as Gone, error_HTTPVersionNotSupported as HTTPVersionNotSupported, error_ImATeapot as ImATeapot, error_InsufficientStorage as InsufficientStorage, error_InternalServerError as InternalServerError, error_LengthRequired as LengthRequired, error_Locked as Locked, error_LoopDetected as LoopDetected, error_MethodNotAllowed as MethodNotAllowed, error_MisdirectedRequest as MisdirectedRequest, error_NetworkAuthenticationRequired as NetworkAuthenticationRequired, error_NotAcceptable as NotAcceptable, error_NotExtended as NotExtended, error_NotFound as NotFound, error_NotImplemented as NotImplemented, error_PaymentRequired as PaymentRequired, error_PreconditionFailed as PreconditionFailed, error_PreconditionRequired as PreconditionRequired, error_ProxyAuthenticationRequired as ProxyAuthenticationRequired, error_RangeNotSatisfiable as RangeNotSatisfiable, error_RequestHeaderFieldsTooLarge as RequestHeaderFieldsTooLarge, error_RequestTimeout as RequestTimeout, error_ServiceUnavailable as ServiceUnavailable, error_TooEarly as TooEarly, error_TooManyRequests as TooManyRequests, error_URITooLong as URITooLong, error_Unauthorized as Unauthorized, error_UnavailableForLegalReasons as UnavailableForLegalReasons, error_UnprocessableEntity as UnprocessableEntity, error_UnsupportedMediaType as UnsupportedMediaType, error_UpgradeRequired as UpgradeRequired, error_VariantAlsoNegotiates as VariantAlsoNegotiates };
539
247
  }
540
248
 
541
- export { type App, AppId, type AppRole, type Artifacts, type Auth, type Entity, type EntryPoint, type EventHandler, type Method, type Middleware, type Namespace, Provider, type Providers, type Request, type RequestBuilder, type RequestHandler, type Response, type ResponseBuilder, type RouteOptions, type Router, StatusCode, type Subject, type Tenant, type Visibility, _default as cbor, error };
249
+ export { type App, AppRole, type EntryPoint, EventHandler, Router, _default as cbor, error };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import*as o from'cbor2';var Y=Object.defineProperty;var Z=(t,r)=>{for(var n in r)Y(t,n,{get:r[n],enumerable:true});};var $={encode(t){return o.encode(t)},decode(t){return o.decode(t)}};var X={};Z(X,{BadGateway:()=>V,BadRequest:()=>c,Base:()=>s,Conflict:()=>y,ContentTooLarge:()=>b,ExpectationFailed:()=>A,FailedDependency:()=>U,Forbidden:()=>d,GatewayTimeout:()=>K,Gone:()=>f,HTTPVersionNotSupported:()=>D,ImATeapot:()=>T,InsufficientStorage:()=>Q,InternalServerError:()=>F,LengthRequired:()=>R,Locked:()=>k,LoopDetected:()=>z,MethodNotAllowed:()=>u,MisdirectedRequest:()=>I,NetworkAuthenticationRequired:()=>W,NotAcceptable:()=>x,NotExtended:()=>J,NotFound:()=>g,NotImplemented:()=>L,PaymentRequired:()=>l,PreconditionFailed:()=>_,PreconditionRequired:()=>O,ProxyAuthenticationRequired:()=>m,RangeNotSatisfiable:()=>q,RequestHeaderFieldsTooLarge:()=>E,RequestTimeout:()=>h,ServiceUnavailable:()=>B,TooEarly:()=>H,TooManyRequests:()=>N,URITooLong:()=>v,Unauthorized:()=>a,UnavailableForLegalReasons:()=>j,UnprocessableEntity:()=>M,UnsupportedMediaType:()=>P,UpgradeRequired:()=>w,VariantAlsoNegotiates:()=>G});var p=(e=>(e[e.Continue=100]="Continue",e[e.SwitchingProtocols=101]="SwitchingProtocols",e[e.Processing=102]="Processing",e[e.EarlyHints=103]="EarlyHints",e[e.OK=200]="OK",e[e.Created=201]="Created",e[e.Accepted=202]="Accepted",e[e.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",e[e.NoContent=204]="NoContent",e[e.ResetContent=205]="ResetContent",e[e.PartialContent=206]="PartialContent",e[e.MultiStatus=207]="MultiStatus",e[e.AlreadyReported=208]="AlreadyReported",e[e.IMUsed=226]="IMUsed",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.Found=302]="Found",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.LengthRequired=411]="LengthRequired",e[e.PreconditionFailed=412]="PreconditionFailed",e[e.ContentTooLarge=413]="ContentTooLarge",e[e.URITooLong=414]="URITooLong",e[e.UnsupportedMediaType=415]="UnsupportedMediaType",e[e.RangeNotSatisfiable=416]="RangeNotSatisfiable",e[e.ExpectationFailed=417]="ExpectationFailed",e[e.ImATeapot=418]="ImATeapot",e[e.MisdirectedRequest=421]="MisdirectedRequest",e[e.UnprocessableEntity=422]="UnprocessableEntity",e[e.Locked=423]="Locked",e[e.FailedDependency=424]="FailedDependency",e[e.TooEarly=425]="TooEarly",e[e.UpgradeRequired=426]="UpgradeRequired",e[e.PreconditionRequired=428]="PreconditionRequired",e[e.TooManyRequests=429]="TooManyRequests",e[e.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",e[e.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout",e[e.HTTPVersionNotSupported=505]="HTTPVersionNotSupported",e[e.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",e[e.InsufficientStorage=507]="InsufficientStorage",e[e.LoopDetected=508]="LoopDetected",e[e.NotExtended=510]="NotExtended",e[e.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",e))(p||{});var s=class extends Error{constructor(n){super(n.msg);this.payload=n;}status(n){return this.payload.status=n,this}code(n){return this.payload.code=n,this}msg(n){return this.payload.msg=n,this}},c=class extends s{constructor(r){super({status:400,code:"bad_request",msg:r});}},a=class extends s{constructor(r){super({status:401,code:"unauthorized",msg:r});}},l=class extends s{constructor(r){super({status:402,code:"payment_required",msg:r});}},d=class extends s{constructor(r){super({status:403,code:"forbidden",msg:r});}},g=class extends s{constructor(r){super({status:404,code:"not_found",msg:r});}},u=class extends s{constructor(r){super({status:405,code:"method_not_allowed",msg:r});}},x=class extends s{constructor(r){super({status:406,code:"not_acceptable",msg:r});}},m=class extends s{constructor(r){super({status:407,code:"proxy_authentication_required",msg:r});}},h=class extends s{constructor(r){super({status:408,code:"request_timeout",msg:r});}},y=class extends s{constructor(r){super({status:409,code:"conflict",msg:r});}},f=class extends s{constructor(r){super({status:410,code:"gone",msg:r});}},R=class extends s{constructor(r){super({status:411,code:"length_required",msg:r});}},_=class extends s{constructor(r){super({status:412,code:"precondition_failed",msg:r});}},b=class extends s{constructor(r){super({status:413,code:"content_too_large",msg:r});}},v=class extends s{constructor(r){super({status:414,code:"uri_too_long",msg:r});}},P=class extends s{constructor(r){super({status:415,code:"unsupported_media_type",msg:r});}},q=class extends s{constructor(r){super({status:416,code:"range_not_satisfiable",msg:r});}},A=class extends s{constructor(r){super({status:417,code:"expectation_failed",msg:r});}},T=class extends s{constructor(r){super({status:418,code:"im_a_teapot",msg:r});}},I=class extends s{constructor(r){super({status:421,code:"misdirected_request",msg:r});}},M=class extends s{constructor(r){super({status:422,code:"unprocessable_entity",msg:r});}},k=class extends s{constructor(r){super({status:423,code:"locked",msg:r});}},U=class extends s{constructor(r){super({status:424,code:"failed_dependency",msg:r});}},H=class extends s{constructor(r){super({status:425,code:"too_early",msg:r});}},w=class extends s{constructor(r){super({status:426,code:"upgrade_required",msg:r});}},O=class extends s{constructor(r){super({status:428,code:"precondition_required",msg:r});}},N=class extends s{constructor(r){super({status:429,code:"too_many_requests",msg:r});}},E=class extends s{constructor(r){super({status:431,code:"request_header_fields_too_large",msg:r});}},j=class extends s{constructor(r){super({status:451,code:"unavailable_for_legal_reasons",msg:r});}},F=class extends s{constructor(r){super({status:500,code:"internal_server_error",msg:r});}},L=class extends s{constructor(r){super({status:501,code:"not_implemented",msg:r});}},V=class extends s{constructor(r){super({status:502,code:"bad_gateway",msg:r});}},B=class extends s{constructor(r){super({status:503,code:"service_unavailable",msg:r});}},K=class extends s{constructor(r){super({status:504,code:"gateway_timeout",msg:r});}},D=class extends s{constructor(r){super({status:505,code:"http_version_not_supported",msg:r});}},G=class extends s{constructor(r){super({status:506,code:"variant_also_negotiates",msg:r});}},Q=class extends s{constructor(r){super({status:507,code:"insufficient_storage",msg:r});}},z=class extends s{constructor(r){super({status:508,code:"loop_detected",msg:r});}},J=class extends s{constructor(r){super({status:510,code:"not_extended",msg:r});}},W=class extends s{constructor(r){super({status:511,code:"network_authentication_required",msg:r});}};var i={get instance(){return globalThis.__M1CRO__.internals}};var C={fromId(t){return i.instance.providerFromId(t)}};var S={parse(t){return i.instance.parseAppId(t)}};export{S as AppId,C as Provider,p as StatusCode,$ as cbor,X as error};
1
+ import*as o from'cbor2';var Y=Object.defineProperty;var Z=(t,r)=>{for(var n in r)Y(t,n,{get:r[n],enumerable:true});};var $={encode(t){return o.encode(t)},decode(t){return o.decode(t)}};var X={};Z(X,{BadGateway:()=>V,BadRequest:()=>c,Base:()=>s,Conflict:()=>y,ContentTooLarge:()=>b,ExpectationFailed:()=>A,FailedDependency:()=>U,Forbidden:()=>d,GatewayTimeout:()=>K,Gone:()=>f,HTTPVersionNotSupported:()=>D,ImATeapot:()=>T,InsufficientStorage:()=>Q,InternalServerError:()=>L,LengthRequired:()=>R,Locked:()=>k,LoopDetected:()=>z,MethodNotAllowed:()=>x,MisdirectedRequest:()=>I,NetworkAuthenticationRequired:()=>W,NotAcceptable:()=>u,NotExtended:()=>J,NotFound:()=>g,NotImplemented:()=>F,PaymentRequired:()=>l,PreconditionFailed:()=>_,PreconditionRequired:()=>O,ProxyAuthenticationRequired:()=>m,RangeNotSatisfiable:()=>q,RequestHeaderFieldsTooLarge:()=>E,RequestTimeout:()=>h,ServiceUnavailable:()=>B,TooEarly:()=>H,TooManyRequests:()=>N,URITooLong:()=>v,Unauthorized:()=>a,UnavailableForLegalReasons:()=>j,UnprocessableEntity:()=>M,UnsupportedMediaType:()=>P,UpgradeRequired:()=>w,VariantAlsoNegotiates:()=>G});var p=(e=>(e[e.Continue=100]="Continue",e[e.SwitchingProtocols=101]="SwitchingProtocols",e[e.Processing=102]="Processing",e[e.EarlyHints=103]="EarlyHints",e[e.OK=200]="OK",e[e.Created=201]="Created",e[e.Accepted=202]="Accepted",e[e.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",e[e.NoContent=204]="NoContent",e[e.ResetContent=205]="ResetContent",e[e.PartialContent=206]="PartialContent",e[e.MultiStatus=207]="MultiStatus",e[e.AlreadyReported=208]="AlreadyReported",e[e.IMUsed=226]="IMUsed",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.Found=302]="Found",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.LengthRequired=411]="LengthRequired",e[e.PreconditionFailed=412]="PreconditionFailed",e[e.ContentTooLarge=413]="ContentTooLarge",e[e.URITooLong=414]="URITooLong",e[e.UnsupportedMediaType=415]="UnsupportedMediaType",e[e.RangeNotSatisfiable=416]="RangeNotSatisfiable",e[e.ExpectationFailed=417]="ExpectationFailed",e[e.ImATeapot=418]="ImATeapot",e[e.MisdirectedRequest=421]="MisdirectedRequest",e[e.UnprocessableEntity=422]="UnprocessableEntity",e[e.Locked=423]="Locked",e[e.FailedDependency=424]="FailedDependency",e[e.TooEarly=425]="TooEarly",e[e.UpgradeRequired=426]="UpgradeRequired",e[e.PreconditionRequired=428]="PreconditionRequired",e[e.TooManyRequests=429]="TooManyRequests",e[e.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",e[e.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout",e[e.HTTPVersionNotSupported=505]="HTTPVersionNotSupported",e[e.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",e[e.InsufficientStorage=507]="InsufficientStorage",e[e.LoopDetected=508]="LoopDetected",e[e.NotExtended=510]="NotExtended",e[e.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",e))(p||{});var s=class extends Error{constructor(n){super(n.msg);this.payload=n;}status(n){return this.payload.status=n,this}code(n){return this.payload.code=n,this}msg(n){return this.payload.msg=n,this}},c=class extends s{constructor(r){super({status:400,code:"bad_request",msg:r});}},a=class extends s{constructor(r){super({status:401,code:"unauthorized",msg:r});}},l=class extends s{constructor(r){super({status:402,code:"payment_required",msg:r});}},d=class extends s{constructor(r){super({status:403,code:"forbidden",msg:r});}},g=class extends s{constructor(r){super({status:404,code:"not_found",msg:r});}},x=class extends s{constructor(r){super({status:405,code:"method_not_allowed",msg:r});}},u=class extends s{constructor(r){super({status:406,code:"not_acceptable",msg:r});}},m=class extends s{constructor(r){super({status:407,code:"proxy_authentication_required",msg:r});}},h=class extends s{constructor(r){super({status:408,code:"request_timeout",msg:r});}},y=class extends s{constructor(r){super({status:409,code:"conflict",msg:r});}},f=class extends s{constructor(r){super({status:410,code:"gone",msg:r});}},R=class extends s{constructor(r){super({status:411,code:"length_required",msg:r});}},_=class extends s{constructor(r){super({status:412,code:"precondition_failed",msg:r});}},b=class extends s{constructor(r){super({status:413,code:"content_too_large",msg:r});}},v=class extends s{constructor(r){super({status:414,code:"uri_too_long",msg:r});}},P=class extends s{constructor(r){super({status:415,code:"unsupported_media_type",msg:r});}},q=class extends s{constructor(r){super({status:416,code:"range_not_satisfiable",msg:r});}},A=class extends s{constructor(r){super({status:417,code:"expectation_failed",msg:r});}},T=class extends s{constructor(r){super({status:418,code:"im_a_teapot",msg:r});}},I=class extends s{constructor(r){super({status:421,code:"misdirected_request",msg:r});}},M=class extends s{constructor(r){super({status:422,code:"unprocessable_entity",msg:r});}},k=class extends s{constructor(r){super({status:423,code:"locked",msg:r});}},U=class extends s{constructor(r){super({status:424,code:"failed_dependency",msg:r});}},H=class extends s{constructor(r){super({status:425,code:"too_early",msg:r});}},w=class extends s{constructor(r){super({status:426,code:"upgrade_required",msg:r});}},O=class extends s{constructor(r){super({status:428,code:"precondition_required",msg:r});}},N=class extends s{constructor(r){super({status:429,code:"too_many_requests",msg:r});}},E=class extends s{constructor(r){super({status:431,code:"request_header_fields_too_large",msg:r});}},j=class extends s{constructor(r){super({status:451,code:"unavailable_for_legal_reasons",msg:r});}},L=class extends s{constructor(r){super({status:500,code:"internal_server_error",msg:r});}},F=class extends s{constructor(r){super({status:501,code:"not_implemented",msg:r});}},V=class extends s{constructor(r){super({status:502,code:"bad_gateway",msg:r});}},B=class extends s{constructor(r){super({status:503,code:"service_unavailable",msg:r});}},K=class extends s{constructor(r){super({status:504,code:"gateway_timeout",msg:r});}},D=class extends s{constructor(r){super({status:505,code:"http_version_not_supported",msg:r});}},G=class extends s{constructor(r){super({status:506,code:"variant_also_negotiates",msg:r});}},Q=class extends s{constructor(r){super({status:507,code:"insufficient_storage",msg:r});}},z=class extends s{constructor(r){super({status:508,code:"loop_detected",msg:r});}},J=class extends s{constructor(r){super({status:510,code:"not_extended",msg:r});}},W=class extends s{constructor(r){super({status:511,code:"network_authentication_required",msg:r});}};var i={get instance(){return globalThis.__M1CRO__.internals}};var C={fromId(t){return i.instance.providerFromId(t)}};var S={parse(t){return i.instance.parseAppId(t)}};export{S as AppId,C as Provider,p as StatusCode,$ as cbor,X as error};
@@ -0,0 +1,357 @@
1
+ import { SetCookie } from 'cookie';
2
+
3
+ type Record$1<K extends string | number | symbol = string, V = any> = {
4
+ [key in K]: V;
5
+ };
6
+ type Variant<K extends PropertyKey, T extends object> = {
7
+ [P in keyof T]: {
8
+ [Q in K]: P;
9
+ } & T[P] extends infer U ? {
10
+ [Q in keyof U]: U[Q];
11
+ } : never;
12
+ }[keyof T];
13
+ type EventHandler = <T>(event: string, data: T) => void | Promise<void>;
14
+ type Visibility = 'private' | 'platform' | 'vendor' | 'public';
15
+ interface Tenant {
16
+ id: string;
17
+ host: string;
18
+ }
19
+ interface AppId {
20
+ get name(): string;
21
+ get namespace(): Namespace;
22
+ toString(separator?: string): string;
23
+ }
24
+ declare const AppId: {
25
+ parse(input: string): AppId;
26
+ };
27
+ type Namespace = 'system' | 'platform' | {
28
+ vendor: string;
29
+ };
30
+ type AppRole = Variant<'type', AppRoleData>;
31
+ type AppRoleData = {
32
+ provider: {
33
+ group: string;
34
+ };
35
+ test: void;
36
+ };
37
+ interface Auth {
38
+ subject: Subject;
39
+ permissions: Permissions;
40
+ }
41
+ interface Subject {
42
+ id: string;
43
+ email: string;
44
+ roles: string[];
45
+ }
46
+ interface Permissions {
47
+ [key: string]: string[];
48
+ }
49
+ interface HookEventMap {
50
+ start: [];
51
+ install: [];
52
+ }
53
+
54
+ type InsertReturnMode = 'insertedIds' | 'documents';
55
+ type InsertReturnType<T extends Record$1, R extends InsertReturnMode> = R extends 'insertedIds' ? string[] : R extends 'documents' ? T[] : never;
56
+ interface InsertQuery<T extends Record$1 = Record$1, R extends InsertReturnMode = 'insertedIds'> extends PromiseLike<InsertReturnType<T, R>> {
57
+ return(mode: 'insertedIds'): InsertQuery<T, 'insertedIds'>;
58
+ return(mode: 'documents'): InsertQuery<T, 'documents'>;
59
+ return(mode: InsertReturnMode): InsertQuery<T, typeof mode>;
60
+ }
61
+ type InsertOneReturnMode = 'insertedId' | 'document';
62
+ type InsertOneReturnType<T extends Record$1, R extends InsertOneReturnMode> = R extends 'insertedId' ? string : R extends 'document' ? T : never;
63
+ interface InsertOneQuery<T extends Record$1 = Record$1, R extends InsertOneReturnMode = 'insertedId'> extends PromiseLike<InsertOneReturnType<T, R>> {
64
+ return(mode: 'insertedId'): InsertOneQuery<T, 'insertedId'>;
65
+ return(mode: 'document'): InsertOneQuery<T, 'document'>;
66
+ return(mode: InsertOneReturnMode): InsertOneQuery<T, typeof mode>;
67
+ }
68
+
69
+ type UpdateReturnMode = 'affectedRows' | 'oldDocuments' | 'newDocuments';
70
+ type UpdateReturnType<T, R extends UpdateReturnMode> = R extends 'affectedRows' ? bigint : R extends 'oldDocuments' | 'newDocuments' ? T[] : never;
71
+ interface UpdateQuery<T extends Record$1 = Record$1, R extends UpdateReturnMode = 'affectedRows'> extends PromiseLike<UpdateReturnType<T, R>> {
72
+ limit(limit: number): this;
73
+ offset(offset: number): this;
74
+ sort(sort: Sorting): this;
75
+ return(mode: 'affectedRows'): UpdateQuery<T, 'affectedRows'>;
76
+ return(mode: 'oldDocuments'): UpdateQuery<T, 'oldDocuments'>;
77
+ return(mode: 'newDocuments'): UpdateQuery<T, 'newDocuments'>;
78
+ return(mode: UpdateReturnMode): UpdateQuery<T, typeof mode>;
79
+ }
80
+ type UpdateOneReturnMode = 'success' | 'oldDocument' | 'newDocument';
81
+ type UpdateOneReturnType<T, R extends UpdateOneReturnMode> = R extends 'success' ? boolean : R extends 'oldDocument' | 'newDocument' ? T | undefined : never;
82
+ interface UpdateOneQuery<T extends Record$1 = Record$1, R extends UpdateOneReturnMode = 'success'> extends PromiseLike<UpdateOneReturnType<T, R>> {
83
+ offset(offset: number): this;
84
+ sort(sort: Sorting): this;
85
+ upsert(upsert: boolean): this;
86
+ return(mode: 'success'): UpdateOneQuery<T, 'success'>;
87
+ return(mode: 'oldDocument'): UpdateOneQuery<T, 'oldDocument'>;
88
+ return(mode: 'newDocument'): UpdateOneQuery<T, 'newDocument'>;
89
+ return(mode: UpdateOneReturnMode): UpdateOneQuery<T, typeof mode>;
90
+ }
91
+
92
+ type RemoveReturnMode = 'affectedRows' | 'documents';
93
+ type RemoveReturnType<T, R extends RemoveReturnMode> = R extends 'affectedRows' ? bigint : R extends 'documents' ? T[] : never;
94
+ interface RemoveQuery<T extends Record$1 = Record$1, R extends RemoveReturnMode = 'affectedRows'> extends PromiseLike<RemoveReturnType<T, R>> {
95
+ limit(limit: number): this;
96
+ offset(offset: number): this;
97
+ sort(sort: Sorting): this;
98
+ return(mode: 'affectedRows'): RemoveQuery<T, 'affectedRows'>;
99
+ return(mode: 'documents'): RemoveQuery<T, 'documents'>;
100
+ return(mode: RemoveReturnMode): RemoveQuery<T, typeof mode>;
101
+ }
102
+ type RemoveOneReturnMode = 'success' | 'document';
103
+ type RemoveOneReturnType<T, R extends RemoveOneReturnMode> = R extends 'success' ? boolean : R extends 'document' ? T | undefined : never;
104
+ interface RemoveOneQuery<T extends Record$1 = Record$1, R extends RemoveOneReturnMode = 'success'> extends PromiseLike<RemoveOneReturnType<T, R>> {
105
+ offset(offset: number): this;
106
+ sort(sort: Sorting): this;
107
+ return(mode: 'success'): RemoveOneQuery<T, 'success'>;
108
+ return(mode: 'document'): RemoveOneQuery<T, 'document'>;
109
+ return(mode: RemoveOneReturnMode): RemoveOneQuery<T, typeof mode>;
110
+ }
111
+
112
+ interface Entity<T extends object = Record$1<string, unknown>> {
113
+ get name(): string;
114
+ find(query?: Record$1): FindQuery<T>;
115
+ findOne(query?: Record$1): FindOneQuery<T>;
116
+ insert(docs: T[]): InsertQuery<T>;
117
+ insertOne(doc: T): InsertOneQuery<T>;
118
+ update(query: Record$1, update: Record$1): UpdateQuery<T>;
119
+ updateOne(query: Record$1, update: Record$1): UpdateOneQuery<T>;
120
+ remove(query: Record$1): RemoveQuery<T>;
121
+ removeOne(query: Record$1): RemoveOneQuery<T>;
122
+ }
123
+ interface Sorting {
124
+ [field: string]: 'asc' | 'desc';
125
+ }
126
+
127
+ interface FindQuery<T extends Record$1 = Record$1> extends PromiseLike<T[]> {
128
+ limit(limit: number): this;
129
+ offset(offset: number): this;
130
+ sort(sort: Sorting): this;
131
+ }
132
+ interface FindOneQuery<T extends Record$1 = Record$1> extends PromiseLike<T | undefined> {
133
+ offset(offset: number): this;
134
+ sort(sort: Sorting): this;
135
+ }
136
+
137
+ interface Artifacts {
138
+ get<T>(key: string): T | undefined;
139
+ set<T>(key: string, value: T): void;
140
+ delete(key: string): void;
141
+ get auth(): Auth | undefined;
142
+ }
143
+
144
+ type Method = 'get' | 'post' | 'put' | 'patch' | 'delete';
145
+ declare enum StatusCode {
146
+ Continue = 100,
147
+ SwitchingProtocols = 101,
148
+ Processing = 102,
149
+ EarlyHints = 103,
150
+ OK = 200,
151
+ Created = 201,
152
+ Accepted = 202,
153
+ NonAuthoritativeInformation = 203,
154
+ NoContent = 204,
155
+ ResetContent = 205,
156
+ PartialContent = 206,
157
+ MultiStatus = 207,
158
+ AlreadyReported = 208,
159
+ IMUsed = 226,
160
+ MultipleChoices = 300,
161
+ MovedPermanently = 301,
162
+ Found = 302,
163
+ SeeOther = 303,
164
+ NotModified = 304,
165
+ UseProxy = 305,
166
+ TemporaryRedirect = 307,
167
+ PermanentRedirect = 308,
168
+ BadRequest = 400,
169
+ Unauthorized = 401,
170
+ PaymentRequired = 402,
171
+ Forbidden = 403,
172
+ NotFound = 404,
173
+ MethodNotAllowed = 405,
174
+ NotAcceptable = 406,
175
+ ProxyAuthenticationRequired = 407,
176
+ RequestTimeout = 408,
177
+ Conflict = 409,
178
+ Gone = 410,
179
+ LengthRequired = 411,
180
+ PreconditionFailed = 412,
181
+ ContentTooLarge = 413,
182
+ URITooLong = 414,
183
+ UnsupportedMediaType = 415,
184
+ RangeNotSatisfiable = 416,
185
+ ExpectationFailed = 417,
186
+ ImATeapot = 418,
187
+ MisdirectedRequest = 421,
188
+ UnprocessableEntity = 422,
189
+ Locked = 423,
190
+ FailedDependency = 424,
191
+ TooEarly = 425,
192
+ UpgradeRequired = 426,
193
+ PreconditionRequired = 428,
194
+ TooManyRequests = 429,
195
+ RequestHeaderFieldsTooLarge = 431,
196
+ UnavailableForLegalReasons = 451,
197
+ InternalServerError = 500,
198
+ NotImplemented = 501,
199
+ BadGateway = 502,
200
+ ServiceUnavailable = 503,
201
+ GatewayTimeout = 504,
202
+ HTTPVersionNotSupported = 505,
203
+ VariantAlsoNegotiates = 506,
204
+ InsufficientStorage = 507,
205
+ LoopDetected = 508,
206
+ NotExtended = 510,
207
+ NetworkAuthenticationRequired = 511
208
+ }
209
+ type RequestHandler = (req: Request, res: ResponseBuilder) => void | Promise<void>;
210
+ type Middleware = (req: Request, res: ResponseBuilder, next: () => Promise<void>) => void | Promise<void>;
211
+ interface Router {
212
+ scope(path: string): Router;
213
+ route(method: Method, path: string, handler: RequestHandler, options?: RouteOptions): Router;
214
+ middleware(handler: Middleware, options?: MiddlewareOptions): Router;
215
+ get(path: string, handler: RequestHandler, options?: RouteOptions): Router;
216
+ post(path: string, handler: RequestHandler, options?: RouteOptions): Router;
217
+ put(path: string, handler: RequestHandler, options?: RouteOptions): Router;
218
+ patch(path: string, handler: RequestHandler, options?: RouteOptions): Router;
219
+ delete(path: string, handler: RequestHandler, options?: RouteOptions): Router;
220
+ }
221
+ interface RouteOptions {
222
+ timeoutMs?: number;
223
+ permissions?: string[];
224
+ authenticated?: boolean;
225
+ visibility?: Visibility;
226
+ }
227
+ interface MiddlewareOptions {
228
+ path?: string;
229
+ priority?: number;
230
+ }
231
+ interface Request {
232
+ get artifacts(): Artifacts;
233
+ get method(): Method;
234
+ get url(): URL;
235
+ get params(): Record<string, string>;
236
+ get headers(): Headers;
237
+ cookie(name: string): string | undefined;
238
+ body(): Promise<Uint8Array>;
239
+ text(): Promise<string>;
240
+ json<T>(): Promise<T>;
241
+ }
242
+ interface RequestBuilder {
243
+ method(method: Method): this;
244
+ url(url: string | URL): this;
245
+ header(name: string, value: string): this;
246
+ headers(headers: HeadersInit): this;
247
+ cookie(name: string, value: string): this;
248
+ body(bytes: Uint8Array): this;
249
+ text(text: string): this;
250
+ json<T>(json: T): this;
251
+ }
252
+ interface Response {
253
+ get status(): number;
254
+ get headers(): Headers;
255
+ cookie(name: string): SetCookie | undefined;
256
+ body(): Promise<Uint8Array>;
257
+ text(): Promise<string>;
258
+ json<T>(): Promise<T>;
259
+ }
260
+ interface ResponseBuilder {
261
+ status(status: number): this;
262
+ header(name: string, value: string): this;
263
+ headers(headers: HeadersInit): this;
264
+ cookie(name: string, value?: string, options?: SetCookieOptions): this;
265
+ body(bytes: Uint8Array): this;
266
+ text(text: string): this;
267
+ json<T>(json: T): this;
268
+ }
269
+ interface SetCookieOptions {
270
+ encode?: (s: string) => string;
271
+ maxAge?: number;
272
+ expires?: Date;
273
+ domain?: string;
274
+ path?: string;
275
+ httpOnly?: boolean;
276
+ secure?: boolean;
277
+ partitioned?: boolean;
278
+ priority?: 'low' | 'medium' | 'high';
279
+ sameSite?: boolean | 'lax' | 'strict' | 'none';
280
+ }
281
+
282
+ interface Crypto {
283
+ deriveKey(seed: string, length: number): Uint8Array;
284
+ aesGcmEncrypt<T>(data: T): Uint8Array;
285
+ aesGcmDecrypt<T>(data: Uint8Array): T;
286
+ argon2Hash(algorithm: Argon2Algorithm, password: string, options?: Argon2Options): string;
287
+ argon2Verify(algorithm: Argon2Algorithm, password: string, hash: string, options?: Argon2Options): boolean;
288
+ }
289
+ type Argon2Algorithm = 'argon2d' | 'argon2i' | 'argon2id';
290
+ interface Argon2Options {
291
+ mCost?: number;
292
+ tCost?: number;
293
+ pCost?: number;
294
+ outputLen?: number;
295
+ }
296
+
297
+ interface SetOptions {
298
+ ttl?: number;
299
+ existenceCheck?: 'nx' | 'xx';
300
+ }
301
+ interface KeyValueStore {
302
+ get<T>(key: string): Promise<T>;
303
+ getDel<T>(key: string): Promise<T>;
304
+ set<T>(key: string, value: T, options?: SetOptions): Promise<void>;
305
+ delete(key: string): Promise<void>;
306
+ }
307
+
308
+ interface RPC {
309
+ call(url: string, method: Method): Call;
310
+ get(url: string): Call;
311
+ post(url: string): Call;
312
+ put(url: string): Call;
313
+ patch(url: string): Call;
314
+ delete(url: string): Call;
315
+ }
316
+ interface Call extends RequestBuilder, PromiseLike<Response> {
317
+ }
318
+
319
+ interface Providers {
320
+ list(group: string): Provider[];
321
+ }
322
+ interface Provider {
323
+ get app(): AppId;
324
+ get group(): string;
325
+ get id(): string;
326
+ call(path: string, method: Method): Call;
327
+ get(path: string): Call;
328
+ post(path: string): Call;
329
+ put(path: string): Call;
330
+ patch(path: string): Call;
331
+ delete(path: string): Call;
332
+ }
333
+ declare const Provider: {
334
+ fromId(id: string): Provider;
335
+ };
336
+
337
+ interface SSE {
338
+ push<T>(event: T, targets: string[]): Promise<void>;
339
+ }
340
+
341
+ interface Bridge {
342
+ get tenant(): Tenant;
343
+ get providers(): Providers;
344
+ settings<T>(): T | undefined;
345
+ crd<T>(key: string): T | undefined;
346
+ get rpc(): RPC;
347
+ get kv(): KeyValueStore;
348
+ get sse(): SSE;
349
+ get crypto(): Crypto;
350
+ entity<T extends object>(name: string): Entity<T>;
351
+ publish<T extends object>(event: string, payload: T, visibility?: Visibility[]): void;
352
+ }
353
+
354
+ declare const logLevels: readonly ["trace", "debug", "info", "warn", "error", "none"];
355
+ type LogLevel = (typeof logLevels)[number];
356
+
357
+ export { type AppRole as A, type Bridge as B, type EventHandler as E, type HookEventMap as H, type LogLevel as L, type Method as M, type Namespace as N, Provider as P, type Router as R, StatusCode as S, type Tenant as T, type Visibility as V, AppId as a, type Artifacts as b, type Auth as c, type Entity as d, type Middleware as e, type Providers as f, type Request as g, type RequestBuilder as h, type RequestHandler as i, type Response as j, type ResponseBuilder as k, type RouteOptions as l, type Subject as m };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m1cro/server-sdk",
3
- "version": "0.1.1-beta.10",
3
+ "version": "0.1.1-beta.11",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -9,6 +9,9 @@
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js"
12
+ },
13
+ "./globals": {
14
+ "types": "./dist/globals.d.ts"
12
15
  }
13
16
  },
14
17
  "publishConfig": {