summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorElizabeth Alexander Hunt <me@liz.coffee>2025-05-12 09:40:12 -0700
committerElizabeth <me@liz.coffee>2025-05-26 14:15:42 -0700
commitd51c9d74857aca3c2f172609297266968bc7f809 (patch)
tree64327f9cc4219729aa11af32d7d4c70cddfc2292 /utils
parent30729a0cf707d9022bae0a7baaba77379dc31fd5 (diff)
downloadci-d51c9d74857aca3c2f172609297266968bc7f809.tar.gz
ci-d51c9d74857aca3c2f172609297266968bc7f809.zip
The big refactor TM
Diffstat (limited to 'utils')
-rw-r--r--utils/deno.json5
-rw-r--r--utils/env.ts5
-rw-r--r--utils/logger.ts6
-rw-r--r--utils/mod.ts6
-rw-r--r--utils/prepend.ts4
-rw-r--r--utils/run.ts21
-rw-r--r--utils/secret.ts66
-rw-r--r--utils/validate_identifier.ts3
8 files changed, 0 insertions, 116 deletions
diff --git a/utils/deno.json b/utils/deno.json
deleted file mode 100644
index b85c47f..0000000
--- a/utils/deno.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "@liz-ci/utils",
- "version": "0.1.0",
- "exports": "./mod.ts"
-}
diff --git a/utils/env.ts b/utils/env.ts
deleted file mode 100644
index c0cf447..0000000
--- a/utils/env.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export const getRequiredEnv = (name: string): string => {
- const value = Deno.env.get(name);
- if (!value) throw new Error(`${name} environment variable is required`);
- return value;
-};
diff --git a/utils/logger.ts b/utils/logger.ts
deleted file mode 100644
index e36d249..0000000
--- a/utils/logger.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export const loggerWithPrefix = (prefixSupplier: () => string) => {
- return {
- log: (...args: unknown[]) => console.log(prefixSupplier(), ...args),
- error: (...args: unknown[]) => console.error(prefixSupplier(), ...args),
- };
-};
diff --git a/utils/mod.ts b/utils/mod.ts
deleted file mode 100644
index 4e907df..0000000
--- a/utils/mod.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export * from "./logger.ts";
-export * from "./env.ts";
-export * from "./run.ts";
-export * from "./secret.ts";
-export * from "./validate_identifier.ts";
-export * from "./prepend.ts";
diff --git a/utils/prepend.ts b/utils/prepend.ts
deleted file mode 100644
index 9b77aff..0000000
--- a/utils/prepend.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export const prependWith = (arr: string[], prep: string) =>
- Array(arr.length * 2).fill(0)
- .map((_, i) => i % 2 === 0)
- .map((isPrep, i) => isPrep ? prep : arr[i]);
diff --git a/utils/run.ts b/utils/run.ts
deleted file mode 100644
index f06ef97..0000000
--- a/utils/run.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-export const getStdout = async (
- cmd: string[] | string,
- options: Deno.CommandOptions = {},
-): Promise<string> => {
- const [exec, ...args] = (typeof cmd === "string") ? cmd.split(" ") : cmd;
- const command = new Deno.Command(exec, {
- args,
- stdout: "piped",
- stderr: "piped",
- ...options,
- });
-
- const { code, stdout, stderr } = await command.output();
-
- const stdoutText = new TextDecoder().decode(stdout);
- const stderrText = new TextDecoder().decode(stderr);
-
- if (code !== 0) throw new Error(`Command failed\n${stderrText}`);
-
- return stdoutText;
-};
diff --git a/utils/secret.ts b/utils/secret.ts
deleted file mode 100644
index eb2054b..0000000
--- a/utils/secret.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-import { getRequiredEnv, getStdout, loggerWithPrefix } from "./mod.ts";
-
-const logger = loggerWithPrefix(() =>
- `[${new Date().toISOString()}] [BitwardenSession]`
-);
-export class BitwardenSession {
- private readonly sessionInitializer: Promise<string>;
-
- constructor(server = getRequiredEnv("BW_SERVER")) {
- ["BW_CLIENTID", "BW_CLIENTSECRET"].forEach(getRequiredEnv);
-
- this.sessionInitializer = getStdout(
- `bw config server ${server} --quiet`,
- )
- .then(() => {
- logger.log("Logging in via API");
- return getStdout(`bw login --apikey --quiet`);
- })
- .then(() => {
- logger.log("Unlocking vault in session");
- return getStdout(`bw unlock --passwordenv BW_PASSWORD --raw`);
- })
- .then((session) => {
- logger.log(`Session ${session}`);
- return session.trim();
- });
- }
-
- public async getItem<T extends LoginItem | SecureNote>(
- secretName: string,
- ): Promise<T> {
- logger.log(`Finding secret ${secretName}`);
- return await this.sessionInitializer.then((session) =>
- getStdout(`bw list items`, {
- env: {
- BW_SESSION: session,
- },
- })
- ).then((items) => JSON.parse(items)).then((items) =>
- items.find(({ name }: { name: string }) => name === secretName)
- ).then((item) => {
- if (!item) throw new Error("Could not find bitwarden item " + secretName);
- logger.log(`Found secret: ${secretName}`);
- return item;
- });
- }
-
- async close(): Promise<void> {
- return await this.sessionInitializer.then((session) =>
- getStdout(`bw lock`, { env: { BW_SESSION: session } })
- ).then(() => {
- logger.log("Locked session");
- });
- }
-}
-
-export type LoginItem = {
- login: {
- username: string;
- password: string;
- };
-};
-
-export type SecureNote = {
- notes: string;
-};
diff --git a/utils/validate_identifier.ts b/utils/validate_identifier.ts
deleted file mode 100644
index 0c9242c..0000000
--- a/utils/validate_identifier.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export const validateIdentifier = (token: string) => {
- return (/^[a-zA-Z0-9_\-:. \/]+$/).test(token) && !token.includes("..");
-};