Skip to content

EvexAccount support#4

Open
akku1139 wants to merge 8 commits intodevelopfrom
feat/evexaccount
Open

EvexAccount support#4
akku1139 wants to merge 8 commits intodevelopfrom
feat/evexaccount

Conversation

@akku1139
Copy link
Copy Markdown
Member

@akku1139 akku1139 commented Mar 26, 2026

moved from #1

  • 余計に削除された部分を復元
  • メアドログインを復元
  • misskey-jsの再生成
  • 使わなくなったevexAccount以下のロケールの一部消す?
  • 既存のアカウントをEvexAccount連携できるようにする

* a

* now

* EvexAccount関連の変更はある程度できた.
READ: ./document-evexacount/BUILD.md

* EvexAccount関連のテキストをi18nに移行 (多言語対応)

* fix: 余計な変更を戻す(1)

* fix: 余計な変更を戻す(2)

* chore: 余計な変更戻す

Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>

* chore: 余計な変更戻す2

Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>

---------

Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>
Co-authored-by: Akari Tsuyukusa <akkun11.open@gmail.com>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

このPRによるapi.jsonの差分

差分はこちら
--- base
+++ head
@@ -43471,6 +43471,276 @@
         }
       }
     },
+    "/evex-account/complete": {
+      "post": {
+        "operationId": "post___evex-account___complete",
+        "summary": "evex-account/complete",
+        "description": "No description provided.\n\n**Credential required**: *No*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/evex-account/complete.ts"
+        },
+        "tags": [
+          "auth"
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "code": {
+                    "type": "string"
+                  },
+                  "state": {
+                    "type": "string"
+                  }
+                },
+                "required": [
+                  "code",
+                  "state"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/evex-account/start": {
+      "post": {
+        "operationId": "post___evex-account___start",
+        "summary": "evex-account/start",
+        "description": "No description provided.\n\n**Credential required**: *No*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/evex-account/start.ts"
+        },
+        "tags": [
+          "auth"
+        ],
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/export-custom-emojis": {
       "post": {
         "operationId": "post___export-custom-emojis",

Get diff files from Workflow Page

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

Backend memory usage comparison

Before GC

Metric base (MB) head (MB) Diff (MB) Diff (%)
VmRSS 315.14 MB 315.94 MB +0.80 MB +0.25%
VmHWM 315.14 MB 315.94 MB +0.80 MB +0.25%
VmSize 23107.75 MB 23109.91 MB 2.16 MB 0%
VmData 1378.45 MB 1380.52 MB +2.06 MB +0.14%

After GC

Metric base (MB) head (MB) Diff (MB) Diff (%)
VmRSS 315.15 MB 315.95 MB +0.79 MB +0.25%
VmHWM 315.15 MB 315.95 MB +0.79 MB +0.25%
VmSize 23107.92 MB 23109.91 MB 1.99 MB 0%
VmData 1378.62 MB 1380.52 MB +1.89 MB +0.13%

After Request

Metric base (MB) head (MB) Diff (MB) Diff (%)
VmRSS 315.59 MB 316.28 MB +0.69 MB +0.21%
VmHWM 315.59 MB 316.28 MB +0.69 MB +0.21%
VmSize 23108.09 MB 23109.91 MB 1.82 MB 0%
VmData 1378.79 MB 1380.52 MB +1.72 MB +0.12%

See workflow logs for details

Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>
Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>
Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>
Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>
ログ

$ pnpm run build-misskey-js-with-types

> misskey@2026.3.2-beta.0 build-misskey-js-with-types /home/akku/tmp/eveskey
> pnpm build-pre && pnpm --filter backend... --filter=!misskey-js build && pnpm --filter backend generate-api-json --no-build && ncp packages/backend/built/api.json packages/misskey-js/generator/api.json && pnpm --filter misskey-js update-autogen-code && pnpm --filter misskey-js build && pnpm --filter misskey-js api

> misskey@2026.3.2-beta.0 build-pre /home/akku/tmp/eveskey
> node scripts/build-pre.mjs

Scope: 3 of 13 workspace projects
packages/i18n build$ tsx ./build.ts
│ [i18n] start building...
│ [i18n] build succeeded.
│ [i18n] locales copied (40 files).
│ [i18n] frontend locales JSON written to /home/akku/tmp/eveskey/built/_frontend_dist_/locales
│ [i18n] finish building.
└─ Done in 2.3s
packages/misskey-reversi build$ node ./build.js
│ [misskey-reversi] start building...
│ [misskey-reversi] build succeeded.
│ [misskey-reversi] finish building.
└─ Done in 861ms
packages/backend build$ swc src -d src-js -D --strip-leading-paths && node ./build.js
│ Successfully compiled: 943 files, copied 8 files with swc (451.74ms)
│ [backend] start building...
│ [backend] build succeeded.
│ [backend] finish building.
└─ Done in 1.3s

> backend@ generate-api-json /home/akku/tmp/eveskey/packages/backend
> pnpm compile-config && node ./scripts/generate_api_json.js --no-build

> backend@ compile-config /home/akku/tmp/eveskey/packages/backend
> node ./scripts/compile_config.js

/home/akku/tmp/eveskey/.config/default.yml → /home/akku/tmp/eveskey/built/.config.json
Configuration compiled ✓

> misskey-js@2026.3.2-beta.0 update-autogen-code /home/akku/tmp/eveskey/packages/misskey-js
> pnpm --filter misskey-js-type-generator generate && ncp generator/built/autogen src/autogen

> misskey-js-type-generator@0.0.0 generate /home/akku/tmp/eveskey/packages/misskey-js/generator
> tsx src/generator.ts && eslint ./built/**/*.ts --fix

> misskey-js@2026.3.2-beta.0 build /home/akku/tmp/eveskey/packages/misskey-js
> node ./build.js

[misskey-js] start building...
[misskey-js] build succeeded.
[misskey-js] finish building.

> misskey-js@2026.3.2-beta.0 api /home/akku/tmp/eveskey/packages/misskey-js
> pnpm api-extractor run --local --verbose

api-extractor 7.57.7  - https://api-extractor.com/

Using configuration from ./api-extractor.json
Analysis will use the bundled TypeScript version 5.8.2
*** The target project appears to use TypeScript 5.9.3 which is newer than the bundled compiler engine; consider upgrading API Extractor.
Writing: /home/akku/tmp/eveskey/packages/misskey-js/temp/misskey-js.api.json
Generating complete API report: /home/akku/tmp/eveskey/packages/misskey-js/etc/misskey-js.api.md
Warning: You have changed the API signature for this project. Updating etc/misskey-js.api.md
Changes to the API report:

===================================================================
--- etc/misskey-js.api.md
+++ temp/misskey-js.api.md
@@ -1832,8 +1832,9 @@
         EmojisResponse,
         EndpointRequest,
         EndpointResponse,
         EndpointsResponse,
+        EvexAccountCompleteRequest,
         FederationFollowersRequest,
         FederationFollowersResponse,
         FederationFollowingRequest,
         FederationFollowingResponse,
@@ -2248,8 +2249,11 @@
 // @public (undocumented)
 type Error_2 = components['schemas']['Error'];

 // @public (undocumented)
+type EvexAccountCompleteRequest = operations['evex-account___complete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
 type FederationFollowersRequest = operations['federation___followers']['requestBody']['content']['application/json'];

 // @public (undocumented)
 type FederationFollowersResponse = operations['federation___followers']['responses']['200']['content']['application/json'];

API Extractor completed successfully

Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>
@akku1139 akku1139 requested a review from techfish-11 March 26, 2026 17:19
Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>
@akku1139
Copy link
Copy Markdown
Member Author

多分大丈夫

@akku1139 akku1139 marked this pull request as ready for review March 26, 2026 17:25
}
}

if (createdAccount == null || secret == null) {
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

勝手にユーザー名決定するのどうなの?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

いいんじゃない

@Povo-43
Copy link
Copy Markdown

Povo-43 commented Mar 28, 2026

そーいや今のコードベース見てないから直ってるかもだけど、EvexAccountのメールアドレスの先頭がユーザーIDになってた気がする。EvexAccountIDを使用するほうがいいかなとか思ったり。
実質メールアドレス公開になるから嫌な人はいるかもなーって

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants