@andrewcaires/api 5.6.0 → 5.7.1

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/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * @andrewcaires/api v5.6.0
2
+ * @andrewcaires/api v5.7.1
3
3
  * Simple api for small applications using express, jsonwebtoken, sequelize and websocket
4
4
  * (c) 2026 Andrew Caires
5
5
  * @license: MIT
6
6
  */
7
- import { Context, Application as Application$1, ExpressOptions, ResponseError } from '@andrewcaires/express';
7
+ import { Context, Application as Application$1, ExpressOptions, HttpError } from '@andrewcaires/express';
8
8
  import { ModelFindOptions, ModelUpdateOptions, Model as Model$1, Sequelize } from '@andrewcaires/sequelize';
9
9
  import { TypeAnyObject, TypeObjectString, TypeAnyFunction, TypeAnyConstructor, EventEmitter, TypeObject, ValidationBase, ValidationShape } from '@andrewcaires/utils.js';
10
10
  import { WebSocketServer } from 'ws';
@@ -198,16 +198,15 @@ declare enum UserStatus {
198
198
  ARCHIVED = "archived"
199
199
  }
200
200
 
201
- interface WorkerCliRequest {
202
- name: string;
203
- }
204
- interface WorkerDeclaration {
201
+ type WorkerInstance = {
202
+ handler: () => void | Promise<void>;
203
+ };
204
+
205
+ type WorkerConstructor = new () => WorkerInstance;
206
+
207
+ interface WorkerDefinition {
205
208
  name: string;
206
- }
207
- type WorkerHandlerResult = unknown | Promise<unknown>;
208
- type WorkerHandler = () => WorkerHandlerResult;
209
- interface WorkerRegistered extends WorkerDeclaration {
210
- run: WorkerHandler;
209
+ handler: () => void | Promise<void>;
211
210
  }
212
211
 
213
212
  declare class RegisterModel extends Model$1 {
@@ -587,11 +586,6 @@ declare class Application<T extends ApplicationEvents = ApplicationEvents> exten
587
586
  log(message: string, source?: string): void;
588
587
  listen(): Promise<void>;
589
588
  prepare(): Promise<void>;
590
- run(argv?: Array<string>): Promise<unknown>;
591
- runWorker(name: string): Promise<unknown>;
592
- workerCliRequest(argv?: Array<string>): WorkerCliRequest | undefined;
593
- private getCliOption;
594
- private writeWorkerResult;
595
589
  migrations(database: Sequelize): Promise<void>;
596
590
  websocket(): WebSocketServer | undefined;
597
591
  }
@@ -625,8 +619,9 @@ declare class AuditsController extends ModelController<AuditModel> {
625
619
  protected readonly model: typeof AuditModel;
626
620
  protected readonly permissions: string[];
627
621
  protected all(ctx: Context): Promise<void>;
628
- protected record(ctx: Context, record: string): Promise<void>;
622
+ protected record(ctx: Context, id: string): Promise<void>;
629
623
  protected get(ctx: Context): Promise<void>;
624
+ private ensurePermission;
630
625
  }
631
626
 
632
627
  declare class AuthController extends BaseController<AuthEvents> {
@@ -639,8 +634,8 @@ declare class AuthController extends BaseController<AuthEvents> {
639
634
 
640
635
  declare abstract class CrudController<M extends Model<any>, T extends TypeAnyObject = TypeAnyObject> extends ModelController<M, T> {
641
636
  private _crud;
642
- CrudArgumentsCountAll(ctx: Context): ModelArgumentsUpdate<M>;
643
- CrudArgumentsCreate(ctx: Context): ModelArgumentsUpdate<M>;
637
+ CrudArgumentsCountAll(ctx: Context): ModelArgumentsCount<M>;
638
+ CrudArgumentsCreate(ctx: Context): ModelArgumentsCreate<M>;
644
639
  CrudArgumentsFindAll(ctx: Context): ModelArgumentsFindAll<M>;
645
640
  CrudArgumentsFindOne(ctx: Context): ModelArgumentsFindOne<M>;
646
641
  CrudArgumentsDelete(ctx: Context): ModelArgumentsDelete<M>;
@@ -683,13 +678,13 @@ declare class GroupsController extends CrudController<GroupModel> {
683
678
  CrudValidateUpdate(): TypeObject<ValidationBase>;
684
679
  sync(): Promise<void>;
685
680
  protected users(ctx: Context, group_id: string): Promise<void>;
686
- private checkGroup;
681
+ private ensureGroup;
687
682
  }
688
683
 
689
684
  declare class GroupsPermissionsController extends BaseController {
690
685
  private readonly userService;
691
686
  protected all(ctx: Context, group_id: string): Promise<void>;
692
- private checkGroup;
687
+ private ensureGroup;
693
688
  }
694
689
 
695
690
  declare class GroupsRolesController extends ModelController<RoleModel> {
@@ -700,8 +695,8 @@ declare class GroupsRolesController extends ModelController<RoleModel> {
700
695
  protected del(ctx: Context, group_id: string, roles: Array<string>): Promise<void>;
701
696
  protected set(ctx: Context, group_id: string, roles: Array<string>): Promise<void>;
702
697
  private addRoles;
703
- private checkGroup;
704
- private checkRoles;
698
+ private ensureGroup;
699
+ private ensureRoles;
705
700
  }
706
701
 
707
702
  declare class HealthController {
@@ -738,7 +733,7 @@ declare class PagesController extends CrudController<PageModel> {
738
733
  CrudValidateCreate(): TypeObject<ValidationBase>;
739
734
  CrudValidateUpdate(): TypeObject<ValidationBase>;
740
735
  protected position(ctx: Context, pages: Array<TypeAnyObject>): Promise<void>;
741
- private checkPages;
736
+ private ensurePages;
742
737
  }
743
738
 
744
739
  declare class PermissionsController extends CrudController<PermissionModel> {
@@ -750,7 +745,7 @@ declare class PermissionsController extends CrudController<PermissionModel> {
750
745
  CrudValidateUpdate(): TypeObject<ValidationBase>;
751
746
  sync(): Promise<void>;
752
747
  protected groups(ctx: Context, permission_id: string): Promise<void>;
753
- private checkPermission;
748
+ private ensurePermission;
754
749
  }
755
750
 
756
751
  declare class ProfileController extends ModelController<UserModel> {
@@ -781,7 +776,7 @@ declare class RolesController extends CrudController<RoleModel> {
781
776
  CrudValidateUpdate(): TypeObject<ValidationBase>;
782
777
  sync(): Promise<void>;
783
778
  protected groups(ctx: Context, role_id: string): Promise<void>;
784
- private checkRole;
779
+ private ensureRole;
785
780
  }
786
781
 
787
782
  declare class RolesPermissionsController extends ModelController<PermissionModel> {
@@ -792,8 +787,8 @@ declare class RolesPermissionsController extends ModelController<PermissionModel
792
787
  protected del(ctx: Context, role_id: string, permissions: Array<string>): Promise<void>;
793
788
  protected set(ctx: Context, role_id: string, permissions: Array<string>): Promise<void>;
794
789
  private addPermissions;
795
- private checkPermissions;
796
- private checkRole;
790
+ private ensurePermissions;
791
+ private ensureRole;
797
792
  }
798
793
 
799
794
  declare class SetupController extends BaseController {
@@ -810,7 +805,7 @@ declare class TenantsController extends CrudController<TenantModel> {
810
805
  CrudValidateUpdate(): TypeObject<ValidationBase>;
811
806
  sync(): Promise<void>;
812
807
  protected users(ctx: Context, tenant_id: string): Promise<void>;
813
- private checkTenant;
808
+ private ensureTenant;
814
809
  }
815
810
 
816
811
  declare const McpErrorCode: {
@@ -823,7 +818,7 @@ declare const McpErrorCode: {
823
818
  readonly InvalidSession: -32001;
824
819
  };
825
820
  type McpErrorCode = typeof McpErrorCode[keyof typeof McpErrorCode];
826
- declare class McpError extends ResponseError {
821
+ declare class McpError extends HttpError {
827
822
  readonly code: McpErrorCode;
828
823
  readonly data?: unknown;
829
824
  constructor(message: string, code?: McpErrorCode, status?: number, data?: unknown);
@@ -1134,8 +1129,8 @@ declare class UsersGroupsController extends ModelController<GroupModel> {
1134
1129
  protected del(ctx: Context, user_id: string, groups: Array<string>): Promise<void>;
1135
1130
  protected set(ctx: Context, user_id: string, groups: Array<string>): Promise<void>;
1136
1131
  private addGroups;
1137
- private checkGroups;
1138
- private checkUser;
1132
+ private ensureGroups;
1133
+ private ensureUser;
1139
1134
  }
1140
1135
 
1141
1136
  declare class UsersKeysController extends ModelController<UserKeyModel> {
@@ -1151,7 +1146,7 @@ declare class UsersKeysController extends ModelController<UserKeyModel> {
1151
1146
  protected get(ctx: Context, user: UserModel): Promise<void>;
1152
1147
  protected all_admin(ctx: Context, id: string): Promise<void>;
1153
1148
  protected get_admin(ctx: Context, id: string): Promise<void>;
1154
- private checkUser;
1149
+ private ensureUser;
1155
1150
  }
1156
1151
 
1157
1152
  declare class UsersTenantsController extends ModelController<TenantModel> {
@@ -1162,8 +1157,8 @@ declare class UsersTenantsController extends ModelController<TenantModel> {
1162
1157
  protected del(ctx: Context, user_id: string, tenants: Array<string>): Promise<void>;
1163
1158
  protected set(ctx: Context, user_id: string, tenants: Array<string>): Promise<void>;
1164
1159
  private addTenants;
1165
- private checkTenants;
1166
- private checkUser;
1160
+ private ensureTenants;
1161
+ private ensureUser;
1167
1162
  }
1168
1163
 
1169
1164
  declare const sequelize: Sequelize;
@@ -1207,14 +1202,7 @@ declare const McpTool: (options: McpToolOptions) => MethodDecorator;
1207
1202
 
1208
1203
  declare const Audit: (active?: boolean) => ClassDecorator;
1209
1204
 
1210
- declare const WORKER_METADATA: unique symbol;
1211
- interface WorkerMetadata extends WorkerDeclaration {
1212
- propertyKey: string | symbol;
1213
- }
1214
- declare const Worker: (name: string) => MethodDecorator;
1215
- declare const getWorkerMetadata: (target: object | TypeAnyConstructor<object>) => Array<WorkerMetadata>;
1216
- declare const discoverWorkers: (controllers: Array<object>) => Array<WorkerRegistered>;
1217
- declare const runWorker: (controllers: Array<object>, name: string) => Promise<unknown>;
1205
+ declare const RegisterWorker: (name: string) => ClassDecorator & MethodDecorator;
1218
1206
 
1219
1207
  declare class Env extends Env$1 {
1220
1208
  static readonly AUDIT_IGNORE: string[];
@@ -1254,6 +1242,7 @@ declare class Env extends Env$1 {
1254
1242
  static readonly TOKEN_HEADER: string;
1255
1243
  static readonly TOKEN_PEPPER: string;
1256
1244
  static readonly TOKEN_PREFIX: string;
1245
+ static readonly TOKEN_QUERY: string;
1257
1246
  static readonly TOKEN_SECRET: string;
1258
1247
  static readonly TOKEN_TTL: number;
1259
1248
  static readonly TOKEN_TTL_FORGOT: number;
@@ -1269,5 +1258,20 @@ declare class Env extends Env$1 {
1269
1258
  static readonly API_WEBSOCKET_START: boolean;
1270
1259
  }
1271
1260
 
1272
- export { Application, Audit, AuditModel, AuditTypes, AuditsController, AuthController, AuthService, BaseController, CanCreate, CanDelete, CanRead, CanUpdate, Config, ConfigModel, CrudController, Env, FilesController, ForgotController, ForgotModel, GroupModel, GroupRoleModel, GroupTypes, GroupsController, GroupsPermissionsController, GroupsRolesController, HasGroups, HasPermissions, HasScope, HealthController, IsAuthenticated, Log, LogLevels, LogModel, Loggable, LogsController, MCP_DEFAULT_PROTOCOL_VERSION, MCP_HTTP_ALLOW, MCP_HTTP_ALLOWED_METHODS, MCP_HTTP_DEFAULT_ALLOWED_HEADERS, MCP_PROTOCOL_VERSION_HEADER, MCP_SESSION_ID_HEADER, MCP_SUPPORTED_PROTOCOL_VERSIONS, MCP_TOOL_METADATA, McpController, McpError, McpErrorCode, McpHttpHandler, McpInternalError, McpInvalidParamsError, McpInvalidRequestError, McpInvalidSessionError, McpMethodNotFoundError, McpParseError, McpServerError, McpSessionStore, McpTool, McpToolNotFoundError, McpToolRegistry, MigrationModel, ModelController, ModelService, PageModel, PageTypes, PagesController, PermissionModel, PermissionsController, ProfileController, RegisterController, RegisterModel, ReqAccess, ReqGroup, ReqGroups, ReqPermission, ReqPermissions, ReqTenant, ReqTenants, ReqUser, RoleModel, RolePermissionModel, RolesController, RolesPermissionsController, Secret, SecretModel, Service, SessionModel, SessionStore, SetupController, TenantModel, TenantStatus, TenantsController, TestController, UserAuthModel, UserGroupModel, UserKeyModel, UserModel, UserPasswordModel, UserService, UserStatus, UserTenantModel, UsersController, UsersGroupsController, UsersKeysController, UsersTenantsController, WORKER_METADATA, Worker, assertValidMcpToolDefinition, canFactory, discoverMcpTools, discoverWorkers, getMcpToolMetadata, getWorkerMetadata, isJsonParseError, isJsonRpcId, jsonParseErrorResponse, jsonRpcError, jsonRpcErrorFromCode, jsonRpcResult, parseJsonRpcRequest, runWorker, sequelize };
1273
- export type { ApplicationEvents, AuthEvents, AuthResult, ForgotEvents, McpCallToolResult, McpDecoratedToolHandler, McpHttpHandlerOptions, McpHttpResponse, McpJsonRpcErrorBody, McpJsonRpcErrorResult, McpJsonRpcId, McpJsonRpcRequest, McpJsonRpcResult, McpLogger, McpNormalizedValidation, McpProtocolVersion, McpRegisteredTool, McpSession, McpToolCallLog, McpToolContext, McpToolDeclaration, McpToolDefinition, McpToolHandlerResult, McpToolInput, McpToolMetadata, McpToolOptions, McpToolOutput, ModelArgumentsBase, ModelArgumentsCount, ModelArgumentsCreate, ModelArgumentsDelete, ModelArgumentsFindAll, ModelArgumentsFindOne, ModelArgumentsInclude, ModelArgumentsUpdate, ModelCallbackFindAll, ModelCallbackFindOne, ModelOptions, ModelResultFindAll, RegisterEvents, WorkerCliRequest, WorkerDeclaration, WorkerHandler, WorkerHandlerResult, WorkerMetadata, WorkerRegistered };
1261
+ declare class WorkerRegistry {
1262
+ private static workers;
1263
+ static register(name: string, handler: () => void | Promise<void>): void;
1264
+ static registerClass(name: string, target: WorkerConstructor): void;
1265
+ static registerMethod(name: string, target: object, propertyKey: string | symbol): void;
1266
+ static start(name: string): Promise<void>;
1267
+ static list(): Array<{
1268
+ name: string;
1269
+ }>;
1270
+ static names(): Array<string>;
1271
+ private static get;
1272
+ private static normalizeStartName;
1273
+ private static normalizeWorkerName;
1274
+ }
1275
+
1276
+ export { Application, Audit, AuditModel, AuditTypes, AuditsController, AuthController, AuthService, BaseController, CanCreate, CanDelete, CanRead, CanUpdate, Config, ConfigModel, CrudController, Env, FilesController, ForgotController, ForgotModel, GroupModel, GroupRoleModel, GroupTypes, GroupsController, GroupsPermissionsController, GroupsRolesController, HasGroups, HasPermissions, HasScope, HealthController, IsAuthenticated, Log, LogLevels, LogModel, Loggable, LogsController, MCP_DEFAULT_PROTOCOL_VERSION, MCP_HTTP_ALLOW, MCP_HTTP_ALLOWED_METHODS, MCP_HTTP_DEFAULT_ALLOWED_HEADERS, MCP_PROTOCOL_VERSION_HEADER, MCP_SESSION_ID_HEADER, MCP_SUPPORTED_PROTOCOL_VERSIONS, MCP_TOOL_METADATA, McpController, McpError, McpErrorCode, McpHttpHandler, McpInternalError, McpInvalidParamsError, McpInvalidRequestError, McpInvalidSessionError, McpMethodNotFoundError, McpParseError, McpServerError, McpSessionStore, McpTool, McpToolNotFoundError, McpToolRegistry, MigrationModel, ModelController, ModelService, PageModel, PageTypes, PagesController, PermissionModel, PermissionsController, ProfileController, RegisterController, RegisterModel, RegisterWorker, ReqAccess, ReqGroup, ReqGroups, ReqPermission, ReqPermissions, ReqTenant, ReqTenants, ReqUser, RoleModel, RolePermissionModel, RolesController, RolesPermissionsController, Secret, SecretModel, Service, SessionModel, SessionStore, SetupController, TenantModel, TenantStatus, TenantsController, TestController, UserAuthModel, UserGroupModel, UserKeyModel, UserModel, UserPasswordModel, UserService, UserStatus, UserTenantModel, UsersController, UsersGroupsController, UsersKeysController, UsersTenantsController, WorkerRegistry, assertValidMcpToolDefinition, canFactory, discoverMcpTools, getMcpToolMetadata, isJsonParseError, isJsonRpcId, jsonParseErrorResponse, jsonRpcError, jsonRpcErrorFromCode, jsonRpcResult, parseJsonRpcRequest, sequelize };
1277
+ export type { ApplicationEvents, AuthEvents, AuthResult, ForgotEvents, McpCallToolResult, McpDecoratedToolHandler, McpHttpHandlerOptions, McpHttpResponse, McpJsonRpcErrorBody, McpJsonRpcErrorResult, McpJsonRpcId, McpJsonRpcRequest, McpJsonRpcResult, McpLogger, McpNormalizedValidation, McpProtocolVersion, McpRegisteredTool, McpSession, McpToolCallLog, McpToolContext, McpToolDeclaration, McpToolDefinition, McpToolHandlerResult, McpToolInput, McpToolMetadata, McpToolOptions, McpToolOutput, ModelArgumentsBase, ModelArgumentsCount, ModelArgumentsCreate, ModelArgumentsDelete, ModelArgumentsFindAll, ModelArgumentsFindOne, ModelArgumentsInclude, ModelArgumentsUpdate, ModelCallbackFindAll, ModelCallbackFindOne, ModelOptions, ModelResultFindAll, RegisterEvents, WorkerConstructor, WorkerDefinition, WorkerInstance };