mirror of
https://github.com/trailbaseio/trailbase
synced 2026-04-21 13:37:44 +00:00
2198 lines
69 KiB
TypeScript
2198 lines
69 KiB
TypeScript
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-ts_proto v2.7.0
|
|
// protoc v3.21.12
|
|
// source: config.proto
|
|
|
|
/* eslint-disable */
|
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
|
|
export const protobufPackage = "config";
|
|
|
|
export enum OAuthProviderId {
|
|
OAUTH_PROVIDER_ID_UNDEFINED = 0,
|
|
TEST = 1,
|
|
OIDC0 = 2,
|
|
DISCORD = 10,
|
|
GITLAB = 11,
|
|
GOOGLE = 12,
|
|
FACEBOOK = 13,
|
|
MICROSOFT = 14,
|
|
UNRECOGNIZED = -1,
|
|
}
|
|
|
|
export function oAuthProviderIdFromJSON(object: any): OAuthProviderId {
|
|
switch (object) {
|
|
case 0:
|
|
case "OAUTH_PROVIDER_ID_UNDEFINED":
|
|
return OAuthProviderId.OAUTH_PROVIDER_ID_UNDEFINED;
|
|
case 1:
|
|
case "TEST":
|
|
return OAuthProviderId.TEST;
|
|
case 2:
|
|
case "OIDC0":
|
|
return OAuthProviderId.OIDC0;
|
|
case 10:
|
|
case "DISCORD":
|
|
return OAuthProviderId.DISCORD;
|
|
case 11:
|
|
case "GITLAB":
|
|
return OAuthProviderId.GITLAB;
|
|
case 12:
|
|
case "GOOGLE":
|
|
return OAuthProviderId.GOOGLE;
|
|
case 13:
|
|
case "FACEBOOK":
|
|
return OAuthProviderId.FACEBOOK;
|
|
case 14:
|
|
case "MICROSOFT":
|
|
return OAuthProviderId.MICROSOFT;
|
|
case -1:
|
|
case "UNRECOGNIZED":
|
|
default:
|
|
return OAuthProviderId.UNRECOGNIZED;
|
|
}
|
|
}
|
|
|
|
export function oAuthProviderIdToJSON(object: OAuthProviderId): string {
|
|
switch (object) {
|
|
case OAuthProviderId.OAUTH_PROVIDER_ID_UNDEFINED:
|
|
return "OAUTH_PROVIDER_ID_UNDEFINED";
|
|
case OAuthProviderId.TEST:
|
|
return "TEST";
|
|
case OAuthProviderId.OIDC0:
|
|
return "OIDC0";
|
|
case OAuthProviderId.DISCORD:
|
|
return "DISCORD";
|
|
case OAuthProviderId.GITLAB:
|
|
return "GITLAB";
|
|
case OAuthProviderId.GOOGLE:
|
|
return "GOOGLE";
|
|
case OAuthProviderId.FACEBOOK:
|
|
return "FACEBOOK";
|
|
case OAuthProviderId.MICROSOFT:
|
|
return "MICROSOFT";
|
|
case OAuthProviderId.UNRECOGNIZED:
|
|
default:
|
|
return "UNRECOGNIZED";
|
|
}
|
|
}
|
|
|
|
export enum SystemJobId {
|
|
SYSTEM_JOB_ID_UNDEFINED = 0,
|
|
BACKUP = 1,
|
|
HEARTBEAT = 2,
|
|
LOG_CLEANER = 3,
|
|
AUTH_CLEANER = 4,
|
|
QUERY_OPTIMIZER = 5,
|
|
FILE_DELETIONS = 6,
|
|
UNRECOGNIZED = -1,
|
|
}
|
|
|
|
export function systemJobIdFromJSON(object: any): SystemJobId {
|
|
switch (object) {
|
|
case 0:
|
|
case "SYSTEM_JOB_ID_UNDEFINED":
|
|
return SystemJobId.SYSTEM_JOB_ID_UNDEFINED;
|
|
case 1:
|
|
case "BACKUP":
|
|
return SystemJobId.BACKUP;
|
|
case 2:
|
|
case "HEARTBEAT":
|
|
return SystemJobId.HEARTBEAT;
|
|
case 3:
|
|
case "LOG_CLEANER":
|
|
return SystemJobId.LOG_CLEANER;
|
|
case 4:
|
|
case "AUTH_CLEANER":
|
|
return SystemJobId.AUTH_CLEANER;
|
|
case 5:
|
|
case "QUERY_OPTIMIZER":
|
|
return SystemJobId.QUERY_OPTIMIZER;
|
|
case 6:
|
|
case "FILE_DELETIONS":
|
|
return SystemJobId.FILE_DELETIONS;
|
|
case -1:
|
|
case "UNRECOGNIZED":
|
|
default:
|
|
return SystemJobId.UNRECOGNIZED;
|
|
}
|
|
}
|
|
|
|
export function systemJobIdToJSON(object: SystemJobId): string {
|
|
switch (object) {
|
|
case SystemJobId.SYSTEM_JOB_ID_UNDEFINED:
|
|
return "SYSTEM_JOB_ID_UNDEFINED";
|
|
case SystemJobId.BACKUP:
|
|
return "BACKUP";
|
|
case SystemJobId.HEARTBEAT:
|
|
return "HEARTBEAT";
|
|
case SystemJobId.LOG_CLEANER:
|
|
return "LOG_CLEANER";
|
|
case SystemJobId.AUTH_CLEANER:
|
|
return "AUTH_CLEANER";
|
|
case SystemJobId.QUERY_OPTIMIZER:
|
|
return "QUERY_OPTIMIZER";
|
|
case SystemJobId.FILE_DELETIONS:
|
|
return "FILE_DELETIONS";
|
|
case SystemJobId.UNRECOGNIZED:
|
|
default:
|
|
return "UNRECOGNIZED";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* / Sqlite specific (as opposed to standard SQL) constrained-violation
|
|
* / resolution strategy upon insert.
|
|
*/
|
|
export enum ConflictResolutionStrategy {
|
|
CONFLICT_RESOLUTION_STRATEGY_UNDEFINED = 0,
|
|
/** ABORT - / SQL default: Keep transaction open and abort the current statement. */
|
|
ABORT = 1,
|
|
/** ROLLBACK - / Abort entire transaction. */
|
|
ROLLBACK = 2,
|
|
/**
|
|
* FAIL - / Similar to Abort but doesn't roll back the current statement, i.e. if the
|
|
* / current statement affects multiple rows, changes by that statement prior
|
|
* / to the failure are not rolled back.
|
|
*/
|
|
FAIL = 3,
|
|
/** IGNORE - / Skip the statement and continue. */
|
|
IGNORE = 4,
|
|
/**
|
|
* REPLACE - / Replaces the conflicting row in case of a collision (e.g. unique
|
|
* / constraint).
|
|
*/
|
|
REPLACE = 5,
|
|
UNRECOGNIZED = -1,
|
|
}
|
|
|
|
export function conflictResolutionStrategyFromJSON(object: any): ConflictResolutionStrategy {
|
|
switch (object) {
|
|
case 0:
|
|
case "CONFLICT_RESOLUTION_STRATEGY_UNDEFINED":
|
|
return ConflictResolutionStrategy.CONFLICT_RESOLUTION_STRATEGY_UNDEFINED;
|
|
case 1:
|
|
case "ABORT":
|
|
return ConflictResolutionStrategy.ABORT;
|
|
case 2:
|
|
case "ROLLBACK":
|
|
return ConflictResolutionStrategy.ROLLBACK;
|
|
case 3:
|
|
case "FAIL":
|
|
return ConflictResolutionStrategy.FAIL;
|
|
case 4:
|
|
case "IGNORE":
|
|
return ConflictResolutionStrategy.IGNORE;
|
|
case 5:
|
|
case "REPLACE":
|
|
return ConflictResolutionStrategy.REPLACE;
|
|
case -1:
|
|
case "UNRECOGNIZED":
|
|
default:
|
|
return ConflictResolutionStrategy.UNRECOGNIZED;
|
|
}
|
|
}
|
|
|
|
export function conflictResolutionStrategyToJSON(object: ConflictResolutionStrategy): string {
|
|
switch (object) {
|
|
case ConflictResolutionStrategy.CONFLICT_RESOLUTION_STRATEGY_UNDEFINED:
|
|
return "CONFLICT_RESOLUTION_STRATEGY_UNDEFINED";
|
|
case ConflictResolutionStrategy.ABORT:
|
|
return "ABORT";
|
|
case ConflictResolutionStrategy.ROLLBACK:
|
|
return "ROLLBACK";
|
|
case ConflictResolutionStrategy.FAIL:
|
|
return "FAIL";
|
|
case ConflictResolutionStrategy.IGNORE:
|
|
return "IGNORE";
|
|
case ConflictResolutionStrategy.REPLACE:
|
|
return "REPLACE";
|
|
case ConflictResolutionStrategy.UNRECOGNIZED:
|
|
default:
|
|
return "UNRECOGNIZED";
|
|
}
|
|
}
|
|
|
|
export enum PermissionFlag {
|
|
PERMISSION_FLAG_UNDEFINED = 0,
|
|
/** CREATE - Database record insert. */
|
|
CREATE = 1,
|
|
/** READ - Database record read/list, i.e. select. */
|
|
READ = 2,
|
|
/** UPDATE - Database record update. */
|
|
UPDATE = 4,
|
|
/** DELETE - Database record delete. */
|
|
DELETE = 8,
|
|
/** SCHEMA - / Lookup JSON schema for the given record api . */
|
|
SCHEMA = 16,
|
|
UNRECOGNIZED = -1,
|
|
}
|
|
|
|
export function permissionFlagFromJSON(object: any): PermissionFlag {
|
|
switch (object) {
|
|
case 0:
|
|
case "PERMISSION_FLAG_UNDEFINED":
|
|
return PermissionFlag.PERMISSION_FLAG_UNDEFINED;
|
|
case 1:
|
|
case "CREATE":
|
|
return PermissionFlag.CREATE;
|
|
case 2:
|
|
case "READ":
|
|
return PermissionFlag.READ;
|
|
case 4:
|
|
case "UPDATE":
|
|
return PermissionFlag.UPDATE;
|
|
case 8:
|
|
case "DELETE":
|
|
return PermissionFlag.DELETE;
|
|
case 16:
|
|
case "SCHEMA":
|
|
return PermissionFlag.SCHEMA;
|
|
case -1:
|
|
case "UNRECOGNIZED":
|
|
default:
|
|
return PermissionFlag.UNRECOGNIZED;
|
|
}
|
|
}
|
|
|
|
export function permissionFlagToJSON(object: PermissionFlag): string {
|
|
switch (object) {
|
|
case PermissionFlag.PERMISSION_FLAG_UNDEFINED:
|
|
return "PERMISSION_FLAG_UNDEFINED";
|
|
case PermissionFlag.CREATE:
|
|
return "CREATE";
|
|
case PermissionFlag.READ:
|
|
return "READ";
|
|
case PermissionFlag.UPDATE:
|
|
return "UPDATE";
|
|
case PermissionFlag.DELETE:
|
|
return "DELETE";
|
|
case PermissionFlag.SCHEMA:
|
|
return "SCHEMA";
|
|
case PermissionFlag.UNRECOGNIZED:
|
|
default:
|
|
return "UNRECOGNIZED";
|
|
}
|
|
}
|
|
|
|
export interface EmailTemplate {
|
|
subject?: string | undefined;
|
|
body?: string | undefined;
|
|
}
|
|
|
|
export interface EmailConfig {
|
|
smtpHost?: string | undefined;
|
|
smtpPort?: number | undefined;
|
|
smtpUsername?: string | undefined;
|
|
smtpPassword?: string | undefined;
|
|
senderName?: string | undefined;
|
|
senderAddress?: string | undefined;
|
|
userVerificationTemplate?: EmailTemplate | undefined;
|
|
passwordResetTemplate?: EmailTemplate | undefined;
|
|
changeEmailTemplate?: EmailTemplate | undefined;
|
|
}
|
|
|
|
export interface OAuthProviderConfig {
|
|
clientId?: string | undefined;
|
|
clientSecret?: string | undefined;
|
|
providerId?:
|
|
| OAuthProviderId
|
|
| undefined;
|
|
/**
|
|
* Settings for generic OpenID Connect provider. Name is implicitly provided
|
|
* via the `AuthConfig.oauth_provders` map key.
|
|
*/
|
|
displayName?: string | undefined;
|
|
authUrl?: string | undefined;
|
|
tokenUrl?: string | undefined;
|
|
userApiUrl?: string | undefined;
|
|
}
|
|
|
|
export interface AuthConfig {
|
|
/** / Time-to-live in seconds for auth tokens. Default: 1h. */
|
|
authTokenTtlSec?:
|
|
| number
|
|
| undefined;
|
|
/** / Time-to-live in seconds for refresh tokens. Default: 30 days. */
|
|
refreshTokenTtlSec?:
|
|
| number
|
|
| undefined;
|
|
/** / Disables password-based sign-up. Does not affect already registered users. */
|
|
disablePasswordAuth?:
|
|
| boolean
|
|
| undefined;
|
|
/** / Minimal password length. Defaults to 8. */
|
|
passwordMinimalLength?:
|
|
| number
|
|
| undefined;
|
|
/** / Password must contain lower and upper-case letters. */
|
|
passwordMustContainUpperAndLowerCase?:
|
|
| boolean
|
|
| undefined;
|
|
/** / Password must contain digits in addition to alphabetic characters.. */
|
|
passwordMustContainDigits?:
|
|
| boolean
|
|
| undefined;
|
|
/** / Password must contain special, non-alphanumeric, characters. */
|
|
passwordMustContainSpecialCharacters?:
|
|
| boolean
|
|
| undefined;
|
|
/** / Map of configured OAuth providers. */
|
|
oauthProviders: { [key: string]: OAuthProviderConfig };
|
|
}
|
|
|
|
export interface AuthConfig_OauthProvidersEntry {
|
|
key: string;
|
|
value: OAuthProviderConfig | undefined;
|
|
}
|
|
|
|
export interface S3StorageConfig {
|
|
endpoint?: string | undefined;
|
|
region?: string | undefined;
|
|
bucketName?:
|
|
| string
|
|
| undefined;
|
|
/** / S3 access key, a.k.a. username. */
|
|
accessKey?:
|
|
| string
|
|
| undefined;
|
|
/** / S3 secret access key, a.k.a. password. */
|
|
secretAccessKey?: string | undefined;
|
|
}
|
|
|
|
export interface ServerConfig {
|
|
/**
|
|
* / Application name presented to users, e.g. when sending emails. Default:
|
|
* / "TrailBase".
|
|
*/
|
|
applicationName?:
|
|
| string
|
|
| undefined;
|
|
/**
|
|
* / Your final, deployed URL. This url is used to build canonical urls
|
|
* / for emails, OAuth redirects, ... . Default: "http://localhost:4000".
|
|
*/
|
|
siteUrl?:
|
|
| string
|
|
| undefined;
|
|
/**
|
|
* / Max age of logs that will be retained during period logs cleanup. Note
|
|
* / that this implies that some older logs may persist until the cleanup job
|
|
* / reruns. Default: 7 days.
|
|
*/
|
|
logsRetentionSec?:
|
|
| number
|
|
| undefined;
|
|
/** / If present will use S3 setup over local file-system based storage. */
|
|
s3StorageConfig?: S3StorageConfig | undefined;
|
|
}
|
|
|
|
export interface SystemJob {
|
|
/** / Identifies the system job by its id. */
|
|
id?:
|
|
| SystemJobId
|
|
| undefined;
|
|
/** / Cron spec: shorthand or 7-components: (sec, min, hour, day of month, / month, day of week, year). */
|
|
schedule?:
|
|
| string
|
|
| undefined;
|
|
/** / Disable the system job. */
|
|
disabled?: boolean | undefined;
|
|
}
|
|
|
|
export interface JobsConfig {
|
|
/**
|
|
* / System jobs overrides.
|
|
* /
|
|
* / NOTE: This is technically a map from id to config, however enums are not
|
|
* / allowed as map keys.
|
|
*/
|
|
systemJobs: SystemJob[];
|
|
}
|
|
|
|
export interface RecordApiConfig {
|
|
/** / API name, i.e. unique name used to access data via HTTP. */
|
|
name?:
|
|
| string
|
|
| undefined;
|
|
/** / Referenced table to be exposed. */
|
|
tableName?:
|
|
| string
|
|
| undefined;
|
|
/** / Strategy to be used on insert if a table constraint is violated. */
|
|
conflictResolution?:
|
|
| ConflictResolutionStrategy
|
|
| undefined;
|
|
/**
|
|
* / Fill columns referencing _user(id) automatically from current user's
|
|
* / authentication context if present. Can be useful for static clients, such
|
|
* / as HTML forms, otherwise it's recommended to have the client provide user
|
|
* / ids explicitly and to keep this feature off.
|
|
*/
|
|
autofillMissingUserIdColumns?:
|
|
| boolean
|
|
| undefined;
|
|
/**
|
|
* / Allow subscribing to data changes in realtime using SSE streaming.
|
|
* /
|
|
* / NOTE: If you're using a reverse proxy, this will likely require
|
|
* / configuration changes to allow for server-side streaming HTTP, e.g.
|
|
* / tell the proxy to keep listening and not cache.
|
|
*/
|
|
enableSubscriptions?:
|
|
| boolean
|
|
| undefined;
|
|
/** / Access control lists. */
|
|
aclWorld: PermissionFlag[];
|
|
aclAuthenticated: PermissionFlag[];
|
|
/**
|
|
* / Columns excluded from this API.
|
|
* /
|
|
* / Excluded columns are completely inaccessible via this API. This is
|
|
* / different from columns with names prefixed by "_", which are considered
|
|
* / hidden. This means they can still be inserted, updated and access checked
|
|
* / unlike excluded columns.
|
|
*/
|
|
excludedColumns: string[];
|
|
/**
|
|
* / Access rules to be evaluated on request. Expected to be valid SQL
|
|
* / expression, where `SELECT <expr>` returns a unary boolean.
|
|
* /
|
|
* / The evaluator injects _USER_, _ROW_ and _REQ_ tables that can be
|
|
* / used for validating access, e.g.:
|
|
* /
|
|
* / _USER_.id = _REQ_.owner
|
|
* /
|
|
* / ensures that the value provided for the `owner` column during an insert
|
|
* / matches the current authenticated user's id. One can also construct
|
|
* / arbitrary validations including sub-queries, e.g.:
|
|
* /
|
|
* / _USER_.id = _REQ_.owner AND EXISTS(SELECT FROM allowed WHERE allowed.user = _USER_.id)
|
|
*/
|
|
createAccessRule?: string | undefined;
|
|
readAccessRule?: string | undefined;
|
|
updateAccessRule?: string | undefined;
|
|
deleteAccessRule?: string | undefined;
|
|
schemaAccessRule?:
|
|
| string
|
|
| undefined;
|
|
/**
|
|
* / A list of foreign key columns that *can* be expanded on read/list, i.e.
|
|
* / the foreign record will be inlined into the response. By default nothing
|
|
* / is expanded.
|
|
* /
|
|
* / Only columns and foreign tables with names not starting with "_", i.e. are
|
|
* / allowed to be expanded.
|
|
*/
|
|
expand: string[];
|
|
}
|
|
|
|
export interface JsonSchemaConfig {
|
|
name?: string | undefined;
|
|
schema?: string | undefined;
|
|
}
|
|
|
|
export interface Config {
|
|
/**
|
|
* NOTE: These top-level fields currently have to be `required` due to the
|
|
* overly simple approach on how we do config merging (from env vars and
|
|
* vault).
|
|
*/
|
|
email: EmailConfig | undefined;
|
|
server: ServerConfig | undefined;
|
|
auth: AuthConfig | undefined;
|
|
jobs: JobsConfig | undefined;
|
|
recordApis: RecordApiConfig[];
|
|
schemas: JsonSchemaConfig[];
|
|
}
|
|
|
|
function createBaseEmailTemplate(): EmailTemplate {
|
|
return {};
|
|
}
|
|
|
|
export const EmailTemplate: MessageFns<EmailTemplate> = {
|
|
encode(message: EmailTemplate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.subject !== undefined && message.subject !== "") {
|
|
writer.uint32(10).string(message.subject);
|
|
}
|
|
if (message.body !== undefined && message.body !== "") {
|
|
writer.uint32(18).string(message.body);
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): EmailTemplate {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseEmailTemplate();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 10) {
|
|
break;
|
|
}
|
|
|
|
message.subject = reader.string();
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 18) {
|
|
break;
|
|
}
|
|
|
|
message.body = reader.string();
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): EmailTemplate {
|
|
return {
|
|
subject: isSet(object.subject) ? globalThis.String(object.subject) : undefined,
|
|
body: isSet(object.body) ? globalThis.String(object.body) : undefined,
|
|
};
|
|
},
|
|
|
|
toJSON(message: EmailTemplate): unknown {
|
|
const obj: any = {};
|
|
if (message.subject !== undefined && message.subject !== "") {
|
|
obj.subject = message.subject;
|
|
}
|
|
if (message.body !== undefined && message.body !== "") {
|
|
obj.body = message.body;
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<EmailTemplate>, I>>(base?: I): EmailTemplate {
|
|
return EmailTemplate.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<EmailTemplate>, I>>(object: I): EmailTemplate {
|
|
const message = createBaseEmailTemplate();
|
|
message.subject = object.subject ?? "";
|
|
message.body = object.body ?? "";
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseEmailConfig(): EmailConfig {
|
|
return {};
|
|
}
|
|
|
|
export const EmailConfig: MessageFns<EmailConfig> = {
|
|
encode(message: EmailConfig, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.smtpHost !== undefined && message.smtpHost !== "") {
|
|
writer.uint32(10).string(message.smtpHost);
|
|
}
|
|
if (message.smtpPort !== undefined && message.smtpPort !== 0) {
|
|
writer.uint32(16).uint32(message.smtpPort);
|
|
}
|
|
if (message.smtpUsername !== undefined && message.smtpUsername !== "") {
|
|
writer.uint32(26).string(message.smtpUsername);
|
|
}
|
|
if (message.smtpPassword !== undefined && message.smtpPassword !== "") {
|
|
writer.uint32(34).string(message.smtpPassword);
|
|
}
|
|
if (message.senderName !== undefined && message.senderName !== "") {
|
|
writer.uint32(90).string(message.senderName);
|
|
}
|
|
if (message.senderAddress !== undefined && message.senderAddress !== "") {
|
|
writer.uint32(98).string(message.senderAddress);
|
|
}
|
|
if (message.userVerificationTemplate !== undefined) {
|
|
EmailTemplate.encode(message.userVerificationTemplate, writer.uint32(170).fork()).join();
|
|
}
|
|
if (message.passwordResetTemplate !== undefined) {
|
|
EmailTemplate.encode(message.passwordResetTemplate, writer.uint32(178).fork()).join();
|
|
}
|
|
if (message.changeEmailTemplate !== undefined) {
|
|
EmailTemplate.encode(message.changeEmailTemplate, writer.uint32(186).fork()).join();
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): EmailConfig {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseEmailConfig();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 10) {
|
|
break;
|
|
}
|
|
|
|
message.smtpHost = reader.string();
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 16) {
|
|
break;
|
|
}
|
|
|
|
message.smtpPort = reader.uint32();
|
|
continue;
|
|
}
|
|
case 3: {
|
|
if (tag !== 26) {
|
|
break;
|
|
}
|
|
|
|
message.smtpUsername = reader.string();
|
|
continue;
|
|
}
|
|
case 4: {
|
|
if (tag !== 34) {
|
|
break;
|
|
}
|
|
|
|
message.smtpPassword = reader.string();
|
|
continue;
|
|
}
|
|
case 11: {
|
|
if (tag !== 90) {
|
|
break;
|
|
}
|
|
|
|
message.senderName = reader.string();
|
|
continue;
|
|
}
|
|
case 12: {
|
|
if (tag !== 98) {
|
|
break;
|
|
}
|
|
|
|
message.senderAddress = reader.string();
|
|
continue;
|
|
}
|
|
case 21: {
|
|
if (tag !== 170) {
|
|
break;
|
|
}
|
|
|
|
message.userVerificationTemplate = EmailTemplate.decode(reader, reader.uint32());
|
|
continue;
|
|
}
|
|
case 22: {
|
|
if (tag !== 178) {
|
|
break;
|
|
}
|
|
|
|
message.passwordResetTemplate = EmailTemplate.decode(reader, reader.uint32());
|
|
continue;
|
|
}
|
|
case 23: {
|
|
if (tag !== 186) {
|
|
break;
|
|
}
|
|
|
|
message.changeEmailTemplate = EmailTemplate.decode(reader, reader.uint32());
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): EmailConfig {
|
|
return {
|
|
smtpHost: isSet(object.smtpHost) ? globalThis.String(object.smtpHost) : undefined,
|
|
smtpPort: isSet(object.smtpPort) ? globalThis.Number(object.smtpPort) : undefined,
|
|
smtpUsername: isSet(object.smtpUsername) ? globalThis.String(object.smtpUsername) : undefined,
|
|
smtpPassword: isSet(object.smtpPassword) ? globalThis.String(object.smtpPassword) : undefined,
|
|
senderName: isSet(object.senderName) ? globalThis.String(object.senderName) : undefined,
|
|
senderAddress: isSet(object.senderAddress) ? globalThis.String(object.senderAddress) : undefined,
|
|
userVerificationTemplate: isSet(object.userVerificationTemplate)
|
|
? EmailTemplate.fromJSON(object.userVerificationTemplate)
|
|
: undefined,
|
|
passwordResetTemplate: isSet(object.passwordResetTemplate)
|
|
? EmailTemplate.fromJSON(object.passwordResetTemplate)
|
|
: undefined,
|
|
changeEmailTemplate: isSet(object.changeEmailTemplate)
|
|
? EmailTemplate.fromJSON(object.changeEmailTemplate)
|
|
: undefined,
|
|
};
|
|
},
|
|
|
|
toJSON(message: EmailConfig): unknown {
|
|
const obj: any = {};
|
|
if (message.smtpHost !== undefined && message.smtpHost !== "") {
|
|
obj.smtpHost = message.smtpHost;
|
|
}
|
|
if (message.smtpPort !== undefined && message.smtpPort !== 0) {
|
|
obj.smtpPort = Math.round(message.smtpPort);
|
|
}
|
|
if (message.smtpUsername !== undefined && message.smtpUsername !== "") {
|
|
obj.smtpUsername = message.smtpUsername;
|
|
}
|
|
if (message.smtpPassword !== undefined && message.smtpPassword !== "") {
|
|
obj.smtpPassword = message.smtpPassword;
|
|
}
|
|
if (message.senderName !== undefined && message.senderName !== "") {
|
|
obj.senderName = message.senderName;
|
|
}
|
|
if (message.senderAddress !== undefined && message.senderAddress !== "") {
|
|
obj.senderAddress = message.senderAddress;
|
|
}
|
|
if (message.userVerificationTemplate !== undefined) {
|
|
obj.userVerificationTemplate = EmailTemplate.toJSON(message.userVerificationTemplate);
|
|
}
|
|
if (message.passwordResetTemplate !== undefined) {
|
|
obj.passwordResetTemplate = EmailTemplate.toJSON(message.passwordResetTemplate);
|
|
}
|
|
if (message.changeEmailTemplate !== undefined) {
|
|
obj.changeEmailTemplate = EmailTemplate.toJSON(message.changeEmailTemplate);
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<EmailConfig>, I>>(base?: I): EmailConfig {
|
|
return EmailConfig.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<EmailConfig>, I>>(object: I): EmailConfig {
|
|
const message = createBaseEmailConfig();
|
|
message.smtpHost = object.smtpHost ?? "";
|
|
message.smtpPort = object.smtpPort ?? 0;
|
|
message.smtpUsername = object.smtpUsername ?? "";
|
|
message.smtpPassword = object.smtpPassword ?? "";
|
|
message.senderName = object.senderName ?? "";
|
|
message.senderAddress = object.senderAddress ?? "";
|
|
message.userVerificationTemplate =
|
|
(object.userVerificationTemplate !== undefined && object.userVerificationTemplate !== null)
|
|
? EmailTemplate.fromPartial(object.userVerificationTemplate)
|
|
: undefined;
|
|
message.passwordResetTemplate =
|
|
(object.passwordResetTemplate !== undefined && object.passwordResetTemplate !== null)
|
|
? EmailTemplate.fromPartial(object.passwordResetTemplate)
|
|
: undefined;
|
|
message.changeEmailTemplate = (object.changeEmailTemplate !== undefined && object.changeEmailTemplate !== null)
|
|
? EmailTemplate.fromPartial(object.changeEmailTemplate)
|
|
: undefined;
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseOAuthProviderConfig(): OAuthProviderConfig {
|
|
return {};
|
|
}
|
|
|
|
export const OAuthProviderConfig: MessageFns<OAuthProviderConfig> = {
|
|
encode(message: OAuthProviderConfig, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.clientId !== undefined && message.clientId !== "") {
|
|
writer.uint32(10).string(message.clientId);
|
|
}
|
|
if (message.clientSecret !== undefined && message.clientSecret !== "") {
|
|
writer.uint32(18).string(message.clientSecret);
|
|
}
|
|
if (message.providerId !== undefined && message.providerId !== 0) {
|
|
writer.uint32(24).int32(message.providerId);
|
|
}
|
|
if (message.displayName !== undefined && message.displayName !== "") {
|
|
writer.uint32(90).string(message.displayName);
|
|
}
|
|
if (message.authUrl !== undefined && message.authUrl !== "") {
|
|
writer.uint32(98).string(message.authUrl);
|
|
}
|
|
if (message.tokenUrl !== undefined && message.tokenUrl !== "") {
|
|
writer.uint32(106).string(message.tokenUrl);
|
|
}
|
|
if (message.userApiUrl !== undefined && message.userApiUrl !== "") {
|
|
writer.uint32(114).string(message.userApiUrl);
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): OAuthProviderConfig {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseOAuthProviderConfig();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 10) {
|
|
break;
|
|
}
|
|
|
|
message.clientId = reader.string();
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 18) {
|
|
break;
|
|
}
|
|
|
|
message.clientSecret = reader.string();
|
|
continue;
|
|
}
|
|
case 3: {
|
|
if (tag !== 24) {
|
|
break;
|
|
}
|
|
|
|
message.providerId = reader.int32() as any;
|
|
continue;
|
|
}
|
|
case 11: {
|
|
if (tag !== 90) {
|
|
break;
|
|
}
|
|
|
|
message.displayName = reader.string();
|
|
continue;
|
|
}
|
|
case 12: {
|
|
if (tag !== 98) {
|
|
break;
|
|
}
|
|
|
|
message.authUrl = reader.string();
|
|
continue;
|
|
}
|
|
case 13: {
|
|
if (tag !== 106) {
|
|
break;
|
|
}
|
|
|
|
message.tokenUrl = reader.string();
|
|
continue;
|
|
}
|
|
case 14: {
|
|
if (tag !== 114) {
|
|
break;
|
|
}
|
|
|
|
message.userApiUrl = reader.string();
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): OAuthProviderConfig {
|
|
return {
|
|
clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : undefined,
|
|
clientSecret: isSet(object.clientSecret) ? globalThis.String(object.clientSecret) : undefined,
|
|
providerId: isSet(object.providerId) ? oAuthProviderIdFromJSON(object.providerId) : undefined,
|
|
displayName: isSet(object.displayName) ? globalThis.String(object.displayName) : undefined,
|
|
authUrl: isSet(object.authUrl) ? globalThis.String(object.authUrl) : undefined,
|
|
tokenUrl: isSet(object.tokenUrl) ? globalThis.String(object.tokenUrl) : undefined,
|
|
userApiUrl: isSet(object.userApiUrl) ? globalThis.String(object.userApiUrl) : undefined,
|
|
};
|
|
},
|
|
|
|
toJSON(message: OAuthProviderConfig): unknown {
|
|
const obj: any = {};
|
|
if (message.clientId !== undefined && message.clientId !== "") {
|
|
obj.clientId = message.clientId;
|
|
}
|
|
if (message.clientSecret !== undefined && message.clientSecret !== "") {
|
|
obj.clientSecret = message.clientSecret;
|
|
}
|
|
if (message.providerId !== undefined && message.providerId !== 0) {
|
|
obj.providerId = oAuthProviderIdToJSON(message.providerId);
|
|
}
|
|
if (message.displayName !== undefined && message.displayName !== "") {
|
|
obj.displayName = message.displayName;
|
|
}
|
|
if (message.authUrl !== undefined && message.authUrl !== "") {
|
|
obj.authUrl = message.authUrl;
|
|
}
|
|
if (message.tokenUrl !== undefined && message.tokenUrl !== "") {
|
|
obj.tokenUrl = message.tokenUrl;
|
|
}
|
|
if (message.userApiUrl !== undefined && message.userApiUrl !== "") {
|
|
obj.userApiUrl = message.userApiUrl;
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<OAuthProviderConfig>, I>>(base?: I): OAuthProviderConfig {
|
|
return OAuthProviderConfig.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<OAuthProviderConfig>, I>>(object: I): OAuthProviderConfig {
|
|
const message = createBaseOAuthProviderConfig();
|
|
message.clientId = object.clientId ?? "";
|
|
message.clientSecret = object.clientSecret ?? "";
|
|
message.providerId = object.providerId ?? 0;
|
|
message.displayName = object.displayName ?? "";
|
|
message.authUrl = object.authUrl ?? "";
|
|
message.tokenUrl = object.tokenUrl ?? "";
|
|
message.userApiUrl = object.userApiUrl ?? "";
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseAuthConfig(): AuthConfig {
|
|
return { oauthProviders: {} };
|
|
}
|
|
|
|
export const AuthConfig: MessageFns<AuthConfig> = {
|
|
encode(message: AuthConfig, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.authTokenTtlSec !== undefined && message.authTokenTtlSec !== 0) {
|
|
writer.uint32(8).int64(message.authTokenTtlSec);
|
|
}
|
|
if (message.refreshTokenTtlSec !== undefined && message.refreshTokenTtlSec !== 0) {
|
|
writer.uint32(16).int64(message.refreshTokenTtlSec);
|
|
}
|
|
if (message.disablePasswordAuth !== undefined && message.disablePasswordAuth !== false) {
|
|
writer.uint32(24).bool(message.disablePasswordAuth);
|
|
}
|
|
if (message.passwordMinimalLength !== undefined && message.passwordMinimalLength !== 0) {
|
|
writer.uint32(32).uint32(message.passwordMinimalLength);
|
|
}
|
|
if (
|
|
message.passwordMustContainUpperAndLowerCase !== undefined &&
|
|
message.passwordMustContainUpperAndLowerCase !== false
|
|
) {
|
|
writer.uint32(40).bool(message.passwordMustContainUpperAndLowerCase);
|
|
}
|
|
if (message.passwordMustContainDigits !== undefined && message.passwordMustContainDigits !== false) {
|
|
writer.uint32(48).bool(message.passwordMustContainDigits);
|
|
}
|
|
if (
|
|
message.passwordMustContainSpecialCharacters !== undefined &&
|
|
message.passwordMustContainSpecialCharacters !== false
|
|
) {
|
|
writer.uint32(56).bool(message.passwordMustContainSpecialCharacters);
|
|
}
|
|
Object.entries(message.oauthProviders).forEach(([key, value]) => {
|
|
AuthConfig_OauthProvidersEntry.encode({ key: key as any, value }, writer.uint32(90).fork()).join();
|
|
});
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): AuthConfig {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseAuthConfig();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 8) {
|
|
break;
|
|
}
|
|
|
|
message.authTokenTtlSec = longToNumber(reader.int64());
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 16) {
|
|
break;
|
|
}
|
|
|
|
message.refreshTokenTtlSec = longToNumber(reader.int64());
|
|
continue;
|
|
}
|
|
case 3: {
|
|
if (tag !== 24) {
|
|
break;
|
|
}
|
|
|
|
message.disablePasswordAuth = reader.bool();
|
|
continue;
|
|
}
|
|
case 4: {
|
|
if (tag !== 32) {
|
|
break;
|
|
}
|
|
|
|
message.passwordMinimalLength = reader.uint32();
|
|
continue;
|
|
}
|
|
case 5: {
|
|
if (tag !== 40) {
|
|
break;
|
|
}
|
|
|
|
message.passwordMustContainUpperAndLowerCase = reader.bool();
|
|
continue;
|
|
}
|
|
case 6: {
|
|
if (tag !== 48) {
|
|
break;
|
|
}
|
|
|
|
message.passwordMustContainDigits = reader.bool();
|
|
continue;
|
|
}
|
|
case 7: {
|
|
if (tag !== 56) {
|
|
break;
|
|
}
|
|
|
|
message.passwordMustContainSpecialCharacters = reader.bool();
|
|
continue;
|
|
}
|
|
case 11: {
|
|
if (tag !== 90) {
|
|
break;
|
|
}
|
|
|
|
const entry11 = AuthConfig_OauthProvidersEntry.decode(reader, reader.uint32());
|
|
if (entry11.value !== undefined) {
|
|
message.oauthProviders[entry11.key] = entry11.value;
|
|
}
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): AuthConfig {
|
|
return {
|
|
authTokenTtlSec: isSet(object.authTokenTtlSec) ? globalThis.Number(object.authTokenTtlSec) : undefined,
|
|
refreshTokenTtlSec: isSet(object.refreshTokenTtlSec) ? globalThis.Number(object.refreshTokenTtlSec) : undefined,
|
|
disablePasswordAuth: isSet(object.disablePasswordAuth)
|
|
? globalThis.Boolean(object.disablePasswordAuth)
|
|
: undefined,
|
|
passwordMinimalLength: isSet(object.passwordMinimalLength)
|
|
? globalThis.Number(object.passwordMinimalLength)
|
|
: undefined,
|
|
passwordMustContainUpperAndLowerCase: isSet(object.passwordMustContainUpperAndLowerCase)
|
|
? globalThis.Boolean(object.passwordMustContainUpperAndLowerCase)
|
|
: undefined,
|
|
passwordMustContainDigits: isSet(object.passwordMustContainDigits)
|
|
? globalThis.Boolean(object.passwordMustContainDigits)
|
|
: undefined,
|
|
passwordMustContainSpecialCharacters: isSet(object.passwordMustContainSpecialCharacters)
|
|
? globalThis.Boolean(object.passwordMustContainSpecialCharacters)
|
|
: undefined,
|
|
oauthProviders: isObject(object.oauthProviders)
|
|
? Object.entries(object.oauthProviders).reduce<{ [key: string]: OAuthProviderConfig }>((acc, [key, value]) => {
|
|
acc[key] = OAuthProviderConfig.fromJSON(value);
|
|
return acc;
|
|
}, {})
|
|
: {},
|
|
};
|
|
},
|
|
|
|
toJSON(message: AuthConfig): unknown {
|
|
const obj: any = {};
|
|
if (message.authTokenTtlSec !== undefined && message.authTokenTtlSec !== 0) {
|
|
obj.authTokenTtlSec = Math.round(message.authTokenTtlSec);
|
|
}
|
|
if (message.refreshTokenTtlSec !== undefined && message.refreshTokenTtlSec !== 0) {
|
|
obj.refreshTokenTtlSec = Math.round(message.refreshTokenTtlSec);
|
|
}
|
|
if (message.disablePasswordAuth !== undefined && message.disablePasswordAuth !== false) {
|
|
obj.disablePasswordAuth = message.disablePasswordAuth;
|
|
}
|
|
if (message.passwordMinimalLength !== undefined && message.passwordMinimalLength !== 0) {
|
|
obj.passwordMinimalLength = Math.round(message.passwordMinimalLength);
|
|
}
|
|
if (
|
|
message.passwordMustContainUpperAndLowerCase !== undefined &&
|
|
message.passwordMustContainUpperAndLowerCase !== false
|
|
) {
|
|
obj.passwordMustContainUpperAndLowerCase = message.passwordMustContainUpperAndLowerCase;
|
|
}
|
|
if (message.passwordMustContainDigits !== undefined && message.passwordMustContainDigits !== false) {
|
|
obj.passwordMustContainDigits = message.passwordMustContainDigits;
|
|
}
|
|
if (
|
|
message.passwordMustContainSpecialCharacters !== undefined &&
|
|
message.passwordMustContainSpecialCharacters !== false
|
|
) {
|
|
obj.passwordMustContainSpecialCharacters = message.passwordMustContainSpecialCharacters;
|
|
}
|
|
if (message.oauthProviders) {
|
|
const entries = Object.entries(message.oauthProviders);
|
|
if (entries.length > 0) {
|
|
obj.oauthProviders = {};
|
|
entries.forEach(([k, v]) => {
|
|
obj.oauthProviders[k] = OAuthProviderConfig.toJSON(v);
|
|
});
|
|
}
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<AuthConfig>, I>>(base?: I): AuthConfig {
|
|
return AuthConfig.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<AuthConfig>, I>>(object: I): AuthConfig {
|
|
const message = createBaseAuthConfig();
|
|
message.authTokenTtlSec = object.authTokenTtlSec ?? 0;
|
|
message.refreshTokenTtlSec = object.refreshTokenTtlSec ?? 0;
|
|
message.disablePasswordAuth = object.disablePasswordAuth ?? false;
|
|
message.passwordMinimalLength = object.passwordMinimalLength ?? 0;
|
|
message.passwordMustContainUpperAndLowerCase = object.passwordMustContainUpperAndLowerCase ?? false;
|
|
message.passwordMustContainDigits = object.passwordMustContainDigits ?? false;
|
|
message.passwordMustContainSpecialCharacters = object.passwordMustContainSpecialCharacters ?? false;
|
|
message.oauthProviders = Object.entries(object.oauthProviders ?? {}).reduce<{ [key: string]: OAuthProviderConfig }>(
|
|
(acc, [key, value]) => {
|
|
if (value !== undefined) {
|
|
acc[key] = OAuthProviderConfig.fromPartial(value);
|
|
}
|
|
return acc;
|
|
},
|
|
{},
|
|
);
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseAuthConfig_OauthProvidersEntry(): AuthConfig_OauthProvidersEntry {
|
|
return { key: "", value: undefined };
|
|
}
|
|
|
|
export const AuthConfig_OauthProvidersEntry: MessageFns<AuthConfig_OauthProvidersEntry> = {
|
|
encode(message: AuthConfig_OauthProvidersEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.key !== "") {
|
|
writer.uint32(10).string(message.key);
|
|
}
|
|
if (message.value !== undefined) {
|
|
OAuthProviderConfig.encode(message.value, writer.uint32(18).fork()).join();
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): AuthConfig_OauthProvidersEntry {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseAuthConfig_OauthProvidersEntry();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 10) {
|
|
break;
|
|
}
|
|
|
|
message.key = reader.string();
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 18) {
|
|
break;
|
|
}
|
|
|
|
message.value = OAuthProviderConfig.decode(reader, reader.uint32());
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): AuthConfig_OauthProvidersEntry {
|
|
return {
|
|
key: isSet(object.key) ? globalThis.String(object.key) : "",
|
|
value: isSet(object.value) ? OAuthProviderConfig.fromJSON(object.value) : undefined,
|
|
};
|
|
},
|
|
|
|
toJSON(message: AuthConfig_OauthProvidersEntry): unknown {
|
|
const obj: any = {};
|
|
if (message.key !== "") {
|
|
obj.key = message.key;
|
|
}
|
|
if (message.value !== undefined) {
|
|
obj.value = OAuthProviderConfig.toJSON(message.value);
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<AuthConfig_OauthProvidersEntry>, I>>(base?: I): AuthConfig_OauthProvidersEntry {
|
|
return AuthConfig_OauthProvidersEntry.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<AuthConfig_OauthProvidersEntry>, I>>(
|
|
object: I,
|
|
): AuthConfig_OauthProvidersEntry {
|
|
const message = createBaseAuthConfig_OauthProvidersEntry();
|
|
message.key = object.key ?? "";
|
|
message.value = (object.value !== undefined && object.value !== null)
|
|
? OAuthProviderConfig.fromPartial(object.value)
|
|
: undefined;
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseS3StorageConfig(): S3StorageConfig {
|
|
return {};
|
|
}
|
|
|
|
export const S3StorageConfig: MessageFns<S3StorageConfig> = {
|
|
encode(message: S3StorageConfig, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.endpoint !== undefined && message.endpoint !== "") {
|
|
writer.uint32(10).string(message.endpoint);
|
|
}
|
|
if (message.region !== undefined && message.region !== "") {
|
|
writer.uint32(18).string(message.region);
|
|
}
|
|
if (message.bucketName !== undefined && message.bucketName !== "") {
|
|
writer.uint32(42).string(message.bucketName);
|
|
}
|
|
if (message.accessKey !== undefined && message.accessKey !== "") {
|
|
writer.uint32(66).string(message.accessKey);
|
|
}
|
|
if (message.secretAccessKey !== undefined && message.secretAccessKey !== "") {
|
|
writer.uint32(74).string(message.secretAccessKey);
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): S3StorageConfig {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseS3StorageConfig();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 10) {
|
|
break;
|
|
}
|
|
|
|
message.endpoint = reader.string();
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 18) {
|
|
break;
|
|
}
|
|
|
|
message.region = reader.string();
|
|
continue;
|
|
}
|
|
case 5: {
|
|
if (tag !== 42) {
|
|
break;
|
|
}
|
|
|
|
message.bucketName = reader.string();
|
|
continue;
|
|
}
|
|
case 8: {
|
|
if (tag !== 66) {
|
|
break;
|
|
}
|
|
|
|
message.accessKey = reader.string();
|
|
continue;
|
|
}
|
|
case 9: {
|
|
if (tag !== 74) {
|
|
break;
|
|
}
|
|
|
|
message.secretAccessKey = reader.string();
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): S3StorageConfig {
|
|
return {
|
|
endpoint: isSet(object.endpoint) ? globalThis.String(object.endpoint) : undefined,
|
|
region: isSet(object.region) ? globalThis.String(object.region) : undefined,
|
|
bucketName: isSet(object.bucketName) ? globalThis.String(object.bucketName) : undefined,
|
|
accessKey: isSet(object.accessKey) ? globalThis.String(object.accessKey) : undefined,
|
|
secretAccessKey: isSet(object.secretAccessKey) ? globalThis.String(object.secretAccessKey) : undefined,
|
|
};
|
|
},
|
|
|
|
toJSON(message: S3StorageConfig): unknown {
|
|
const obj: any = {};
|
|
if (message.endpoint !== undefined && message.endpoint !== "") {
|
|
obj.endpoint = message.endpoint;
|
|
}
|
|
if (message.region !== undefined && message.region !== "") {
|
|
obj.region = message.region;
|
|
}
|
|
if (message.bucketName !== undefined && message.bucketName !== "") {
|
|
obj.bucketName = message.bucketName;
|
|
}
|
|
if (message.accessKey !== undefined && message.accessKey !== "") {
|
|
obj.accessKey = message.accessKey;
|
|
}
|
|
if (message.secretAccessKey !== undefined && message.secretAccessKey !== "") {
|
|
obj.secretAccessKey = message.secretAccessKey;
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<S3StorageConfig>, I>>(base?: I): S3StorageConfig {
|
|
return S3StorageConfig.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<S3StorageConfig>, I>>(object: I): S3StorageConfig {
|
|
const message = createBaseS3StorageConfig();
|
|
message.endpoint = object.endpoint ?? "";
|
|
message.region = object.region ?? "";
|
|
message.bucketName = object.bucketName ?? "";
|
|
message.accessKey = object.accessKey ?? "";
|
|
message.secretAccessKey = object.secretAccessKey ?? "";
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseServerConfig(): ServerConfig {
|
|
return {};
|
|
}
|
|
|
|
export const ServerConfig: MessageFns<ServerConfig> = {
|
|
encode(message: ServerConfig, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.applicationName !== undefined && message.applicationName !== "") {
|
|
writer.uint32(10).string(message.applicationName);
|
|
}
|
|
if (message.siteUrl !== undefined && message.siteUrl !== "") {
|
|
writer.uint32(18).string(message.siteUrl);
|
|
}
|
|
if (message.logsRetentionSec !== undefined && message.logsRetentionSec !== 0) {
|
|
writer.uint32(88).int64(message.logsRetentionSec);
|
|
}
|
|
if (message.s3StorageConfig !== undefined) {
|
|
S3StorageConfig.encode(message.s3StorageConfig, writer.uint32(106).fork()).join();
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): ServerConfig {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseServerConfig();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 10) {
|
|
break;
|
|
}
|
|
|
|
message.applicationName = reader.string();
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 18) {
|
|
break;
|
|
}
|
|
|
|
message.siteUrl = reader.string();
|
|
continue;
|
|
}
|
|
case 11: {
|
|
if (tag !== 88) {
|
|
break;
|
|
}
|
|
|
|
message.logsRetentionSec = longToNumber(reader.int64());
|
|
continue;
|
|
}
|
|
case 13: {
|
|
if (tag !== 106) {
|
|
break;
|
|
}
|
|
|
|
message.s3StorageConfig = S3StorageConfig.decode(reader, reader.uint32());
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): ServerConfig {
|
|
return {
|
|
applicationName: isSet(object.applicationName) ? globalThis.String(object.applicationName) : undefined,
|
|
siteUrl: isSet(object.siteUrl) ? globalThis.String(object.siteUrl) : undefined,
|
|
logsRetentionSec: isSet(object.logsRetentionSec) ? globalThis.Number(object.logsRetentionSec) : undefined,
|
|
s3StorageConfig: isSet(object.s3StorageConfig) ? S3StorageConfig.fromJSON(object.s3StorageConfig) : undefined,
|
|
};
|
|
},
|
|
|
|
toJSON(message: ServerConfig): unknown {
|
|
const obj: any = {};
|
|
if (message.applicationName !== undefined && message.applicationName !== "") {
|
|
obj.applicationName = message.applicationName;
|
|
}
|
|
if (message.siteUrl !== undefined && message.siteUrl !== "") {
|
|
obj.siteUrl = message.siteUrl;
|
|
}
|
|
if (message.logsRetentionSec !== undefined && message.logsRetentionSec !== 0) {
|
|
obj.logsRetentionSec = Math.round(message.logsRetentionSec);
|
|
}
|
|
if (message.s3StorageConfig !== undefined) {
|
|
obj.s3StorageConfig = S3StorageConfig.toJSON(message.s3StorageConfig);
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<ServerConfig>, I>>(base?: I): ServerConfig {
|
|
return ServerConfig.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<ServerConfig>, I>>(object: I): ServerConfig {
|
|
const message = createBaseServerConfig();
|
|
message.applicationName = object.applicationName ?? "";
|
|
message.siteUrl = object.siteUrl ?? "";
|
|
message.logsRetentionSec = object.logsRetentionSec ?? 0;
|
|
message.s3StorageConfig = (object.s3StorageConfig !== undefined && object.s3StorageConfig !== null)
|
|
? S3StorageConfig.fromPartial(object.s3StorageConfig)
|
|
: undefined;
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseSystemJob(): SystemJob {
|
|
return {};
|
|
}
|
|
|
|
export const SystemJob: MessageFns<SystemJob> = {
|
|
encode(message: SystemJob, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.id !== undefined && message.id !== 0) {
|
|
writer.uint32(8).int32(message.id);
|
|
}
|
|
if (message.schedule !== undefined && message.schedule !== "") {
|
|
writer.uint32(18).string(message.schedule);
|
|
}
|
|
if (message.disabled !== undefined && message.disabled !== false) {
|
|
writer.uint32(24).bool(message.disabled);
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): SystemJob {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseSystemJob();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 8) {
|
|
break;
|
|
}
|
|
|
|
message.id = reader.int32() as any;
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 18) {
|
|
break;
|
|
}
|
|
|
|
message.schedule = reader.string();
|
|
continue;
|
|
}
|
|
case 3: {
|
|
if (tag !== 24) {
|
|
break;
|
|
}
|
|
|
|
message.disabled = reader.bool();
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): SystemJob {
|
|
return {
|
|
id: isSet(object.id) ? systemJobIdFromJSON(object.id) : undefined,
|
|
schedule: isSet(object.schedule) ? globalThis.String(object.schedule) : undefined,
|
|
disabled: isSet(object.disabled) ? globalThis.Boolean(object.disabled) : undefined,
|
|
};
|
|
},
|
|
|
|
toJSON(message: SystemJob): unknown {
|
|
const obj: any = {};
|
|
if (message.id !== undefined && message.id !== 0) {
|
|
obj.id = systemJobIdToJSON(message.id);
|
|
}
|
|
if (message.schedule !== undefined && message.schedule !== "") {
|
|
obj.schedule = message.schedule;
|
|
}
|
|
if (message.disabled !== undefined && message.disabled !== false) {
|
|
obj.disabled = message.disabled;
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<SystemJob>, I>>(base?: I): SystemJob {
|
|
return SystemJob.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<SystemJob>, I>>(object: I): SystemJob {
|
|
const message = createBaseSystemJob();
|
|
message.id = object.id ?? 0;
|
|
message.schedule = object.schedule ?? "";
|
|
message.disabled = object.disabled ?? false;
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseJobsConfig(): JobsConfig {
|
|
return { systemJobs: [] };
|
|
}
|
|
|
|
export const JobsConfig: MessageFns<JobsConfig> = {
|
|
encode(message: JobsConfig, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
for (const v of message.systemJobs) {
|
|
SystemJob.encode(v!, writer.uint32(10).fork()).join();
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): JobsConfig {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseJobsConfig();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 10) {
|
|
break;
|
|
}
|
|
|
|
message.systemJobs.push(SystemJob.decode(reader, reader.uint32()));
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): JobsConfig {
|
|
return {
|
|
systemJobs: globalThis.Array.isArray(object?.systemJobs)
|
|
? object.systemJobs.map((e: any) => SystemJob.fromJSON(e))
|
|
: [],
|
|
};
|
|
},
|
|
|
|
toJSON(message: JobsConfig): unknown {
|
|
const obj: any = {};
|
|
if (message.systemJobs?.length) {
|
|
obj.systemJobs = message.systemJobs.map((e) => SystemJob.toJSON(e));
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<JobsConfig>, I>>(base?: I): JobsConfig {
|
|
return JobsConfig.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<JobsConfig>, I>>(object: I): JobsConfig {
|
|
const message = createBaseJobsConfig();
|
|
message.systemJobs = object.systemJobs?.map((e) => SystemJob.fromPartial(e)) || [];
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseRecordApiConfig(): RecordApiConfig {
|
|
return { aclWorld: [], aclAuthenticated: [], excludedColumns: [], expand: [] };
|
|
}
|
|
|
|
export const RecordApiConfig: MessageFns<RecordApiConfig> = {
|
|
encode(message: RecordApiConfig, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.name !== undefined && message.name !== "") {
|
|
writer.uint32(10).string(message.name);
|
|
}
|
|
if (message.tableName !== undefined && message.tableName !== "") {
|
|
writer.uint32(18).string(message.tableName);
|
|
}
|
|
if (message.conflictResolution !== undefined && message.conflictResolution !== 0) {
|
|
writer.uint32(40).int32(message.conflictResolution);
|
|
}
|
|
if (message.autofillMissingUserIdColumns !== undefined && message.autofillMissingUserIdColumns !== false) {
|
|
writer.uint32(48).bool(message.autofillMissingUserIdColumns);
|
|
}
|
|
if (message.enableSubscriptions !== undefined && message.enableSubscriptions !== false) {
|
|
writer.uint32(72).bool(message.enableSubscriptions);
|
|
}
|
|
writer.uint32(58).fork();
|
|
for (const v of message.aclWorld) {
|
|
writer.int32(v);
|
|
}
|
|
writer.join();
|
|
writer.uint32(66).fork();
|
|
for (const v of message.aclAuthenticated) {
|
|
writer.int32(v);
|
|
}
|
|
writer.join();
|
|
for (const v of message.excludedColumns) {
|
|
writer.uint32(82).string(v!);
|
|
}
|
|
if (message.createAccessRule !== undefined && message.createAccessRule !== "") {
|
|
writer.uint32(90).string(message.createAccessRule);
|
|
}
|
|
if (message.readAccessRule !== undefined && message.readAccessRule !== "") {
|
|
writer.uint32(98).string(message.readAccessRule);
|
|
}
|
|
if (message.updateAccessRule !== undefined && message.updateAccessRule !== "") {
|
|
writer.uint32(106).string(message.updateAccessRule);
|
|
}
|
|
if (message.deleteAccessRule !== undefined && message.deleteAccessRule !== "") {
|
|
writer.uint32(114).string(message.deleteAccessRule);
|
|
}
|
|
if (message.schemaAccessRule !== undefined && message.schemaAccessRule !== "") {
|
|
writer.uint32(122).string(message.schemaAccessRule);
|
|
}
|
|
for (const v of message.expand) {
|
|
writer.uint32(170).string(v!);
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): RecordApiConfig {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseRecordApiConfig();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 10) {
|
|
break;
|
|
}
|
|
|
|
message.name = reader.string();
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 18) {
|
|
break;
|
|
}
|
|
|
|
message.tableName = reader.string();
|
|
continue;
|
|
}
|
|
case 5: {
|
|
if (tag !== 40) {
|
|
break;
|
|
}
|
|
|
|
message.conflictResolution = reader.int32() as any;
|
|
continue;
|
|
}
|
|
case 6: {
|
|
if (tag !== 48) {
|
|
break;
|
|
}
|
|
|
|
message.autofillMissingUserIdColumns = reader.bool();
|
|
continue;
|
|
}
|
|
case 9: {
|
|
if (tag !== 72) {
|
|
break;
|
|
}
|
|
|
|
message.enableSubscriptions = reader.bool();
|
|
continue;
|
|
}
|
|
case 7: {
|
|
if (tag === 56) {
|
|
message.aclWorld.push(reader.int32() as any);
|
|
|
|
continue;
|
|
}
|
|
|
|
if (tag === 58) {
|
|
const end2 = reader.uint32() + reader.pos;
|
|
while (reader.pos < end2) {
|
|
message.aclWorld.push(reader.int32() as any);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
case 8: {
|
|
if (tag === 64) {
|
|
message.aclAuthenticated.push(reader.int32() as any);
|
|
|
|
continue;
|
|
}
|
|
|
|
if (tag === 66) {
|
|
const end2 = reader.uint32() + reader.pos;
|
|
while (reader.pos < end2) {
|
|
message.aclAuthenticated.push(reader.int32() as any);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
case 10: {
|
|
if (tag !== 82) {
|
|
break;
|
|
}
|
|
|
|
message.excludedColumns.push(reader.string());
|
|
continue;
|
|
}
|
|
case 11: {
|
|
if (tag !== 90) {
|
|
break;
|
|
}
|
|
|
|
message.createAccessRule = reader.string();
|
|
continue;
|
|
}
|
|
case 12: {
|
|
if (tag !== 98) {
|
|
break;
|
|
}
|
|
|
|
message.readAccessRule = reader.string();
|
|
continue;
|
|
}
|
|
case 13: {
|
|
if (tag !== 106) {
|
|
break;
|
|
}
|
|
|
|
message.updateAccessRule = reader.string();
|
|
continue;
|
|
}
|
|
case 14: {
|
|
if (tag !== 114) {
|
|
break;
|
|
}
|
|
|
|
message.deleteAccessRule = reader.string();
|
|
continue;
|
|
}
|
|
case 15: {
|
|
if (tag !== 122) {
|
|
break;
|
|
}
|
|
|
|
message.schemaAccessRule = reader.string();
|
|
continue;
|
|
}
|
|
case 21: {
|
|
if (tag !== 170) {
|
|
break;
|
|
}
|
|
|
|
message.expand.push(reader.string());
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): RecordApiConfig {
|
|
return {
|
|
name: isSet(object.name) ? globalThis.String(object.name) : undefined,
|
|
tableName: isSet(object.tableName) ? globalThis.String(object.tableName) : undefined,
|
|
conflictResolution: isSet(object.conflictResolution)
|
|
? conflictResolutionStrategyFromJSON(object.conflictResolution)
|
|
: undefined,
|
|
autofillMissingUserIdColumns: isSet(object.autofillMissingUserIdColumns)
|
|
? globalThis.Boolean(object.autofillMissingUserIdColumns)
|
|
: undefined,
|
|
enableSubscriptions: isSet(object.enableSubscriptions)
|
|
? globalThis.Boolean(object.enableSubscriptions)
|
|
: undefined,
|
|
aclWorld: globalThis.Array.isArray(object?.aclWorld)
|
|
? object.aclWorld.map((e: any) => permissionFlagFromJSON(e))
|
|
: [],
|
|
aclAuthenticated: globalThis.Array.isArray(object?.aclAuthenticated)
|
|
? object.aclAuthenticated.map((e: any) => permissionFlagFromJSON(e))
|
|
: [],
|
|
excludedColumns: globalThis.Array.isArray(object?.excludedColumns)
|
|
? object.excludedColumns.map((e: any) => globalThis.String(e))
|
|
: [],
|
|
createAccessRule: isSet(object.createAccessRule) ? globalThis.String(object.createAccessRule) : undefined,
|
|
readAccessRule: isSet(object.readAccessRule) ? globalThis.String(object.readAccessRule) : undefined,
|
|
updateAccessRule: isSet(object.updateAccessRule) ? globalThis.String(object.updateAccessRule) : undefined,
|
|
deleteAccessRule: isSet(object.deleteAccessRule) ? globalThis.String(object.deleteAccessRule) : undefined,
|
|
schemaAccessRule: isSet(object.schemaAccessRule) ? globalThis.String(object.schemaAccessRule) : undefined,
|
|
expand: globalThis.Array.isArray(object?.expand) ? object.expand.map((e: any) => globalThis.String(e)) : [],
|
|
};
|
|
},
|
|
|
|
toJSON(message: RecordApiConfig): unknown {
|
|
const obj: any = {};
|
|
if (message.name !== undefined && message.name !== "") {
|
|
obj.name = message.name;
|
|
}
|
|
if (message.tableName !== undefined && message.tableName !== "") {
|
|
obj.tableName = message.tableName;
|
|
}
|
|
if (message.conflictResolution !== undefined && message.conflictResolution !== 0) {
|
|
obj.conflictResolution = conflictResolutionStrategyToJSON(message.conflictResolution);
|
|
}
|
|
if (message.autofillMissingUserIdColumns !== undefined && message.autofillMissingUserIdColumns !== false) {
|
|
obj.autofillMissingUserIdColumns = message.autofillMissingUserIdColumns;
|
|
}
|
|
if (message.enableSubscriptions !== undefined && message.enableSubscriptions !== false) {
|
|
obj.enableSubscriptions = message.enableSubscriptions;
|
|
}
|
|
if (message.aclWorld?.length) {
|
|
obj.aclWorld = message.aclWorld.map((e) => permissionFlagToJSON(e));
|
|
}
|
|
if (message.aclAuthenticated?.length) {
|
|
obj.aclAuthenticated = message.aclAuthenticated.map((e) => permissionFlagToJSON(e));
|
|
}
|
|
if (message.excludedColumns?.length) {
|
|
obj.excludedColumns = message.excludedColumns;
|
|
}
|
|
if (message.createAccessRule !== undefined && message.createAccessRule !== "") {
|
|
obj.createAccessRule = message.createAccessRule;
|
|
}
|
|
if (message.readAccessRule !== undefined && message.readAccessRule !== "") {
|
|
obj.readAccessRule = message.readAccessRule;
|
|
}
|
|
if (message.updateAccessRule !== undefined && message.updateAccessRule !== "") {
|
|
obj.updateAccessRule = message.updateAccessRule;
|
|
}
|
|
if (message.deleteAccessRule !== undefined && message.deleteAccessRule !== "") {
|
|
obj.deleteAccessRule = message.deleteAccessRule;
|
|
}
|
|
if (message.schemaAccessRule !== undefined && message.schemaAccessRule !== "") {
|
|
obj.schemaAccessRule = message.schemaAccessRule;
|
|
}
|
|
if (message.expand?.length) {
|
|
obj.expand = message.expand;
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<RecordApiConfig>, I>>(base?: I): RecordApiConfig {
|
|
return RecordApiConfig.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<RecordApiConfig>, I>>(object: I): RecordApiConfig {
|
|
const message = createBaseRecordApiConfig();
|
|
message.name = object.name ?? "";
|
|
message.tableName = object.tableName ?? "";
|
|
message.conflictResolution = object.conflictResolution ?? 0;
|
|
message.autofillMissingUserIdColumns = object.autofillMissingUserIdColumns ?? false;
|
|
message.enableSubscriptions = object.enableSubscriptions ?? false;
|
|
message.aclWorld = object.aclWorld?.map((e) => e) || [];
|
|
message.aclAuthenticated = object.aclAuthenticated?.map((e) => e) || [];
|
|
message.excludedColumns = object.excludedColumns?.map((e) => e) || [];
|
|
message.createAccessRule = object.createAccessRule ?? "";
|
|
message.readAccessRule = object.readAccessRule ?? "";
|
|
message.updateAccessRule = object.updateAccessRule ?? "";
|
|
message.deleteAccessRule = object.deleteAccessRule ?? "";
|
|
message.schemaAccessRule = object.schemaAccessRule ?? "";
|
|
message.expand = object.expand?.map((e) => e) || [];
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseJsonSchemaConfig(): JsonSchemaConfig {
|
|
return {};
|
|
}
|
|
|
|
export const JsonSchemaConfig: MessageFns<JsonSchemaConfig> = {
|
|
encode(message: JsonSchemaConfig, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.name !== undefined && message.name !== "") {
|
|
writer.uint32(10).string(message.name);
|
|
}
|
|
if (message.schema !== undefined && message.schema !== "") {
|
|
writer.uint32(18).string(message.schema);
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): JsonSchemaConfig {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseJsonSchemaConfig();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 1: {
|
|
if (tag !== 10) {
|
|
break;
|
|
}
|
|
|
|
message.name = reader.string();
|
|
continue;
|
|
}
|
|
case 2: {
|
|
if (tag !== 18) {
|
|
break;
|
|
}
|
|
|
|
message.schema = reader.string();
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): JsonSchemaConfig {
|
|
return {
|
|
name: isSet(object.name) ? globalThis.String(object.name) : undefined,
|
|
schema: isSet(object.schema) ? globalThis.String(object.schema) : undefined,
|
|
};
|
|
},
|
|
|
|
toJSON(message: JsonSchemaConfig): unknown {
|
|
const obj: any = {};
|
|
if (message.name !== undefined && message.name !== "") {
|
|
obj.name = message.name;
|
|
}
|
|
if (message.schema !== undefined && message.schema !== "") {
|
|
obj.schema = message.schema;
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<JsonSchemaConfig>, I>>(base?: I): JsonSchemaConfig {
|
|
return JsonSchemaConfig.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<JsonSchemaConfig>, I>>(object: I): JsonSchemaConfig {
|
|
const message = createBaseJsonSchemaConfig();
|
|
message.name = object.name ?? "";
|
|
message.schema = object.schema ?? "";
|
|
return message;
|
|
},
|
|
};
|
|
|
|
function createBaseConfig(): Config {
|
|
return { email: undefined, server: undefined, auth: undefined, jobs: undefined, recordApis: [], schemas: [] };
|
|
}
|
|
|
|
export const Config: MessageFns<Config> = {
|
|
encode(message: Config, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
if (message.email !== undefined) {
|
|
EmailConfig.encode(message.email, writer.uint32(18).fork()).join();
|
|
}
|
|
if (message.server !== undefined) {
|
|
ServerConfig.encode(message.server, writer.uint32(26).fork()).join();
|
|
}
|
|
if (message.auth !== undefined) {
|
|
AuthConfig.encode(message.auth, writer.uint32(34).fork()).join();
|
|
}
|
|
if (message.jobs !== undefined) {
|
|
JobsConfig.encode(message.jobs, writer.uint32(42).fork()).join();
|
|
}
|
|
for (const v of message.recordApis) {
|
|
RecordApiConfig.encode(v!, writer.uint32(90).fork()).join();
|
|
}
|
|
for (const v of message.schemas) {
|
|
JsonSchemaConfig.encode(v!, writer.uint32(170).fork()).join();
|
|
}
|
|
return writer;
|
|
},
|
|
|
|
decode(input: BinaryReader | Uint8Array, length?: number): Config {
|
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
const message = createBaseConfig();
|
|
while (reader.pos < end) {
|
|
const tag = reader.uint32();
|
|
switch (tag >>> 3) {
|
|
case 2: {
|
|
if (tag !== 18) {
|
|
break;
|
|
}
|
|
|
|
message.email = EmailConfig.decode(reader, reader.uint32());
|
|
continue;
|
|
}
|
|
case 3: {
|
|
if (tag !== 26) {
|
|
break;
|
|
}
|
|
|
|
message.server = ServerConfig.decode(reader, reader.uint32());
|
|
continue;
|
|
}
|
|
case 4: {
|
|
if (tag !== 34) {
|
|
break;
|
|
}
|
|
|
|
message.auth = AuthConfig.decode(reader, reader.uint32());
|
|
continue;
|
|
}
|
|
case 5: {
|
|
if (tag !== 42) {
|
|
break;
|
|
}
|
|
|
|
message.jobs = JobsConfig.decode(reader, reader.uint32());
|
|
continue;
|
|
}
|
|
case 11: {
|
|
if (tag !== 90) {
|
|
break;
|
|
}
|
|
|
|
message.recordApis.push(RecordApiConfig.decode(reader, reader.uint32()));
|
|
continue;
|
|
}
|
|
case 21: {
|
|
if (tag !== 170) {
|
|
break;
|
|
}
|
|
|
|
message.schemas.push(JsonSchemaConfig.decode(reader, reader.uint32()));
|
|
continue;
|
|
}
|
|
}
|
|
if ((tag & 7) === 4 || tag === 0) {
|
|
break;
|
|
}
|
|
reader.skip(tag & 7);
|
|
}
|
|
return message;
|
|
},
|
|
|
|
fromJSON(object: any): Config {
|
|
return {
|
|
email: isSet(object.email) ? EmailConfig.fromJSON(object.email) : undefined,
|
|
server: isSet(object.server) ? ServerConfig.fromJSON(object.server) : undefined,
|
|
auth: isSet(object.auth) ? AuthConfig.fromJSON(object.auth) : undefined,
|
|
jobs: isSet(object.jobs) ? JobsConfig.fromJSON(object.jobs) : undefined,
|
|
recordApis: globalThis.Array.isArray(object?.recordApis)
|
|
? object.recordApis.map((e: any) => RecordApiConfig.fromJSON(e))
|
|
: [],
|
|
schemas: globalThis.Array.isArray(object?.schemas)
|
|
? object.schemas.map((e: any) => JsonSchemaConfig.fromJSON(e))
|
|
: [],
|
|
};
|
|
},
|
|
|
|
toJSON(message: Config): unknown {
|
|
const obj: any = {};
|
|
if (message.email !== undefined) {
|
|
obj.email = EmailConfig.toJSON(message.email);
|
|
}
|
|
if (message.server !== undefined) {
|
|
obj.server = ServerConfig.toJSON(message.server);
|
|
}
|
|
if (message.auth !== undefined) {
|
|
obj.auth = AuthConfig.toJSON(message.auth);
|
|
}
|
|
if (message.jobs !== undefined) {
|
|
obj.jobs = JobsConfig.toJSON(message.jobs);
|
|
}
|
|
if (message.recordApis?.length) {
|
|
obj.recordApis = message.recordApis.map((e) => RecordApiConfig.toJSON(e));
|
|
}
|
|
if (message.schemas?.length) {
|
|
obj.schemas = message.schemas.map((e) => JsonSchemaConfig.toJSON(e));
|
|
}
|
|
return obj;
|
|
},
|
|
|
|
create<I extends Exact<DeepPartial<Config>, I>>(base?: I): Config {
|
|
return Config.fromPartial(base ?? ({} as any));
|
|
},
|
|
fromPartial<I extends Exact<DeepPartial<Config>, I>>(object: I): Config {
|
|
const message = createBaseConfig();
|
|
message.email = (object.email !== undefined && object.email !== null)
|
|
? EmailConfig.fromPartial(object.email)
|
|
: undefined;
|
|
message.server = (object.server !== undefined && object.server !== null)
|
|
? ServerConfig.fromPartial(object.server)
|
|
: undefined;
|
|
message.auth = (object.auth !== undefined && object.auth !== null)
|
|
? AuthConfig.fromPartial(object.auth)
|
|
: undefined;
|
|
message.jobs = (object.jobs !== undefined && object.jobs !== null)
|
|
? JobsConfig.fromPartial(object.jobs)
|
|
: undefined;
|
|
message.recordApis = object.recordApis?.map((e) => RecordApiConfig.fromPartial(e)) || [];
|
|
message.schemas = object.schemas?.map((e) => JsonSchemaConfig.fromPartial(e)) || [];
|
|
return message;
|
|
},
|
|
};
|
|
|
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
|
|
export type DeepPartial<T> = T extends Builtin ? T
|
|
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
|
|
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
|
|
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
|
|
: Partial<T>;
|
|
|
|
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
export type Exact<P, I extends P> = P extends Builtin ? P
|
|
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
|
|
|
|
function longToNumber(int64: { toString(): string }): number {
|
|
const num = globalThis.Number(int64.toString());
|
|
if (num > globalThis.Number.MAX_SAFE_INTEGER) {
|
|
throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
|
|
}
|
|
if (num < globalThis.Number.MIN_SAFE_INTEGER) {
|
|
throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
|
|
}
|
|
return num;
|
|
}
|
|
|
|
function isObject(value: any): boolean {
|
|
return typeof value === "object" && value !== null;
|
|
}
|
|
|
|
function isSet(value: any): boolean {
|
|
return value !== null && value !== undefined;
|
|
}
|
|
|
|
export interface MessageFns<T> {
|
|
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
fromJSON(object: any): T;
|
|
toJSON(message: T): unknown;
|
|
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
}
|