@atproto/pds 0.4.196 → 0.4.198
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/CHANGELOG.md +32 -0
- package/dist/account-manager/db/schema/lexicon.d.ts +2 -2
- package/dist/account-manager/db/schema/lexicon.d.ts.map +1 -1
- package/dist/account-manager/db/schema/lexicon.js.map +1 -1
- package/dist/api/com/atproto/admin/getInviteCodes.d.ts +1 -1
- package/dist/api/com/atproto/sync/listRepos.d.ts +1 -1
- package/dist/config/config.d.ts +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +6 -3
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.d.ts +100 -101
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +6 -5
- package/dist/config/env.js.map +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +23 -39
- package/dist/context.js.map +1 -1
- package/dist/db/pagination.d.ts +1 -1
- package/dist/handle/index.d.ts +1 -1
- package/dist/handle/index.d.ts.map +1 -1
- package/dist/lexicon/index.d.ts +19 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +48 -1
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +668 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +356 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/defs.d.ts +24 -0
- package/dist/lexicon/types/app/bsky/contact/defs.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/defs.js +25 -0
- package/dist/lexicon/types/app/bsky/contact/defs.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.d.ts +25 -0
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/getMatches.d.ts +25 -0
- package/dist/lexicon/types/app/bsky/contact/getMatches.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/getMatches.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/getMatches.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.d.ts +21 -0
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/importContacts.d.ts +30 -0
- package/dist/lexicon/types/app/bsky/contact/importContacts.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/importContacts.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/importContacts.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/removeData.d.ts +23 -0
- package/dist/lexicon/types/app/bsky/contact/removeData.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/removeData.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/removeData.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.d.ts +25 -0
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.d.ts +29 -0
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.js.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/defs.d.ts +8 -0
- package/dist/lexicon/types/app/bsky/graph/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
- package/package.json +16 -17
- package/src/account-manager/db/schema/lexicon.ts +2 -2
- package/src/config/config.ts +7 -3
- package/src/config/env.ts +6 -150
- package/src/context.ts +39 -47
- package/src/lexicon/index.ts +101 -0
- package/src/lexicon/lexicons.ts +377 -0
- package/src/lexicon/types/app/bsky/contact/defs.ts +52 -0
- package/src/lexicon/types/app/bsky/contact/dismissMatch.ts +43 -0
- package/src/lexicon/types/app/bsky/contact/getMatches.ts +43 -0
- package/src/lexicon/types/app/bsky/contact/getSyncStatus.ts +39 -0
- package/src/lexicon/types/app/bsky/contact/importContacts.ts +49 -0
- package/src/lexicon/types/app/bsky/contact/removeData.ts +40 -0
- package/src/lexicon/types/app/bsky/contact/startPhoneVerification.ts +43 -0
- package/src/lexicon/types/app/bsky/contact/verifyPhone.ts +48 -0
- package/src/lexicon/types/app/bsky/graph/defs.ts +8 -0
- package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @atproto/pds
|
|
2
2
|
|
|
3
|
+
## 0.4.198
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#4423](https://github.com/bluesky-social/atproto/pull/4423) [`a6e16cd`](https://github.com/bluesky-social/atproto/commit/a6e16cd0cd3029caf63ce2312dc5207532654763) Thanks [@foysalit](https://github.com/foysalit)! - Add min length for required comment fields in ozone events
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`693784c`](https://github.com/bluesky-social/atproto/commit/693784c3a0dee4b6a29aa1e018fce682dcae148f), [`d551b0e`](https://github.com/bluesky-social/atproto/commit/d551b0e3527714c111c3ec6e4c90ad7f46369fab), [`380aa3b`](https://github.com/bluesky-social/atproto/commit/380aa3bfe73b5c4e59961c27ae988786b69c129d), [`308f432`](https://github.com/bluesky-social/atproto/commit/308f432f7aef196b4df0a6dc7c5367ab5a8b8964), [`a6e16cd`](https://github.com/bluesky-social/atproto/commit/a6e16cd0cd3029caf63ce2312dc5207532654763), [`7e1d458`](https://github.com/bluesky-social/atproto/commit/7e1d45877bca0f615e7b1313cfcc66823b3de758)]:
|
|
10
|
+
- @atproto/lex-data@0.0.3
|
|
11
|
+
- @atproto/lexicon@0.6.0
|
|
12
|
+
- @atproto/api@0.18.5
|
|
13
|
+
- @atproto/lex-cbor@0.0.3
|
|
14
|
+
- @atproto/common@0.5.3
|
|
15
|
+
- @atproto/xrpc-server@0.10.3
|
|
16
|
+
- @atproto/repo@0.8.12
|
|
17
|
+
- @atproto/xrpc@0.7.7
|
|
18
|
+
- @atproto/oauth-provider@0.14.1
|
|
19
|
+
|
|
20
|
+
## 0.4.197
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- Updated dependencies [[`be8e6c1`](https://github.com/bluesky-social/atproto/commit/be8e6c1f25814202b98e2616a217599a6c46e0db), [`be8e6c1`](https://github.com/bluesky-social/atproto/commit/be8e6c1f25814202b98e2616a217599a6c46e0db), [`8012627`](https://github.com/bluesky-social/atproto/commit/8012627a1226cb2f1c753385ad2497b6b43ffd2e), [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba), [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba), [`bcae2b7`](https://github.com/bluesky-social/atproto/commit/bcae2b77b68da6dc2ec202651c8bf41fd5769f69), [`8012627`](https://github.com/bluesky-social/atproto/commit/8012627a1226cb2f1c753385ad2497b6b43ffd2e), [`0adc852`](https://github.com/bluesky-social/atproto/commit/0adc852c31ffa154c1b93e38182c35880ecdb4ba), [`d396de0`](https://github.com/bluesky-social/atproto/commit/d396de016d1d55d08cfad1dabd3ffd9eaeea76ea), [`90f1569`](https://github.com/bluesky-social/atproto/commit/90f15698ee63d9a7374f1206754eda5d530873d7), [`688f9d6`](https://github.com/bluesky-social/atproto/commit/688f9d67597ba96d6e9c4a4aec4d394d42f4cbf4), [`0adc852`](https://github.com/bluesky-social/atproto/commit/0adc852c31ffa154c1b93e38182c35880ecdb4ba), [`be8e6c1`](https://github.com/bluesky-social/atproto/commit/be8e6c1f25814202b98e2616a217599a6c46e0db)]:
|
|
25
|
+
- @atproto/oauth-provider@0.14.0
|
|
26
|
+
- @atproto/oauth-scopes@0.3.0
|
|
27
|
+
- @atproto/lex-data@0.0.2
|
|
28
|
+
- @atproto/lex-cbor@0.0.2
|
|
29
|
+
- @atproto/syntax@0.4.2
|
|
30
|
+
- @atproto/crypto@0.4.5
|
|
31
|
+
- @atproto/api@0.18.4
|
|
32
|
+
- @atproto/common@0.5.2
|
|
33
|
+
- @atproto/xrpc-server@0.10.2
|
|
34
|
+
|
|
3
35
|
## 0.4.196
|
|
4
36
|
|
|
5
37
|
### Patch Changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LexiconDocument } from '@atproto/oauth-provider';
|
|
2
2
|
import { DateISO, JsonEncoded } from '../../../db/cast';
|
|
3
3
|
export interface Lexicon {
|
|
4
4
|
nsid: string;
|
|
@@ -6,7 +6,7 @@ export interface Lexicon {
|
|
|
6
6
|
updatedAt: DateISO;
|
|
7
7
|
lastSucceededAt: null | DateISO;
|
|
8
8
|
uri: null | string;
|
|
9
|
-
lexicon: null | JsonEncoded<
|
|
9
|
+
lexicon: null | JsonEncoded<LexiconDocument>;
|
|
10
10
|
}
|
|
11
11
|
export declare const tableName = "lexicon";
|
|
12
12
|
export type PartialDB = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexicon.d.ts","sourceRoot":"","sources":["../../../../src/account-manager/db/schema/lexicon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"lexicon.d.ts","sourceRoot":"","sources":["../../../../src/account-manager/db/schema/lexicon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,IAAI,GAAG,OAAO,CAAA;IAC/B,GAAG,EAAE,IAAI,GAAG,MAAM,CAAA;IAClB,OAAO,EAAE,IAAI,GAAG,WAAW,CAAC,eAAe,CAAC,CAAA;CAC7C;AAED,eAAO,MAAM,SAAS,YAAY,CAAA;AAElC,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexicon.js","sourceRoot":"","sources":["../../../../src/account-manager/db/schema/lexicon.ts"],"names":[],"mappings":";;;AAYa,QAAA,SAAS,GAAG,SAAS,CAAA","sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"lexicon.js","sourceRoot":"","sources":["../../../../src/account-manager/db/schema/lexicon.ts"],"names":[],"mappings":";;;AAYa,QAAA,SAAS,GAAG,SAAS,CAAA","sourcesContent":["import type { LexiconDocument } from '@atproto/oauth-provider'\nimport { DateISO, JsonEncoded } from '../../../db/cast'\n\nexport interface Lexicon {\n nsid: string\n createdAt: DateISO\n updatedAt: DateISO\n lastSucceededAt: null | DateISO\n uri: null | string\n lexicon: null | JsonEncoded<LexiconDocument>\n}\n\nexport const tableName = 'lexicon'\n\nexport type PartialDB = { [tableName]: Lexicon }\n"]}
|
|
@@ -13,7 +13,7 @@ export declare class TimeCodeKeyset extends GenericKeyset<TimeCodeResult, Cursor
|
|
|
13
13
|
secondary: string;
|
|
14
14
|
};
|
|
15
15
|
cursorToLabeledResult(cursor: Cursor): {
|
|
16
|
-
primary: string
|
|
16
|
+
primary: `${string}-${string}-${string}T${string}:${string}:${string}Z`;
|
|
17
17
|
secondary: string;
|
|
18
18
|
};
|
|
19
19
|
}
|
|
@@ -13,7 +13,7 @@ export declare class TimeDidKeyset extends GenericKeyset<TimeDidResult, Cursor>
|
|
|
13
13
|
secondary: string;
|
|
14
14
|
};
|
|
15
15
|
cursorToLabeledResult(cursor: Cursor): {
|
|
16
|
-
primary: string
|
|
16
|
+
primary: `${string}-${string}-${string}T${string}:${string}:${string}Z`;
|
|
17
17
|
secondary: string;
|
|
18
18
|
};
|
|
19
19
|
}
|
package/dist/config/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config/config.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.envToCfg = void 0;
|
|
|
7
7
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const common_1 = require("@atproto/common");
|
|
10
|
+
const syntax_1 = require("@atproto/syntax");
|
|
10
11
|
// off-config but still from env:
|
|
11
12
|
// logging: LOG_LEVEL, LOG_SYSTEMS, LOG_ENABLED, LOG_DESTINATION
|
|
12
13
|
const envToCfg = (env) => {
|
|
@@ -276,9 +277,11 @@ const envToCfg = (env) => {
|
|
|
276
277
|
trustedClients: env.trustedOAuthClients,
|
|
277
278
|
},
|
|
278
279
|
};
|
|
279
|
-
const lexiconCfg = {
|
|
280
|
-
|
|
281
|
-
|
|
280
|
+
const lexiconCfg = {};
|
|
281
|
+
if (env.lexiconDidAuthority != null) {
|
|
282
|
+
(0, syntax_1.ensureValidDid)(env.lexiconDidAuthority);
|
|
283
|
+
lexiconCfg.didAuthority = env.lexiconDidAuthority;
|
|
284
|
+
}
|
|
282
285
|
return {
|
|
283
286
|
service: serviceCfg,
|
|
284
287
|
db: dbCfg,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport path from 'node:path'\nimport { DAY, HOUR, SECOND } from '@atproto/common'\nimport { BrandingInput, HcaptchaConfig } from '@atproto/oauth-provider'\nimport { ServerEnvironment } from './env'\n\n// off-config but still from env:\n// logging: LOG_LEVEL, LOG_SYSTEMS, LOG_ENABLED, LOG_DESTINATION\n\nexport const envToCfg = (env: ServerEnvironment): ServerConfig => {\n const port = env.port ?? 2583\n const hostname = env.hostname ?? 'localhost'\n const publicUrl =\n hostname === 'localhost'\n ? `http://localhost:${port}`\n : `https://${hostname}`\n const did = env.serviceDid ?? `did:web:${hostname}`\n const serviceCfg: ServerConfig['service'] = {\n port,\n hostname,\n publicUrl,\n did,\n version: env.version, // default?\n privacyPolicyUrl: env.privacyPolicyUrl,\n termsOfServiceUrl: env.termsOfServiceUrl,\n contactEmailAddress: env.contactEmailAddress,\n acceptingImports: env.acceptingImports ?? true,\n maxImportSize: env.maxImportSize,\n blobUploadLimit: env.blobUploadLimit ?? 5 * 1024 * 1024, // 5mb\n devMode: env.devMode ?? false,\n }\n\n const dbLoc = (name: string) => {\n return env.dataDirectory ? path.join(env.dataDirectory, name) : name\n }\n\n const disableWalAutoCheckpoint = env.disableWalAutoCheckpoint ?? false\n\n const dbCfg: ServerConfig['db'] = {\n accountDbLoc: env.accountDbLocation ?? dbLoc('account.sqlite'),\n sequencerDbLoc: env.sequencerDbLocation ?? dbLoc('sequencer.sqlite'),\n didCacheDbLoc: env.didCacheDbLocation ?? dbLoc('did_cache.sqlite'),\n disableWalAutoCheckpoint,\n }\n\n const actorStoreCfg: ServerConfig['actorStore'] = {\n directory: env.actorStoreDirectory ?? dbLoc('actors'),\n cacheSize: env.actorStoreCacheSize ?? 100,\n disableWalAutoCheckpoint,\n }\n\n let blobstoreCfg: ServerConfig['blobstore']\n if (env.blobstoreS3Bucket && env.blobstoreDiskLocation) {\n throw new Error('Cannot set both S3 and disk blobstore env vars')\n }\n if (env.blobstoreS3Bucket) {\n blobstoreCfg = {\n provider: 's3',\n bucket: env.blobstoreS3Bucket,\n uploadTimeoutMs: env.blobstoreS3UploadTimeoutMs || 20000,\n region: env.blobstoreS3Region,\n endpoint: env.blobstoreS3Endpoint,\n forcePathStyle: env.blobstoreS3ForcePathStyle,\n }\n if (env.blobstoreS3AccessKeyId || env.blobstoreS3SecretAccessKey) {\n if (!env.blobstoreS3AccessKeyId || !env.blobstoreS3SecretAccessKey) {\n throw new Error(\n 'Must specify both S3 access key id and secret access key blobstore env vars',\n )\n }\n blobstoreCfg.credentials = {\n accessKeyId: env.blobstoreS3AccessKeyId,\n secretAccessKey: env.blobstoreS3SecretAccessKey,\n }\n }\n } else if (env.blobstoreDiskLocation) {\n blobstoreCfg = {\n provider: 'disk',\n location: env.blobstoreDiskLocation,\n tempLocation: env.blobstoreDiskTmpLocation,\n }\n } else {\n throw new Error('Must configure either S3 or disk blobstore')\n }\n\n let serviceHandleDomains: string[]\n if (env.serviceHandleDomains && env.serviceHandleDomains.length > 0) {\n serviceHandleDomains = env.serviceHandleDomains\n } else {\n if (hostname === 'localhost') {\n serviceHandleDomains = ['.test']\n } else {\n serviceHandleDomains = [`.${hostname}`]\n }\n }\n const invalidDomain = serviceHandleDomains.find(\n (domain) => domain.length < 1 || !domain.startsWith('.'),\n )\n if (invalidDomain) {\n throw new Error(`Invalid handle domain: ${invalidDomain}`)\n }\n\n const identityCfg: ServerConfig['identity'] = {\n plcUrl: env.didPlcUrl ?? 'https://plc.directory',\n cacheMaxTTL: env.didCacheMaxTTL ?? DAY,\n cacheStaleTTL: env.didCacheStaleTTL ?? HOUR,\n resolverTimeout: env.resolverTimeout ?? 3 * SECOND,\n recoveryDidKey: env.recoveryDidKey ?? null,\n serviceHandleDomains,\n handleBackupNameservers: env.handleBackupNameservers,\n enableDidDocWithSession: !!env.enableDidDocWithSession,\n }\n\n let entrywayCfg: ServerConfig['entryway'] = null\n if (env.entrywayUrl) {\n assert(\n env.entrywayJwtVerifyKeyK256PublicKeyHex &&\n env.entrywayPlcRotationKey &&\n env.entrywayDid,\n 'if entryway url is configured, must include all required entryway configuration',\n )\n entrywayCfg = {\n url: env.entrywayUrl,\n did: env.entrywayDid,\n jwtPublicKeyHex: env.entrywayJwtVerifyKeyK256PublicKeyHex,\n plcRotationKey: env.entrywayPlcRotationKey,\n }\n }\n\n // default to being required if left undefined\n const invitesCfg: ServerConfig['invites'] =\n env.inviteRequired === false\n ? {\n required: false,\n }\n : {\n required: true,\n interval: env.inviteInterval ?? null,\n epoch: env.inviteEpoch ?? 0,\n }\n\n let emailCfg: ServerConfig['email']\n if (!env.emailFromAddress && !env.emailSmtpUrl) {\n emailCfg = null\n } else {\n if (!env.emailFromAddress || !env.emailSmtpUrl) {\n throw new Error(\n 'Partial email config, must set both emailFromAddress and emailSmtpUrl',\n )\n }\n emailCfg = {\n smtpUrl: env.emailSmtpUrl,\n fromAddress: env.emailFromAddress,\n }\n }\n\n let moderationEmailCfg: ServerConfig['moderationEmail']\n if (!env.moderationEmailAddress && !env.moderationEmailSmtpUrl) {\n moderationEmailCfg = null\n } else {\n if (!env.moderationEmailAddress || !env.moderationEmailSmtpUrl) {\n throw new Error(\n 'Partial moderation email config, must set both emailFromAddress and emailSmtpUrl',\n )\n }\n moderationEmailCfg = {\n smtpUrl: env.moderationEmailSmtpUrl,\n fromAddress: env.moderationEmailAddress,\n }\n }\n\n const subscriptionCfg: ServerConfig['subscription'] = {\n maxBuffer: env.maxSubscriptionBuffer ?? 500,\n repoBackfillLimitMs: env.repoBackfillLimitMs ?? DAY,\n }\n\n let bskyAppViewCfg: ServerConfig['bskyAppView'] = null\n if (env.bskyAppViewUrl) {\n assert(\n env.bskyAppViewDid,\n 'if bsky appview service url is configured, must configure its did as well.',\n )\n bskyAppViewCfg = {\n url: env.bskyAppViewUrl,\n did: env.bskyAppViewDid,\n cdnUrlPattern: env.bskyAppViewCdnUrlPattern,\n }\n }\n\n let modServiceCfg: ServerConfig['modService'] = null\n if (env.modServiceUrl) {\n assert(\n env.modServiceDid,\n 'if mod service url is configured, must configure its did as well.',\n )\n modServiceCfg = {\n url: env.modServiceUrl,\n did: env.modServiceDid,\n }\n }\n\n let reportServiceCfg: ServerConfig['reportService'] = null\n if (env.reportServiceUrl) {\n assert(\n env.reportServiceDid,\n 'if report service url is configured, must configure its did as well.',\n )\n reportServiceCfg = {\n url: env.reportServiceUrl,\n did: env.reportServiceDid,\n }\n }\n\n // if there's a mod service, default report service into it\n if (modServiceCfg && !reportServiceCfg) {\n reportServiceCfg = modServiceCfg\n }\n\n const redisCfg: ServerConfig['redis'] = env.redisScratchAddress\n ? {\n address: env.redisScratchAddress,\n password: env.redisScratchPassword,\n }\n : null\n\n const rateLimitsCfg: ServerConfig['rateLimits'] = env.rateLimitsEnabled\n ? {\n enabled: true,\n bypassKey: env.rateLimitBypassKey,\n bypassIps: env.rateLimitBypassIps?.map((ipOrCidr) =>\n ipOrCidr.split('/')[0]?.trim(),\n ),\n }\n : { enabled: false }\n\n const crawlersCfg: ServerConfig['crawlers'] = env.crawlers ?? []\n\n const fetchCfg: ServerConfig['fetch'] = {\n disableSsrfProtection: env.disableSsrfProtection ?? env.devMode ?? false,\n maxResponseSize: env.fetchMaxResponseSize ?? 512 * 1024, // 512kb\n }\n\n const proxyCfg: ServerConfig['proxy'] = {\n disableSsrfProtection: env.disableSsrfProtection ?? env.devMode ?? false,\n allowHTTP2: env.proxyAllowHTTP2 ?? false,\n headersTimeout: env.proxyHeadersTimeout ?? 10e3,\n bodyTimeout: env.proxyBodyTimeout ?? 30e3,\n maxResponseSize: env.proxyMaxResponseSize ?? 10 * 1024 * 1024, // 10mb\n maxRetries:\n env.proxyMaxRetries != null && env.proxyMaxRetries > 0\n ? env.proxyMaxRetries\n : 0,\n preferCompressed: env.proxyPreferCompressed ?? false,\n }\n\n const oauthCfg: ServerConfig['oauth'] = entrywayCfg\n ? {\n issuer: entrywayCfg.url,\n provider: undefined,\n }\n : {\n issuer: serviceCfg.publicUrl,\n provider: {\n hcaptcha:\n env.hcaptchaSiteKey &&\n env.hcaptchaSecretKey &&\n env.hcaptchaTokenSalt\n ? {\n siteKey: env.hcaptchaSiteKey,\n secretKey: env.hcaptchaSecretKey,\n tokenSalt: env.hcaptchaTokenSalt,\n }\n : undefined,\n branding: {\n name: env.serviceName ?? `${hostname} PDS`,\n logo: env.logoUrl,\n colors: {\n light: env.lightColor,\n dark: env.darkColor,\n primary: env.primaryColor,\n primaryContrast: env.primaryColorContrast,\n primaryHue: env.primaryColorHue,\n error: env.errorColor,\n errorContrast: env.errorColorContrast,\n errorHue: env.errorColorHue,\n success: env.successColor,\n successContrast: env.successColorContrast,\n successHue: env.successColorHue,\n warning: env.warningColor,\n warningContrast: env.warningColorContrast,\n warningHue: env.warningColorHue,\n },\n links: [\n {\n title: { en: 'Home', fr: 'Accueil' },\n href: env.homeUrl,\n rel: 'canonical' as const, // Prevents login page from being indexed\n },\n {\n title: { en: 'Terms of Service' },\n href: env.termsOfServiceUrl,\n rel: 'terms-of-service' as const,\n },\n {\n title: { en: 'Privacy Policy' },\n href: env.privacyPolicyUrl,\n rel: 'privacy-policy' as const,\n },\n {\n title: { en: 'Support' },\n href: env.supportUrl,\n rel: 'help' as const,\n },\n ].filter(\n <T extends { href?: string }>(f: T): f is T & { href: string } =>\n f.href != null && f.href !== '',\n ),\n },\n trustedClients: env.trustedOAuthClients,\n },\n }\n\n const lexiconCfg: LexiconResolverConfig = {\n didAuthority: env.lexiconDidAuthority,\n }\n\n return {\n service: serviceCfg,\n db: dbCfg,\n actorStore: actorStoreCfg,\n blobstore: blobstoreCfg,\n identity: identityCfg,\n entryway: entrywayCfg,\n invites: invitesCfg,\n email: emailCfg,\n moderationEmail: moderationEmailCfg,\n subscription: subscriptionCfg,\n bskyAppView: bskyAppViewCfg,\n modService: modServiceCfg,\n reportService: reportServiceCfg,\n redis: redisCfg,\n rateLimits: rateLimitsCfg,\n crawlers: crawlersCfg,\n fetch: fetchCfg,\n lexicon: lexiconCfg,\n proxy: proxyCfg,\n oauth: oauthCfg,\n }\n}\n\nexport type ServerConfig = {\n service: ServiceConfig\n db: DatabaseConfig\n actorStore: ActorStoreConfig\n blobstore: S3BlobstoreConfig | DiskBlobstoreConfig\n identity: IdentityConfig\n entryway: EntrywayConfig | null\n invites: InvitesConfig\n email: EmailConfig | null\n moderationEmail: EmailConfig | null\n subscription: SubscriptionConfig\n bskyAppView: BksyAppViewConfig | null\n modService: ModServiceConfig | null\n reportService: ReportServiceConfig | null\n redis: RedisScratchConfig | null\n rateLimits: RateLimitsConfig\n crawlers: string[]\n fetch: FetchConfig\n proxy: ProxyConfig\n oauth: OAuthConfig\n lexicon: LexiconResolverConfig\n}\n\nexport type ServiceConfig = {\n port: number\n hostname: string\n publicUrl: string\n did: string\n version?: string\n privacyPolicyUrl?: string\n termsOfServiceUrl?: string\n acceptingImports: boolean\n maxImportSize?: number\n blobUploadLimit: number\n contactEmailAddress?: string\n devMode: boolean\n}\n\nexport type DatabaseConfig = {\n accountDbLoc: string\n sequencerDbLoc: string\n didCacheDbLoc: string\n disableWalAutoCheckpoint: boolean\n}\n\nexport type ActorStoreConfig = {\n directory: string\n cacheSize: number\n disableWalAutoCheckpoint: boolean\n}\n\nexport type S3BlobstoreConfig = {\n provider: 's3'\n bucket: string\n region?: string\n endpoint?: string\n forcePathStyle?: boolean\n uploadTimeoutMs?: number\n credentials?: {\n accessKeyId: string\n secretAccessKey: string\n }\n}\n\nexport type DiskBlobstoreConfig = {\n provider: 'disk'\n location: string\n tempLocation?: string\n}\n\nexport type IdentityConfig = {\n plcUrl: string\n resolverTimeout: number\n cacheStaleTTL: number\n cacheMaxTTL: number\n recoveryDidKey: string | null\n serviceHandleDomains: string[]\n handleBackupNameservers?: string[]\n enableDidDocWithSession: boolean\n}\n\nexport type EntrywayConfig = {\n url: string\n did: string\n jwtPublicKeyHex: string\n plcRotationKey: string\n}\n\nexport type FetchConfig = {\n disableSsrfProtection: boolean\n maxResponseSize: number\n}\n\nexport type ProxyConfig = {\n disableSsrfProtection: boolean\n allowHTTP2: boolean\n headersTimeout: number\n bodyTimeout: number\n maxResponseSize: number\n maxRetries: number\n\n /**\n * When proxying requests that might get intercepted (for read-after-write) we\n * negotiate the encoding based on the client's preferences. We will however\n * use or own weights in order to be able to better control if the PDS will\n * need to perform content decoding. This settings allows to prefer compressed\n * content over uncompressed one.\n */\n preferCompressed: boolean\n}\n\nexport type OAuthConfig = {\n issuer: string\n provider?: {\n hcaptcha?: HcaptchaConfig\n branding: BrandingInput\n trustedClients?: string[]\n }\n}\n\nexport type LexiconResolverConfig = {\n didAuthority?: string\n}\n\nexport type InvitesConfig =\n | {\n required: true\n interval: number | null\n epoch: number\n }\n | {\n required: false\n }\n\nexport type EmailConfig = {\n smtpUrl: string\n fromAddress: string\n}\n\nexport type SubscriptionConfig = {\n maxBuffer: number\n repoBackfillLimitMs: number\n}\n\nexport type RedisScratchConfig = {\n address: string\n password?: string\n}\n\nexport type RateLimitsConfig =\n | {\n enabled: true\n bypassKey?: string\n bypassIps?: string[]\n }\n | { enabled: false }\n\nexport type BksyAppViewConfig = {\n url: string\n did: string\n cdnUrlPattern?: string\n}\n\nexport type ModServiceConfig = {\n url: string\n did: string\n}\n\nexport type ReportServiceConfig = {\n url: string\n did: string\n}\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport path from 'node:path'\nimport { DAY, HOUR, SECOND } from '@atproto/common'\nimport { BrandingInput, HcaptchaConfig } from '@atproto/oauth-provider'\nimport { ensureValidDid } from '@atproto/syntax'\nimport { ServerEnvironment } from './env'\n\n// off-config but still from env:\n// logging: LOG_LEVEL, LOG_SYSTEMS, LOG_ENABLED, LOG_DESTINATION\n\nexport const envToCfg = (env: ServerEnvironment): ServerConfig => {\n const port = env.port ?? 2583\n const hostname = env.hostname ?? 'localhost'\n const publicUrl =\n hostname === 'localhost'\n ? `http://localhost:${port}`\n : `https://${hostname}`\n const did = env.serviceDid ?? `did:web:${hostname}`\n const serviceCfg: ServerConfig['service'] = {\n port,\n hostname,\n publicUrl,\n did,\n version: env.version, // default?\n privacyPolicyUrl: env.privacyPolicyUrl,\n termsOfServiceUrl: env.termsOfServiceUrl,\n contactEmailAddress: env.contactEmailAddress,\n acceptingImports: env.acceptingImports ?? true,\n maxImportSize: env.maxImportSize,\n blobUploadLimit: env.blobUploadLimit ?? 5 * 1024 * 1024, // 5mb\n devMode: env.devMode ?? false,\n }\n\n const dbLoc = (name: string) => {\n return env.dataDirectory ? path.join(env.dataDirectory, name) : name\n }\n\n const disableWalAutoCheckpoint = env.disableWalAutoCheckpoint ?? false\n\n const dbCfg: ServerConfig['db'] = {\n accountDbLoc: env.accountDbLocation ?? dbLoc('account.sqlite'),\n sequencerDbLoc: env.sequencerDbLocation ?? dbLoc('sequencer.sqlite'),\n didCacheDbLoc: env.didCacheDbLocation ?? dbLoc('did_cache.sqlite'),\n disableWalAutoCheckpoint,\n }\n\n const actorStoreCfg: ServerConfig['actorStore'] = {\n directory: env.actorStoreDirectory ?? dbLoc('actors'),\n cacheSize: env.actorStoreCacheSize ?? 100,\n disableWalAutoCheckpoint,\n }\n\n let blobstoreCfg: ServerConfig['blobstore']\n if (env.blobstoreS3Bucket && env.blobstoreDiskLocation) {\n throw new Error('Cannot set both S3 and disk blobstore env vars')\n }\n if (env.blobstoreS3Bucket) {\n blobstoreCfg = {\n provider: 's3',\n bucket: env.blobstoreS3Bucket,\n uploadTimeoutMs: env.blobstoreS3UploadTimeoutMs || 20000,\n region: env.blobstoreS3Region,\n endpoint: env.blobstoreS3Endpoint,\n forcePathStyle: env.blobstoreS3ForcePathStyle,\n }\n if (env.blobstoreS3AccessKeyId || env.blobstoreS3SecretAccessKey) {\n if (!env.blobstoreS3AccessKeyId || !env.blobstoreS3SecretAccessKey) {\n throw new Error(\n 'Must specify both S3 access key id and secret access key blobstore env vars',\n )\n }\n blobstoreCfg.credentials = {\n accessKeyId: env.blobstoreS3AccessKeyId,\n secretAccessKey: env.blobstoreS3SecretAccessKey,\n }\n }\n } else if (env.blobstoreDiskLocation) {\n blobstoreCfg = {\n provider: 'disk',\n location: env.blobstoreDiskLocation,\n tempLocation: env.blobstoreDiskTmpLocation,\n }\n } else {\n throw new Error('Must configure either S3 or disk blobstore')\n }\n\n let serviceHandleDomains: string[]\n if (env.serviceHandleDomains && env.serviceHandleDomains.length > 0) {\n serviceHandleDomains = env.serviceHandleDomains\n } else {\n if (hostname === 'localhost') {\n serviceHandleDomains = ['.test']\n } else {\n serviceHandleDomains = [`.${hostname}`]\n }\n }\n const invalidDomain = serviceHandleDomains.find(\n (domain) => domain.length < 1 || !domain.startsWith('.'),\n )\n if (invalidDomain) {\n throw new Error(`Invalid handle domain: ${invalidDomain}`)\n }\n\n const identityCfg: ServerConfig['identity'] = {\n plcUrl: env.didPlcUrl ?? 'https://plc.directory',\n cacheMaxTTL: env.didCacheMaxTTL ?? DAY,\n cacheStaleTTL: env.didCacheStaleTTL ?? HOUR,\n resolverTimeout: env.resolverTimeout ?? 3 * SECOND,\n recoveryDidKey: env.recoveryDidKey ?? null,\n serviceHandleDomains,\n handleBackupNameservers: env.handleBackupNameservers,\n enableDidDocWithSession: !!env.enableDidDocWithSession,\n }\n\n let entrywayCfg: ServerConfig['entryway'] = null\n if (env.entrywayUrl) {\n assert(\n env.entrywayJwtVerifyKeyK256PublicKeyHex &&\n env.entrywayPlcRotationKey &&\n env.entrywayDid,\n 'if entryway url is configured, must include all required entryway configuration',\n )\n entrywayCfg = {\n url: env.entrywayUrl,\n did: env.entrywayDid,\n jwtPublicKeyHex: env.entrywayJwtVerifyKeyK256PublicKeyHex,\n plcRotationKey: env.entrywayPlcRotationKey,\n }\n }\n\n // default to being required if left undefined\n const invitesCfg: ServerConfig['invites'] =\n env.inviteRequired === false\n ? {\n required: false,\n }\n : {\n required: true,\n interval: env.inviteInterval ?? null,\n epoch: env.inviteEpoch ?? 0,\n }\n\n let emailCfg: ServerConfig['email']\n if (!env.emailFromAddress && !env.emailSmtpUrl) {\n emailCfg = null\n } else {\n if (!env.emailFromAddress || !env.emailSmtpUrl) {\n throw new Error(\n 'Partial email config, must set both emailFromAddress and emailSmtpUrl',\n )\n }\n emailCfg = {\n smtpUrl: env.emailSmtpUrl,\n fromAddress: env.emailFromAddress,\n }\n }\n\n let moderationEmailCfg: ServerConfig['moderationEmail']\n if (!env.moderationEmailAddress && !env.moderationEmailSmtpUrl) {\n moderationEmailCfg = null\n } else {\n if (!env.moderationEmailAddress || !env.moderationEmailSmtpUrl) {\n throw new Error(\n 'Partial moderation email config, must set both emailFromAddress and emailSmtpUrl',\n )\n }\n moderationEmailCfg = {\n smtpUrl: env.moderationEmailSmtpUrl,\n fromAddress: env.moderationEmailAddress,\n }\n }\n\n const subscriptionCfg: ServerConfig['subscription'] = {\n maxBuffer: env.maxSubscriptionBuffer ?? 500,\n repoBackfillLimitMs: env.repoBackfillLimitMs ?? DAY,\n }\n\n let bskyAppViewCfg: ServerConfig['bskyAppView'] = null\n if (env.bskyAppViewUrl) {\n assert(\n env.bskyAppViewDid,\n 'if bsky appview service url is configured, must configure its did as well.',\n )\n bskyAppViewCfg = {\n url: env.bskyAppViewUrl,\n did: env.bskyAppViewDid,\n cdnUrlPattern: env.bskyAppViewCdnUrlPattern,\n }\n }\n\n let modServiceCfg: ServerConfig['modService'] = null\n if (env.modServiceUrl) {\n assert(\n env.modServiceDid,\n 'if mod service url is configured, must configure its did as well.',\n )\n modServiceCfg = {\n url: env.modServiceUrl,\n did: env.modServiceDid,\n }\n }\n\n let reportServiceCfg: ServerConfig['reportService'] = null\n if (env.reportServiceUrl) {\n assert(\n env.reportServiceDid,\n 'if report service url is configured, must configure its did as well.',\n )\n reportServiceCfg = {\n url: env.reportServiceUrl,\n did: env.reportServiceDid,\n }\n }\n\n // if there's a mod service, default report service into it\n if (modServiceCfg && !reportServiceCfg) {\n reportServiceCfg = modServiceCfg\n }\n\n const redisCfg: ServerConfig['redis'] = env.redisScratchAddress\n ? {\n address: env.redisScratchAddress,\n password: env.redisScratchPassword,\n }\n : null\n\n const rateLimitsCfg: ServerConfig['rateLimits'] = env.rateLimitsEnabled\n ? {\n enabled: true,\n bypassKey: env.rateLimitBypassKey,\n bypassIps: env.rateLimitBypassIps?.map((ipOrCidr) =>\n ipOrCidr.split('/')[0]?.trim(),\n ),\n }\n : { enabled: false }\n\n const crawlersCfg: ServerConfig['crawlers'] = env.crawlers ?? []\n\n const fetchCfg: ServerConfig['fetch'] = {\n disableSsrfProtection: env.disableSsrfProtection ?? env.devMode ?? false,\n maxResponseSize: env.fetchMaxResponseSize ?? 512 * 1024, // 512kb\n }\n\n const proxyCfg: ServerConfig['proxy'] = {\n disableSsrfProtection: env.disableSsrfProtection ?? env.devMode ?? false,\n allowHTTP2: env.proxyAllowHTTP2 ?? false,\n headersTimeout: env.proxyHeadersTimeout ?? 10e3,\n bodyTimeout: env.proxyBodyTimeout ?? 30e3,\n maxResponseSize: env.proxyMaxResponseSize ?? 10 * 1024 * 1024, // 10mb\n maxRetries:\n env.proxyMaxRetries != null && env.proxyMaxRetries > 0\n ? env.proxyMaxRetries\n : 0,\n preferCompressed: env.proxyPreferCompressed ?? false,\n }\n\n const oauthCfg: ServerConfig['oauth'] = entrywayCfg\n ? {\n issuer: entrywayCfg.url,\n provider: undefined,\n }\n : {\n issuer: serviceCfg.publicUrl,\n provider: {\n hcaptcha:\n env.hcaptchaSiteKey &&\n env.hcaptchaSecretKey &&\n env.hcaptchaTokenSalt\n ? {\n siteKey: env.hcaptchaSiteKey,\n secretKey: env.hcaptchaSecretKey,\n tokenSalt: env.hcaptchaTokenSalt,\n }\n : undefined,\n branding: {\n name: env.serviceName ?? `${hostname} PDS`,\n logo: env.logoUrl,\n colors: {\n light: env.lightColor,\n dark: env.darkColor,\n primary: env.primaryColor,\n primaryContrast: env.primaryColorContrast,\n primaryHue: env.primaryColorHue,\n error: env.errorColor,\n errorContrast: env.errorColorContrast,\n errorHue: env.errorColorHue,\n success: env.successColor,\n successContrast: env.successColorContrast,\n successHue: env.successColorHue,\n warning: env.warningColor,\n warningContrast: env.warningColorContrast,\n warningHue: env.warningColorHue,\n },\n links: [\n {\n title: { en: 'Home', fr: 'Accueil' },\n href: env.homeUrl,\n rel: 'canonical' as const, // Prevents login page from being indexed\n },\n {\n title: { en: 'Terms of Service' },\n href: env.termsOfServiceUrl,\n rel: 'terms-of-service' as const,\n },\n {\n title: { en: 'Privacy Policy' },\n href: env.privacyPolicyUrl,\n rel: 'privacy-policy' as const,\n },\n {\n title: { en: 'Support' },\n href: env.supportUrl,\n rel: 'help' as const,\n },\n ].filter(\n <T extends { href?: string }>(f: T): f is T & { href: string } =>\n f.href != null && f.href !== '',\n ),\n },\n trustedClients: env.trustedOAuthClients,\n },\n }\n\n const lexiconCfg: LexiconResolverConfig = {}\n\n if (env.lexiconDidAuthority != null) {\n ensureValidDid(env.lexiconDidAuthority)\n lexiconCfg.didAuthority = env.lexiconDidAuthority\n }\n\n return {\n service: serviceCfg,\n db: dbCfg,\n actorStore: actorStoreCfg,\n blobstore: blobstoreCfg,\n identity: identityCfg,\n entryway: entrywayCfg,\n invites: invitesCfg,\n email: emailCfg,\n moderationEmail: moderationEmailCfg,\n subscription: subscriptionCfg,\n bskyAppView: bskyAppViewCfg,\n modService: modServiceCfg,\n reportService: reportServiceCfg,\n redis: redisCfg,\n rateLimits: rateLimitsCfg,\n crawlers: crawlersCfg,\n fetch: fetchCfg,\n lexicon: lexiconCfg,\n proxy: proxyCfg,\n oauth: oauthCfg,\n }\n}\n\nexport type ServerConfig = {\n service: ServiceConfig\n db: DatabaseConfig\n actorStore: ActorStoreConfig\n blobstore: S3BlobstoreConfig | DiskBlobstoreConfig\n identity: IdentityConfig\n entryway: EntrywayConfig | null\n invites: InvitesConfig\n email: EmailConfig | null\n moderationEmail: EmailConfig | null\n subscription: SubscriptionConfig\n bskyAppView: BksyAppViewConfig | null\n modService: ModServiceConfig | null\n reportService: ReportServiceConfig | null\n redis: RedisScratchConfig | null\n rateLimits: RateLimitsConfig\n crawlers: string[]\n fetch: FetchConfig\n proxy: ProxyConfig\n oauth: OAuthConfig\n lexicon: LexiconResolverConfig\n}\n\nexport type ServiceConfig = {\n port: number\n hostname: string\n publicUrl: string\n did: string\n version?: string\n privacyPolicyUrl?: string\n termsOfServiceUrl?: string\n acceptingImports: boolean\n maxImportSize?: number\n blobUploadLimit: number\n contactEmailAddress?: string\n devMode: boolean\n}\n\nexport type DatabaseConfig = {\n accountDbLoc: string\n sequencerDbLoc: string\n didCacheDbLoc: string\n disableWalAutoCheckpoint: boolean\n}\n\nexport type ActorStoreConfig = {\n directory: string\n cacheSize: number\n disableWalAutoCheckpoint: boolean\n}\n\nexport type S3BlobstoreConfig = {\n provider: 's3'\n bucket: string\n region?: string\n endpoint?: string\n forcePathStyle?: boolean\n uploadTimeoutMs?: number\n credentials?: {\n accessKeyId: string\n secretAccessKey: string\n }\n}\n\nexport type DiskBlobstoreConfig = {\n provider: 'disk'\n location: string\n tempLocation?: string\n}\n\nexport type IdentityConfig = {\n plcUrl: string\n resolverTimeout: number\n cacheStaleTTL: number\n cacheMaxTTL: number\n recoveryDidKey: string | null\n serviceHandleDomains: string[]\n handleBackupNameservers?: string[]\n enableDidDocWithSession: boolean\n}\n\nexport type EntrywayConfig = {\n url: string\n did: string\n jwtPublicKeyHex: string\n plcRotationKey: string\n}\n\nexport type FetchConfig = {\n disableSsrfProtection: boolean\n maxResponseSize: number\n}\n\nexport type ProxyConfig = {\n disableSsrfProtection: boolean\n allowHTTP2: boolean\n headersTimeout: number\n bodyTimeout: number\n maxResponseSize: number\n maxRetries: number\n\n /**\n * When proxying requests that might get intercepted (for read-after-write) we\n * negotiate the encoding based on the client's preferences. We will however\n * use or own weights in order to be able to better control if the PDS will\n * need to perform content decoding. This settings allows to prefer compressed\n * content over uncompressed one.\n */\n preferCompressed: boolean\n}\n\nexport type OAuthConfig = {\n issuer: string\n provider?: {\n hcaptcha?: HcaptchaConfig\n branding: BrandingInput\n trustedClients?: string[]\n }\n}\n\nexport type LexiconResolverConfig = {\n didAuthority?: `did:${string}:${string}`\n}\n\nexport type InvitesConfig =\n | {\n required: true\n interval: number | null\n epoch: number\n }\n | {\n required: false\n }\n\nexport type EmailConfig = {\n smtpUrl: string\n fromAddress: string\n}\n\nexport type SubscriptionConfig = {\n maxBuffer: number\n repoBackfillLimitMs: number\n}\n\nexport type RedisScratchConfig = {\n address: string\n password?: string\n}\n\nexport type RateLimitsConfig =\n | {\n enabled: true\n bypassKey?: string\n bypassIps?: string[]\n }\n | { enabled: false }\n\nexport type BksyAppViewConfig = {\n url: string\n did: string\n cdnUrlPattern?: string\n}\n\nexport type ModServiceConfig = {\n url: string\n did: string\n}\n\nexport type ReportServiceConfig = {\n url: string\n did: string\n}\n"]}
|
package/dist/config/env.d.ts
CHANGED
|
@@ -1,103 +1,102 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
proxyMaxRetries?: number;
|
|
101
|
-
proxyPreferCompressed?: boolean;
|
|
1
|
+
export declare function readEnv(): {
|
|
2
|
+
port: number | undefined;
|
|
3
|
+
hostname: string | undefined;
|
|
4
|
+
serviceDid: string | undefined;
|
|
5
|
+
serviceName: string | undefined;
|
|
6
|
+
version: string | undefined;
|
|
7
|
+
homeUrl: string | undefined;
|
|
8
|
+
logoUrl: string | undefined;
|
|
9
|
+
privacyPolicyUrl: string | undefined;
|
|
10
|
+
supportUrl: string | undefined;
|
|
11
|
+
termsOfServiceUrl: string | undefined;
|
|
12
|
+
contactEmailAddress: string | undefined;
|
|
13
|
+
acceptingImports: boolean | undefined;
|
|
14
|
+
maxImportSize: number | undefined;
|
|
15
|
+
blobUploadLimit: number | undefined;
|
|
16
|
+
devMode: boolean | undefined;
|
|
17
|
+
hcaptchaSiteKey: string | undefined;
|
|
18
|
+
hcaptchaSecretKey: string | undefined;
|
|
19
|
+
hcaptchaTokenSalt: string | undefined;
|
|
20
|
+
trustedOAuthClients: string[];
|
|
21
|
+
lightColor: string | undefined;
|
|
22
|
+
darkColor: string | undefined;
|
|
23
|
+
primaryColor: string | undefined;
|
|
24
|
+
primaryColorContrast: string | undefined;
|
|
25
|
+
primaryColorHue: number | undefined;
|
|
26
|
+
errorColor: string | undefined;
|
|
27
|
+
errorColorContrast: string | undefined;
|
|
28
|
+
errorColorHue: number | undefined;
|
|
29
|
+
warningColor: string | undefined;
|
|
30
|
+
warningColorContrast: string | undefined;
|
|
31
|
+
warningColorHue: number | undefined;
|
|
32
|
+
successColor: string | undefined;
|
|
33
|
+
successColorContrast: string | undefined;
|
|
34
|
+
successColorHue: number | undefined;
|
|
35
|
+
dataDirectory: string | undefined;
|
|
36
|
+
disableWalAutoCheckpoint: boolean | undefined;
|
|
37
|
+
accountDbLocation: string | undefined;
|
|
38
|
+
sequencerDbLocation: string | undefined;
|
|
39
|
+
didCacheDbLocation: string | undefined;
|
|
40
|
+
actorStoreDirectory: string | undefined;
|
|
41
|
+
actorStoreCacheSize: number | undefined;
|
|
42
|
+
blobstoreS3Bucket: string | undefined;
|
|
43
|
+
blobstoreS3Region: string | undefined;
|
|
44
|
+
blobstoreS3Endpoint: string | undefined;
|
|
45
|
+
blobstoreS3ForcePathStyle: boolean | undefined;
|
|
46
|
+
blobstoreS3AccessKeyId: string | undefined;
|
|
47
|
+
blobstoreS3SecretAccessKey: string | undefined;
|
|
48
|
+
blobstoreS3UploadTimeoutMs: number | undefined;
|
|
49
|
+
blobstoreDiskLocation: string | undefined;
|
|
50
|
+
blobstoreDiskTmpLocation: string | undefined;
|
|
51
|
+
didPlcUrl: string | undefined;
|
|
52
|
+
didCacheStaleTTL: number | undefined;
|
|
53
|
+
didCacheMaxTTL: number | undefined;
|
|
54
|
+
resolverTimeout: number | undefined;
|
|
55
|
+
recoveryDidKey: string | undefined;
|
|
56
|
+
serviceHandleDomains: string[];
|
|
57
|
+
handleBackupNameservers: string[];
|
|
58
|
+
enableDidDocWithSession: boolean | undefined;
|
|
59
|
+
entrywayUrl: string | undefined;
|
|
60
|
+
entrywayDid: string | undefined;
|
|
61
|
+
entrywayJwtVerifyKeyK256PublicKeyHex: string | undefined;
|
|
62
|
+
entrywayPlcRotationKey: string | undefined;
|
|
63
|
+
inviteRequired: boolean | undefined;
|
|
64
|
+
inviteInterval: number | undefined;
|
|
65
|
+
inviteEpoch: number | undefined;
|
|
66
|
+
emailSmtpUrl: string | undefined;
|
|
67
|
+
emailFromAddress: string | undefined;
|
|
68
|
+
moderationEmailSmtpUrl: string | undefined;
|
|
69
|
+
moderationEmailAddress: string | undefined;
|
|
70
|
+
maxSubscriptionBuffer: number | undefined;
|
|
71
|
+
repoBackfillLimitMs: number | undefined;
|
|
72
|
+
bskyAppViewUrl: string | undefined;
|
|
73
|
+
bskyAppViewDid: string | undefined;
|
|
74
|
+
bskyAppViewCdnUrlPattern: string | undefined;
|
|
75
|
+
modServiceUrl: string | undefined;
|
|
76
|
+
modServiceDid: string | undefined;
|
|
77
|
+
reportServiceUrl: string | undefined;
|
|
78
|
+
reportServiceDid: string | undefined;
|
|
79
|
+
rateLimitsEnabled: boolean | undefined;
|
|
80
|
+
rateLimitBypassKey: string | undefined;
|
|
81
|
+
rateLimitBypassIps: string[];
|
|
82
|
+
redisScratchAddress: string | undefined;
|
|
83
|
+
redisScratchPassword: string | undefined;
|
|
84
|
+
crawlers: string[];
|
|
85
|
+
dpopSecret: string | undefined;
|
|
86
|
+
jwtSecret: string | undefined;
|
|
87
|
+
adminPassword: string | undefined;
|
|
88
|
+
entrywayAdminToken: string | undefined;
|
|
89
|
+
plcRotationKeyKmsKeyId: string | undefined;
|
|
90
|
+
plcRotationKeyK256PrivateKeyHex: string | undefined;
|
|
91
|
+
disableSsrfProtection: boolean | undefined;
|
|
92
|
+
fetchMaxResponseSize: number | undefined;
|
|
93
|
+
proxyAllowHTTP2: boolean | undefined;
|
|
94
|
+
proxyHeadersTimeout: number | undefined;
|
|
95
|
+
proxyBodyTimeout: number | undefined;
|
|
96
|
+
proxyMaxResponseSize: number | undefined;
|
|
97
|
+
proxyMaxRetries: number | undefined;
|
|
98
|
+
proxyPreferCompressed: boolean | undefined;
|
|
99
|
+
lexiconDidAuthority: string | undefined;
|
|
102
100
|
};
|
|
101
|
+
export type ServerEnvironment = Partial<ReturnType<typeof readEnv>>;
|
|
103
102
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/config/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAEA,wBAAgB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2JtB;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAA"}
|
package/dist/config/env.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.readEnv =
|
|
3
|
+
exports.readEnv = readEnv;
|
|
4
4
|
const common_1 = require("@atproto/common");
|
|
5
|
-
|
|
5
|
+
function readEnv() {
|
|
6
6
|
return {
|
|
7
7
|
// service
|
|
8
8
|
port: (0, common_1.envInt)('PDS_PORT'),
|
|
@@ -68,7 +68,7 @@ const readEnv = () => {
|
|
|
68
68
|
didCacheMaxTTL: (0, common_1.envInt)('PDS_DID_CACHE_MAX_TTL'),
|
|
69
69
|
resolverTimeout: (0, common_1.envInt)('PDS_ID_RESOLVER_TIMEOUT'),
|
|
70
70
|
recoveryDidKey: (0, common_1.envStr)('PDS_RECOVERY_DID_KEY'),
|
|
71
|
-
serviceHandleDomains: (0, common_1.envList)('PDS_SERVICE_HANDLE_DOMAINS'),
|
|
71
|
+
serviceHandleDomains: (0, common_1.envList)('PDS_SERVICE_HANDLE_DOMAINS'), // public hostname by default
|
|
72
72
|
handleBackupNameservers: (0, common_1.envList)('PDS_HANDLE_BACKUP_NAMESERVERS'),
|
|
73
73
|
enableDidDocWithSession: (0, common_1.envBool)('PDS_ENABLE_DID_DOC_WITH_SESSION'),
|
|
74
74
|
// entryway
|
|
@@ -127,7 +127,8 @@ const readEnv = () => {
|
|
|
127
127
|
proxyMaxResponseSize: (0, common_1.envInt)('PDS_PROXY_MAX_RESPONSE_SIZE'),
|
|
128
128
|
proxyMaxRetries: (0, common_1.envInt)('PDS_PROXY_MAX_RETRIES'),
|
|
129
129
|
proxyPreferCompressed: (0, common_1.envBool)('PDS_PROXY_PREFER_COMPRESSED'),
|
|
130
|
+
// lexicon resolution
|
|
131
|
+
lexiconDidAuthority: (0, common_1.envStr)('PDS_LEXICON_AUTHORITY_DID'),
|
|
130
132
|
};
|
|
131
|
-
}
|
|
132
|
-
exports.readEnv = readEnv;
|
|
133
|
+
}
|
|
133
134
|
//# sourceMappingURL=env.js.map
|
package/dist/config/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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","sourcesContent":["import { envBool, envInt, envList, envStr } from '@atproto/common'\n\nexport const readEnv = (): ServerEnvironment => {\n return {\n // service\n port: envInt('PDS_PORT'),\n hostname: envStr('PDS_HOSTNAME'),\n serviceDid: envStr('PDS_SERVICE_DID'),\n serviceName: envStr('PDS_SERVICE_NAME'),\n version: envStr('PDS_VERSION'),\n homeUrl: envStr('PDS_HOME_URL'),\n logoUrl: envStr('PDS_LOGO_URL'),\n privacyPolicyUrl: envStr('PDS_PRIVACY_POLICY_URL'),\n supportUrl: envStr('PDS_SUPPORT_URL'),\n termsOfServiceUrl: envStr('PDS_TERMS_OF_SERVICE_URL'),\n contactEmailAddress: envStr('PDS_CONTACT_EMAIL_ADDRESS'),\n acceptingImports: envBool('PDS_ACCEPTING_REPO_IMPORTS'),\n maxImportSize: envInt('PDS_MAX_REPO_IMPORT_SIZE'),\n blobUploadLimit: envInt('PDS_BLOB_UPLOAD_LIMIT'),\n devMode: envBool('PDS_DEV_MODE'),\n\n // hCaptcha\n hcaptchaSiteKey: envStr('PDS_HCAPTCHA_SITE_KEY'),\n hcaptchaSecretKey: envStr('PDS_HCAPTCHA_SECRET_KEY'),\n hcaptchaTokenSalt: envStr('PDS_HCAPTCHA_TOKEN_SALT'),\n\n // OAuth\n trustedOAuthClients: envList('PDS_OAUTH_TRUSTED_CLIENTS'),\n\n // branding\n lightColor: envStr('PDS_LIGHT_COLOR'),\n darkColor: envStr('PDS_DARK_COLOR'),\n primaryColor: envStr('PDS_PRIMARY_COLOR'),\n primaryColorContrast: envStr('PDS_PRIMARY_COLOR_CONTRAST'),\n primaryColorHue: envInt('PDS_PRIMARY_COLOR_HUE'),\n errorColor: envStr('PDS_ERROR_COLOR'),\n errorColorContrast: envStr('PDS_ERROR_COLOR_CONTRAST'),\n errorColorHue: envInt('PDS_ERROR_COLOR_HUE'),\n warningColor: envStr('PDS_WARNING_COLOR'),\n warningColorContrast: envStr('PDS_WARNING_COLOR_CONTRAST'),\n warningColorHue: envInt('PDS_WARNING_COLOR_HUE'),\n successColor: envStr('PDS_SUCCESS_COLOR'),\n successColorContrast: envStr('PDS_SUCCESS_COLOR_CONTRAST'),\n successColorHue: envInt('PDS_SUCCESS_COLOR_HUE'),\n\n // database\n dataDirectory: envStr('PDS_DATA_DIRECTORY'),\n disableWalAutoCheckpoint: envBool('PDS_SQLITE_DISABLE_WAL_AUTO_CHECKPOINT'),\n accountDbLocation: envStr('PDS_ACCOUNT_DB_LOCATION'),\n sequencerDbLocation: envStr('PDS_SEQUENCER_DB_LOCATION'),\n didCacheDbLocation: envStr('PDS_DID_CACHE_DB_LOCATION'),\n\n // actor store\n actorStoreDirectory: envStr('PDS_ACTOR_STORE_DIRECTORY'),\n actorStoreCacheSize: envInt('PDS_ACTOR_STORE_CACHE_SIZE'),\n\n // blobstore: one required\n // s3\n blobstoreS3Bucket: envStr('PDS_BLOBSTORE_S3_BUCKET'),\n blobstoreS3Region: envStr('PDS_BLOBSTORE_S3_REGION'),\n blobstoreS3Endpoint: envStr('PDS_BLOBSTORE_S3_ENDPOINT'),\n blobstoreS3ForcePathStyle: envBool('PDS_BLOBSTORE_S3_FORCE_PATH_STYLE'),\n blobstoreS3AccessKeyId: envStr('PDS_BLOBSTORE_S3_ACCESS_KEY_ID'),\n blobstoreS3SecretAccessKey: envStr('PDS_BLOBSTORE_S3_SECRET_ACCESS_KEY'),\n blobstoreS3UploadTimeoutMs: envInt('PDS_BLOBSTORE_S3_UPLOAD_TIMEOUT_MS'),\n // disk\n blobstoreDiskLocation: envStr('PDS_BLOBSTORE_DISK_LOCATION'),\n blobstoreDiskTmpLocation: envStr('PDS_BLOBSTORE_DISK_TMP_LOCATION'),\n\n // identity\n didPlcUrl: envStr('PDS_DID_PLC_URL'),\n didCacheStaleTTL: envInt('PDS_DID_CACHE_STALE_TTL'),\n didCacheMaxTTL: envInt('PDS_DID_CACHE_MAX_TTL'),\n resolverTimeout: envInt('PDS_ID_RESOLVER_TIMEOUT'),\n recoveryDidKey: envStr('PDS_RECOVERY_DID_KEY'),\n serviceHandleDomains: envList('PDS_SERVICE_HANDLE_DOMAINS'),\n handleBackupNameservers: envList('PDS_HANDLE_BACKUP_NAMESERVERS'),\n enableDidDocWithSession: envBool('PDS_ENABLE_DID_DOC_WITH_SESSION'),\n\n // entryway\n entrywayUrl: envStr('PDS_ENTRYWAY_URL'),\n entrywayDid: envStr('PDS_ENTRYWAY_DID'),\n entrywayJwtVerifyKeyK256PublicKeyHex: envStr(\n 'PDS_ENTRYWAY_JWT_VERIFY_KEY_K256_PUBLIC_KEY_HEX',\n ),\n entrywayPlcRotationKey: envStr('PDS_ENTRYWAY_PLC_ROTATION_KEY'),\n\n // invites\n inviteRequired: envBool('PDS_INVITE_REQUIRED'),\n inviteInterval: envInt('PDS_INVITE_INTERVAL'),\n inviteEpoch: envInt('PDS_INVITE_EPOCH'),\n\n // email\n emailSmtpUrl: envStr('PDS_EMAIL_SMTP_URL'),\n emailFromAddress: envStr('PDS_EMAIL_FROM_ADDRESS'),\n moderationEmailSmtpUrl: envStr('PDS_MODERATION_EMAIL_SMTP_URL'),\n moderationEmailAddress: envStr('PDS_MODERATION_EMAIL_ADDRESS'),\n\n // subscription\n maxSubscriptionBuffer: envInt('PDS_MAX_SUBSCRIPTION_BUFFER'),\n repoBackfillLimitMs: envInt('PDS_REPO_BACKFILL_LIMIT_MS'),\n\n // appview\n bskyAppViewUrl: envStr('PDS_BSKY_APP_VIEW_URL'),\n bskyAppViewDid: envStr('PDS_BSKY_APP_VIEW_DID'),\n bskyAppViewCdnUrlPattern: envStr('PDS_BSKY_APP_VIEW_CDN_URL_PATTERN'),\n\n // mod service\n modServiceUrl: envStr('PDS_MOD_SERVICE_URL'),\n modServiceDid: envStr('PDS_MOD_SERVICE_DID'),\n\n // report service\n reportServiceUrl: envStr('PDS_REPORT_SERVICE_URL'),\n reportServiceDid: envStr('PDS_REPORT_SERVICE_DID'),\n\n // rate limits\n rateLimitsEnabled: envBool('PDS_RATE_LIMITS_ENABLED'),\n rateLimitBypassKey: envStr('PDS_RATE_LIMIT_BYPASS_KEY'),\n rateLimitBypassIps: envList('PDS_RATE_LIMIT_BYPASS_IPS'),\n\n // redis\n redisScratchAddress: envStr('PDS_REDIS_SCRATCH_ADDRESS'),\n redisScratchPassword: envStr('PDS_REDIS_SCRATCH_PASSWORD'),\n\n // crawlers\n crawlers: envList('PDS_CRAWLERS'),\n\n // secrets\n dpopSecret: envStr('PDS_DPOP_SECRET'),\n jwtSecret: envStr('PDS_JWT_SECRET'),\n adminPassword: envStr('PDS_ADMIN_PASSWORD'),\n entrywayAdminToken: envStr('PDS_ENTRYWAY_ADMIN_TOKEN'),\n\n // kms\n plcRotationKeyKmsKeyId: envStr('PDS_PLC_ROTATION_KEY_KMS_KEY_ID'),\n // memory\n plcRotationKeyK256PrivateKeyHex: envStr(\n 'PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX',\n ),\n\n // user provided url http requests\n disableSsrfProtection: envBool('PDS_DISABLE_SSRF_PROTECTION'),\n\n // fetch\n fetchMaxResponseSize: envInt('PDS_FETCH_MAX_RESPONSE_SIZE'),\n\n // proxy\n proxyAllowHTTP2: envBool('PDS_PROXY_ALLOW_HTTP2'),\n proxyHeadersTimeout: envInt('PDS_PROXY_HEADERS_TIMEOUT'),\n proxyBodyTimeout: envInt('PDS_PROXY_BODY_TIMEOUT'),\n proxyMaxResponseSize: envInt('PDS_PROXY_MAX_RESPONSE_SIZE'),\n proxyMaxRetries: envInt('PDS_PROXY_MAX_RETRIES'),\n proxyPreferCompressed: envBool('PDS_PROXY_PREFER_COMPRESSED'),\n }\n}\n\nexport type ServerEnvironment = {\n // service\n port?: number\n hostname?: string\n serviceDid?: string\n serviceName?: string\n version?: string\n homeUrl?: string\n logoUrl?: string\n privacyPolicyUrl?: string\n supportUrl?: string\n termsOfServiceUrl?: string\n contactEmailAddress?: string\n acceptingImports?: boolean\n maxImportSize?: number\n blobUploadLimit?: number\n devMode?: boolean\n\n // OAuth\n hcaptchaSiteKey?: string\n hcaptchaSecretKey?: string\n hcaptchaTokenSalt?: string\n trustedOAuthClients?: string[]\n\n // branding\n lightColor?: string\n darkColor?: string\n primaryColor?: string\n primaryColorContrast?: string\n primaryColorHue?: number\n errorColor?: string\n errorColorContrast?: string\n errorColorHue?: number\n warningColor?: string\n warningColorContrast?: string\n warningColorHue?: number\n successColor?: string\n successColorContrast?: string\n successColorHue?: number\n\n // database\n dataDirectory?: string\n disableWalAutoCheckpoint?: boolean\n accountDbLocation?: string\n sequencerDbLocation?: string\n didCacheDbLocation?: string\n\n // actor store\n actorStoreDirectory?: string\n actorStoreCacheSize?: number\n\n // blobstore: one required\n blobstoreS3Bucket?: string\n blobstoreDiskLocation?: string\n blobstoreDiskTmpLocation?: string\n\n // -- optional s3 parameters\n blobstoreS3Region?: string\n blobstoreS3Endpoint?: string\n blobstoreS3ForcePathStyle?: boolean\n blobstoreS3AccessKeyId?: string\n blobstoreS3SecretAccessKey?: string\n blobstoreS3UploadTimeoutMs?: number\n\n // identity\n didPlcUrl?: string\n didCacheStaleTTL?: number\n didCacheMaxTTL?: number\n resolverTimeout?: number\n recoveryDidKey?: string\n serviceHandleDomains?: string[] // public hostname by default\n handleBackupNameservers?: string[]\n enableDidDocWithSession?: boolean\n\n // entryway\n entrywayUrl?: string\n entrywayDid?: string\n entrywayJwtVerifyKeyK256PublicKeyHex?: string\n entrywayPlcRotationKey?: string\n\n // invites\n inviteRequired?: boolean\n inviteInterval?: number\n inviteEpoch?: number\n\n // email\n emailSmtpUrl?: string\n emailFromAddress?: string\n moderationEmailSmtpUrl?: string\n moderationEmailAddress?: string\n\n // subscription\n maxSubscriptionBuffer?: number\n repoBackfillLimitMs?: number\n\n // appview\n bskyAppViewUrl?: string\n bskyAppViewDid?: string\n bskyAppViewCdnUrlPattern?: string\n\n // mod service\n modServiceUrl?: string\n modServiceDid?: string\n\n // report service\n reportServiceUrl?: string\n reportServiceDid?: string\n\n // rate limits\n rateLimitsEnabled?: boolean\n rateLimitBypassKey?: string\n rateLimitBypassIps?: string[]\n\n // redis\n redisScratchAddress?: string\n redisScratchPassword?: string\n\n // crawler\n crawlers?: string[]\n\n // secrets\n dpopSecret?: string\n jwtSecret?: string\n adminPassword?: string\n entrywayAdminToken?: string\n\n // keys\n plcRotationKeyKmsKeyId?: string\n plcRotationKeyK256PrivateKeyHex?: string\n\n // user provided url http requests\n disableSsrfProtection?: boolean\n\n // fetch\n fetchForceLogging?: boolean\n fetchMaxResponseSize?: number\n\n // lexicon resolver\n lexiconDidAuthority?: string\n\n // proxy\n proxyAllowHTTP2?: boolean\n proxyHeadersTimeout?: number\n proxyBodyTimeout?: number\n proxyMaxResponseSize?: number\n proxyMaxRetries?: number\n proxyPreferCompressed?: boolean\n}\n"]}
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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","sourcesContent":["import { envBool, envInt, envList, envStr } from '@atproto/common'\n\nexport function readEnv() {\n return {\n // service\n port: envInt('PDS_PORT'),\n hostname: envStr('PDS_HOSTNAME'),\n serviceDid: envStr('PDS_SERVICE_DID'),\n serviceName: envStr('PDS_SERVICE_NAME'),\n version: envStr('PDS_VERSION'),\n homeUrl: envStr('PDS_HOME_URL'),\n logoUrl: envStr('PDS_LOGO_URL'),\n privacyPolicyUrl: envStr('PDS_PRIVACY_POLICY_URL'),\n supportUrl: envStr('PDS_SUPPORT_URL'),\n termsOfServiceUrl: envStr('PDS_TERMS_OF_SERVICE_URL'),\n contactEmailAddress: envStr('PDS_CONTACT_EMAIL_ADDRESS'),\n acceptingImports: envBool('PDS_ACCEPTING_REPO_IMPORTS'),\n maxImportSize: envInt('PDS_MAX_REPO_IMPORT_SIZE'),\n blobUploadLimit: envInt('PDS_BLOB_UPLOAD_LIMIT'),\n devMode: envBool('PDS_DEV_MODE'),\n\n // hCaptcha\n hcaptchaSiteKey: envStr('PDS_HCAPTCHA_SITE_KEY'),\n hcaptchaSecretKey: envStr('PDS_HCAPTCHA_SECRET_KEY'),\n hcaptchaTokenSalt: envStr('PDS_HCAPTCHA_TOKEN_SALT'),\n\n // OAuth\n trustedOAuthClients: envList('PDS_OAUTH_TRUSTED_CLIENTS'),\n\n // branding\n lightColor: envStr('PDS_LIGHT_COLOR'),\n darkColor: envStr('PDS_DARK_COLOR'),\n primaryColor: envStr('PDS_PRIMARY_COLOR'),\n primaryColorContrast: envStr('PDS_PRIMARY_COLOR_CONTRAST'),\n primaryColorHue: envInt('PDS_PRIMARY_COLOR_HUE'),\n errorColor: envStr('PDS_ERROR_COLOR'),\n errorColorContrast: envStr('PDS_ERROR_COLOR_CONTRAST'),\n errorColorHue: envInt('PDS_ERROR_COLOR_HUE'),\n warningColor: envStr('PDS_WARNING_COLOR'),\n warningColorContrast: envStr('PDS_WARNING_COLOR_CONTRAST'),\n warningColorHue: envInt('PDS_WARNING_COLOR_HUE'),\n successColor: envStr('PDS_SUCCESS_COLOR'),\n successColorContrast: envStr('PDS_SUCCESS_COLOR_CONTRAST'),\n successColorHue: envInt('PDS_SUCCESS_COLOR_HUE'),\n\n // database\n dataDirectory: envStr('PDS_DATA_DIRECTORY'),\n disableWalAutoCheckpoint: envBool('PDS_SQLITE_DISABLE_WAL_AUTO_CHECKPOINT'),\n accountDbLocation: envStr('PDS_ACCOUNT_DB_LOCATION'),\n sequencerDbLocation: envStr('PDS_SEQUENCER_DB_LOCATION'),\n didCacheDbLocation: envStr('PDS_DID_CACHE_DB_LOCATION'),\n\n // actor store\n actorStoreDirectory: envStr('PDS_ACTOR_STORE_DIRECTORY'),\n actorStoreCacheSize: envInt('PDS_ACTOR_STORE_CACHE_SIZE'),\n\n // blobstore: one required\n // s3\n blobstoreS3Bucket: envStr('PDS_BLOBSTORE_S3_BUCKET'),\n blobstoreS3Region: envStr('PDS_BLOBSTORE_S3_REGION'),\n blobstoreS3Endpoint: envStr('PDS_BLOBSTORE_S3_ENDPOINT'),\n blobstoreS3ForcePathStyle: envBool('PDS_BLOBSTORE_S3_FORCE_PATH_STYLE'),\n blobstoreS3AccessKeyId: envStr('PDS_BLOBSTORE_S3_ACCESS_KEY_ID'),\n blobstoreS3SecretAccessKey: envStr('PDS_BLOBSTORE_S3_SECRET_ACCESS_KEY'),\n blobstoreS3UploadTimeoutMs: envInt('PDS_BLOBSTORE_S3_UPLOAD_TIMEOUT_MS'),\n // disk\n blobstoreDiskLocation: envStr('PDS_BLOBSTORE_DISK_LOCATION'),\n blobstoreDiskTmpLocation: envStr('PDS_BLOBSTORE_DISK_TMP_LOCATION'),\n\n // identity\n didPlcUrl: envStr('PDS_DID_PLC_URL'),\n didCacheStaleTTL: envInt('PDS_DID_CACHE_STALE_TTL'),\n didCacheMaxTTL: envInt('PDS_DID_CACHE_MAX_TTL'),\n resolverTimeout: envInt('PDS_ID_RESOLVER_TIMEOUT'),\n recoveryDidKey: envStr('PDS_RECOVERY_DID_KEY'),\n serviceHandleDomains: envList('PDS_SERVICE_HANDLE_DOMAINS'), // public hostname by default\n handleBackupNameservers: envList('PDS_HANDLE_BACKUP_NAMESERVERS'),\n enableDidDocWithSession: envBool('PDS_ENABLE_DID_DOC_WITH_SESSION'),\n\n // entryway\n entrywayUrl: envStr('PDS_ENTRYWAY_URL'),\n entrywayDid: envStr('PDS_ENTRYWAY_DID'),\n entrywayJwtVerifyKeyK256PublicKeyHex: envStr(\n 'PDS_ENTRYWAY_JWT_VERIFY_KEY_K256_PUBLIC_KEY_HEX',\n ),\n entrywayPlcRotationKey: envStr('PDS_ENTRYWAY_PLC_ROTATION_KEY'),\n\n // invites\n inviteRequired: envBool('PDS_INVITE_REQUIRED'),\n inviteInterval: envInt('PDS_INVITE_INTERVAL'),\n inviteEpoch: envInt('PDS_INVITE_EPOCH'),\n\n // email\n emailSmtpUrl: envStr('PDS_EMAIL_SMTP_URL'),\n emailFromAddress: envStr('PDS_EMAIL_FROM_ADDRESS'),\n moderationEmailSmtpUrl: envStr('PDS_MODERATION_EMAIL_SMTP_URL'),\n moderationEmailAddress: envStr('PDS_MODERATION_EMAIL_ADDRESS'),\n\n // subscription\n maxSubscriptionBuffer: envInt('PDS_MAX_SUBSCRIPTION_BUFFER'),\n repoBackfillLimitMs: envInt('PDS_REPO_BACKFILL_LIMIT_MS'),\n\n // appview\n bskyAppViewUrl: envStr('PDS_BSKY_APP_VIEW_URL'),\n bskyAppViewDid: envStr('PDS_BSKY_APP_VIEW_DID'),\n bskyAppViewCdnUrlPattern: envStr('PDS_BSKY_APP_VIEW_CDN_URL_PATTERN'),\n\n // mod service\n modServiceUrl: envStr('PDS_MOD_SERVICE_URL'),\n modServiceDid: envStr('PDS_MOD_SERVICE_DID'),\n\n // report service\n reportServiceUrl: envStr('PDS_REPORT_SERVICE_URL'),\n reportServiceDid: envStr('PDS_REPORT_SERVICE_DID'),\n\n // rate limits\n rateLimitsEnabled: envBool('PDS_RATE_LIMITS_ENABLED'),\n rateLimitBypassKey: envStr('PDS_RATE_LIMIT_BYPASS_KEY'),\n rateLimitBypassIps: envList('PDS_RATE_LIMIT_BYPASS_IPS'),\n\n // redis\n redisScratchAddress: envStr('PDS_REDIS_SCRATCH_ADDRESS'),\n redisScratchPassword: envStr('PDS_REDIS_SCRATCH_PASSWORD'),\n\n // crawlers\n crawlers: envList('PDS_CRAWLERS'),\n\n // secrets\n dpopSecret: envStr('PDS_DPOP_SECRET'),\n jwtSecret: envStr('PDS_JWT_SECRET'),\n adminPassword: envStr('PDS_ADMIN_PASSWORD'),\n entrywayAdminToken: envStr('PDS_ENTRYWAY_ADMIN_TOKEN'),\n\n // kms\n plcRotationKeyKmsKeyId: envStr('PDS_PLC_ROTATION_KEY_KMS_KEY_ID'),\n // memory\n plcRotationKeyK256PrivateKeyHex: envStr(\n 'PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX',\n ),\n\n // user provided url http requests\n disableSsrfProtection: envBool('PDS_DISABLE_SSRF_PROTECTION'),\n\n // fetch\n fetchMaxResponseSize: envInt('PDS_FETCH_MAX_RESPONSE_SIZE'),\n\n // proxy\n proxyAllowHTTP2: envBool('PDS_PROXY_ALLOW_HTTP2'),\n proxyHeadersTimeout: envInt('PDS_PROXY_HEADERS_TIMEOUT'),\n proxyBodyTimeout: envInt('PDS_PROXY_BODY_TIMEOUT'),\n proxyMaxResponseSize: envInt('PDS_PROXY_MAX_RESPONSE_SIZE'),\n proxyMaxRetries: envInt('PDS_PROXY_MAX_RETRIES'),\n proxyPreferCompressed: envBool('PDS_PROXY_PREFER_COMPRESSED'),\n\n // lexicon resolution\n lexiconDidAuthority: envStr('PDS_LEXICON_AUTHORITY_DID'),\n }\n}\n\nexport type ServerEnvironment = Partial<ReturnType<typeof readEnv>>\n"]}
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAG/B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|