@develit-io/backend-sdk 5.47.0 → 7.0.0
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.mts +28 -15
- package/dist/index.d.ts +28 -15
- package/dist/index.mjs +63 -12
- package/package.json +1 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import * as drizzle_orm from 'drizzle-orm';
|
|
2
|
-
import { ExtractTablesWithRelations, DBQueryConfig, BuildQueryResult } from 'drizzle-orm';
|
|
2
|
+
import { ExtractTablesWithRelations, DBQueryConfig, BuildQueryResult, AnyColumn } from 'drizzle-orm';
|
|
3
3
|
import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
|
|
4
4
|
import { AnySQLiteTable } from 'drizzle-orm/sqlite-core';
|
|
5
5
|
import { MiddlewareHandler } from 'hono/types';
|
|
6
6
|
import { z as z$1 } from 'zod';
|
|
7
7
|
import * as z from 'zod/v4/core';
|
|
8
|
-
import {
|
|
9
|
-
export {
|
|
8
|
+
import { ContentfulStatusCode, SuccessStatusCode } from 'hono/utils/http-status';
|
|
9
|
+
export { ContentfulStatusCode as InternalResponseStatus } from 'hono/utils/http-status';
|
|
10
10
|
import { Queue } from '@cloudflare/workers-types';
|
|
11
11
|
import { BatchItem } from 'drizzle-orm/batch';
|
|
12
12
|
import { DrizzleD1Database } from 'drizzle-orm/d1';
|
|
13
13
|
|
|
14
|
-
declare const
|
|
14
|
+
declare const ENVIRONMENT: string[];
|
|
15
15
|
|
|
16
16
|
type Environment = string | 'localhost' | 'dev' | 'test' | 'staging' | 'production';
|
|
17
17
|
|
|
18
|
-
type Project = 'creditio' | 'dbu-mdm' | 'dbu-txs' | 'lrf-website' | 'moneio' | 'paycorp-fiat-processor';
|
|
18
|
+
type Project = 'creditio' | 'dbu-mdm' | 'dbu-txs' | 'cryptobyte-website' | 'lrf-website' | 'moneio' | 'paycorp-fiat-processor';
|
|
19
|
+
|
|
20
|
+
declare const uuidv4: () => `${string}-${string}-${string}-${string}-${string}`;
|
|
19
21
|
|
|
20
22
|
declare const base: {
|
|
21
23
|
id: drizzle_orm.IsPrimaryKey<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"id", [string, ...string[]], number | undefined>>>;
|
|
@@ -33,7 +35,7 @@ declare const bankAccount: {
|
|
|
33
35
|
swiftBic: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"swift_bic", [string, ...string[]], number | undefined>;
|
|
34
36
|
bicCor: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"bic_cor", [string, ...string[]], number | undefined>;
|
|
35
37
|
currency: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"currency", ["CZK" | "EUR" | "USD" | "PLN" | "RON" | "GBP" | "RUB" | "HUF" | "CHF" | "DKK" | "SEK" | "HRK" | "NOK" | "BGN" | "TRY" | "AUD" | "CAD" | "JPY" | "CNY" | "INR" | "BRL" | "MXN" | "ZAR" | "SGD" | "HKD" | "KRW" | "MYR" | "THB" | "IDR" | "PHP" | "AED" | "SAR" | "ILS" | "EGP" | "NGN" | "PKR" | "COP" | "CLP" | "PEN" | "VND" | "KZT" | "UAH" | "BTC" | "ETH" | "ADA" | "DOT" | "ATOM" | "XRP" | "LTC" | "SOL" | "DOGE" | "MATIC" | "AVAX", ...("CZK" | "EUR" | "USD" | "PLN" | "RON" | "GBP" | "RUB" | "HUF" | "CHF" | "DKK" | "SEK" | "HRK" | "NOK" | "BGN" | "TRY" | "AUD" | "CAD" | "JPY" | "CNY" | "INR" | "BRL" | "MXN" | "ZAR" | "SGD" | "HKD" | "KRW" | "MYR" | "THB" | "IDR" | "PHP" | "AED" | "SAR" | "ILS" | "EGP" | "NGN" | "PKR" | "COP" | "CLP" | "PEN" | "VND" | "KZT" | "UAH" | "BTC" | "ETH" | "ADA" | "DOT" | "ATOM" | "XRP" | "LTC" | "SOL" | "DOGE" | "MATIC" | "AVAX")[]], number | undefined>>;
|
|
36
|
-
countryCode: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"country_code", ["
|
|
38
|
+
countryCode: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"country_code", ["AF" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BO" | "BQ" | "BA" | "BW" | "BR" | "IO" | "VG" | "BG" | "BF" | "BI" | "KH" | "CM" | "CA" | "CV" | "CF" | "TD" | "CL" | "CN" | "CO" | "KM" | "CK" | "CR" | "HR" | "CW" | "CY" | "CZ" | "CD" | "DK" | "DJ" | "DM" | "DO" | "TL" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "ET" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GR" | "GD" | "GP" | "GU" | "GT" | "GN" | "GW" | "GY" | "HT" | "HN" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "CI" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "XK" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LI" | "LT" | "LU" | "MK" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MQ" | "MR" | "MU" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "NA" | "NP" | "NL" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "NO" | "OM" | "PK" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PL" | "PT" | "PR" | "QA" | "CG" | "RE" | "RO" | "RU" | "RW" | "BL" | "KN" | "LC" | "MF" | "VC" | "WS" | "SM" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SO" | "ZA" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SZ" | "SE" | "CH" | "TW" | "TJ" | "TZ" | "TH" | "TG" | "TO" | "TT" | "TN" | "TR" | "TM" | "UM" | "VI" | "UG" | "UA" | "AE" | "GB" | "UZ" | "VU" | "VE" | "VN" | "WF" | "EH" | "YE" | "ZM" | "ZW", ...("AF" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BO" | "BQ" | "BA" | "BW" | "BR" | "IO" | "VG" | "BG" | "BF" | "BI" | "KH" | "CM" | "CA" | "CV" | "CF" | "TD" | "CL" | "CN" | "CO" | "KM" | "CK" | "CR" | "HR" | "CW" | "CY" | "CZ" | "CD" | "DK" | "DJ" | "DM" | "DO" | "TL" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "ET" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GR" | "GD" | "GP" | "GU" | "GT" | "GN" | "GW" | "GY" | "HT" | "HN" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "CI" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "XK" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LI" | "LT" | "LU" | "MK" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MQ" | "MR" | "MU" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "NA" | "NP" | "NL" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "NO" | "OM" | "PK" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PL" | "PT" | "PR" | "QA" | "CG" | "RE" | "RO" | "RU" | "RW" | "BL" | "KN" | "LC" | "MF" | "VC" | "WS" | "SM" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SO" | "ZA" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SZ" | "SE" | "CH" | "TW" | "TJ" | "TZ" | "TH" | "TG" | "TO" | "TT" | "TN" | "TR" | "TM" | "UM" | "VI" | "UG" | "UA" | "AE" | "GB" | "UZ" | "VU" | "VE" | "VN" | "WF" | "EH" | "YE" | "ZM" | "ZW")[]], number | undefined>>;
|
|
37
39
|
routingNumber: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"routing_number", [string, ...string[]], number | undefined>;
|
|
38
40
|
sortCode: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"sort_code", [string, ...string[]], number | undefined>;
|
|
39
41
|
clabe: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"clabe", [string, ...string[]], number | undefined>;
|
|
@@ -77,8 +79,6 @@ declare const logger: () => MiddlewareHandler;
|
|
|
77
79
|
|
|
78
80
|
declare const signature: <TOrganizationService, TJwtPayload>() => MiddlewareHandler;
|
|
79
81
|
|
|
80
|
-
declare const ENVIRONMENT: string[];
|
|
81
|
-
|
|
82
82
|
interface AuditLogPayload<T> {
|
|
83
83
|
action: T;
|
|
84
84
|
actorId: string;
|
|
@@ -208,7 +208,6 @@ declare const bankAccountMetadataSchema: z$1.ZodObject<{
|
|
|
208
208
|
AVAX: "AVAX";
|
|
209
209
|
}>>;
|
|
210
210
|
country: z$1.ZodOptional<z$1.ZodEnum<{
|
|
211
|
-
EC: "EC";
|
|
212
211
|
AF: "AF";
|
|
213
212
|
AL: "AL";
|
|
214
213
|
DZ: "DZ";
|
|
@@ -262,6 +261,7 @@ declare const bankAccountMetadataSchema: z$1.ZodObject<{
|
|
|
262
261
|
DM: "DM";
|
|
263
262
|
DO: "DO";
|
|
264
263
|
TL: "TL";
|
|
264
|
+
EC: "EC";
|
|
265
265
|
EG: "EG";
|
|
266
266
|
SV: "SV";
|
|
267
267
|
GQ: "GQ";
|
|
@@ -478,18 +478,17 @@ declare const paginationSchema: z.$ZodObject<Readonly<Readonly<{
|
|
|
478
478
|
[k: string]: z.$ZodType<unknown, unknown, z.$ZodTypeInternals<unknown, unknown>>;
|
|
479
479
|
}>>, z.$ZodObjectConfig>;
|
|
480
480
|
|
|
481
|
-
type InternalErrorResponseStatus = Exclude<
|
|
481
|
+
type InternalErrorResponseStatus = Exclude<ContentfulStatusCode, SuccessStatusCode>;
|
|
482
482
|
interface InternalError {
|
|
483
483
|
status: InternalErrorResponseStatus;
|
|
484
484
|
code: string;
|
|
485
485
|
message: string;
|
|
486
486
|
}
|
|
487
487
|
interface IRPCResponse<T> {
|
|
488
|
-
status:
|
|
488
|
+
status: ContentfulStatusCode;
|
|
489
489
|
message: string;
|
|
490
490
|
data: T | null | undefined;
|
|
491
491
|
error: boolean;
|
|
492
|
-
phrase?: ReasonPhrases;
|
|
493
492
|
}
|
|
494
493
|
interface GatewayResponse<T> {
|
|
495
494
|
status?: number;
|
|
@@ -679,6 +678,16 @@ declare const getDrizzleD1Config: () => {
|
|
|
679
678
|
dialect: "sqlite";
|
|
680
679
|
};
|
|
681
680
|
|
|
681
|
+
type Operator = 'like' | 'ilike';
|
|
682
|
+
type Wrap = 'both' | 'prefix' | 'suffix' | 'none';
|
|
683
|
+
type BuildSearchOptions = {
|
|
684
|
+
operator?: Operator;
|
|
685
|
+
wrap?: Wrap;
|
|
686
|
+
};
|
|
687
|
+
declare const buildSearchConditions: (search: string | undefined | null, columns: ReadonlyArray<AnyColumn>, opts?: BuildSearchOptions) => drizzle_orm.SQL<unknown> | undefined;
|
|
688
|
+
declare const buildMultiFilterConditions: <T>(column: drizzle_orm.Column, value: T | T[] | undefined) => drizzle_orm.SQL<unknown> | undefined;
|
|
689
|
+
declare const buildRangeFilterConditions: <T>(column: drizzle_orm.Column, minValue: T | undefined, maxValue: T | undefined) => drizzle_orm.SQL<unknown> | undefined;
|
|
690
|
+
|
|
682
691
|
interface Command<TAuditAction = string> {
|
|
683
692
|
handler: (db: DrizzleD1Database<Record<string, unknown>>) => CommandItem<TAuditAction>;
|
|
684
693
|
}
|
|
@@ -721,6 +730,10 @@ interface UseFetchOptions extends RequestInit {
|
|
|
721
730
|
}
|
|
722
731
|
declare function useFetch<T = unknown>(url: string, { parseAs, ...options }?: UseFetchOptions): Promise<Result<T>>;
|
|
723
732
|
|
|
733
|
+
declare const createSignatureKeyPair: () => Promise<{
|
|
734
|
+
publicKey: string;
|
|
735
|
+
privateKey: string;
|
|
736
|
+
}>;
|
|
724
737
|
declare const signPayload: ({ payload, privateKey, }: {
|
|
725
738
|
payload: string;
|
|
726
739
|
privateKey: string;
|
|
@@ -748,7 +761,7 @@ declare const RPCResponse: {
|
|
|
748
761
|
*/
|
|
749
762
|
ok<T>(message: string, detail?: {
|
|
750
763
|
data?: T;
|
|
751
|
-
status?:
|
|
764
|
+
status?: ContentfulStatusCode;
|
|
752
765
|
}): IRPCResponse<T>;
|
|
753
766
|
/**
|
|
754
767
|
* ❌ Constructs a generic service error response.
|
|
@@ -821,5 +834,5 @@ interface WithRetryCounterOptions {
|
|
|
821
834
|
type AsyncMethod<TArgs extends unknown[] = unknown[], TResult = unknown> = (...args: TArgs) => Promise<TResult>;
|
|
822
835
|
declare function cloudflareQueue<TArgs extends unknown[] = unknown[], TResult = unknown>(options: WithRetryCounterOptions): (target: unknown, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<AsyncMethod<TArgs, TResult>>) => void;
|
|
823
836
|
|
|
824
|
-
export { DatabaseTransaction, ENVIRONMENT, RPCResponse, USER_ROLES, action, bankAccount, bankAccountMetadataSchema, base, bicSchema, calculateExponentialBackoff, cloudflareQueue, composeWranglerBase, createAuditLogWriter, createInternalError, defineCommand, derivePortFromId, develitWorker, durableObjectNamespaceIdFromName, first, firstOrError, getD1Credentials, getD1DatabaseIdFromWrangler, getDrizzleD1Config, getSecret, handleAction, handleActionResponse, ibanSchema, idempotency, ip, isInternalError, jwt, logger, paginationQuerySchema, paginationSchema, service, signPayload, signature, useFetch, useResult, useResultSync, uuidv4, verifyPayloadSignature };
|
|
825
|
-
export type { ActionExecution, ActionHandlerOptions, AuditLogWriter, AuthUser, BankAccountMetadata, BaseEvent, Command, CommandLogPayload, DevelitWorkerMethods, Environment, GatewayResponse, IRPCResponse, IdempotencyVariables, IncludeRelation, InferResultType, InternalError, InternalErrorResponseStatus, Project, UserRole, UserVariables, ValidatedInput };
|
|
837
|
+
export { DatabaseTransaction, ENVIRONMENT, RPCResponse, USER_ROLES, action, bankAccount, bankAccountMetadataSchema, base, bicSchema, buildMultiFilterConditions, buildRangeFilterConditions, buildSearchConditions, calculateExponentialBackoff, cloudflareQueue, composeWranglerBase, createAuditLogWriter, createInternalError, createSignatureKeyPair, defineCommand, derivePortFromId, develitWorker, durableObjectNamespaceIdFromName, first, firstOrError, getD1Credentials, getD1DatabaseIdFromWrangler, getDrizzleD1Config, getSecret, handleAction, handleActionResponse, ibanSchema, idempotency, ip, isInternalError, jwt, logger, paginationQuerySchema, paginationSchema, service, signPayload, signature, useFetch, useResult, useResultSync, uuidv4, verifyPayloadSignature };
|
|
838
|
+
export type { ActionExecution, ActionHandlerOptions, AuditLogWriter, AuthUser, BankAccountMetadata, BaseEvent, BuildSearchOptions, Command, CommandLogPayload, DevelitWorkerMethods, Environment, GatewayResponse, IRPCResponse, IdempotencyVariables, IncludeRelation, InferResultType, InternalError, InternalErrorResponseStatus, Project, UserRole, UserVariables, ValidatedInput };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import * as drizzle_orm from 'drizzle-orm';
|
|
2
|
-
import { ExtractTablesWithRelations, DBQueryConfig, BuildQueryResult } from 'drizzle-orm';
|
|
2
|
+
import { ExtractTablesWithRelations, DBQueryConfig, BuildQueryResult, AnyColumn } from 'drizzle-orm';
|
|
3
3
|
import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
|
|
4
4
|
import { AnySQLiteTable } from 'drizzle-orm/sqlite-core';
|
|
5
5
|
import { MiddlewareHandler } from 'hono/types';
|
|
6
6
|
import { z as z$1 } from 'zod';
|
|
7
7
|
import * as z from 'zod/v4/core';
|
|
8
|
-
import {
|
|
9
|
-
export {
|
|
8
|
+
import { ContentfulStatusCode, SuccessStatusCode } from 'hono/utils/http-status';
|
|
9
|
+
export { ContentfulStatusCode as InternalResponseStatus } from 'hono/utils/http-status';
|
|
10
10
|
import { Queue } from '@cloudflare/workers-types';
|
|
11
11
|
import { BatchItem } from 'drizzle-orm/batch';
|
|
12
12
|
import { DrizzleD1Database } from 'drizzle-orm/d1';
|
|
13
13
|
|
|
14
|
-
declare const
|
|
14
|
+
declare const ENVIRONMENT: string[];
|
|
15
15
|
|
|
16
16
|
type Environment = string | 'localhost' | 'dev' | 'test' | 'staging' | 'production';
|
|
17
17
|
|
|
18
|
-
type Project = 'creditio' | 'dbu-mdm' | 'dbu-txs' | 'lrf-website' | 'moneio' | 'paycorp-fiat-processor';
|
|
18
|
+
type Project = 'creditio' | 'dbu-mdm' | 'dbu-txs' | 'cryptobyte-website' | 'lrf-website' | 'moneio' | 'paycorp-fiat-processor';
|
|
19
|
+
|
|
20
|
+
declare const uuidv4: () => `${string}-${string}-${string}-${string}-${string}`;
|
|
19
21
|
|
|
20
22
|
declare const base: {
|
|
21
23
|
id: drizzle_orm.IsPrimaryKey<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"id", [string, ...string[]], number | undefined>>>;
|
|
@@ -33,7 +35,7 @@ declare const bankAccount: {
|
|
|
33
35
|
swiftBic: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"swift_bic", [string, ...string[]], number | undefined>;
|
|
34
36
|
bicCor: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"bic_cor", [string, ...string[]], number | undefined>;
|
|
35
37
|
currency: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"currency", ["CZK" | "EUR" | "USD" | "PLN" | "RON" | "GBP" | "RUB" | "HUF" | "CHF" | "DKK" | "SEK" | "HRK" | "NOK" | "BGN" | "TRY" | "AUD" | "CAD" | "JPY" | "CNY" | "INR" | "BRL" | "MXN" | "ZAR" | "SGD" | "HKD" | "KRW" | "MYR" | "THB" | "IDR" | "PHP" | "AED" | "SAR" | "ILS" | "EGP" | "NGN" | "PKR" | "COP" | "CLP" | "PEN" | "VND" | "KZT" | "UAH" | "BTC" | "ETH" | "ADA" | "DOT" | "ATOM" | "XRP" | "LTC" | "SOL" | "DOGE" | "MATIC" | "AVAX", ...("CZK" | "EUR" | "USD" | "PLN" | "RON" | "GBP" | "RUB" | "HUF" | "CHF" | "DKK" | "SEK" | "HRK" | "NOK" | "BGN" | "TRY" | "AUD" | "CAD" | "JPY" | "CNY" | "INR" | "BRL" | "MXN" | "ZAR" | "SGD" | "HKD" | "KRW" | "MYR" | "THB" | "IDR" | "PHP" | "AED" | "SAR" | "ILS" | "EGP" | "NGN" | "PKR" | "COP" | "CLP" | "PEN" | "VND" | "KZT" | "UAH" | "BTC" | "ETH" | "ADA" | "DOT" | "ATOM" | "XRP" | "LTC" | "SOL" | "DOGE" | "MATIC" | "AVAX")[]], number | undefined>>;
|
|
36
|
-
countryCode: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"country_code", ["
|
|
38
|
+
countryCode: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"country_code", ["AF" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BO" | "BQ" | "BA" | "BW" | "BR" | "IO" | "VG" | "BG" | "BF" | "BI" | "KH" | "CM" | "CA" | "CV" | "CF" | "TD" | "CL" | "CN" | "CO" | "KM" | "CK" | "CR" | "HR" | "CW" | "CY" | "CZ" | "CD" | "DK" | "DJ" | "DM" | "DO" | "TL" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "ET" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GR" | "GD" | "GP" | "GU" | "GT" | "GN" | "GW" | "GY" | "HT" | "HN" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "CI" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "XK" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LI" | "LT" | "LU" | "MK" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MQ" | "MR" | "MU" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "NA" | "NP" | "NL" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "NO" | "OM" | "PK" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PL" | "PT" | "PR" | "QA" | "CG" | "RE" | "RO" | "RU" | "RW" | "BL" | "KN" | "LC" | "MF" | "VC" | "WS" | "SM" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SO" | "ZA" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SZ" | "SE" | "CH" | "TW" | "TJ" | "TZ" | "TH" | "TG" | "TO" | "TT" | "TN" | "TR" | "TM" | "UM" | "VI" | "UG" | "UA" | "AE" | "GB" | "UZ" | "VU" | "VE" | "VN" | "WF" | "EH" | "YE" | "ZM" | "ZW", ...("AF" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BO" | "BQ" | "BA" | "BW" | "BR" | "IO" | "VG" | "BG" | "BF" | "BI" | "KH" | "CM" | "CA" | "CV" | "CF" | "TD" | "CL" | "CN" | "CO" | "KM" | "CK" | "CR" | "HR" | "CW" | "CY" | "CZ" | "CD" | "DK" | "DJ" | "DM" | "DO" | "TL" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "ET" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GR" | "GD" | "GP" | "GU" | "GT" | "GN" | "GW" | "GY" | "HT" | "HN" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "CI" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "XK" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LI" | "LT" | "LU" | "MK" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MQ" | "MR" | "MU" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "NA" | "NP" | "NL" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "NO" | "OM" | "PK" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PL" | "PT" | "PR" | "QA" | "CG" | "RE" | "RO" | "RU" | "RW" | "BL" | "KN" | "LC" | "MF" | "VC" | "WS" | "SM" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SO" | "ZA" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SZ" | "SE" | "CH" | "TW" | "TJ" | "TZ" | "TH" | "TG" | "TO" | "TT" | "TN" | "TR" | "TM" | "UM" | "VI" | "UG" | "UA" | "AE" | "GB" | "UZ" | "VU" | "VE" | "VN" | "WF" | "EH" | "YE" | "ZM" | "ZW")[]], number | undefined>>;
|
|
37
39
|
routingNumber: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"routing_number", [string, ...string[]], number | undefined>;
|
|
38
40
|
sortCode: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"sort_code", [string, ...string[]], number | undefined>;
|
|
39
41
|
clabe: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"clabe", [string, ...string[]], number | undefined>;
|
|
@@ -77,8 +79,6 @@ declare const logger: () => MiddlewareHandler;
|
|
|
77
79
|
|
|
78
80
|
declare const signature: <TOrganizationService, TJwtPayload>() => MiddlewareHandler;
|
|
79
81
|
|
|
80
|
-
declare const ENVIRONMENT: string[];
|
|
81
|
-
|
|
82
82
|
interface AuditLogPayload<T> {
|
|
83
83
|
action: T;
|
|
84
84
|
actorId: string;
|
|
@@ -208,7 +208,6 @@ declare const bankAccountMetadataSchema: z$1.ZodObject<{
|
|
|
208
208
|
AVAX: "AVAX";
|
|
209
209
|
}>>;
|
|
210
210
|
country: z$1.ZodOptional<z$1.ZodEnum<{
|
|
211
|
-
EC: "EC";
|
|
212
211
|
AF: "AF";
|
|
213
212
|
AL: "AL";
|
|
214
213
|
DZ: "DZ";
|
|
@@ -262,6 +261,7 @@ declare const bankAccountMetadataSchema: z$1.ZodObject<{
|
|
|
262
261
|
DM: "DM";
|
|
263
262
|
DO: "DO";
|
|
264
263
|
TL: "TL";
|
|
264
|
+
EC: "EC";
|
|
265
265
|
EG: "EG";
|
|
266
266
|
SV: "SV";
|
|
267
267
|
GQ: "GQ";
|
|
@@ -478,18 +478,17 @@ declare const paginationSchema: z.$ZodObject<Readonly<Readonly<{
|
|
|
478
478
|
[k: string]: z.$ZodType<unknown, unknown, z.$ZodTypeInternals<unknown, unknown>>;
|
|
479
479
|
}>>, z.$ZodObjectConfig>;
|
|
480
480
|
|
|
481
|
-
type InternalErrorResponseStatus = Exclude<
|
|
481
|
+
type InternalErrorResponseStatus = Exclude<ContentfulStatusCode, SuccessStatusCode>;
|
|
482
482
|
interface InternalError {
|
|
483
483
|
status: InternalErrorResponseStatus;
|
|
484
484
|
code: string;
|
|
485
485
|
message: string;
|
|
486
486
|
}
|
|
487
487
|
interface IRPCResponse<T> {
|
|
488
|
-
status:
|
|
488
|
+
status: ContentfulStatusCode;
|
|
489
489
|
message: string;
|
|
490
490
|
data: T | null | undefined;
|
|
491
491
|
error: boolean;
|
|
492
|
-
phrase?: ReasonPhrases;
|
|
493
492
|
}
|
|
494
493
|
interface GatewayResponse<T> {
|
|
495
494
|
status?: number;
|
|
@@ -679,6 +678,16 @@ declare const getDrizzleD1Config: () => {
|
|
|
679
678
|
dialect: "sqlite";
|
|
680
679
|
};
|
|
681
680
|
|
|
681
|
+
type Operator = 'like' | 'ilike';
|
|
682
|
+
type Wrap = 'both' | 'prefix' | 'suffix' | 'none';
|
|
683
|
+
type BuildSearchOptions = {
|
|
684
|
+
operator?: Operator;
|
|
685
|
+
wrap?: Wrap;
|
|
686
|
+
};
|
|
687
|
+
declare const buildSearchConditions: (search: string | undefined | null, columns: ReadonlyArray<AnyColumn>, opts?: BuildSearchOptions) => drizzle_orm.SQL<unknown> | undefined;
|
|
688
|
+
declare const buildMultiFilterConditions: <T>(column: drizzle_orm.Column, value: T | T[] | undefined) => drizzle_orm.SQL<unknown> | undefined;
|
|
689
|
+
declare const buildRangeFilterConditions: <T>(column: drizzle_orm.Column, minValue: T | undefined, maxValue: T | undefined) => drizzle_orm.SQL<unknown> | undefined;
|
|
690
|
+
|
|
682
691
|
interface Command<TAuditAction = string> {
|
|
683
692
|
handler: (db: DrizzleD1Database<Record<string, unknown>>) => CommandItem<TAuditAction>;
|
|
684
693
|
}
|
|
@@ -721,6 +730,10 @@ interface UseFetchOptions extends RequestInit {
|
|
|
721
730
|
}
|
|
722
731
|
declare function useFetch<T = unknown>(url: string, { parseAs, ...options }?: UseFetchOptions): Promise<Result<T>>;
|
|
723
732
|
|
|
733
|
+
declare const createSignatureKeyPair: () => Promise<{
|
|
734
|
+
publicKey: string;
|
|
735
|
+
privateKey: string;
|
|
736
|
+
}>;
|
|
724
737
|
declare const signPayload: ({ payload, privateKey, }: {
|
|
725
738
|
payload: string;
|
|
726
739
|
privateKey: string;
|
|
@@ -748,7 +761,7 @@ declare const RPCResponse: {
|
|
|
748
761
|
*/
|
|
749
762
|
ok<T>(message: string, detail?: {
|
|
750
763
|
data?: T;
|
|
751
|
-
status?:
|
|
764
|
+
status?: ContentfulStatusCode;
|
|
752
765
|
}): IRPCResponse<T>;
|
|
753
766
|
/**
|
|
754
767
|
* ❌ Constructs a generic service error response.
|
|
@@ -821,5 +834,5 @@ interface WithRetryCounterOptions {
|
|
|
821
834
|
type AsyncMethod<TArgs extends unknown[] = unknown[], TResult = unknown> = (...args: TArgs) => Promise<TResult>;
|
|
822
835
|
declare function cloudflareQueue<TArgs extends unknown[] = unknown[], TResult = unknown>(options: WithRetryCounterOptions): (target: unknown, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<AsyncMethod<TArgs, TResult>>) => void;
|
|
823
836
|
|
|
824
|
-
export { DatabaseTransaction, ENVIRONMENT, RPCResponse, USER_ROLES, action, bankAccount, bankAccountMetadataSchema, base, bicSchema, calculateExponentialBackoff, cloudflareQueue, composeWranglerBase, createAuditLogWriter, createInternalError, defineCommand, derivePortFromId, develitWorker, durableObjectNamespaceIdFromName, first, firstOrError, getD1Credentials, getD1DatabaseIdFromWrangler, getDrizzleD1Config, getSecret, handleAction, handleActionResponse, ibanSchema, idempotency, ip, isInternalError, jwt, logger, paginationQuerySchema, paginationSchema, service, signPayload, signature, useFetch, useResult, useResultSync, uuidv4, verifyPayloadSignature };
|
|
825
|
-
export type { ActionExecution, ActionHandlerOptions, AuditLogWriter, AuthUser, BankAccountMetadata, BaseEvent, Command, CommandLogPayload, DevelitWorkerMethods, Environment, GatewayResponse, IRPCResponse, IdempotencyVariables, IncludeRelation, InferResultType, InternalError, InternalErrorResponseStatus, Project, UserRole, UserVariables, ValidatedInput };
|
|
837
|
+
export { DatabaseTransaction, ENVIRONMENT, RPCResponse, USER_ROLES, action, bankAccount, bankAccountMetadataSchema, base, bicSchema, buildMultiFilterConditions, buildRangeFilterConditions, buildSearchConditions, calculateExponentialBackoff, cloudflareQueue, composeWranglerBase, createAuditLogWriter, createInternalError, createSignatureKeyPair, defineCommand, derivePortFromId, develitWorker, durableObjectNamespaceIdFromName, first, firstOrError, getD1Credentials, getD1DatabaseIdFromWrangler, getDrizzleD1Config, getSecret, handleAction, handleActionResponse, ibanSchema, idempotency, ip, isInternalError, jwt, logger, paginationQuerySchema, paginationSchema, service, signPayload, signature, useFetch, useResult, useResultSync, uuidv4, verifyPayloadSignature };
|
|
838
|
+
export type { ActionExecution, ActionHandlerOptions, AuditLogWriter, AuthUser, BankAccountMetadata, BaseEvent, BuildSearchOptions, Command, CommandLogPayload, DevelitWorkerMethods, Environment, GatewayResponse, IRPCResponse, IdempotencyVariables, IncludeRelation, InferResultType, InternalError, InternalErrorResponseStatus, Project, UserRole, UserVariables, ValidatedInput };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { sql } from 'drizzle-orm';
|
|
1
|
+
import { sql, or, inArray, eq, gte, lte, and } from 'drizzle-orm';
|
|
2
2
|
import { integer, text } from 'drizzle-orm/sqlite-core';
|
|
3
3
|
import { COUNTRY_CODES_2, CURRENCY_CODES, BANK_CODES } from '@develit-io/general-codes';
|
|
4
4
|
import { createMiddleware } from 'hono/factory';
|
|
@@ -7,13 +7,17 @@ import { createError } from 'h3';
|
|
|
7
7
|
import { z as z$1 } from 'zod';
|
|
8
8
|
import 'cloudflare';
|
|
9
9
|
import fs from 'node:fs';
|
|
10
|
-
import crypto$1 from 'node:crypto';
|
|
10
|
+
import crypto$1, { subtle } from 'node:crypto';
|
|
11
11
|
import path from 'node:path';
|
|
12
12
|
import { parse } from 'comment-json';
|
|
13
13
|
import * as z from 'zod/v4/core';
|
|
14
|
-
import 'http-status-codes';
|
|
15
14
|
import superjson from 'superjson';
|
|
16
15
|
|
|
16
|
+
const ENVIRONMENT = ["dev", "test", "staging", "production"];
|
|
17
|
+
|
|
18
|
+
const COMPATIBILITY_DATE = "2025-06-04";
|
|
19
|
+
const COMPATIBILITY_FLAGS = ["nodejs_compat"];
|
|
20
|
+
|
|
17
21
|
const uuidv4 = () => crypto.randomUUID();
|
|
18
22
|
|
|
19
23
|
const base = {
|
|
@@ -49,11 +53,6 @@ const bankAccount = {
|
|
|
49
53
|
|
|
50
54
|
const USER_ROLES = ["OWNER", "ADMIN", "MEMBER"];
|
|
51
55
|
|
|
52
|
-
const ENVIRONMENT = ["dev", "test", "staging", "production"];
|
|
53
|
-
|
|
54
|
-
const COMPATIBILITY_DATE = "2025-06-04";
|
|
55
|
-
const COMPATIBILITY_FLAGS = ["nodejs_compat"];
|
|
56
|
-
|
|
57
56
|
const composeWranglerBase = ({
|
|
58
57
|
project,
|
|
59
58
|
name
|
|
@@ -134,6 +133,12 @@ const createInternalError = (error, details) => {
|
|
|
134
133
|
const isInternalError = (error) => {
|
|
135
134
|
return typeof error === "object" && error !== null && "message" in error && "code" in error;
|
|
136
135
|
};
|
|
136
|
+
const toErrorStatus = (status) => {
|
|
137
|
+
if (status >= 400 && status < 600) {
|
|
138
|
+
return status;
|
|
139
|
+
}
|
|
140
|
+
return 500;
|
|
141
|
+
};
|
|
137
142
|
|
|
138
143
|
const RPCResponse = {
|
|
139
144
|
/**
|
|
@@ -381,6 +386,34 @@ const getDrizzleD1Config = () => ({
|
|
|
381
386
|
...getD1Credentials()
|
|
382
387
|
});
|
|
383
388
|
|
|
389
|
+
const buildSearchConditions = (search, columns, opts = {}) => {
|
|
390
|
+
const { wrap = "both" } = opts;
|
|
391
|
+
if (!search || search.trim() === "" || columns.length === 0) return void 0;
|
|
392
|
+
const searchTerm = search.toLowerCase();
|
|
393
|
+
const pattern = wrap === "both" ? `%${searchTerm}%` : wrap === "prefix" ? `%${searchTerm}` : wrap === "suffix" ? `${searchTerm}%` : searchTerm;
|
|
394
|
+
const parts = columns.map((col) => sql`LOWER(${col} || '') LIKE ${pattern}`);
|
|
395
|
+
return parts.length === 1 ? parts[0] : or(...parts);
|
|
396
|
+
};
|
|
397
|
+
const buildMultiFilterConditions = (column, value) => {
|
|
398
|
+
if (value === void 0) return void 0;
|
|
399
|
+
if (Array.isArray(value)) {
|
|
400
|
+
return value.length > 0 ? inArray(column, value) : void 0;
|
|
401
|
+
}
|
|
402
|
+
return eq(column, value);
|
|
403
|
+
};
|
|
404
|
+
const buildRangeFilterConditions = (column, minValue, maxValue) => {
|
|
405
|
+
const conditions = [];
|
|
406
|
+
if (minValue !== void 0) {
|
|
407
|
+
conditions.push(gte(column, minValue));
|
|
408
|
+
}
|
|
409
|
+
if (maxValue !== void 0) {
|
|
410
|
+
conditions.push(lte(column, maxValue));
|
|
411
|
+
}
|
|
412
|
+
if (conditions.length === 0) return void 0;
|
|
413
|
+
if (conditions.length === 1) return conditions[0];
|
|
414
|
+
return and(...conditions);
|
|
415
|
+
};
|
|
416
|
+
|
|
384
417
|
class DatabaseTransaction {
|
|
385
418
|
constructor(db, serviceName, auditLogWriter) {
|
|
386
419
|
this.db = db;
|
|
@@ -460,7 +493,7 @@ async function useFetch(url, { parseAs = "json", ...options } = {}) {
|
|
|
460
493
|
createInternalError(parseError, {
|
|
461
494
|
message: body?.message ?? response.statusText,
|
|
462
495
|
code: "HTTP_ERROR",
|
|
463
|
-
status: response.status
|
|
496
|
+
status: toErrorStatus(response.status)
|
|
464
497
|
})
|
|
465
498
|
];
|
|
466
499
|
}
|
|
@@ -469,7 +502,7 @@ async function useFetch(url, { parseAs = "json", ...options } = {}) {
|
|
|
469
502
|
null,
|
|
470
503
|
createInternalError(parseError, {
|
|
471
504
|
code: "PARSE_ERROR",
|
|
472
|
-
status: response.status
|
|
505
|
+
status: toErrorStatus(response.status)
|
|
473
506
|
})
|
|
474
507
|
];
|
|
475
508
|
}
|
|
@@ -483,6 +516,24 @@ const logResponse = (log) => {
|
|
|
483
516
|
console.log(`RESPONSE | An outgoing response has been recorded.`, log);
|
|
484
517
|
};
|
|
485
518
|
|
|
519
|
+
const createSignatureKeyPair = async () => {
|
|
520
|
+
const { publicKey, privateKey } = await subtle.generateKey(
|
|
521
|
+
{
|
|
522
|
+
name: "RSASSA-PKCS1-v1_5",
|
|
523
|
+
modulusLength: 4096,
|
|
524
|
+
publicExponent: new Uint8Array([1, 0, 1]),
|
|
525
|
+
hash: "SHA-256"
|
|
526
|
+
},
|
|
527
|
+
true,
|
|
528
|
+
["sign", "verify"]
|
|
529
|
+
);
|
|
530
|
+
const exportedPublicKey = await subtle.exportKey("spki", publicKey);
|
|
531
|
+
const exportedPrivateKey = await subtle.exportKey("pkcs8", privateKey);
|
|
532
|
+
return {
|
|
533
|
+
publicKey: Buffer.from(exportedPublicKey).toString("base64"),
|
|
534
|
+
privateKey: Buffer.from(exportedPrivateKey).toString("base64")
|
|
535
|
+
};
|
|
536
|
+
};
|
|
486
537
|
const signPayload = async ({
|
|
487
538
|
payload,
|
|
488
539
|
privateKey
|
|
@@ -939,7 +990,7 @@ function develitWorker(Worker) {
|
|
|
939
990
|
const parseResult = z.safeParse(schema, input);
|
|
940
991
|
if (!parseResult.success) {
|
|
941
992
|
const parseError = {
|
|
942
|
-
status: 400,
|
|
993
|
+
status: toErrorStatus(400),
|
|
943
994
|
code: "INVALID_ACTION_INPUT",
|
|
944
995
|
message: z.prettifyError(parseResult.error)
|
|
945
996
|
};
|
|
@@ -1001,4 +1052,4 @@ function develitWorker(Worker) {
|
|
|
1001
1052
|
return DevelitWorker;
|
|
1002
1053
|
}
|
|
1003
1054
|
|
|
1004
|
-
export { DatabaseTransaction, ENVIRONMENT, RPCResponse, USER_ROLES, action, bankAccount, bankAccountMetadataSchema, base, bicSchema, calculateExponentialBackoff, cloudflareQueue, composeWranglerBase, createAuditLogWriter, createInternalError, defineCommand, derivePortFromId, develitWorker, durableObjectNamespaceIdFromName, first, firstOrError, getD1Credentials, getD1DatabaseIdFromWrangler, getDrizzleD1Config, getSecret, handleAction, handleActionResponse, ibanSchema, idempotency, ip, isInternalError, jwt, logger, paginationQuerySchema, paginationSchema, service, signPayload, signature, useFetch, useResult, useResultSync, uuidv4, verifyPayloadSignature };
|
|
1055
|
+
export { DatabaseTransaction, ENVIRONMENT, RPCResponse, USER_ROLES, action, bankAccount, bankAccountMetadataSchema, base, bicSchema, buildMultiFilterConditions, buildRangeFilterConditions, buildSearchConditions, calculateExponentialBackoff, cloudflareQueue, composeWranglerBase, createAuditLogWriter, createInternalError, createSignatureKeyPair, defineCommand, derivePortFromId, develitWorker, durableObjectNamespaceIdFromName, first, firstOrError, getD1Credentials, getD1DatabaseIdFromWrangler, getDrizzleD1Config, getSecret, handleAction, handleActionResponse, ibanSchema, idempotency, ip, isInternalError, jwt, logger, paginationQuerySchema, paginationSchema, service, signPayload, signature, useFetch, useResult, useResultSync, uuidv4, verifyPayloadSignature };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@develit-io/backend-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"description": "Develit Backend SDK",
|
|
5
5
|
"author": "Develit.io",
|
|
6
6
|
"license": "ISC",
|
|
@@ -33,7 +33,6 @@
|
|
|
33
33
|
"drizzle-kit": "^0.31.6",
|
|
34
34
|
"drizzle-orm": "^0.44.7",
|
|
35
35
|
"h3": "^1.15.4",
|
|
36
|
-
"http-status-codes": "2.3.0",
|
|
37
36
|
"superjson": "^2.2.5"
|
|
38
37
|
},
|
|
39
38
|
"peerDependencies": {
|