mirror of
https://github.com/aykhans/slash-e.git
synced 2025-04-18 21:19:44 +00:00
chore: initial extension structure
This commit is contained in:
parent
9c134f4c8f
commit
feadf879dd
33
extension/.eslintrc.json
Normal file
33
extension/.eslintrc.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"env": {
|
||||||
|
"browser": true,
|
||||||
|
"es2021": true
|
||||||
|
},
|
||||||
|
"extends": ["eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"],
|
||||||
|
"parser": "@typescript-eslint/parser",
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaFeatures": {
|
||||||
|
"jsx": true
|
||||||
|
},
|
||||||
|
"ecmaVersion": "latest",
|
||||||
|
"sourceType": "module"
|
||||||
|
},
|
||||||
|
"plugins": ["react", "@typescript-eslint", "prettier"],
|
||||||
|
"ignorePatterns": ["node_modules", "dist", "public"],
|
||||||
|
"rules": {
|
||||||
|
"prettier/prettier": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"endOfLine": "auto"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@typescript-eslint/no-explicit-any": ["off"],
|
||||||
|
"react/react-in-jsx-scope": "off",
|
||||||
|
"react/jsx-no-target-blank": "off"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"react": {
|
||||||
|
"version": "detect"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
38
extension/.gitignore
vendored
Normal file
38
extension/.gitignore
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
/.pnp
|
||||||
|
.pnp.js
|
||||||
|
|
||||||
|
# testing
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
#cache
|
||||||
|
.turbo
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# debug
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
.pnpm-debug.log*
|
||||||
|
|
||||||
|
# local env files
|
||||||
|
.env*
|
||||||
|
|
||||||
|
out/
|
||||||
|
build/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
.plasmo
|
||||||
|
|
||||||
|
# bpp - http://bpp.browser.market/
|
||||||
|
keys.json
|
||||||
|
|
||||||
|
# typescript
|
||||||
|
.tsbuildinfo
|
8
extension/.prettierrc.js
Normal file
8
extension/.prettierrc.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
module.exports = {
|
||||||
|
printWidth: 140,
|
||||||
|
useTabs: false,
|
||||||
|
semi: true,
|
||||||
|
singleQuote: false,
|
||||||
|
plugins: [require.resolve("@trivago/prettier-plugin-sort-imports")],
|
||||||
|
importOrder: ["<BUILTIN_MODULES>", "<THIRD_PARTY_MODULES>", "^@/((?!less).+)", "^[./]", "^(.+).css"],
|
||||||
|
};
|
0
extension/README.md
Normal file
0
extension/README.md
Normal file
BIN
extension/assets/icon.png
Normal file
BIN
extension/assets/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 83 KiB |
54
extension/package.json
Normal file
54
extension/package.json
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{
|
||||||
|
"name": "slash-extexnsion",
|
||||||
|
"displayName": "Slash",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"description": "An open source, self-hosted bookmarks and link sharing platform. Save and share your links very easily.",
|
||||||
|
"author": "steven",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "plasmo dev",
|
||||||
|
"build": "plasmo build",
|
||||||
|
"package": "plasmo package",
|
||||||
|
"lint": "eslint --ext .js,.ts,.tsx, src",
|
||||||
|
"lint-fix": "eslint --ext .js,.ts,.tsx, src --fix"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@emotion/react": "^11.11.1",
|
||||||
|
"@emotion/styled": "^11.11.0",
|
||||||
|
"@mui/joy": "5.0.0-beta.0",
|
||||||
|
"@plasmohq/storage": "^1.7.2",
|
||||||
|
"axios": "^1.4.0",
|
||||||
|
"lucide-react": "^0.264.0",
|
||||||
|
"plasmo": "0.82.0",
|
||||||
|
"react": "18.2.0",
|
||||||
|
"react-dom": "18.2.0",
|
||||||
|
"react-hot-toast": "^2.4.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@trivago/prettier-plugin-sort-imports": "4.1.0",
|
||||||
|
"@types/chrome": "0.0.241",
|
||||||
|
"@types/node": "20.4.2",
|
||||||
|
"@types/react": "18.2.15",
|
||||||
|
"@types/react-dom": "18.2.7",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^6.2.0",
|
||||||
|
"@typescript-eslint/parser": "^6.2.0",
|
||||||
|
"autoprefixer": "^10.4.14",
|
||||||
|
"eslint": "^8.46.0",
|
||||||
|
"eslint-config-prettier": "^8.3.0",
|
||||||
|
"eslint-plugin-prettier": "^4.0.0",
|
||||||
|
"eslint-plugin-react": "^7.27.1",
|
||||||
|
"postcss": "^8.4.27",
|
||||||
|
"prettier": "2.6.2",
|
||||||
|
"tailwindcss": "^3.3.3",
|
||||||
|
"typescript": "5.1.6"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"host_permissions": [
|
||||||
|
"https://*/*"
|
||||||
|
],
|
||||||
|
"permissions": [
|
||||||
|
"tabs",
|
||||||
|
"scripting",
|
||||||
|
"storage"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
7028
extension/pnpm-lock.yaml
generated
Normal file
7028
extension/pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
10
extension/postcss.config.js
Normal file
10
extension/postcss.config.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/* eslint-disable no-undef */
|
||||||
|
/**
|
||||||
|
* @type {import('postcss').ProcessOptions}
|
||||||
|
*/
|
||||||
|
module.exports = {
|
||||||
|
plugins: {
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {},
|
||||||
|
},
|
||||||
|
};
|
24
extension/src/background.ts
Normal file
24
extension/src/background.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import type { Shortcut } from "./types/proto/api/v2/shortcut_service_pb";
|
||||||
|
import { Storage } from "@plasmohq/storage";
|
||||||
|
|
||||||
|
const storage = new Storage();
|
||||||
|
const urlRegex = /https?:\/\/s\/(.+)/;
|
||||||
|
|
||||||
|
chrome.tabs.onUpdated.addListener(async (tabId, _, tab) => {
|
||||||
|
if (typeof tab.url === "string") {
|
||||||
|
const matchResult = urlRegex.exec(tab.url);
|
||||||
|
const sname = Array.isArray(matchResult) ? matchResult[1] : null;
|
||||||
|
if (sname) {
|
||||||
|
const shortcuts = (await storage.getItem("shortcuts")) as Shortcut[] | null;
|
||||||
|
if (!Array.isArray(shortcuts)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const shortcut = shortcuts.find((shortcut) => shortcut.name === sname);
|
||||||
|
if (!shortcut) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return chrome.tabs.update(tabId, { url: shortcut.link });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
3
extension/src/components/Icon.ts
Normal file
3
extension/src/components/Icon.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import * as Icon from "lucide-react";
|
||||||
|
|
||||||
|
export default Icon;
|
43
extension/src/components/PullShortcutsButton.tsx
Normal file
43
extension/src/components/PullShortcutsButton.tsx
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import { Button } from "@mui/joy";
|
||||||
|
import { useStorage } from "@plasmohq/storage/hook";
|
||||||
|
import axios from "axios";
|
||||||
|
import { useState } from "react";
|
||||||
|
import { toast } from "react-hot-toast";
|
||||||
|
import { Shortcut } from "@/types/proto/api/v2/shortcut_service_pb";
|
||||||
|
import Icon from "./Icon";
|
||||||
|
import "./style.css";
|
||||||
|
|
||||||
|
function PullShortcutsButton() {
|
||||||
|
const [domain] = useStorage("domain");
|
||||||
|
const [accessToken] = useStorage("access_token");
|
||||||
|
const [shortcuts, setShortcuts] = useStorage("shortcuts");
|
||||||
|
const [isPulling, setIsPulling] = useState(false);
|
||||||
|
|
||||||
|
const handlePullShortcuts = async () => {
|
||||||
|
try {
|
||||||
|
setIsPulling(true);
|
||||||
|
const { data } = await axios.get<Shortcut[]>(`${domain}/api/v1/shortcut`, {
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${accessToken}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
setShortcuts(data);
|
||||||
|
toast.success("Shortcuts pulled");
|
||||||
|
} catch (error) {
|
||||||
|
toast.error("Failed to pull shortcuts, error: " + error.message);
|
||||||
|
}
|
||||||
|
setIsPulling(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="w-full mt-4">
|
||||||
|
<Button loading={isPulling} className="w-full" onClick={handlePullShortcuts}>
|
||||||
|
<Icon.RefreshCcw className="w-5 h-auto mr-1" />
|
||||||
|
<span>Pull</span>
|
||||||
|
<span className="opacity-70 ml-1">{Array.isArray(shortcuts) ? `(${shortcuts.length})` : ""}</span>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default PullShortcutsButton;
|
46
extension/src/components/Setting.tsx
Normal file
46
extension/src/components/Setting.tsx
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import { Input } from "@mui/joy";
|
||||||
|
import { useStorage } from "@plasmohq/storage/hook";
|
||||||
|
import "../style.css";
|
||||||
|
import Icon from "./Icon";
|
||||||
|
|
||||||
|
const Setting = () => {
|
||||||
|
const [domain, setDomain] = useStorage("domain");
|
||||||
|
const [accessToken, setAccessToken] = useStorage("access_token");
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h2 className="flex flex-row justify-start items-center mb-2">
|
||||||
|
<Icon.Settings className="w-5 h-auto mr-1" />
|
||||||
|
<span className="text-lg">Setting</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div className="w-full flex flex-col justify-start items-start mb-2">
|
||||||
|
<span className="mb-2 text-base">Domain</span>
|
||||||
|
<div className="relative w-full">
|
||||||
|
<Input
|
||||||
|
className="w-full"
|
||||||
|
type="text"
|
||||||
|
placeholder="The domain of your Slash instance"
|
||||||
|
value={domain}
|
||||||
|
onChange={(e) => setDomain(e.target.value)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="w-full flex flex-col justify-start items-start">
|
||||||
|
<span className="mb-2 text-base">Access Token</span>
|
||||||
|
<div className="relative w-full">
|
||||||
|
<Input
|
||||||
|
className="w-full"
|
||||||
|
type="text"
|
||||||
|
placeholder="The access token of your Slash instance"
|
||||||
|
value={accessToken}
|
||||||
|
onChange={(e) => setAccessToken(e.target.value)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Setting;
|
11
extension/src/options.tsx
Normal file
11
extension/src/options.tsx
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import "./style.css";
|
||||||
|
|
||||||
|
function IndexOptions() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h1>TBC</h1>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default IndexOptions;
|
48
extension/src/popup.tsx
Normal file
48
extension/src/popup.tsx
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
import { Button } from "@mui/joy";
|
||||||
|
import { useStorage } from "@plasmohq/storage/hook";
|
||||||
|
import axios from "axios";
|
||||||
|
import { Toaster, toast } from "react-hot-toast";
|
||||||
|
import Setting from "@/components/Setting";
|
||||||
|
import { Shortcut } from "@/types/proto/api/v2/shortcut_service_pb";
|
||||||
|
import Icon from "./components/Icon";
|
||||||
|
import "./style.css";
|
||||||
|
|
||||||
|
function IndexPopup() {
|
||||||
|
const [domain] = useStorage("domain");
|
||||||
|
const [accessToken] = useStorage("access_token");
|
||||||
|
const [shortcuts, setShortcuts] = useStorage("shortcuts");
|
||||||
|
|
||||||
|
const handlePullShortcuts = async () => {
|
||||||
|
try {
|
||||||
|
const { data } = await axios.get<Shortcut[]>(`${domain}/api/v1/shortcut`, {
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${accessToken}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
setShortcuts(data);
|
||||||
|
toast.success("Shortcuts pulled");
|
||||||
|
} catch (error) {
|
||||||
|
toast.error("Failed to pull shortcuts, error: " + error.message);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className="w-full min-w-[16rem] p-4">
|
||||||
|
<Setting />
|
||||||
|
|
||||||
|
<div className="w-full mt-4">
|
||||||
|
<Button className="w-full" onClick={handlePullShortcuts}>
|
||||||
|
<Icon.RefreshCcw className="w-5 h-auto mr-1" />
|
||||||
|
<span>Pull</span>
|
||||||
|
<span className="opacity-70 ml-1">{Array.isArray(shortcuts) ? `(${shortcuts.length})` : ""}</span>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<Toaster position="top-center" />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default IndexPopup;
|
25
extension/src/style.css
Normal file
25
extension/src/style.css
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
||||||
|
|
||||||
|
body,
|
||||||
|
html,
|
||||||
|
#root {
|
||||||
|
@apply text-base;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Noto Sans", "Noto Sans CJK SC", "Microsoft YaHei UI", "Microsoft YaHei",
|
||||||
|
"WenQuanYi Micro Hei", sans-serif, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
||||||
|
"Noto Color Emoji";
|
||||||
|
}
|
||||||
|
|
||||||
|
@layer utilities {
|
||||||
|
/* Hide scrollbar for Chrome, Safari and Opera */
|
||||||
|
.no-scrollbar::-webkit-scrollbar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hide scrollbar for IE, Edge and Firefox */
|
||||||
|
.no-scrollbar {
|
||||||
|
-ms-overflow-style: none; /* IE and Edge */
|
||||||
|
scrollbar-width: none; /* Firefox */
|
||||||
|
}
|
||||||
|
}
|
25
extension/src/types/proto/api/v2/common_pb.d.ts
vendored
Normal file
25
extension/src/types/proto/api/v2/common_pb.d.ts
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file api/v2/common.proto (package slash.api.v2, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.api.v2.RowStatus
|
||||||
|
*/
|
||||||
|
export declare enum RowStatus {
|
||||||
|
/**
|
||||||
|
* @generated from enum value: ROW_STATUS_UNSPECIFIED = 0;
|
||||||
|
*/
|
||||||
|
ROW_STATUS_UNSPECIFIED = 0,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: NORMAL = 1;
|
||||||
|
*/
|
||||||
|
NORMAL = 1,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: ARCHIVED = 2;
|
||||||
|
*/
|
||||||
|
ARCHIVED = 2,
|
||||||
|
}
|
||||||
|
|
19
extension/src/types/proto/api/v2/common_pb.js
Normal file
19
extension/src/types/proto/api/v2/common_pb.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file api/v2/common.proto (package slash.api.v2, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import { proto3 } from "@bufbuild/protobuf";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.api.v2.RowStatus
|
||||||
|
*/
|
||||||
|
export const RowStatus = proto3.makeEnum(
|
||||||
|
"slash.api.v2.RowStatus",
|
||||||
|
[
|
||||||
|
{no: 0, name: "ROW_STATUS_UNSPECIFIED"},
|
||||||
|
{no: 1, name: "NORMAL"},
|
||||||
|
{no: 2, name: "ARCHIVED"},
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
195
extension/src/types/proto/api/v2/shortcut_service_pb.d.ts
vendored
Normal file
195
extension/src/types/proto/api/v2/shortcut_service_pb.d.ts
vendored
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file api/v2/shortcut_service.proto (package slash.api.v2, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
|
||||||
|
import { Message, proto3 } from "@bufbuild/protobuf";
|
||||||
|
import type { RowStatus } from "./common_pb.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.api.v2.Visibility
|
||||||
|
*/
|
||||||
|
export declare enum Visibility {
|
||||||
|
/**
|
||||||
|
* @generated from enum value: VISIBILITY_UNSPECIFIED = 0;
|
||||||
|
*/
|
||||||
|
VISIBILITY_UNSPECIFIED = 0,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: PRIVATE = 1;
|
||||||
|
*/
|
||||||
|
PRIVATE = 1,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: WORKSPACE = 2;
|
||||||
|
*/
|
||||||
|
WORKSPACE = 2,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: PUBLIC = 3;
|
||||||
|
*/
|
||||||
|
PUBLIC = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.Shortcut
|
||||||
|
*/
|
||||||
|
export declare class Shortcut extends Message<Shortcut> {
|
||||||
|
/**
|
||||||
|
* @generated from field: int32 id = 1;
|
||||||
|
*/
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: int32 creator_id = 2;
|
||||||
|
*/
|
||||||
|
creatorId: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: int64 created_ts = 3;
|
||||||
|
*/
|
||||||
|
createdTs: bigint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: int64 updated_ts = 4;
|
||||||
|
*/
|
||||||
|
updatedTs: bigint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.api.v2.RowStatus row_status = 5;
|
||||||
|
*/
|
||||||
|
rowStatus: RowStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string name = 6;
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string link = 7;
|
||||||
|
*/
|
||||||
|
link: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string title = 8;
|
||||||
|
*/
|
||||||
|
title: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: repeated string tags = 9;
|
||||||
|
*/
|
||||||
|
tags: string[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string description = 10;
|
||||||
|
*/
|
||||||
|
description: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.api.v2.Visibility visibility = 11;
|
||||||
|
*/
|
||||||
|
visibility: Visibility;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.api.v2.OpenGraphMetadata og_metadata = 12;
|
||||||
|
*/
|
||||||
|
ogMetadata?: OpenGraphMetadata;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<Shortcut>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.Shortcut";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Shortcut;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Shortcut;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Shortcut;
|
||||||
|
|
||||||
|
static equals(a: Shortcut | PlainMessage<Shortcut> | undefined, b: Shortcut | PlainMessage<Shortcut> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.OpenGraphMetadata
|
||||||
|
*/
|
||||||
|
export declare class OpenGraphMetadata extends Message<OpenGraphMetadata> {
|
||||||
|
/**
|
||||||
|
* @generated from field: string title = 1;
|
||||||
|
*/
|
||||||
|
title: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string description = 2;
|
||||||
|
*/
|
||||||
|
description: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string image = 3;
|
||||||
|
*/
|
||||||
|
image: string;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<OpenGraphMetadata>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.OpenGraphMetadata";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OpenGraphMetadata;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OpenGraphMetadata;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OpenGraphMetadata;
|
||||||
|
|
||||||
|
static equals(a: OpenGraphMetadata | PlainMessage<OpenGraphMetadata> | undefined, b: OpenGraphMetadata | PlainMessage<OpenGraphMetadata> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.GetShortcutRequest
|
||||||
|
*/
|
||||||
|
export declare class GetShortcutRequest extends Message<GetShortcutRequest> {
|
||||||
|
/**
|
||||||
|
* @generated from field: string name = 1;
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<GetShortcutRequest>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.GetShortcutRequest";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetShortcutRequest;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetShortcutRequest;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetShortcutRequest;
|
||||||
|
|
||||||
|
static equals(a: GetShortcutRequest | PlainMessage<GetShortcutRequest> | undefined, b: GetShortcutRequest | PlainMessage<GetShortcutRequest> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.GetShortcutResponse
|
||||||
|
*/
|
||||||
|
export declare class GetShortcutResponse extends Message<GetShortcutResponse> {
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.api.v2.Shortcut shortcut = 1;
|
||||||
|
*/
|
||||||
|
shortcut?: Shortcut;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<GetShortcutResponse>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.GetShortcutResponse";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetShortcutResponse;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetShortcutResponse;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetShortcutResponse;
|
||||||
|
|
||||||
|
static equals(a: GetShortcutResponse | PlainMessage<GetShortcutResponse> | undefined, b: GetShortcutResponse | PlainMessage<GetShortcutResponse> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
74
extension/src/types/proto/api/v2/shortcut_service_pb.js
Normal file
74
extension/src/types/proto/api/v2/shortcut_service_pb.js
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file api/v2/shortcut_service.proto (package slash.api.v2, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import { proto3 } from "@bufbuild/protobuf";
|
||||||
|
import { RowStatus } from "./common_pb.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.api.v2.Visibility
|
||||||
|
*/
|
||||||
|
export const Visibility = proto3.makeEnum(
|
||||||
|
"slash.api.v2.Visibility",
|
||||||
|
[
|
||||||
|
{no: 0, name: "VISIBILITY_UNSPECIFIED"},
|
||||||
|
{no: 1, name: "PRIVATE"},
|
||||||
|
{no: 2, name: "WORKSPACE"},
|
||||||
|
{no: 3, name: "PUBLIC"},
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.Shortcut
|
||||||
|
*/
|
||||||
|
export const Shortcut = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.Shortcut",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
{ no: 2, name: "creator_id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
{ no: 3, name: "created_ts", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
|
||||||
|
{ no: 4, name: "updated_ts", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
|
||||||
|
{ no: 5, name: "row_status", kind: "enum", T: proto3.getEnumType(RowStatus) },
|
||||||
|
{ no: 6, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 7, name: "link", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 8, name: "title", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 9, name: "tags", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
|
||||||
|
{ no: 10, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 11, name: "visibility", kind: "enum", T: proto3.getEnumType(Visibility) },
|
||||||
|
{ no: 12, name: "og_metadata", kind: "message", T: OpenGraphMetadata },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.OpenGraphMetadata
|
||||||
|
*/
|
||||||
|
export const OpenGraphMetadata = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.OpenGraphMetadata",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "title", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 2, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 3, name: "image", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.GetShortcutRequest
|
||||||
|
*/
|
||||||
|
export const GetShortcutRequest = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.GetShortcutRequest",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.GetShortcutResponse
|
||||||
|
*/
|
||||||
|
export const GetShortcutResponse = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.GetShortcutResponse",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "shortcut", kind: "message", T: Shortcut },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
327
extension/src/types/proto/api/v2/user_service_pb.d.ts
vendored
Normal file
327
extension/src/types/proto/api/v2/user_service_pb.d.ts
vendored
Normal file
@ -0,0 +1,327 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file api/v2/user_service.proto (package slash.api.v2, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage, Timestamp } from "@bufbuild/protobuf";
|
||||||
|
import { Message, proto3 } from "@bufbuild/protobuf";
|
||||||
|
import type { RowStatus } from "./common_pb.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.api.v2.Role
|
||||||
|
*/
|
||||||
|
export declare enum Role {
|
||||||
|
/**
|
||||||
|
* @generated from enum value: ROLE_UNSPECIFIED = 0;
|
||||||
|
*/
|
||||||
|
ROLE_UNSPECIFIED = 0,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: ADMIN = 1;
|
||||||
|
*/
|
||||||
|
ADMIN = 1,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: USER = 2;
|
||||||
|
*/
|
||||||
|
USER = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.User
|
||||||
|
*/
|
||||||
|
export declare class User extends Message<User> {
|
||||||
|
/**
|
||||||
|
* @generated from field: int32 id = 1;
|
||||||
|
*/
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.api.v2.RowStatus row_status = 2;
|
||||||
|
*/
|
||||||
|
rowStatus: RowStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: int64 created_ts = 3;
|
||||||
|
*/
|
||||||
|
createdTs: bigint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: int64 updated_ts = 4;
|
||||||
|
*/
|
||||||
|
updatedTs: bigint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.api.v2.Role role = 6;
|
||||||
|
*/
|
||||||
|
role: Role;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string email = 7;
|
||||||
|
*/
|
||||||
|
email: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string nickname = 8;
|
||||||
|
*/
|
||||||
|
nickname: string;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<User>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.User";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): User;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): User;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): User;
|
||||||
|
|
||||||
|
static equals(a: User | PlainMessage<User> | undefined, b: User | PlainMessage<User> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.GetUserRequest
|
||||||
|
*/
|
||||||
|
export declare class GetUserRequest extends Message<GetUserRequest> {
|
||||||
|
/**
|
||||||
|
* @generated from field: int32 id = 1;
|
||||||
|
*/
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<GetUserRequest>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.GetUserRequest";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUserRequest;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUserRequest;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUserRequest;
|
||||||
|
|
||||||
|
static equals(a: GetUserRequest | PlainMessage<GetUserRequest> | undefined, b: GetUserRequest | PlainMessage<GetUserRequest> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.GetUserResponse
|
||||||
|
*/
|
||||||
|
export declare class GetUserResponse extends Message<GetUserResponse> {
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.api.v2.User user = 1;
|
||||||
|
*/
|
||||||
|
user?: User;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<GetUserResponse>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.GetUserResponse";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUserResponse;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUserResponse;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUserResponse;
|
||||||
|
|
||||||
|
static equals(a: GetUserResponse | PlainMessage<GetUserResponse> | undefined, b: GetUserResponse | PlainMessage<GetUserResponse> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.ListUserAccessTokensRequest
|
||||||
|
*/
|
||||||
|
export declare class ListUserAccessTokensRequest extends Message<ListUserAccessTokensRequest> {
|
||||||
|
/**
|
||||||
|
* id is the user id.
|
||||||
|
*
|
||||||
|
* @generated from field: int32 id = 1;
|
||||||
|
*/
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<ListUserAccessTokensRequest>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.ListUserAccessTokensRequest";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUserAccessTokensRequest;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUserAccessTokensRequest;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUserAccessTokensRequest;
|
||||||
|
|
||||||
|
static equals(a: ListUserAccessTokensRequest | PlainMessage<ListUserAccessTokensRequest> | undefined, b: ListUserAccessTokensRequest | PlainMessage<ListUserAccessTokensRequest> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.ListUserAccessTokensResponse
|
||||||
|
*/
|
||||||
|
export declare class ListUserAccessTokensResponse extends Message<ListUserAccessTokensResponse> {
|
||||||
|
/**
|
||||||
|
* @generated from field: repeated slash.api.v2.UserAccessToken access_tokens = 1;
|
||||||
|
*/
|
||||||
|
accessTokens: UserAccessToken[];
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<ListUserAccessTokensResponse>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.ListUserAccessTokensResponse";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUserAccessTokensResponse;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUserAccessTokensResponse;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUserAccessTokensResponse;
|
||||||
|
|
||||||
|
static equals(a: ListUserAccessTokensResponse | PlainMessage<ListUserAccessTokensResponse> | undefined, b: ListUserAccessTokensResponse | PlainMessage<ListUserAccessTokensResponse> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.CreateUserAccessTokenRequest
|
||||||
|
*/
|
||||||
|
export declare class CreateUserAccessTokenRequest extends Message<CreateUserAccessTokenRequest> {
|
||||||
|
/**
|
||||||
|
* id is the user id.
|
||||||
|
*
|
||||||
|
* @generated from field: int32 id = 1;
|
||||||
|
*/
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.api.v2.UserAccessToken user_access_token = 2;
|
||||||
|
*/
|
||||||
|
userAccessToken?: UserAccessToken;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<CreateUserAccessTokenRequest>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.CreateUserAccessTokenRequest";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateUserAccessTokenRequest;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateUserAccessTokenRequest;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateUserAccessTokenRequest;
|
||||||
|
|
||||||
|
static equals(a: CreateUserAccessTokenRequest | PlainMessage<CreateUserAccessTokenRequest> | undefined, b: CreateUserAccessTokenRequest | PlainMessage<CreateUserAccessTokenRequest> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.CreateUserAccessTokenResponse
|
||||||
|
*/
|
||||||
|
export declare class CreateUserAccessTokenResponse extends Message<CreateUserAccessTokenResponse> {
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.api.v2.UserAccessToken access_token = 1;
|
||||||
|
*/
|
||||||
|
accessToken?: UserAccessToken;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<CreateUserAccessTokenResponse>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.CreateUserAccessTokenResponse";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateUserAccessTokenResponse;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateUserAccessTokenResponse;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateUserAccessTokenResponse;
|
||||||
|
|
||||||
|
static equals(a: CreateUserAccessTokenResponse | PlainMessage<CreateUserAccessTokenResponse> | undefined, b: CreateUserAccessTokenResponse | PlainMessage<CreateUserAccessTokenResponse> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.DeleteUserAccessTokenRequest
|
||||||
|
*/
|
||||||
|
export declare class DeleteUserAccessTokenRequest extends Message<DeleteUserAccessTokenRequest> {
|
||||||
|
/**
|
||||||
|
* id is the user id.
|
||||||
|
*
|
||||||
|
* @generated from field: int32 id = 1;
|
||||||
|
*/
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* access_token is the access token to delete.
|
||||||
|
*
|
||||||
|
* @generated from field: string access_token = 2;
|
||||||
|
*/
|
||||||
|
accessToken: string;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<DeleteUserAccessTokenRequest>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.DeleteUserAccessTokenRequest";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteUserAccessTokenRequest;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteUserAccessTokenRequest;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteUserAccessTokenRequest;
|
||||||
|
|
||||||
|
static equals(a: DeleteUserAccessTokenRequest | PlainMessage<DeleteUserAccessTokenRequest> | undefined, b: DeleteUserAccessTokenRequest | PlainMessage<DeleteUserAccessTokenRequest> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.DeleteUserAccessTokenResponse
|
||||||
|
*/
|
||||||
|
export declare class DeleteUserAccessTokenResponse extends Message<DeleteUserAccessTokenResponse> {
|
||||||
|
constructor(data?: PartialMessage<DeleteUserAccessTokenResponse>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.DeleteUserAccessTokenResponse";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteUserAccessTokenResponse;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteUserAccessTokenResponse;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteUserAccessTokenResponse;
|
||||||
|
|
||||||
|
static equals(a: DeleteUserAccessTokenResponse | PlainMessage<DeleteUserAccessTokenResponse> | undefined, b: DeleteUserAccessTokenResponse | PlainMessage<DeleteUserAccessTokenResponse> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.UserAccessToken
|
||||||
|
*/
|
||||||
|
export declare class UserAccessToken extends Message<UserAccessToken> {
|
||||||
|
/**
|
||||||
|
* @generated from field: string access_token = 1;
|
||||||
|
*/
|
||||||
|
accessToken: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string description = 2;
|
||||||
|
*/
|
||||||
|
description: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: google.protobuf.Timestamp issued_at = 3;
|
||||||
|
*/
|
||||||
|
issuedAt?: Timestamp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: google.protobuf.Timestamp expires_at = 4;
|
||||||
|
*/
|
||||||
|
expiresAt?: Timestamp;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<UserAccessToken>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.api.v2.UserAccessToken";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UserAccessToken;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UserAccessToken;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UserAccessToken;
|
||||||
|
|
||||||
|
static equals(a: UserAccessToken | PlainMessage<UserAccessToken> | undefined, b: UserAccessToken | PlainMessage<UserAccessToken> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
129
extension/src/types/proto/api/v2/user_service_pb.js
Normal file
129
extension/src/types/proto/api/v2/user_service_pb.js
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file api/v2/user_service.proto (package slash.api.v2, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import { proto3, Timestamp } from "@bufbuild/protobuf";
|
||||||
|
import { RowStatus } from "./common_pb.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.api.v2.Role
|
||||||
|
*/
|
||||||
|
export const Role = proto3.makeEnum(
|
||||||
|
"slash.api.v2.Role",
|
||||||
|
[
|
||||||
|
{no: 0, name: "ROLE_UNSPECIFIED"},
|
||||||
|
{no: 1, name: "ADMIN"},
|
||||||
|
{no: 2, name: "USER"},
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.User
|
||||||
|
*/
|
||||||
|
export const User = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.User",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
{ no: 2, name: "row_status", kind: "enum", T: proto3.getEnumType(RowStatus) },
|
||||||
|
{ no: 3, name: "created_ts", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
|
||||||
|
{ no: 4, name: "updated_ts", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
|
||||||
|
{ no: 6, name: "role", kind: "enum", T: proto3.getEnumType(Role) },
|
||||||
|
{ no: 7, name: "email", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 8, name: "nickname", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.GetUserRequest
|
||||||
|
*/
|
||||||
|
export const GetUserRequest = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.GetUserRequest",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.GetUserResponse
|
||||||
|
*/
|
||||||
|
export const GetUserResponse = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.GetUserResponse",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "user", kind: "message", T: User },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.ListUserAccessTokensRequest
|
||||||
|
*/
|
||||||
|
export const ListUserAccessTokensRequest = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.ListUserAccessTokensRequest",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.ListUserAccessTokensResponse
|
||||||
|
*/
|
||||||
|
export const ListUserAccessTokensResponse = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.ListUserAccessTokensResponse",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "access_tokens", kind: "message", T: UserAccessToken, repeated: true },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.CreateUserAccessTokenRequest
|
||||||
|
*/
|
||||||
|
export const CreateUserAccessTokenRequest = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.CreateUserAccessTokenRequest",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
{ no: 2, name: "user_access_token", kind: "message", T: UserAccessToken },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.CreateUserAccessTokenResponse
|
||||||
|
*/
|
||||||
|
export const CreateUserAccessTokenResponse = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.CreateUserAccessTokenResponse",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "access_token", kind: "message", T: UserAccessToken },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.DeleteUserAccessTokenRequest
|
||||||
|
*/
|
||||||
|
export const DeleteUserAccessTokenRequest = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.DeleteUserAccessTokenRequest",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
{ no: 2, name: "access_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.DeleteUserAccessTokenResponse
|
||||||
|
*/
|
||||||
|
export const DeleteUserAccessTokenResponse = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.DeleteUserAccessTokenResponse",
|
||||||
|
[],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.api.v2.UserAccessToken
|
||||||
|
*/
|
||||||
|
export const UserAccessToken = proto3.makeMessageType(
|
||||||
|
"slash.api.v2.UserAccessToken",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "access_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 2, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 3, name: "issued_at", kind: "message", T: Timestamp },
|
||||||
|
{ no: 4, name: "expires_at", kind: "message", T: Timestamp },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
25
extension/src/types/proto/store/common_pb.d.ts
vendored
Normal file
25
extension/src/types/proto/store/common_pb.d.ts
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file store/common.proto (package slash.store, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.store.RowStatus
|
||||||
|
*/
|
||||||
|
export declare enum RowStatus {
|
||||||
|
/**
|
||||||
|
* @generated from enum value: ROW_STATUS_UNSPECIFIED = 0;
|
||||||
|
*/
|
||||||
|
ROW_STATUS_UNSPECIFIED = 0,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: NORMAL = 1;
|
||||||
|
*/
|
||||||
|
NORMAL = 1,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: ARCHIVED = 2;
|
||||||
|
*/
|
||||||
|
ARCHIVED = 2,
|
||||||
|
}
|
||||||
|
|
19
extension/src/types/proto/store/common_pb.js
Normal file
19
extension/src/types/proto/store/common_pb.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file store/common.proto (package slash.store, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import { proto3 } from "@bufbuild/protobuf";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.store.RowStatus
|
||||||
|
*/
|
||||||
|
export const RowStatus = proto3.makeEnum(
|
||||||
|
"slash.store.RowStatus",
|
||||||
|
[
|
||||||
|
{no: 0, name: "ROW_STATUS_UNSPECIFIED"},
|
||||||
|
{no: 1, name: "NORMAL"},
|
||||||
|
{no: 2, name: "ARCHIVED"},
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
147
extension/src/types/proto/store/shortcut_pb.d.ts
vendored
Normal file
147
extension/src/types/proto/store/shortcut_pb.d.ts
vendored
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file store/shortcut.proto (package slash.store, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
|
||||||
|
import { Message, proto3 } from "@bufbuild/protobuf";
|
||||||
|
import type { RowStatus } from "./common_pb.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.store.Visibility
|
||||||
|
*/
|
||||||
|
export declare enum Visibility {
|
||||||
|
/**
|
||||||
|
* @generated from enum value: VISIBILITY_UNSPECIFIED = 0;
|
||||||
|
*/
|
||||||
|
VISIBILITY_UNSPECIFIED = 0,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: PRIVATE = 1;
|
||||||
|
*/
|
||||||
|
PRIVATE = 1,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: WORKSPACE = 2;
|
||||||
|
*/
|
||||||
|
WORKSPACE = 2,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: PUBLIC = 3;
|
||||||
|
*/
|
||||||
|
PUBLIC = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.Shortcut
|
||||||
|
*/
|
||||||
|
export declare class Shortcut extends Message<Shortcut> {
|
||||||
|
/**
|
||||||
|
* @generated from field: int32 id = 1;
|
||||||
|
*/
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: int32 creator_id = 2;
|
||||||
|
*/
|
||||||
|
creatorId: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: int64 created_ts = 3;
|
||||||
|
*/
|
||||||
|
createdTs: bigint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: int64 updated_ts = 4;
|
||||||
|
*/
|
||||||
|
updatedTs: bigint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.store.RowStatus row_status = 5;
|
||||||
|
*/
|
||||||
|
rowStatus: RowStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string name = 6;
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string link = 7;
|
||||||
|
*/
|
||||||
|
link: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string title = 8;
|
||||||
|
*/
|
||||||
|
title: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: repeated string tags = 9;
|
||||||
|
*/
|
||||||
|
tags: string[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string description = 10;
|
||||||
|
*/
|
||||||
|
description: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.store.Visibility visibility = 11;
|
||||||
|
*/
|
||||||
|
visibility: Visibility;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.store.OpenGraphMetadata og_metadata = 12;
|
||||||
|
*/
|
||||||
|
ogMetadata?: OpenGraphMetadata;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<Shortcut>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.store.Shortcut";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Shortcut;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Shortcut;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Shortcut;
|
||||||
|
|
||||||
|
static equals(a: Shortcut | PlainMessage<Shortcut> | undefined, b: Shortcut | PlainMessage<Shortcut> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.OpenGraphMetadata
|
||||||
|
*/
|
||||||
|
export declare class OpenGraphMetadata extends Message<OpenGraphMetadata> {
|
||||||
|
/**
|
||||||
|
* @generated from field: string title = 1;
|
||||||
|
*/
|
||||||
|
title: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string description = 2;
|
||||||
|
*/
|
||||||
|
description: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string image = 3;
|
||||||
|
*/
|
||||||
|
image: string;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<OpenGraphMetadata>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.store.OpenGraphMetadata";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OpenGraphMetadata;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OpenGraphMetadata;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OpenGraphMetadata;
|
||||||
|
|
||||||
|
static equals(a: OpenGraphMetadata | PlainMessage<OpenGraphMetadata> | undefined, b: OpenGraphMetadata | PlainMessage<OpenGraphMetadata> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
54
extension/src/types/proto/store/shortcut_pb.js
Normal file
54
extension/src/types/proto/store/shortcut_pb.js
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file store/shortcut.proto (package slash.store, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import { proto3 } from "@bufbuild/protobuf";
|
||||||
|
import { RowStatus } from "./common_pb.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.store.Visibility
|
||||||
|
*/
|
||||||
|
export const Visibility = proto3.makeEnum(
|
||||||
|
"slash.store.Visibility",
|
||||||
|
[
|
||||||
|
{no: 0, name: "VISIBILITY_UNSPECIFIED"},
|
||||||
|
{no: 1, name: "PRIVATE"},
|
||||||
|
{no: 2, name: "WORKSPACE"},
|
||||||
|
{no: 3, name: "PUBLIC"},
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.Shortcut
|
||||||
|
*/
|
||||||
|
export const Shortcut = proto3.makeMessageType(
|
||||||
|
"slash.store.Shortcut",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
{ no: 2, name: "creator_id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
{ no: 3, name: "created_ts", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
|
||||||
|
{ no: 4, name: "updated_ts", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
|
||||||
|
{ no: 5, name: "row_status", kind: "enum", T: proto3.getEnumType(RowStatus) },
|
||||||
|
{ no: 6, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 7, name: "link", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 8, name: "title", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 9, name: "tags", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
|
||||||
|
{ no: 10, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 11, name: "visibility", kind: "enum", T: proto3.getEnumType(Visibility) },
|
||||||
|
{ no: 12, name: "og_metadata", kind: "message", T: OpenGraphMetadata },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.OpenGraphMetadata
|
||||||
|
*/
|
||||||
|
export const OpenGraphMetadata = proto3.makeMessageType(
|
||||||
|
"slash.store.OpenGraphMetadata",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "title", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 2, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 3, name: "image", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
116
extension/src/types/proto/store/user_setting_pb.d.ts
vendored
Normal file
116
extension/src/types/proto/store/user_setting_pb.d.ts
vendored
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file store/user_setting.proto (package slash.store, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
|
||||||
|
import { Message, proto3 } from "@bufbuild/protobuf";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.store.UserSettingKey
|
||||||
|
*/
|
||||||
|
export declare enum UserSettingKey {
|
||||||
|
/**
|
||||||
|
* @generated from enum value: USER_SETTING_KEY_UNSPECIFIED = 0;
|
||||||
|
*/
|
||||||
|
USER_SETTING_KEY_UNSPECIFIED = 0,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum value: USER_SETTING_ACCESS_TOKENS = 1;
|
||||||
|
*/
|
||||||
|
USER_SETTING_ACCESS_TOKENS = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.UserSetting
|
||||||
|
*/
|
||||||
|
export declare class UserSetting extends Message<UserSetting> {
|
||||||
|
/**
|
||||||
|
* @generated from field: int32 user_id = 1;
|
||||||
|
*/
|
||||||
|
userId: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.store.UserSettingKey key = 2;
|
||||||
|
*/
|
||||||
|
key: UserSettingKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from oneof slash.store.UserSetting.value
|
||||||
|
*/
|
||||||
|
value: {
|
||||||
|
/**
|
||||||
|
* @generated from field: slash.store.AccessTokensUserSetting access_tokens_user_setting = 3;
|
||||||
|
*/
|
||||||
|
value: AccessTokensUserSetting;
|
||||||
|
case: "accessTokensUserSetting";
|
||||||
|
} | { case: undefined; value?: undefined };
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<UserSetting>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.store.UserSetting";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UserSetting;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UserSetting;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UserSetting;
|
||||||
|
|
||||||
|
static equals(a: UserSetting | PlainMessage<UserSetting> | undefined, b: UserSetting | PlainMessage<UserSetting> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.AccessTokensUserSetting
|
||||||
|
*/
|
||||||
|
export declare class AccessTokensUserSetting extends Message<AccessTokensUserSetting> {
|
||||||
|
/**
|
||||||
|
* @generated from field: repeated slash.store.AccessTokensUserSetting.AccessToken access_tokens = 1;
|
||||||
|
*/
|
||||||
|
accessTokens: AccessTokensUserSetting_AccessToken[];
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<AccessTokensUserSetting>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.store.AccessTokensUserSetting";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AccessTokensUserSetting;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AccessTokensUserSetting;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AccessTokensUserSetting;
|
||||||
|
|
||||||
|
static equals(a: AccessTokensUserSetting | PlainMessage<AccessTokensUserSetting> | undefined, b: AccessTokensUserSetting | PlainMessage<AccessTokensUserSetting> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.AccessTokensUserSetting.AccessToken
|
||||||
|
*/
|
||||||
|
export declare class AccessTokensUserSetting_AccessToken extends Message<AccessTokensUserSetting_AccessToken> {
|
||||||
|
/**
|
||||||
|
* @generated from field: string access_token = 1;
|
||||||
|
*/
|
||||||
|
accessToken: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string description = 2;
|
||||||
|
*/
|
||||||
|
description: string;
|
||||||
|
|
||||||
|
constructor(data?: PartialMessage<AccessTokensUserSetting_AccessToken>);
|
||||||
|
|
||||||
|
static readonly runtime: typeof proto3;
|
||||||
|
static readonly typeName = "slash.store.AccessTokensUserSetting.AccessToken";
|
||||||
|
static readonly fields: FieldList;
|
||||||
|
|
||||||
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AccessTokensUserSetting_AccessToken;
|
||||||
|
|
||||||
|
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AccessTokensUserSetting_AccessToken;
|
||||||
|
|
||||||
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AccessTokensUserSetting_AccessToken;
|
||||||
|
|
||||||
|
static equals(a: AccessTokensUserSetting_AccessToken | PlainMessage<AccessTokensUserSetting_AccessToken> | undefined, b: AccessTokensUserSetting_AccessToken | PlainMessage<AccessTokensUserSetting_AccessToken> | undefined): boolean;
|
||||||
|
}
|
||||||
|
|
52
extension/src/types/proto/store/user_setting_pb.js
Normal file
52
extension/src/types/proto/store/user_setting_pb.js
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
// @generated by protoc-gen-es v1.3.0
|
||||||
|
// @generated from file store/user_setting.proto (package slash.store, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import { proto3 } from "@bufbuild/protobuf";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from enum slash.store.UserSettingKey
|
||||||
|
*/
|
||||||
|
export const UserSettingKey = proto3.makeEnum(
|
||||||
|
"slash.store.UserSettingKey",
|
||||||
|
[
|
||||||
|
{no: 0, name: "USER_SETTING_KEY_UNSPECIFIED"},
|
||||||
|
{no: 1, name: "USER_SETTING_ACCESS_TOKENS"},
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.UserSetting
|
||||||
|
*/
|
||||||
|
export const UserSetting = proto3.makeMessageType(
|
||||||
|
"slash.store.UserSetting",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "user_id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
|
||||||
|
{ no: 2, name: "key", kind: "enum", T: proto3.getEnumType(UserSettingKey) },
|
||||||
|
{ no: 3, name: "access_tokens_user_setting", kind: "message", T: AccessTokensUserSetting, oneof: "value" },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.AccessTokensUserSetting
|
||||||
|
*/
|
||||||
|
export const AccessTokensUserSetting = proto3.makeMessageType(
|
||||||
|
"slash.store.AccessTokensUserSetting",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "access_tokens", kind: "message", T: AccessTokensUserSetting_AccessToken, repeated: true },
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message slash.store.AccessTokensUserSetting.AccessToken
|
||||||
|
*/
|
||||||
|
export const AccessTokensUserSetting_AccessToken = proto3.makeMessageType(
|
||||||
|
"slash.store.AccessTokensUserSetting.AccessToken",
|
||||||
|
() => [
|
||||||
|
{ no: 1, name: "access_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
{ no: 2, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
||||||
|
],
|
||||||
|
{localName: "AccessTokensUserSetting_AccessToken"},
|
||||||
|
);
|
||||||
|
|
8
extension/tailwind.config.js
Normal file
8
extension/tailwind.config.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/* eslint-disable no-undef */
|
||||||
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
module.exports = {
|
||||||
|
mode: "jit",
|
||||||
|
darkMode: "class",
|
||||||
|
content: ["./**/*.tsx"],
|
||||||
|
plugins: [],
|
||||||
|
};
|
19
extension/tsconfig.json
Normal file
19
extension/tsconfig.json
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"extends": "plasmo/templates/tsconfig.base",
|
||||||
|
"exclude": [
|
||||||
|
"node_modules"
|
||||||
|
],
|
||||||
|
"include": [
|
||||||
|
".plasmo/index.d.ts",
|
||||||
|
"./**/*.ts",
|
||||||
|
"./**/*.tsx"
|
||||||
|
],
|
||||||
|
"compilerOptions": {
|
||||||
|
"paths": {
|
||||||
|
"@/*": [
|
||||||
|
"./src/*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"baseUrl": "."
|
||||||
|
}
|
||||||
|
}
|
@ -18,8 +18,11 @@ plugins:
|
|||||||
out: gen
|
out: gen
|
||||||
opt:
|
opt:
|
||||||
- paths=source_relative
|
- paths=source_relative
|
||||||
|
# Build the TypeScript definitions for the web and extension.
|
||||||
- plugin: buf.build/bufbuild/es:v1.3.0
|
- plugin: buf.build/bufbuild/es:v1.3.0
|
||||||
out: ../web/src/types/proto
|
out: ../web/src/types/proto
|
||||||
|
- plugin: buf.build/bufbuild/es:v1.3.0
|
||||||
|
out: ../extension/src/types/proto
|
||||||
- plugin: buf.build/community/pseudomuto-doc:v1.5.1
|
- plugin: buf.build/community/pseudomuto-doc:v1.5.1
|
||||||
out: gen
|
out: gen
|
||||||
opt:
|
opt:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user