Files
AFFiNE-Mirror/packages/backend/server/src/fundamentals/config/def.ts
T
renovate 66231e0e41 chore: bump up oxlint version to v0.2.17 (#5778)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [oxlint](https://oxc-project.github.io) ([source](https://togithub.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`0.2.14` -> `0.2.17`](https://renovatebot.com/diffs/npm/oxlint/0.2.14/0.2.17) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.2.14/0.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.2.14/0.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>oxc-project/oxc (oxlint)</summary>

### [`v0.2.17`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.2.17): oxlint v0.2.17

[Compare Source](https://togithub.com/oxc-project/oxc/compare/7066d55153ad70f95ae975adc3958c1010f9c5ff...df11d10a2220e9aa7a33d9ab39ed662c2ba6fdb5)

##### What's Changed

-   feat(linter): eslint-plugin-jest/prefer-lowercase-title by [@&#8203;eryue0220](https://togithub.com/eryue0220) in [https://github.com/oxc-project/oxc/pull/2911](https://togithub.com/oxc-project/oxc/pull/2911)
-   feat(linter): typescript-eslint/consistent-type-definitions by [@&#8203;todor-a](https://togithub.com/todor-a) in [https://github.com/oxc-project/oxc/pull/2885](https://togithub.com/oxc-project/oxc/pull/2885)
-   fix(cli): fix `oxlint --format json` yields 0 files to lint by [@&#8203;Boshen](https://togithub.com/Boshen) in [https://github.com/oxc-project/oxc/pull/2940](https://togithub.com/oxc-project/oxc/pull/2940)
-   fix(cli): if format is json do not print summary information ([#&#8203;2899](https://togithub.com/oxc-project/oxc/issues/2899)) by [@&#8203;kalvenschraut](https://togithub.com/kalvenschraut) in [https://github.com/oxc-project/oxc/pull/2925](https://togithub.com/oxc-project/oxc/pull/2925)
-   fix(linter): import/no-cycle ignore type-only imports by [@&#8203;JohnDaly](https://togithub.com/JohnDaly) in [https://github.com/oxc-project/oxc/pull/2924](https://togithub.com/oxc-project/oxc/pull/2924)
-   refactor(semantic/jsdoc): Rework JSDoc struct for better Span handling by [@&#8203;leaysgur](https://togithub.com/leaysgur) in [https://github.com/oxc-project/oxc/pull/2917](https://togithub.com/oxc-project/oxc/pull/2917)

##### New Contributors

-   [@&#8203;bradzacher](https://togithub.com/bradzacher) made their first contribution in [https://github.com/oxc-project/oxc/pull/2938](https://togithub.com/oxc-project/oxc/pull/2938)

**Full Changelog**: https://github.com/oxc-project/oxc/compare/oxlint_v0.2.16...oxlint_v0.2.17

### [`v0.2.16`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.2.16): oxlint v0.2.16

[Compare Source](https://togithub.com/oxc-project/oxc/compare/e7307ed23ca9b0707586b6bf4220cafb221ae86e...7066d55153ad70f95ae975adc3958c1010f9c5ff)

#### What's Changed

-   feat(linter): [@&#8203;typescript-eslint/prefer-for-of](https://togithub.com/typescript-eslint/prefer-for-of) by [@&#8203;charnog](https://togithub.com/charnog) in [https://github.com/oxc-project/oxc/pull/2789](https://togithub.com/oxc-project/oxc/pull/2789)
-   feat(linter): Implement jsdoc/check-access by [@&#8203;leaysgur](https://togithub.com/leaysgur) in [https://github.com/oxc-project/oxc/pull/2642](https://togithub.com/oxc-project/oxc/pull/2642)
-   feat(linter): Implement jsdoc/empty-tags by [@&#8203;leaysgur](https://togithub.com/leaysgur) in [https://github.com/oxc-project/oxc/pull/2893](https://togithub.com/oxc-project/oxc/pull/2893)
-   feat(linter): eslint-plugin-jest/prefer-mock-promise-sorthand by [@&#8203;eryue0220](https://togithub.com/eryue0220) in [https://github.com/oxc-project/oxc/pull/2864](https://togithub.com/oxc-project/oxc/pull/2864)
-   feat(linter/import): Add `ignoreTypes` option for the `import/no-cycle` rule by [@&#8203;JohnDaly](https://togithub.com/JohnDaly) in [https://github.com/oxc-project/oxc/pull/2905](https://togithub.com/oxc-project/oxc/pull/2905)
-   fix(ast): `FinallyClause` won't get visited as `BlockStatement` anymore. by [@&#8203;rzvxa](https://togithub.com/rzvxa) in [https://github.com/oxc-project/oxc/pull/2881](https://togithub.com/oxc-project/oxc/pull/2881)
-   fix(linter): handle self closing script tags in astro partial loader ([#&#8203;2017](https://togithub.com/oxc-project/oxc/issues/2017)) by [@&#8203;kalvenschraut](https://togithub.com/kalvenschraut) in [https://github.com/oxc-project/oxc/pull/2907](https://togithub.com/oxc-project/oxc/pull/2907)
-   fix(linter): svelte partial loader handle generics ([#&#8203;2875](https://togithub.com/oxc-project/oxc/issues/2875)) by [@&#8203;kalvenschraut](https://togithub.com/kalvenschraut) in [https://github.com/oxc-project/oxc/pull/2906](https://togithub.com/oxc-project/oxc/pull/2906)

#### New Contributors

-   [@&#8203;charnog](https://togithub.com/charnog) made their first contribution in [https://github.com/oxc-project/oxc/pull/2789](https://togithub.com/oxc-project/oxc/pull/2789)
-   [@&#8203;kalvenschraut](https://togithub.com/kalvenschraut) made their first contribution in [https://github.com/oxc-project/oxc/pull/2906](https://togithub.com/oxc-project/oxc/pull/2906)
-   [@&#8203;JohnDaly](https://togithub.com/JohnDaly) made their first contribution in [https://github.com/oxc-project/oxc/pull/2905](https://togithub.com/oxc-project/oxc/pull/2905)

**Full Changelog**: https://github.com/oxc-project/oxc/compare/oxlint_v0.2.15...oxlint_v0.2.16

### [`v0.2.15`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.2.15): oxlint v0.2.15

[Compare Source](https://togithub.com/oxc-project/oxc/compare/b1343d7bcbd490105583b561946f057ac91e40cf...e7307ed23ca9b0707586b6bf4220cafb221ae86e)

#### What's Changed

-   feat(linter): default_param_last by [@&#8203;JoSeBu1](https://togithub.com/JoSeBu1) in [https://github.com/oxc-project/oxc/pull/2756](https://togithub.com/oxc-project/oxc/pull/2756)
-   feat(linter): eslint-plugin-jest/no-untyped-mock-factory by [@&#8203;eryue0220](https://togithub.com/eryue0220) in [https://github.com/oxc-project/oxc/pull/2807](https://togithub.com/oxc-project/oxc/pull/2807)
-   feat(linter): eslint-plugin-jest/prefer-comparison-matcher by [@&#8203;eryue0220](https://togithub.com/eryue0220) in [https://github.com/oxc-project/oxc/pull/2806](https://togithub.com/oxc-project/oxc/pull/2806)
-   feat(linter): eslint-plugin-react checked-requires-onchange-or-readonly by [@&#8203;keita-hino](https://togithub.com/keita-hino) in [https://github.com/oxc-project/oxc/pull/2754](https://togithub.com/oxc-project/oxc/pull/2754)
-   feat(linter): eslint/no-iterator by [@&#8203;JoSeBu1](https://togithub.com/JoSeBu1) in [https://github.com/oxc-project/oxc/pull/2758](https://togithub.com/oxc-project/oxc/pull/2758)
-   feat(linter): fallback to the default tsconfig path by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/2842](https://togithub.com/oxc-project/oxc/pull/2842)
-   feat(linter): no_script_url by [@&#8203;JoSeBu1](https://togithub.com/JoSeBu1) in [https://github.com/oxc-project/oxc/pull/2761](https://togithub.com/oxc-project/oxc/pull/2761)
-   feat(linter/import) check deep namespace in namespace rule by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/2805](https://togithub.com/oxc-project/oxc/pull/2805)
-   feat(linter/import) check module import in no_duplicates by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/2771](https://togithub.com/oxc-project/oxc/pull/2771)
-   feat(linter/import) check type import in no_duplicates by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/2777](https://togithub.com/oxc-project/oxc/pull/2777)
-   feat(linter/import) support allow_computed option in namespace by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/2840](https://togithub.com/oxc-project/oxc/pull/2840)
-   feat(linter/import) support check re-export in named by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/2769](https://togithub.com/oxc-project/oxc/pull/2769)
-   feat(linter/import): ignore type-only imports and exports in no_unresolved by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/2849](https://togithub.com/oxc-project/oxc/pull/2849)
-   fix(linter/import): false positive for indirect export in namespace by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/2862](https://togithub.com/oxc-project/oxc/pull/2862)
-   fix(linter/import): ignore export declaration in no-duplicates by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/2863](https://togithub.com/oxc-project/oxc/pull/2863)
-   fix(linter/max-lines): only report codes that exceed the line limit by [@&#8203;mysteryven](https://togithub.com/mysteryven) in [https://github.com/oxc-project/oxc/pull/2778](https://togithub.com/oxc-project/oxc/pull/2778)
-   fix(parser): add support for empty module declaration by [@&#8203;rzvxa](https://togithub.com/rzvxa) in [https://github.com/oxc-project/oxc/pull/2834](https://togithub.com/oxc-project/oxc/pull/2834)

#### New Contributors

-   [@&#8203;rzvxa](https://togithub.com/rzvxa) made their first contribution in [https://github.com/oxc-project/oxc/pull/2764](https://togithub.com/oxc-project/oxc/pull/2764)

**Full Changelog**: https://github.com/oxc-project/oxc/compare/oxlint_v0.2.14...oxlint_v0.2.15

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
2024-04-11 10:51:02 +00:00

343 lines
6.8 KiB
TypeScript

import type { ApolloDriverConfig } from '@nestjs/apollo';
import SMTPTransport from 'nodemailer/lib/smtp-transport';
import type { LeafPaths } from '../utils/types';
import type { AFFiNEStorageConfig } from './storage';
declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace globalThis {
// eslint-disable-next-line no-var
var AFFiNE: AFFiNEConfig;
}
}
export type EnvConfigType = 'string' | 'int' | 'float' | 'boolean';
export type ServerFlavor = 'allinone' | 'graphql' | 'sync';
export type AFFINE_ENV = 'dev' | 'beta' | 'production';
export type NODE_ENV = 'development' | 'test' | 'production';
export enum DeploymentType {
Affine = 'affine',
Selfhosted = 'selfhosted',
}
export type ConfigPaths = LeafPaths<
Omit<
AFFiNEConfig,
| 'ENV_MAP'
| 'version'
| 'type'
| 'isSelfhosted'
| 'flavor'
| 'env'
| 'affine'
| 'deploy'
| 'node'
| 'baseUrl'
| 'origin'
>,
'',
'.....'
>;
/**
* All Configurations that would control AFFiNE server behaviors
*
*/
export interface AFFiNEConfig {
ENV_MAP: Record<string, ConfigPaths | [ConfigPaths, EnvConfigType?]>;
/**
* Server Identity
*/
serverId: string;
/**
* Name may show on the UI
*/
serverName: string;
/**
* System version
*/
readonly version: string;
/**
* Deployment type, AFFiNE Cloud, or Selfhosted
*/
get type(): DeploymentType;
/**
* Fast detect whether currently deployed in a selfhosted environment
*/
get isSelfhosted(): boolean;
/**
* Server flavor
*/
get flavor(): {
type: string;
graphql: boolean;
sync: boolean;
};
/**
* Application secrets for authentication and data encryption
*/
secrets: {
/**
* Application public key
*
*/
publicKey: string;
/**
* Application private key
*
*/
privateKey: string;
};
/**
* Deployment environment
*/
readonly AFFINE_ENV: AFFINE_ENV;
/**
* alias to `process.env.NODE_ENV`
*
* @default 'development'
* @env NODE_ENV
*/
readonly NODE_ENV: NODE_ENV;
/**
* fast AFFiNE environment judge
*/
get affine(): {
canary: boolean;
beta: boolean;
stable: boolean;
};
/**
* fast environment judge
*/
get node(): {
prod: boolean;
dev: boolean;
test: boolean;
};
get deploy(): boolean;
/**
* Whether the server is hosted on a ssl enabled domain
*/
https: boolean;
/**
* where the server get deployed.
*
* @default 'localhost'
* @env AFFINE_SERVER_HOST
*/
host: string;
/**
* which port the server will listen on
*
* @default 3010
* @env AFFINE_SERVER_PORT
*/
port: number;
/**
* subpath where the server get deployed if there is.
*
* @default '' // empty string
* @env AFFINE_SERVER_SUB_PATH
*/
path: string;
/**
* Readonly property `baseUrl` is the full url of the server consists of `https://HOST:PORT/PATH`.
*
* if `host` is not `localhost` then the port will be ignored
*/
get baseUrl(): string;
/**
* Readonly property `origin` is domain origin in the form of `https://HOST:PORT` without subpath.
*
* if `host` is not `localhost` then the port will be ignored
*/
get origin(): string;
/**
* the database config
*/
db: {
url: string;
};
/**
* the apollo driver config
*/
graphql: ApolloDriverConfig;
/**
* app features flag
*/
featureFlags: {
earlyAccessPreview: boolean;
syncClientVersionCheck: boolean;
};
/**
* Configuration for Object Storage, which defines how blobs and avatar assets are stored.
*/
storage: AFFiNEStorageConfig;
/**
* Rate limiter config
*/
rateLimiter: {
/**
* How long each request will be throttled (seconds)
* @default 60
* @env THROTTLE_TTL
*/
ttl: number;
/**
* How many requests can be made in the given time frame
* @default 120
* @env THROTTLE_LIMIT
*/
limit: number;
};
/**
* authentication config
*/
auth: {
/**
* The minimum and maximum length of the password when registering new users
*
* @default [8,32]
*/
password: {
/**
* The minimum length of the password
*
* @default 8
*/
minLength: number;
/**
* The maximum length of the password
*
* @default 32
*/
maxLength: number;
};
session: {
/**
* Application auth expiration time in seconds
*
* @default 15 days
*/
ttl: number;
};
/**
* Application access token config
*/
accessToken: {
/**
* Application access token expiration time in seconds
*
* @default 7 days
*/
ttl: number;
/**
* Application refresh token expiration time in seconds
*
* @default 30 days
*/
refreshTokenTtl: number;
};
captcha: {
/**
* whether to enable captcha
*/
enable: boolean;
turnstile: {
/**
* Cloudflare Turnstile CAPTCHA secret
* default value is demo api key, witch always return success
*/
secret: string;
};
challenge: {
/**
* challenge bits length
* default value is 20, which can resolve in 0.5-3 second in M2 MacBook Air in single thread
* @default 20
*/
bits: number;
};
};
};
/**
* Configurations for mail service used to post auth or bussiness mails.
*
* @see https://nodemailer.com/smtp/
*/
mailer?: SMTPTransport.Options;
doc: {
manager: {
/**
* Whether auto merge updates into doc snapshot.
*/
enableUpdateAutoMerging: boolean;
/**
* How often the [DocManager] will start a new turn of merging pending updates into doc snapshot.
*
* This is not the latency a new joint client will take to see the latest doc,
* but the buffer time we introduced to reduce the load of our service.
*
* in {ms}
*/
updatePollInterval: number;
/**
* The maximum number of updates that will be pulled from the server at once.
* Existing for avoiding the server to be overloaded when there are too many updates for one doc.
*/
maxUpdatesPullCount: number;
/**
* Use `y-octo` to merge updates at the same time when merging using Yjs.
*
* This is an experimental feature, and aimed to check the correctness of JwstCodec.
*/
experimentalMergeWithYOcto: boolean;
};
history: {
/**
* How long the buffer time of creating a new history snapshot when doc get updated.
*
* in {ms}
*/
interval: number;
};
};
metrics: {
enabled: boolean;
};
telemetry: {
enabled: boolean;
token: string;
};
}
export * from './storage';