fix: use flakes for building
This commit is contained in:
parent
cd9ff52b15
commit
da993d9ef5
5
.gitignore
vendored
5
.gitignore
vendored
@ -5,10 +5,9 @@ build
|
|||||||
# Client
|
# Client
|
||||||
/client/node_modules
|
/client/node_modules
|
||||||
/client/.svelte-kit
|
/client/.svelte-kit
|
||||||
/client/src/lib/services
|
/client/vite.config.ts.timestamp-*.mjs
|
||||||
/client/static/openapi
|
/client/static/openapi
|
||||||
|
|
||||||
# Server
|
# Server
|
||||||
/server/client
|
/server/client
|
||||||
/server/tmp
|
/server/tmp
|
||||||
/server/internal/services
|
|
145
client/src/lib/services/user/v1/auth_pb.ts
Normal file
145
client/src/lib/services/user/v1/auth_pb.ts
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
|
||||||
|
// @generated from file user/v1/auth.proto (package user.v1, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
|
||||||
|
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
|
||||||
|
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1";
|
||||||
|
import type { Message } from "@bufbuild/protobuf";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the file user/v1/auth.proto.
|
||||||
|
*/
|
||||||
|
export const file_user_v1_auth: GenFile = /*@__PURE__*/
|
||||||
|
fileDesc("ChJ1c2VyL3YxL2F1dGgucHJvdG8SB3VzZXIudjEiMgoMTG9naW5SZXF1ZXN0EhAKCHVzZXJuYW1lGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJIh4KDUxvZ2luUmVzcG9uc2USDQoFdG9rZW4YASABKAkiMwoNU2lnblVwUmVxdWVzdBIQCgh1c2VybmFtZRgBIAEoCRIQCghwYXNzd29yZBgCIAEoCSIQCg5TaWduVXBSZXNwb25zZSIPCg1Mb2dvdXRSZXF1ZXN0IhAKDkxvZ291dFJlc3BvbnNlMsEBCgtBdXRoU2VydmljZRI4CgVMb2dpbhIVLnVzZXIudjEuTG9naW5SZXF1ZXN0GhYudXNlci52MS5Mb2dpblJlc3BvbnNlIgASOwoGU2lnblVwEhYudXNlci52MS5TaWduVXBSZXF1ZXN0GhcudXNlci52MS5TaWduVXBSZXNwb25zZSIAEjsKBkxvZ291dBIWLnVzZXIudjEuTG9nb3V0UmVxdWVzdBoXLnVzZXIudjEuTG9nb3V0UmVzcG9uc2UiAEKdAQoLY29tLnVzZXIudjFCCUF1dGhQcm90b1ABWkZnaXRodWIuY29tL3Nwb3RkZW1vNC90cmV2c3RhY2svc2VydmVyL2ludGVybmFsL3NlcnZpY2VzL3VzZXIvdjE7dXNlcnYxogIDVVhYqgIHVXNlci5WMcoCB1VzZXJcVjHiAhNVc2VyXFYxXEdQQk1ldGFkYXRh6gIIVXNlcjo6VjFiBnByb3RvMw");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.LoginRequest
|
||||||
|
*/
|
||||||
|
export type LoginRequest = Message<"user.v1.LoginRequest"> & {
|
||||||
|
/**
|
||||||
|
* @generated from field: string username = 1;
|
||||||
|
*/
|
||||||
|
username: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string password = 2;
|
||||||
|
*/
|
||||||
|
password: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.LoginRequest.
|
||||||
|
* Use `create(LoginRequestSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const LoginRequestSchema: GenMessage<LoginRequest> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_auth, 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.LoginResponse
|
||||||
|
*/
|
||||||
|
export type LoginResponse = Message<"user.v1.LoginResponse"> & {
|
||||||
|
/**
|
||||||
|
* @generated from field: string token = 1;
|
||||||
|
*/
|
||||||
|
token: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.LoginResponse.
|
||||||
|
* Use `create(LoginResponseSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const LoginResponseSchema: GenMessage<LoginResponse> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_auth, 1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.SignUpRequest
|
||||||
|
*/
|
||||||
|
export type SignUpRequest = Message<"user.v1.SignUpRequest"> & {
|
||||||
|
/**
|
||||||
|
* @generated from field: string username = 1;
|
||||||
|
*/
|
||||||
|
username: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string password = 2;
|
||||||
|
*/
|
||||||
|
password: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.SignUpRequest.
|
||||||
|
* Use `create(SignUpRequestSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const SignUpRequestSchema: GenMessage<SignUpRequest> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_auth, 2);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.SignUpResponse
|
||||||
|
*/
|
||||||
|
export type SignUpResponse = Message<"user.v1.SignUpResponse"> & {
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.SignUpResponse.
|
||||||
|
* Use `create(SignUpResponseSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const SignUpResponseSchema: GenMessage<SignUpResponse> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_auth, 3);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.LogoutRequest
|
||||||
|
*/
|
||||||
|
export type LogoutRequest = Message<"user.v1.LogoutRequest"> & {
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.LogoutRequest.
|
||||||
|
* Use `create(LogoutRequestSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const LogoutRequestSchema: GenMessage<LogoutRequest> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_auth, 4);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.LogoutResponse
|
||||||
|
*/
|
||||||
|
export type LogoutResponse = Message<"user.v1.LogoutResponse"> & {
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.LogoutResponse.
|
||||||
|
* Use `create(LogoutResponseSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const LogoutResponseSchema: GenMessage<LogoutResponse> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_auth, 5);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from service user.v1.AuthService
|
||||||
|
*/
|
||||||
|
export const AuthService: GenService<{
|
||||||
|
/**
|
||||||
|
* @generated from rpc user.v1.AuthService.Login
|
||||||
|
*/
|
||||||
|
login: {
|
||||||
|
methodKind: "unary";
|
||||||
|
input: typeof LoginRequestSchema;
|
||||||
|
output: typeof LoginResponseSchema;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @generated from rpc user.v1.AuthService.SignUp
|
||||||
|
*/
|
||||||
|
signUp: {
|
||||||
|
methodKind: "unary";
|
||||||
|
input: typeof SignUpRequestSchema;
|
||||||
|
output: typeof SignUpResponseSchema;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @generated from rpc user.v1.AuthService.Logout
|
||||||
|
*/
|
||||||
|
logout: {
|
||||||
|
methodKind: "unary";
|
||||||
|
input: typeof LogoutRequestSchema;
|
||||||
|
output: typeof LogoutResponseSchema;
|
||||||
|
},
|
||||||
|
}> = /*@__PURE__*/
|
||||||
|
serviceDesc(file_user_v1_auth, 0);
|
||||||
|
|
116
client/src/lib/services/user/v1/user_pb.ts
Normal file
116
client/src/lib/services/user/v1/user_pb.ts
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
|
||||||
|
// @generated from file user/v1/user.proto (package user.v1, syntax proto3)
|
||||||
|
/* eslint-disable */
|
||||||
|
|
||||||
|
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
|
||||||
|
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1";
|
||||||
|
import type { Message } from "@bufbuild/protobuf";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the file user/v1/user.proto.
|
||||||
|
*/
|
||||||
|
export const file_user_v1_user: GenFile = /*@__PURE__*/
|
||||||
|
fileDesc("ChJ1c2VyL3YxL3VzZXIucHJvdG8SB3VzZXIudjEiXQoVQ2hhbmdlUGFzc3dvcmRSZXF1ZXN0EhQKDG9sZF9wYXNzd29yZBgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkSGAoQY29uZmlybV9wYXNzd29yZBgDIAEoCSIYChZDaGFuZ2VQYXNzd29yZFJlc3BvbnNlIjsKDUFQSUtleVJlcXVlc3QSEAoIcGFzc3dvcmQYASABKAkSGAoQY29uZmlybV9wYXNzd29yZBgCIAEoCSIdCg5BUElLZXlSZXNwb25zZRILCgNrZXkYASABKAkynwEKC1VzZXJTZXJ2aWNlElMKDkNoYW5nZVBhc3N3b3JkEh4udXNlci52MS5DaGFuZ2VQYXNzd29yZFJlcXVlc3QaHy51c2VyLnYxLkNoYW5nZVBhc3N3b3JkUmVzcG9uc2UiABI7CgZBUElLZXkSFi51c2VyLnYxLkFQSUtleVJlcXVlc3QaFy51c2VyLnYxLkFQSUtleVJlc3BvbnNlIgBCnQEKC2NvbS51c2VyLnYxQglVc2VyUHJvdG9QAVpGZ2l0aHViLmNvbS9zcG90ZGVtbzQvdHJldnN0YWNrL3NlcnZlci9pbnRlcm5hbC9zZXJ2aWNlcy91c2VyL3YxO3VzZXJ2MaICA1VYWKoCB1VzZXIuVjHKAgdVc2VyXFYx4gITVXNlclxWMVxHUEJNZXRhZGF0YeoCCFVzZXI6OlYxYgZwcm90bzM");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.ChangePasswordRequest
|
||||||
|
*/
|
||||||
|
export type ChangePasswordRequest = Message<"user.v1.ChangePasswordRequest"> & {
|
||||||
|
/**
|
||||||
|
* @generated from field: string old_password = 1;
|
||||||
|
*/
|
||||||
|
oldPassword: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string new_password = 2;
|
||||||
|
*/
|
||||||
|
newPassword: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string confirm_password = 3;
|
||||||
|
*/
|
||||||
|
confirmPassword: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.ChangePasswordRequest.
|
||||||
|
* Use `create(ChangePasswordRequestSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const ChangePasswordRequestSchema: GenMessage<ChangePasswordRequest> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_user, 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.ChangePasswordResponse
|
||||||
|
*/
|
||||||
|
export type ChangePasswordResponse = Message<"user.v1.ChangePasswordResponse"> & {
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.ChangePasswordResponse.
|
||||||
|
* Use `create(ChangePasswordResponseSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const ChangePasswordResponseSchema: GenMessage<ChangePasswordResponse> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_user, 1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.APIKeyRequest
|
||||||
|
*/
|
||||||
|
export type APIKeyRequest = Message<"user.v1.APIKeyRequest"> & {
|
||||||
|
/**
|
||||||
|
* @generated from field: string password = 1;
|
||||||
|
*/
|
||||||
|
password: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from field: string confirm_password = 2;
|
||||||
|
*/
|
||||||
|
confirmPassword: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.APIKeyRequest.
|
||||||
|
* Use `create(APIKeyRequestSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const APIKeyRequestSchema: GenMessage<APIKeyRequest> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_user, 2);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from message user.v1.APIKeyResponse
|
||||||
|
*/
|
||||||
|
export type APIKeyResponse = Message<"user.v1.APIKeyResponse"> & {
|
||||||
|
/**
|
||||||
|
* @generated from field: string key = 1;
|
||||||
|
*/
|
||||||
|
key: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the message user.v1.APIKeyResponse.
|
||||||
|
* Use `create(APIKeyResponseSchema)` to create a new message.
|
||||||
|
*/
|
||||||
|
export const APIKeyResponseSchema: GenMessage<APIKeyResponse> = /*@__PURE__*/
|
||||||
|
messageDesc(file_user_v1_user, 3);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generated from service user.v1.UserService
|
||||||
|
*/
|
||||||
|
export const UserService: GenService<{
|
||||||
|
/**
|
||||||
|
* @generated from rpc user.v1.UserService.ChangePassword
|
||||||
|
*/
|
||||||
|
changePassword: {
|
||||||
|
methodKind: "unary";
|
||||||
|
input: typeof ChangePasswordRequestSchema;
|
||||||
|
output: typeof ChangePasswordResponseSchema;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @generated from rpc user.v1.UserService.APIKey
|
||||||
|
*/
|
||||||
|
aPIKey: {
|
||||||
|
methodKind: "unary";
|
||||||
|
input: typeof APIKeyRequestSchema;
|
||||||
|
output: typeof APIKeyResponseSchema;
|
||||||
|
},
|
||||||
|
}> = /*@__PURE__*/
|
||||||
|
serviceDesc(file_user_v1_user, 0);
|
||||||
|
|
21
flake.lock
generated
21
flake.lock
generated
@ -18,6 +18,26 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1741513245,
|
"lastModified": 1741513245,
|
||||||
@ -37,6 +57,7 @@
|
|||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
|
"gitignore": "gitignore",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
39
flake.nix
39
flake.nix
@ -4,15 +4,21 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
gitignore = {
|
||||||
|
url = "github:hercules-ci/gitignore.nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, flake-utils }:
|
outputs = { self, nixpkgs, flake-utils, gitignore }:
|
||||||
flake-utils.lib.eachDefaultSystem (system:
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
protoc-gen-connect-openapi = pkgs.buildGoModule rec {
|
protoc-gen-connect-openapi = pkgs.buildGoModule rec {
|
||||||
name = "protoc-gen-connect-openapi";
|
name = "protoc-gen-connect-openapi";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
@ -24,6 +30,13 @@
|
|||||||
vendorHash = "sha256-CIiG/XhV8xxjYY0sZcSvIFcJ1Wh8LyDDwqem2cSSwBA=";
|
vendorHash = "sha256-CIiG/XhV8xxjYY0sZcSvIFcJ1Wh8LyDDwqem2cSSwBA=";
|
||||||
nativeCheckInputs = with pkgs; [ less ];
|
nativeCheckInputs = with pkgs; [ less ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
client = pkgs.buildNpmPackage {
|
||||||
|
name = "client";
|
||||||
|
src = gitignore.lib.gitignoreSource ./client;
|
||||||
|
npmDepsHash = "sha256-hOmZZrCSuHyRQhG6M7Yu5uRLTdCYOL/giT4zUm9iTRE=";
|
||||||
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
@ -106,9 +119,11 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
packages.default = pkgs.stdenv.mkDerivation {
|
packages.default = pkgs.buildGoModule {
|
||||||
pname = "trevstack";
|
pname = "trevstack";
|
||||||
version = "1.0";
|
version = "1.0";
|
||||||
|
src = gitignore.lib.gitignoreSource ./server;
|
||||||
|
vendorHash = "";
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
# Go backend
|
# Go backend
|
||||||
@ -127,24 +142,8 @@
|
|||||||
nodejs_22
|
nodejs_22
|
||||||
];
|
];
|
||||||
|
|
||||||
buildPhase = ''
|
configurePhase = ''
|
||||||
gitroot=$(git rev-parse --show-toplevel)
|
cp -r ${client} client
|
||||||
|
|
||||||
cd "''${gitroot}"
|
|
||||||
buf lint
|
|
||||||
buf generate
|
|
||||||
|
|
||||||
cd "''${gitroot}/client"
|
|
||||||
npm run build
|
|
||||||
cp -r build ../server/client
|
|
||||||
|
|
||||||
cd "''${gitroot}/server"
|
|
||||||
go build -o ../build/trevstack .
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp build/trevstack $out/bin
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user