* Export constants and type assertion utilities * Add permission set support to oauth provider * improve permission set parsing * Rename `PermissionSet` to `ScopePermissions` * Improve performance of NSID validation * Add support for `permission-set` in lexicon document * Validate NSID syntax using `@atproto/syntax` * Export all types used in public interfaces (from `lexicon-resolver`) * Small performance improvement * Rework scope parsing utilities to work with Lexicon defined permissions * file rename * fixup! Rework scope parsing utilities to work with Lexicon defined permissions * removed outdated comment * removed outdated comment * fix comment typo * Improve `SimpleStore` api * permission-set NSID auth scopes * Remove dev dependency on dev-env * fix build script * pnpm-lock * Improve fetch-node unicast protection * Explicitly set the `redirect: "follow"` `fetch()` option * Add delay when building oauth-provider-ui in watch mode * Remove external dependencies from auth-scopes * Add customizable lexicon authority to pds (for dev purposes) * fix pds migration * update permission-set icon * Add support for `include:` syntax in scopes * tidy * Renaming of "resource" concept to better reflect the fact that not all oauth scope values are about resources * changeset * ui improvmeents * i18n * ui imporvements * add `AtprotoAudience` type * Enforce proper formatting of audience (atproto supported did + fragment part) * tidy * tidy * tidy * fix ci ? * ci fix ? * tidy ? * Apply consistent outline around focusable items * Use `inheritAud: true` to control `aud` inheritance * Update packages/oauth/oauth-provider/src/lexicon/lexicon-manager.ts Co-authored-by: devin ivy <devinivy@gmail.com> * Review comments * Add `nsid` property to `LexiconResolutionError` * improve nsid validation * i18n * Improve oauth scope parsing * Simplify lex scope parsing * tidy * docs * tidy * ci * Code simplification * tidy * improve type safety * improve deps graph * naming * Improve tests and package structure * Improve error when resolving a non permission-set * improve nsid parsing perfs * benchmark * Refactor ozone and lexicon into using a common service profile mechanism * improve perfs * ci fix (?) * tidy * Allow storage of valid lexicons in lexicon store * Improve handling of lexicon resolution failures * review comment * Test both regexp and non regexp based nsid validation * properly detect presence of port number in https did:web * Re-enable logging of `safeFetch` requests * tidy --------- Co-authored-by: devin ivy <devinivy@gmail.com>
109 lines
2.8 KiB
Plaintext
109 lines
2.8 KiB
Plaintext
{
|
|
"root": true,
|
|
"extends": [
|
|
"eslint:recommended",
|
|
"plugin:@typescript-eslint/base",
|
|
"plugin:@typescript-eslint/eslint-recommended",
|
|
"plugin:@typescript-eslint/recommended",
|
|
"plugin:prettier/recommended",
|
|
"plugin:import/recommended",
|
|
"plugin:import/typescript"
|
|
],
|
|
"plugins": ["n"],
|
|
"ignorePatterns": ["dist", "node_modules"],
|
|
"rules": {
|
|
"no-var": "error",
|
|
"prefer-const": "warn",
|
|
"no-misleading-character-class": "warn",
|
|
"eqeqeq": ["error", "always", { "null": "ignore" }],
|
|
"n/global-require": "error",
|
|
"n/no-extraneous-import": "error",
|
|
"n/prefer-node-protocol": "error",
|
|
"import/extensions": ["off", "ignorePackages"],
|
|
"import/export": "off",
|
|
"import/namespace": "off",
|
|
"import/no-deprecated": "error",
|
|
"import/no-absolute-path": "error",
|
|
"import/no-dynamic-require": "error",
|
|
"import/no-self-import": "error",
|
|
"import/order": [
|
|
"error",
|
|
{
|
|
"named": true,
|
|
"distinctGroup": true,
|
|
"alphabetize": { "order": "asc" },
|
|
"newlines-between": "never",
|
|
"groups": [
|
|
"builtin",
|
|
"external",
|
|
"internal",
|
|
"parent",
|
|
["index", "sibling"],
|
|
"object"
|
|
]
|
|
}
|
|
],
|
|
"@typescript-eslint/no-unused-vars": [
|
|
"error",
|
|
{
|
|
"argsIgnorePattern": "^_",
|
|
"varsIgnorePattern": "^_",
|
|
"ignoreRestSiblings": true
|
|
}
|
|
],
|
|
"@typescript-eslint/ban-ts-comment": "off",
|
|
"@typescript-eslint/no-empty-interface": "off",
|
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
"@typescript-eslint/no-empty-function": "off",
|
|
"@typescript-eslint/no-explicit-any": "off"
|
|
},
|
|
"overrides": [
|
|
{
|
|
"files": ["jest.config.js"],
|
|
"env": { "commonjs": true }
|
|
},
|
|
{
|
|
"files": ["vite.config.js", "vite.config.cjs", "vite.config.mjs"],
|
|
"env": { "node": true }
|
|
},
|
|
{
|
|
"files": ["jest.setup.js"],
|
|
"env": { "jest": true }
|
|
},
|
|
{
|
|
"files": "*.js",
|
|
"rules": {
|
|
"@typescript-eslint/no-var-requires": "off"
|
|
}
|
|
},
|
|
{
|
|
"files": ["**/*.test.ts", "**/tests/**/*.ts"],
|
|
"rules": {
|
|
"n/no-extraneous-import": [
|
|
"error",
|
|
{ "allowModules": ["@atproto/dev-env"] }
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"settings": {
|
|
"node": { "version": ">=18.7.0" },
|
|
"import/internal-regex": "^@atproto(?:-labs)?/",
|
|
"import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] },
|
|
"import/resolver": {
|
|
"typescript": {
|
|
"project": [
|
|
"tsconfig.json",
|
|
"packages/oauth/*/tsconfig.json",
|
|
"packages/oauth/*/tsconfig.src.json",
|
|
"packages/internal/*/tsconfig.json",
|
|
"packages/*/tsconfig.json"
|
|
]
|
|
},
|
|
"node": {
|
|
"extensions": [".js", ".jsx", ".json"]
|
|
}
|
|
}
|
|
}
|
|
}
|