@skillrecordings/cli 0.14.2 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.encrypted ADDED
Binary file
@@ -1,7 +1,3 @@
1
- import {
2
- Redis2,
3
- log
4
- } from "./chunk-KEV3QKXP.js";
5
1
  import {
6
2
  citeMemories,
7
3
  formatMemoriesCompact,
@@ -10,11 +6,15 @@ import {
10
6
  queryMemoriesForStage
11
7
  } from "./chunk-HK3PEWFD.js";
12
8
  import {
13
- SupportMemoryService
14
- } from "./chunk-WYKL32C3.js";
9
+ Redis2,
10
+ log
11
+ } from "./chunk-KEV3QKXP.js";
15
12
  import {
16
13
  queryVectors
17
14
  } from "./chunk-H3D6VCME.js";
15
+ import {
16
+ SupportMemoryService
17
+ } from "./chunk-WYKL32C3.js";
18
18
  import {
19
19
  Index2
20
20
  } from "./chunk-MG37YDAK.js";
@@ -3560,7 +3560,7 @@ ${message.body}
3560
3560
  ---
3561
3561
  Write your response:`;
3562
3562
  if (useAgentMode && appId) {
3563
- const { runSupportAgent } = await import("./config-AKU2GEMV.js");
3563
+ const { runSupportAgent } = await import("./config-44V5DJBS.js");
3564
3564
  await log("debug", "draft using agent mode", {
3565
3565
  workflow: "pipeline",
3566
3566
  step: "draft",
@@ -7096,4 +7096,4 @@ export {
7096
7096
  runPipeline,
7097
7097
  runThreadPipeline
7098
7098
  };
7099
- //# sourceMappingURL=chunk-FT5L3SDS.js.map
7099
+ //# sourceMappingURL=chunk-A5RBWKVF.js.map
@@ -0,0 +1,192 @@
1
+ import {
2
+ init_esm_shims
3
+ } from "./chunk-WFANXVQG.js";
4
+
5
+ // src/core/secrets.ts
6
+ init_esm_shims();
7
+
8
+ // src/core/secret-refs.ts
9
+ init_esm_shims();
10
+ var SECRET_REFS = {
11
+ LINEAR_API_KEY: "op://Support/skill-cli/LINEAR_API_KEY",
12
+ AI_GATEWAY_API_KEY: "op://Support/skill-cli/AI_GATEWAY_API_KEY",
13
+ DATABASE_URL: "op://Support/skill-cli/DATABASE_URL",
14
+ FRONT_API_TOKEN: "op://Support/skill-cli/FRONT_API_TOKEN",
15
+ FRONT_WEBHOOK_SECRET: "op://Support/skill-cli/FRONT_WEBHOOK_SECRET",
16
+ SUPPORT_WEBHOOK_SECRET: "op://Support/skill-cli/SUPPORT_WEBHOOK_SECRET",
17
+ INNGEST_SIGNING_KEY: "op://Support/skill-cli/INNGEST_SIGNING_KEY",
18
+ INNGEST_EVENT_KEY: "op://Support/skill-cli/INNGEST_EVENT_KEY",
19
+ SLACK_BOT_TOKEN: "op://Support/skill-cli/SLACK_BOT_TOKEN",
20
+ SLACK_SIGNING_SECRET: "op://Support/skill-cli/SLACK_SIGNING_SECRET",
21
+ SLACK_APPROVAL_CHANNEL: "op://Support/skill-cli/SLACK_APPROVAL_CHANNEL",
22
+ UPSTASH_REDIS_REST_URL: "op://Support/skill-cli/UPSTASH_REDIS_REST_URL",
23
+ UPSTASH_REDIS_REST_TOKEN: "op://Support/skill-cli/UPSTASH_REDIS_REST_TOKEN",
24
+ UPSTASH_VECTOR_REST_URL: "op://Support/skill-cli/UPSTASH_VECTOR_REST_URL",
25
+ UPSTASH_VECTOR_REST_TOKEN: "op://Support/skill-cli/UPSTASH_VECTOR_REST_TOKEN",
26
+ STRIPE_SECRET_KEY: "op://Support/skill-cli/STRIPE_SECRET_KEY",
27
+ STRIPE_CONNECT_CLIENT_ID: "op://Support/skill-cli/STRIPE_CONNECT_CLIENT_ID",
28
+ STRIPE_WEBHOOK_SECRET: "op://Support/skill-cli/STRIPE_WEBHOOK_SECRET",
29
+ AXIOM_TOKEN: "op://Support/skill-cli/AXIOM_TOKEN",
30
+ LANGFUSE_PUBLIC_KEY: "op://Support/skill-cli/LANGFUSE_PUBLIC_KEY",
31
+ LANGFUSE_SECRET_KEY: "op://Support/skill-cli/LANGFUSE_SECRET_KEY",
32
+ BETTERAUTH_SECRET: "op://Support/skill-cli/BETTERAUTH_SECRET",
33
+ MYSQL_HOST: "op://Support/skill-cli/MYSQL_HOST",
34
+ MYSQL_PORT: "op://Support/skill-cli/MYSQL_PORT",
35
+ MYSQL_USER: "op://Support/skill-cli/MYSQL_USER",
36
+ MYSQL_PASSWORD: "op://Support/skill-cli/MYSQL_PASSWORD",
37
+ MYSQL_DATABASE: "op://Support/skill-cli/MYSQL_DATABASE",
38
+ QDRANT_URL: "op://Support/skill-cli/QDRANT_URL",
39
+ QDRANT_COLLECTION: "op://Support/skill-cli/QDRANT_COLLECTION",
40
+ OLLAMA_BASE_URL: "op://Support/skill-cli/OLLAMA_BASE_URL",
41
+ EMBEDDING_MODEL: "op://Support/skill-cli/EMBEDDING_MODEL",
42
+ AGE_SECRET_KEY: "op://Support/skill-cli-age-key/private_key"
43
+ };
44
+
45
+ // src/core/secrets.ts
46
+ var REF_TO_ENV_KEY = new Map(
47
+ Object.entries(SECRET_REFS).map(([envKey, ref]) => [ref, envKey])
48
+ );
49
+ var DEFAULT_SECRETS_PROVIDER = {
50
+ name: "none",
51
+ async isAvailable() {
52
+ return false;
53
+ },
54
+ async resolve(ref) {
55
+ throw new Error(`No secrets provider available for ${ref}`);
56
+ },
57
+ async resolveAll() {
58
+ throw new Error("No secrets provider available");
59
+ }
60
+ };
61
+ var OnePasswordProvider = class {
62
+ name = "1password";
63
+ cache = /* @__PURE__ */ new Map();
64
+ clientPromise;
65
+ sdkPromise;
66
+ integrationName;
67
+ integrationVersion;
68
+ constructor(options = {}) {
69
+ this.integrationName = options.integrationName ?? "skill-cli";
70
+ this.integrationVersion = options.integrationVersion ?? "0.0.0";
71
+ }
72
+ async isAvailable() {
73
+ if (!process.env.OP_SERVICE_ACCOUNT_TOKEN) {
74
+ return false;
75
+ }
76
+ try {
77
+ await this.getClient();
78
+ return true;
79
+ } catch {
80
+ return false;
81
+ }
82
+ }
83
+ async resolve(ref) {
84
+ if (this.cache.has(ref)) {
85
+ return this.cache.get(ref);
86
+ }
87
+ const client = await this.getClient();
88
+ const secretsClient = client.secrets;
89
+ const value = await secretsClient.resolve(ref);
90
+ if (!value) {
91
+ throw new Error(`1Password returned empty secret for ${ref}`);
92
+ }
93
+ this.cache.set(ref, value);
94
+ return value;
95
+ }
96
+ async resolveAll(refs) {
97
+ if (refs.length === 0) {
98
+ return {};
99
+ }
100
+ const client = await this.getClient();
101
+ const secrets = await this.resolveAllWithClient(client, refs);
102
+ for (const [ref, value] of Object.entries(secrets)) {
103
+ this.cache.set(ref, value);
104
+ }
105
+ return secrets;
106
+ }
107
+ async getClient() {
108
+ if (this.clientPromise) {
109
+ return this.clientPromise;
110
+ }
111
+ const token = process.env.OP_SERVICE_ACCOUNT_TOKEN;
112
+ if (!token) {
113
+ throw new Error("OP_SERVICE_ACCOUNT_TOKEN not set");
114
+ }
115
+ const { createClient } = await this.getSdk();
116
+ this.clientPromise = createClient({
117
+ auth: token,
118
+ integrationName: this.integrationName,
119
+ integrationVersion: this.integrationVersion
120
+ });
121
+ return this.clientPromise;
122
+ }
123
+ async getSdk() {
124
+ if (this.sdkPromise) {
125
+ return this.sdkPromise;
126
+ }
127
+ this.sdkPromise = import("@1password/sdk");
128
+ return this.sdkPromise;
129
+ }
130
+ async resolveAllWithClient(client, refs) {
131
+ const secretsClient = client.secrets;
132
+ if (typeof secretsClient.resolveAll === "function") {
133
+ const resolved = await secretsClient.resolveAll(refs);
134
+ if (Array.isArray(resolved)) {
135
+ const entries2 = resolved.map((item) => {
136
+ if (item && typeof item === "object" && "reference" in item && "value" in item) {
137
+ return [
138
+ item.reference,
139
+ String(item.value)
140
+ ];
141
+ }
142
+ return null;
143
+ }).filter((entry) => Boolean(entry));
144
+ return Object.fromEntries(entries2);
145
+ }
146
+ return resolved;
147
+ }
148
+ const entries = await Promise.all(
149
+ refs.map(async (ref) => [ref, await this.resolve(ref)])
150
+ );
151
+ return Object.fromEntries(entries);
152
+ }
153
+ };
154
+ var EnvProvider = class {
155
+ name = "env";
156
+ async isAvailable() {
157
+ return true;
158
+ }
159
+ async resolve(ref) {
160
+ const envKey = REF_TO_ENV_KEY.get(ref);
161
+ if (!envKey) {
162
+ throw new Error(`No env mapping found for secret ref: ${ref}`);
163
+ }
164
+ const value = process.env[envKey];
165
+ if (!value) {
166
+ throw new Error(`Missing environment secret for ${envKey}`);
167
+ }
168
+ return value;
169
+ }
170
+ async resolveAll(refs) {
171
+ const entries = await Promise.all(
172
+ refs.map(async (ref) => [ref, await this.resolve(ref)])
173
+ );
174
+ return Object.fromEntries(entries);
175
+ }
176
+ };
177
+ async function createSecretsProvider() {
178
+ const onePassword = new OnePasswordProvider();
179
+ if (await onePassword.isAvailable()) {
180
+ return onePassword;
181
+ }
182
+ return new EnvProvider();
183
+ }
184
+
185
+ export {
186
+ SECRET_REFS,
187
+ DEFAULT_SECRETS_PROVIDER,
188
+ OnePasswordProvider,
189
+ EnvProvider,
190
+ createSecretsProvider
191
+ };
192
+ //# sourceMappingURL=chunk-JMAMXCWW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/secrets.ts","../src/core/secret-refs.ts"],"sourcesContent":["import { SECRET_REFS } from './secret-refs'\n\nexport interface SecretsProvider {\n name: string\n isAvailable(): Promise<boolean>\n resolve(ref: string): Promise<string>\n resolveAll(refs: string[]): Promise<Record<string, string>>\n}\n\nconst REF_TO_ENV_KEY = new Map<string, string>(\n Object.entries(SECRET_REFS).map(([envKey, ref]) => [ref, envKey])\n)\n\nexport const DEFAULT_SECRETS_PROVIDER: SecretsProvider = {\n name: 'none',\n async isAvailable() {\n return false\n },\n async resolve(ref: string) {\n throw new Error(`No secrets provider available for ${ref}`)\n },\n async resolveAll() {\n throw new Error('No secrets provider available')\n },\n}\n\ntype OnePasswordSdk = typeof import('@1password/sdk')\ntype OnePasswordClient = Awaited<ReturnType<OnePasswordSdk['createClient']>>\n\ntype OnePasswordOptions = {\n integrationName?: string\n integrationVersion?: string\n}\n\nexport class OnePasswordProvider implements SecretsProvider {\n name = '1password'\n private cache = new Map<string, string>()\n private clientPromise?: Promise<OnePasswordClient>\n private sdkPromise?: Promise<OnePasswordSdk>\n private integrationName: string\n private integrationVersion: string\n\n constructor(options: OnePasswordOptions = {}) {\n this.integrationName = options.integrationName ?? 'skill-cli'\n this.integrationVersion = options.integrationVersion ?? '0.0.0'\n }\n\n async isAvailable(): Promise<boolean> {\n if (!process.env.OP_SERVICE_ACCOUNT_TOKEN) {\n return false\n }\n\n try {\n await this.getClient()\n return true\n } catch {\n return false\n }\n }\n\n async resolve(ref: string): Promise<string> {\n if (this.cache.has(ref)) {\n return this.cache.get(ref) as string\n }\n\n const client = await this.getClient()\n const secretsClient = client.secrets as {\n resolve: (reference: string) => Promise<string>\n }\n const value = await secretsClient.resolve(ref)\n\n if (!value) {\n throw new Error(`1Password returned empty secret for ${ref}`)\n }\n\n this.cache.set(ref, value)\n return value\n }\n\n async resolveAll(refs: string[]): Promise<Record<string, string>> {\n if (refs.length === 0) {\n return {}\n }\n\n const client = await this.getClient()\n const secrets = await this.resolveAllWithClient(client, refs)\n\n for (const [ref, value] of Object.entries(secrets)) {\n this.cache.set(ref, value)\n }\n\n return secrets\n }\n\n private async getClient(): Promise<OnePasswordClient> {\n if (this.clientPromise) {\n return this.clientPromise\n }\n\n const token = process.env.OP_SERVICE_ACCOUNT_TOKEN\n if (!token) {\n throw new Error('OP_SERVICE_ACCOUNT_TOKEN not set')\n }\n\n const { createClient } = await this.getSdk()\n\n this.clientPromise = createClient({\n auth: token,\n integrationName: this.integrationName,\n integrationVersion: this.integrationVersion,\n })\n\n return this.clientPromise\n }\n\n private async getSdk(): Promise<OnePasswordSdk> {\n if (this.sdkPromise) {\n return this.sdkPromise\n }\n\n this.sdkPromise = import('@1password/sdk')\n\n return this.sdkPromise\n }\n\n private async resolveAllWithClient(\n client: OnePasswordClient,\n refs: string[]\n ): Promise<Record<string, string>> {\n const secretsClient = client.secrets as {\n resolve: (reference: string) => Promise<string>\n resolveAll?: (references: string[]) => Promise<unknown>\n }\n\n if (typeof secretsClient.resolveAll === 'function') {\n const resolved = await secretsClient.resolveAll(refs)\n\n if (Array.isArray(resolved)) {\n const entries = resolved\n .map((item) => {\n if (\n item &&\n typeof item === 'object' &&\n 'reference' in item &&\n 'value' in item\n ) {\n return [\n (item as { reference: string }).reference,\n String((item as { value: string }).value),\n ] as const\n }\n return null\n })\n .filter((entry): entry is [string, string] => Boolean(entry))\n\n return Object.fromEntries(entries)\n }\n\n return resolved as Record<string, string>\n }\n\n const entries = await Promise.all(\n refs.map(async (ref) => [ref, await this.resolve(ref)] as const)\n )\n\n return Object.fromEntries(entries)\n }\n}\n\nexport class EnvProvider implements SecretsProvider {\n name = 'env'\n\n async isAvailable(): Promise<boolean> {\n return true\n }\n\n async resolve(ref: string): Promise<string> {\n const envKey = REF_TO_ENV_KEY.get(ref)\n\n if (!envKey) {\n throw new Error(`No env mapping found for secret ref: ${ref}`)\n }\n\n const value = process.env[envKey]\n\n if (!value) {\n throw new Error(`Missing environment secret for ${envKey}`)\n }\n\n return value\n }\n\n async resolveAll(refs: string[]): Promise<Record<string, string>> {\n const entries = await Promise.all(\n refs.map(async (ref) => [ref, await this.resolve(ref)] as const)\n )\n\n return Object.fromEntries(entries)\n }\n}\n\nexport async function createSecretsProvider(): Promise<SecretsProvider> {\n const onePassword = new OnePasswordProvider()\n\n if (await onePassword.isAvailable()) {\n return onePassword\n }\n\n return new EnvProvider()\n}\n","export const SECRET_REFS = {\n LINEAR_API_KEY: 'op://Support/skill-cli/LINEAR_API_KEY',\n AI_GATEWAY_API_KEY: 'op://Support/skill-cli/AI_GATEWAY_API_KEY',\n DATABASE_URL: 'op://Support/skill-cli/DATABASE_URL',\n FRONT_API_TOKEN: 'op://Support/skill-cli/FRONT_API_TOKEN',\n FRONT_WEBHOOK_SECRET: 'op://Support/skill-cli/FRONT_WEBHOOK_SECRET',\n SUPPORT_WEBHOOK_SECRET: 'op://Support/skill-cli/SUPPORT_WEBHOOK_SECRET',\n INNGEST_SIGNING_KEY: 'op://Support/skill-cli/INNGEST_SIGNING_KEY',\n INNGEST_EVENT_KEY: 'op://Support/skill-cli/INNGEST_EVENT_KEY',\n SLACK_BOT_TOKEN: 'op://Support/skill-cli/SLACK_BOT_TOKEN',\n SLACK_SIGNING_SECRET: 'op://Support/skill-cli/SLACK_SIGNING_SECRET',\n SLACK_APPROVAL_CHANNEL: 'op://Support/skill-cli/SLACK_APPROVAL_CHANNEL',\n UPSTASH_REDIS_REST_URL: 'op://Support/skill-cli/UPSTASH_REDIS_REST_URL',\n UPSTASH_REDIS_REST_TOKEN: 'op://Support/skill-cli/UPSTASH_REDIS_REST_TOKEN',\n UPSTASH_VECTOR_REST_URL: 'op://Support/skill-cli/UPSTASH_VECTOR_REST_URL',\n UPSTASH_VECTOR_REST_TOKEN: 'op://Support/skill-cli/UPSTASH_VECTOR_REST_TOKEN',\n STRIPE_SECRET_KEY: 'op://Support/skill-cli/STRIPE_SECRET_KEY',\n STRIPE_CONNECT_CLIENT_ID: 'op://Support/skill-cli/STRIPE_CONNECT_CLIENT_ID',\n STRIPE_WEBHOOK_SECRET: 'op://Support/skill-cli/STRIPE_WEBHOOK_SECRET',\n AXIOM_TOKEN: 'op://Support/skill-cli/AXIOM_TOKEN',\n LANGFUSE_PUBLIC_KEY: 'op://Support/skill-cli/LANGFUSE_PUBLIC_KEY',\n LANGFUSE_SECRET_KEY: 'op://Support/skill-cli/LANGFUSE_SECRET_KEY',\n BETTERAUTH_SECRET: 'op://Support/skill-cli/BETTERAUTH_SECRET',\n MYSQL_HOST: 'op://Support/skill-cli/MYSQL_HOST',\n MYSQL_PORT: 'op://Support/skill-cli/MYSQL_PORT',\n MYSQL_USER: 'op://Support/skill-cli/MYSQL_USER',\n MYSQL_PASSWORD: 'op://Support/skill-cli/MYSQL_PASSWORD',\n MYSQL_DATABASE: 'op://Support/skill-cli/MYSQL_DATABASE',\n QDRANT_URL: 'op://Support/skill-cli/QDRANT_URL',\n QDRANT_COLLECTION: 'op://Support/skill-cli/QDRANT_COLLECTION',\n OLLAMA_BASE_URL: 'op://Support/skill-cli/OLLAMA_BASE_URL',\n EMBEDDING_MODEL: 'op://Support/skill-cli/EMBEDDING_MODEL',\n AGE_SECRET_KEY: 'op://Support/skill-cli-age-key/private_key',\n} as const\n\nexport type SecretRefKey = keyof typeof SECRET_REFS\nexport type SecretRef = (typeof SECRET_REFS)[SecretRefKey]\n"],"mappings":"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","names":["entries"]}
@@ -1,6 +1,3 @@
1
- import {
2
- createTool
3
- } from "./chunk-F4EM72IH.js";
4
1
  import {
5
2
  Redis2,
6
3
  traceMemoryCite,
@@ -9,6 +6,16 @@ import {
9
6
  traceMemoryVote,
10
7
  traceWorkflowStep
11
8
  } from "./chunk-KEV3QKXP.js";
9
+ import {
10
+ classifyMessage,
11
+ telemetryConfig
12
+ } from "./chunk-ZNF7XD2S.js";
13
+ import {
14
+ queryVectors
15
+ } from "./chunk-H3D6VCME.js";
16
+ import {
17
+ createTool
18
+ } from "./chunk-F4EM72IH.js";
12
19
  import {
13
20
  MemoryService,
14
21
  VotingService,
@@ -19,13 +26,6 @@ import {
19
26
  database,
20
27
  eq
21
28
  } from "./chunk-V34YUISF.js";
22
- import {
23
- classifyMessage,
24
- telemetryConfig
25
- } from "./chunk-ZNF7XD2S.js";
26
- import {
27
- queryVectors
28
- } from "./chunk-H3D6VCME.js";
29
29
  import {
30
30
  init_esm_shims
31
31
  } from "./chunk-WFANXVQG.js";
@@ -15606,4 +15606,4 @@ export {
15606
15606
  DEFAULT_AGENT_MODEL,
15607
15607
  runSupportAgent
15608
15608
  };
15609
- //# sourceMappingURL=chunk-RA5G6CYF.js.map
15609
+ //# sourceMappingURL=chunk-L6YTBYNV.js.map
@@ -3,14 +3,14 @@ import {
3
3
  SUPPORT_AGENT_PROMPT,
4
4
  agentTools,
5
5
  runSupportAgent
6
- } from "./chunk-RA5G6CYF.js";
7
- import "./chunk-F4EM72IH.js";
6
+ } from "./chunk-L6YTBYNV.js";
8
7
  import "./chunk-KEV3QKXP.js";
9
- import "./chunk-MLNDSBZ4.js";
10
- import "./chunk-V34YUISF.js";
11
8
  import "./chunk-ZNF7XD2S.js";
12
9
  import "./chunk-H3D6VCME.js";
10
+ import "./chunk-F4EM72IH.js";
11
+ import "./chunk-MLNDSBZ4.js";
13
12
  import "./chunk-MG37YDAK.js";
13
+ import "./chunk-V34YUISF.js";
14
14
  import "./chunk-WFANXVQG.js";
15
15
  export {
16
16
  DEFAULT_AGENT_MODEL,
@@ -18,4 +18,4 @@ export {
18
18
  agentTools,
19
19
  runSupportAgent
20
20
  };
21
- //# sourceMappingURL=config-AKU2GEMV.js.map
21
+ //# sourceMappingURL=config-44V5DJBS.js.map
@@ -0,0 +1,23 @@
1
+ import {
2
+ init_esm_shims
3
+ } from "./chunk-WFANXVQG.js";
4
+
5
+ // src/lib/crypto.ts
6
+ init_esm_shims();
7
+ import { Decrypter, Encrypter } from "age-encryption";
8
+ async function decrypt(encrypted, privateKey) {
9
+ const decrypter = new Decrypter();
10
+ decrypter.addIdentity(privateKey);
11
+ const input = encrypted instanceof Buffer ? new Uint8Array(encrypted) : encrypted;
12
+ return decrypter.decrypt(input, "text");
13
+ }
14
+ async function encrypt(content, recipientPublicKey) {
15
+ const encrypter = new Encrypter();
16
+ encrypter.addRecipient(recipientPublicKey);
17
+ return encrypter.encrypt(content);
18
+ }
19
+ export {
20
+ decrypt,
21
+ encrypt
22
+ };
23
+ //# sourceMappingURL=crypto-MTXIOCYL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/crypto.ts"],"sourcesContent":["import { Decrypter, Encrypter } from 'age-encryption'\n\n/**\n * Decrypt data with an age private key\n * @param encrypted - Encrypted data as Uint8Array or Buffer\n * @param privateKey - age private key (AGE-SECRET-KEY-1...)\n * @returns Decrypted data as string\n */\nexport async function decrypt(\n encrypted: Uint8Array | Buffer,\n privateKey: string\n): Promise<string> {\n const decrypter = new Decrypter()\n decrypter.addIdentity(privateKey)\n\n const input =\n encrypted instanceof Buffer ? new Uint8Array(encrypted) : encrypted\n return decrypter.decrypt(input, 'text')\n}\n\n/**\n * Encrypt data with an age recipient public key\n * @param content - Content to encrypt (string)\n * @param recipientPublicKey - age public key (age1...)\n * @returns Encrypted data as Uint8Array\n */\nexport async function encrypt(\n content: string,\n recipientPublicKey: string\n): Promise<Uint8Array> {\n const encrypter = new Encrypter()\n encrypter.addRecipient(recipientPublicKey)\n\n return encrypter.encrypt(content)\n}\n"],"mappings":";;;;;AAAA;AAAA,SAAS,WAAW,iBAAiB;AAQrC,eAAsB,QACpB,WACA,YACiB;AACjB,QAAM,YAAY,IAAI,UAAU;AAChC,YAAU,YAAY,UAAU;AAEhC,QAAM,QACJ,qBAAqB,SAAS,IAAI,WAAW,SAAS,IAAI;AAC5D,SAAO,UAAU,QAAQ,OAAO,MAAM;AACxC;AAQA,eAAsB,QACpB,SACA,oBACqB;AACrB,QAAM,YAAY,IAAI,UAAU;AAChC,YAAU,aAAa,kBAAkB;AAEzC,SAAO,UAAU,QAAQ,OAAO;AAClC;","names":[]}