@barekey/sdk 0.1.2 → 0.2.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.
Files changed (50) hide show
  1. package/README.md +9 -3
  2. package/dist/client.d.ts +2 -3
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/index.d.ts +3 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -0
  7. package/dist/internal/node-runtime.d.ts +2 -1
  8. package/dist/internal/node-runtime.d.ts.map +1 -1
  9. package/dist/internal/node-runtime.js +7 -4
  10. package/dist/internal/public-runtime.d.ts +14 -0
  11. package/dist/internal/public-runtime.d.ts.map +1 -0
  12. package/dist/internal/public-runtime.js +78 -0
  13. package/dist/internal/typegen.d.ts +5 -0
  14. package/dist/internal/typegen.d.ts.map +1 -1
  15. package/dist/internal/typegen.js +44 -13
  16. package/dist/key-types.typecheck.d.ts +13 -0
  17. package/dist/key-types.typecheck.d.ts.map +1 -0
  18. package/dist/key-types.typecheck.js +5 -0
  19. package/dist/public-client.d.ts +35 -0
  20. package/dist/public-client.d.ts.map +1 -0
  21. package/dist/public-client.js +150 -0
  22. package/dist/public-types.d.ts +27 -0
  23. package/dist/public-types.d.ts.map +1 -0
  24. package/dist/public-types.js +1 -0
  25. package/dist/public.d.ts +6 -0
  26. package/dist/public.d.ts.map +1 -0
  27. package/dist/public.js +3 -0
  28. package/dist/server.d.ts +5 -0
  29. package/dist/server.d.ts.map +1 -0
  30. package/dist/server.js +3 -0
  31. package/dist/types.d.ts +6 -1
  32. package/dist/types.d.ts.map +1 -1
  33. package/generated.public.d.ts +8 -0
  34. package/generated.server.d.ts +8 -0
  35. package/index.d.ts +0 -1
  36. package/package.json +18 -3
  37. package/public.d.ts +2 -0
  38. package/server.d.ts +2 -0
  39. package/src/client.ts +3 -3
  40. package/src/index.ts +10 -0
  41. package/src/internal/node-runtime.ts +9 -5
  42. package/src/internal/public-runtime.ts +123 -0
  43. package/src/internal/typegen.ts +68 -13
  44. package/src/key-types.typecheck.ts +68 -0
  45. package/src/public-client.ts +231 -0
  46. package/src/public-types.ts +63 -0
  47. package/src/public.ts +71 -0
  48. package/src/server.ts +62 -0
  49. package/src/types.ts +8 -1
  50. package/generated.d.ts +0 -16
@@ -0,0 +1,5 @@
1
+ export { BarekeyClient } from "./client.js";
2
+ export { BarekeyEnvHandle } from "./handle.js";
3
+ export { BarekeyError, BillingUnavailableError, CoerceFailedError, DeviceCodeExpiredError, DeviceCodeNotFoundError, EvaluationFailedError, FsNotAvailableError, InvalidConfigurationProvidedError, InvalidCredentialsProvidedError, InvalidDynamicOptionsError, InvalidJsonError, InvalidOrgScopeError, InvalidRefreshTokenError, InvalidRequestError, NetworkError, NoConfigurationProvidedError, NoCredentialsProvidedError, OrgScopeInvalidError, RequirementsValidationFailedError, SdkModuleNotFoundError, TemporalNotAvailableError, TypegenReadFailedError, TypegenUnsupportedSdkError, TypegenWriteFailedError, UnauthorizedError, UnknownError, UsageLimitExceededError, UserCodeInvalidError, VariableNotFoundError, createBarekeyErrorFromCode, docsUrlForErrorCode, formatBarekeyErrorMessage, isBarekeyErrorCode, normalizeErrorCode, } from "./errors.js";
4
+ export type { AB, BarekeyClientOptions, BarekeyCoerceTarget, BarekeyDeclaredType, BarekeyErrorCode, BarekeyGeneratedTypeMap, BarekeyGetOptions, BarekeyJsonConfig, BarekeyKey, BarekeyLiteralString, BarekeyKnownKey, BarekeyResolvedKind, BarekeyRolloutMilestone, BarekeyStandardSchemaV1, BarekeyTemporalInstant, BarekeyTemporalInstantLike, BarekeyTtlInput, BarekeyTypegenResult, Env, Linear, Secret, } from "./types.js";
5
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,iCAAiC,EACjC,+BAA+B,EAC/B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,EACpB,iCAAiC,EACjC,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,EAAE,EACF,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,GAAG,EACH,MAAM,EACN,MAAM,GACP,MAAM,YAAY,CAAC"}
package/dist/server.js ADDED
@@ -0,0 +1,3 @@
1
+ export { BarekeyClient } from "./client.js";
2
+ export { BarekeyEnvHandle } from "./handle.js";
3
+ export { BarekeyError, BillingUnavailableError, CoerceFailedError, DeviceCodeExpiredError, DeviceCodeNotFoundError, EvaluationFailedError, FsNotAvailableError, InvalidConfigurationProvidedError, InvalidCredentialsProvidedError, InvalidDynamicOptionsError, InvalidJsonError, InvalidOrgScopeError, InvalidRefreshTokenError, InvalidRequestError, NetworkError, NoConfigurationProvidedError, NoCredentialsProvidedError, OrgScopeInvalidError, RequirementsValidationFailedError, SdkModuleNotFoundError, TemporalNotAvailableError, TypegenReadFailedError, TypegenUnsupportedSdkError, TypegenWriteFailedError, UnauthorizedError, UnknownError, UsageLimitExceededError, UserCodeInvalidError, VariableNotFoundError, createBarekeyErrorFromCode, docsUrlForErrorCode, formatBarekeyErrorMessage, isBarekeyErrorCode, normalizeErrorCode, } from "./errors.js";
package/dist/types.d.ts CHANGED
@@ -23,16 +23,19 @@ export type EaseInOut<TMilestones extends ReadonlyArray<readonly [string, number
23
23
  readonly kind: "ease_in_out";
24
24
  readonly milestones: TMilestones;
25
25
  };
26
- export type Env<TMode, TValue, TFunction = never> = TValue & {
26
+ export type Env<TMode, TValue, TFunction = never, V = never> = TValue & {
27
27
  readonly __barekey?: {
28
28
  readonly mode: TMode;
29
29
  readonly function: TFunction;
30
+ readonly visibility: V;
30
31
  };
31
32
  };
32
33
  export type BarekeyCoerceTarget = "string" | "boolean" | "int64" | "float" | "date" | "json";
33
34
  export interface BarekeyGeneratedTypeMap {
34
35
  }
35
36
  export type BarekeyKnownKey = Extract<keyof BarekeyGeneratedTypeMap, string>;
37
+ export type BarekeyLiteralString = string & {};
38
+ export type BarekeyKey = BarekeyKnownKey | BarekeyLiteralString;
36
39
  export type BarekeyRolloutMilestone = {
37
40
  at: string;
38
41
  percentage: number;
@@ -117,6 +120,8 @@ type BarekeyBaseClientOptions = {
117
120
  export type BarekeyTypegenResult = {
118
121
  written: boolean;
119
122
  path: string;
123
+ serverPath: string;
124
+ publicPath: string;
120
125
  manifestVersion: string;
121
126
  };
122
127
  export type BarekeyClientOptions = (BarekeyBaseClientOptions & {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /* eslint-disable */
2
+ /* This file is a placeholder until barekey typegen runs. */
3
+
4
+ declare module "./dist/public-types.js" {
5
+ interface BarekeyPublicGeneratedTypeMap {}
6
+ }
7
+
8
+ export {};
@@ -0,0 +1,8 @@
1
+ /* eslint-disable */
2
+ /* This file is a placeholder until barekey typegen runs. */
3
+
4
+ declare module "./dist/types.js" {
5
+ interface BarekeyGeneratedTypeMap {}
6
+ }
7
+
8
+ export {};
package/index.d.ts CHANGED
@@ -1,2 +1 @@
1
1
  export * from "./dist/index.js";
2
- import "./generated";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barekey/sdk",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Barekey TypeScript SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -11,18 +11,33 @@
11
11
  "import": "./dist/index.js",
12
12
  "default": "./dist/index.js"
13
13
  },
14
+ "./public": {
15
+ "types": "./public.d.ts",
16
+ "import": "./dist/public.js",
17
+ "default": "./dist/public.js"
18
+ },
19
+ "./server": {
20
+ "types": "./server.d.ts",
21
+ "import": "./dist/server.js",
22
+ "default": "./dist/server.js"
23
+ },
14
24
  "./package.json": "./package.json"
15
25
  },
16
26
  "files": [
17
27
  "dist",
18
- "generated.d.ts",
28
+ "generated.public.d.ts",
29
+ "generated.server.d.ts",
19
30
  "index.d.ts",
31
+ "public.d.ts",
32
+ "server.d.ts",
20
33
  "src"
21
34
  ],
22
35
  "scripts": {
23
36
  "build": "tsc -p tsconfig.json",
24
- "typecheck": "tsc -p tsconfig.json --noEmit"
37
+ "typecheck": "tsc -p tsconfig.json --noEmit",
38
+ "test": "bun test test"
25
39
  },
40
+ "packageManager": "bun@1.2.22",
26
41
  "devDependencies": {
27
42
  "@types/node": "^24.10.1",
28
43
  "typescript": "^5.9.3"
package/public.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./dist/public.js";
2
+ import "./generated.public";
package/server.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./dist/server.js";
2
+ import "./generated.server";
package/src/client.ts CHANGED
@@ -28,6 +28,7 @@ import type {
28
28
  BarekeyGeneratedTypeMap,
29
29
  BarekeyGetOptions,
30
30
  BarekeyJsonConfig,
31
+ BarekeyKey,
31
32
  BarekeyKnownKey,
32
33
  BarekeyTypegenResult,
33
34
  BarekeyVariableDefinition,
@@ -107,11 +108,10 @@ export class BarekeyClient {
107
108
  this.fetchFn = createDefaultFetch();
108
109
  }
109
110
 
110
- get<TKey extends BarekeyKnownKey>(
111
+ get<TKey extends BarekeyKey>(
111
112
  name: TKey,
112
113
  options?: BarekeyGetOptions,
113
- ): BarekeyEnvHandle<BarekeyGeneratedTypeMap[TKey]>;
114
- get(name: string, options?: BarekeyGetOptions): BarekeyEnvHandle<unknown>;
114
+ ): BarekeyEnvHandle<TKey extends BarekeyKnownKey ? BarekeyGeneratedTypeMap[TKey] : unknown>;
115
115
  get(name: string, options?: BarekeyGetOptions): BarekeyEnvHandle<unknown> {
116
116
  return new BarekeyEnvHandle(
117
117
  async () => await this.resolveEvaluatedValue(name, options),
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { BarekeyClient } from "./client.js";
2
+ export { PublicBarekeyClient } from "./public-client.js";
2
3
  export { BarekeyEnvHandle } from "./handle.js";
3
4
  export {
4
5
  BarekeyError,
@@ -46,6 +47,8 @@ export type {
46
47
  BarekeyGeneratedTypeMap,
47
48
  BarekeyGetOptions,
48
49
  BarekeyJsonConfig,
50
+ BarekeyKey,
51
+ BarekeyLiteralString,
49
52
  BarekeyKnownKey,
50
53
  BarekeyResolvedKind,
51
54
  BarekeyRolloutMilestone,
@@ -58,3 +61,10 @@ export type {
58
61
  Linear,
59
62
  Secret,
60
63
  } from "./types.js";
64
+
65
+ export type {
66
+ BarekeyPublicGeneratedTypeMap,
67
+ BarekeyPublicKey,
68
+ BarekeyPublicKnownKey,
69
+ PublicBarekeyClientOptions,
70
+ } from "./public-types.js";
@@ -476,7 +476,8 @@ function isMissingModuleError(error: unknown): boolean {
476
476
 
477
477
  type InstalledSdkTypegenTarget = {
478
478
  packageRoot: string;
479
- generatedTypesPath: string;
479
+ serverGeneratedTypesPath: string;
480
+ publicGeneratedTypesPath: string;
480
481
  typegenMetadataPath: string;
481
482
  };
482
483
 
@@ -508,19 +509,22 @@ export async function resolveInstalledSdkTypegenTarget(): Promise<InstalledSdkTy
508
509
  const candidatePackageJson = runtime.path.join(current, "package.json");
509
510
  const rawPackageJson = await readJsonFile<Record<string, unknown>>(runtime, candidatePackageJson);
510
511
  if (rawPackageJson !== null && rawPackageJson.name === "@barekey/sdk") {
511
- const generatedTypesPath = runtime.path.join(current, "generated.d.ts");
512
+ const serverGeneratedTypesPath = runtime.path.join(current, "generated.server.d.ts");
513
+ const publicGeneratedTypesPath = runtime.path.join(current, "generated.public.d.ts");
512
514
  try {
513
- await runtime.fs.access(generatedTypesPath);
515
+ await runtime.fs.access(serverGeneratedTypesPath);
516
+ await runtime.fs.access(publicGeneratedTypesPath);
514
517
  } catch (error: unknown) {
515
518
  throw new TypegenUnsupportedSdkError({
516
- message: `The installed @barekey/sdk module at ${current} does not include generated.d.ts.`,
519
+ message: `The installed @barekey/sdk module at ${current} does not include generated.server.d.ts and generated.public.d.ts.`,
517
520
  cause: error,
518
521
  });
519
522
  }
520
523
 
521
524
  return {
522
525
  packageRoot: current,
523
- generatedTypesPath,
526
+ serverGeneratedTypesPath,
527
+ publicGeneratedTypesPath,
524
528
  typegenMetadataPath: runtime.path.join(current, "typegen.json"),
525
529
  };
526
530
  }
@@ -0,0 +1,123 @@
1
+ import {
2
+ FsNotAvailableError,
3
+ InvalidConfigurationProvidedError,
4
+ NoConfigurationProvidedError,
5
+ } from "../errors.js";
6
+ import type { PublicBarekeyClientOptions } from "../public-types.js";
7
+ import type { BarekeyJsonConfig, BarekeyStandardSchemaV1 } from "../types.js";
8
+ import { normalizeBaseUrl } from "./http.js";
9
+ import { isFilesystemAvailable, loadBarekeyJsonConfig } from "./node-runtime.js";
10
+
11
+ const DEFAULT_BAREKEY_API_URL = "https://api.barekey.dev";
12
+
13
+ type BarekeyResolvedScope = {
14
+ organization: string;
15
+ project: string;
16
+ environment: string;
17
+ };
18
+
19
+ export type BarekeyPublicRuntimeContext = BarekeyResolvedScope & {
20
+ baseUrl: string;
21
+ requirements?: BarekeyStandardSchemaV1;
22
+ };
23
+
24
+ function readConfigString(value: unknown): string | undefined {
25
+ return typeof value === "string" ? value.trim() : undefined;
26
+ }
27
+
28
+ function normalizeScope(input: {
29
+ organization?: unknown;
30
+ project?: unknown;
31
+ environment?: unknown;
32
+ source: string;
33
+ }): BarekeyResolvedScope {
34
+ const organization = readConfigString(input.organization) ?? "";
35
+ const project = readConfigString(input.project) ?? "";
36
+ const environment = readConfigString(input.environment) ?? "";
37
+ if (organization.length === 0 || project.length === 0 || environment.length === 0) {
38
+ throw new InvalidConfigurationProvidedError({
39
+ message: `${input.source} must provide organization, project, and environment.`,
40
+ });
41
+ }
42
+
43
+ return {
44
+ organization,
45
+ project,
46
+ environment,
47
+ };
48
+ }
49
+
50
+ function normalizeJsonConfig(
51
+ input: BarekeyJsonConfig | Record<string, unknown>,
52
+ source: string,
53
+ ): BarekeyResolvedScope {
54
+ return normalizeScope({
55
+ organization: input.organization ?? input.org,
56
+ project: input.project,
57
+ environment: input.environment ?? input.stage,
58
+ source,
59
+ });
60
+ }
61
+
62
+ async function resolveScope(options: PublicBarekeyClientOptions): Promise<BarekeyResolvedScope> {
63
+ const explicitOrganization = "organization" in options ? options.organization : undefined;
64
+ const explicitProject = "project" in options ? options.project : undefined;
65
+ const explicitEnvironment = "environment" in options ? options.environment : undefined;
66
+ const explicitJson = "json" in options ? options.json : undefined;
67
+
68
+ const explicitCount =
69
+ Number(explicitOrganization !== undefined) +
70
+ Number(explicitProject !== undefined) +
71
+ Number(explicitEnvironment !== undefined);
72
+
73
+ if (explicitJson !== undefined && explicitCount > 0) {
74
+ throw new InvalidConfigurationProvidedError({
75
+ message: "Pass either json or organization/project/environment, not both.",
76
+ });
77
+ }
78
+
79
+ if (explicitCount > 0 && explicitCount < 3) {
80
+ throw new InvalidConfigurationProvidedError({
81
+ message: "organization, project, and environment must be provided together.",
82
+ });
83
+ }
84
+
85
+ if (explicitJson !== undefined) {
86
+ return normalizeJsonConfig(explicitJson, "The provided json configuration");
87
+ }
88
+
89
+ if (explicitCount === 3) {
90
+ return normalizeScope({
91
+ organization: explicitOrganization,
92
+ project: explicitProject,
93
+ environment: explicitEnvironment,
94
+ source: "The provided Barekey configuration",
95
+ });
96
+ }
97
+
98
+ const loadedConfig = await loadBarekeyJsonConfig();
99
+ if (loadedConfig === null) {
100
+ if (!(await isFilesystemAvailable())) {
101
+ throw new FsNotAvailableError();
102
+ }
103
+ throw new NoConfigurationProvidedError({
104
+ message: "No Barekey configuration was found and no barekey.json file could be loaded.",
105
+ });
106
+ }
107
+
108
+ return normalizeJsonConfig(
109
+ loadedConfig.json,
110
+ `The barekey.json file at ${loadedConfig.path}`,
111
+ );
112
+ }
113
+
114
+ export async function resolvePublicRuntimeContext(
115
+ options: PublicBarekeyClientOptions,
116
+ ): Promise<BarekeyPublicRuntimeContext> {
117
+ const scope = await resolveScope(options);
118
+ return {
119
+ ...scope,
120
+ baseUrl: normalizeBaseUrl(options.baseUrl?.trim() || DEFAULT_BAREKEY_API_URL),
121
+ requirements: options.requirements,
122
+ };
123
+ }
@@ -11,6 +11,7 @@ import type {
11
11
 
12
12
  export type TypegenManifestVariable = {
13
13
  name: string;
14
+ visibility: "private" | "public";
14
15
  kind: "secret" | "ab_roll" | "rollout";
15
16
  declaredType: "string" | "boolean" | "int64" | "float" | "date" | "json";
16
17
  required: boolean;
@@ -77,19 +78,30 @@ function renderRolloutMetadataType(row: TypegenManifestVariable): string {
77
78
 
78
79
  function renderVariableType(row: TypegenManifestVariable): string {
79
80
  if (row.kind === "secret") {
80
- return `Env<Secret, ${row.typeScriptType}>`;
81
+ return `Env<Secret, ${row.typeScriptType}, never, ${JSON.stringify(row.visibility)}>`;
81
82
  }
82
83
 
83
84
  if (row.kind === "ab_roll") {
84
- return `Env<AB, ${row.typeScriptType}>`;
85
+ return `Env<AB, ${row.typeScriptType}, never, ${JSON.stringify(row.visibility)}>`;
85
86
  }
86
87
 
87
- return `Env<AB, ${row.typeScriptType}, ${renderRolloutMetadataType(row)}>`;
88
+ return `Env<AB, ${row.typeScriptType}, ${renderRolloutMetadataType(
89
+ row,
90
+ )}, ${JSON.stringify(row.visibility)}>`;
88
91
  }
89
92
 
90
- function buildGeneratedTypesContents(manifest: TypegenManifest): string {
93
+ function buildGeneratedTypesContents(
94
+ manifest: TypegenManifest,
95
+ input: {
96
+ typeModulePath: "./dist/types.js" | "./dist/public-types.js";
97
+ declaredModulePath: "./dist/types.js" | "./dist/public-types.js";
98
+ interfaceName: "BarekeyGeneratedTypeMap" | "BarekeyPublicGeneratedTypeMap";
99
+ include: (row: TypegenManifestVariable) => boolean;
100
+ },
101
+ ): string {
91
102
  const mapLines = manifest.variables
92
103
  .slice()
104
+ .filter(input.include)
93
105
  .sort((left, right) => left.name.localeCompare(right.name))
94
106
  .map((row) => ` ${JSON.stringify(row.name)}: ${renderVariableType(row)};`)
95
107
  .join("\n");
@@ -98,10 +110,10 @@ function buildGeneratedTypesContents(manifest: TypegenManifest): string {
98
110
  /* This file is generated by barekey typegen. */
99
111
  /* barekey-manifest-version: ${manifest.manifestVersion} */
100
112
 
101
- import type { AB, EaseInOut, Env, Linear, Secret, Step } from "./dist/types.js";
113
+ import type { AB, EaseInOut, Env, Linear, Secret, Step } from "${input.typeModulePath}";
102
114
 
103
- declare module "./dist/types.js" {
104
- interface BarekeyGeneratedTypeMap {
115
+ declare module "${input.declaredModulePath}" {
116
+ interface ${input.interfaceName} {
105
117
  ${mapLines.length > 0 ? mapLines : ""}
106
118
  }
107
119
  }
@@ -191,7 +203,27 @@ function buildTypegenMetadataContents(
191
203
 
192
204
  export async function resolveInstalledSdkGeneratedTypesPath(): Promise<string | null> {
193
205
  const target = await resolveInstalledSdkTypegenTarget();
194
- return target?.generatedTypesPath ?? null;
206
+ return target?.serverGeneratedTypesPath ?? null;
207
+ }
208
+
209
+ export function renderGeneratedTypesForManifest(manifest: TypegenManifest): {
210
+ serverContents: string;
211
+ publicContents: string;
212
+ } {
213
+ return {
214
+ serverContents: buildGeneratedTypesContents(manifest, {
215
+ typeModulePath: "./dist/types.js",
216
+ declaredModulePath: "./dist/types.js",
217
+ interfaceName: "BarekeyGeneratedTypeMap",
218
+ include: () => true,
219
+ }),
220
+ publicContents: buildGeneratedTypesContents(manifest, {
221
+ typeModulePath: "./dist/public-types.js",
222
+ declaredModulePath: "./dist/public-types.js",
223
+ interfaceName: "BarekeyPublicGeneratedTypeMap",
224
+ include: (row) => row.visibility === "public",
225
+ }),
226
+ };
195
227
  }
196
228
 
197
229
  export async function hasFreshInstalledSdkTypegen(
@@ -229,31 +261,54 @@ export async function writeInstalledSdkGeneratedTypes(
229
261
  return {
230
262
  written: false,
231
263
  path: "",
264
+ serverPath: "",
265
+ publicPath: "",
232
266
  manifestVersion: manifest.manifestVersion,
233
267
  };
234
268
  }
235
269
 
236
- const existingContents = await readTextFile(target.generatedTypesPath);
237
- if (readManifestVersion(existingContents) === manifest.manifestVersion) {
270
+ const [existingServerContents, existingPublicContents] = await Promise.all([
271
+ readTextFile(target.serverGeneratedTypesPath),
272
+ readTextFile(target.publicGeneratedTypesPath),
273
+ ]);
274
+ if (
275
+ readManifestVersion(existingServerContents) === manifest.manifestVersion &&
276
+ readManifestVersion(existingPublicContents) === manifest.manifestVersion
277
+ ) {
238
278
  await writeTextFileAtomic(
239
279
  target.typegenMetadataPath,
240
280
  buildTypegenMetadataContents(new Date(), identity),
241
281
  );
242
282
  return {
243
283
  written: false,
244
- path: target.generatedTypesPath,
284
+ path: target.serverGeneratedTypesPath,
285
+ serverPath: target.serverGeneratedTypesPath,
286
+ publicPath: target.publicGeneratedTypesPath,
245
287
  manifestVersion: manifest.manifestVersion,
246
288
  };
247
289
  }
248
290
 
249
- await writeTextFileAtomic(target.generatedTypesPath, buildGeneratedTypesContents(manifest));
291
+ const rendered = renderGeneratedTypesForManifest(manifest);
292
+
293
+ await Promise.all([
294
+ writeTextFileAtomic(
295
+ target.serverGeneratedTypesPath,
296
+ rendered.serverContents,
297
+ ),
298
+ writeTextFileAtomic(
299
+ target.publicGeneratedTypesPath,
300
+ rendered.publicContents,
301
+ ),
302
+ ]);
250
303
  await writeTextFileAtomic(
251
304
  target.typegenMetadataPath,
252
305
  buildTypegenMetadataContents(new Date(), identity),
253
306
  );
254
307
  return {
255
308
  written: true,
256
- path: target.generatedTypesPath,
309
+ path: target.serverGeneratedTypesPath,
310
+ serverPath: target.serverGeneratedTypesPath,
311
+ publicPath: target.publicGeneratedTypesPath,
257
312
  manifestVersion: manifest.manifestVersion,
258
313
  };
259
314
  }
@@ -0,0 +1,68 @@
1
+ import type { BarekeyClient } from "./client.js";
2
+ import type { BarekeyEnvHandle } from "./handle.js";
3
+ import type { PublicBarekeyClient } from "./public-client.js";
4
+ import type { Env, Secret } from "./types.js";
5
+ import type {
6
+ BarekeyGeneratedTypeMap,
7
+ BarekeyKey,
8
+ BarekeyKnownKey,
9
+ BarekeyLiteralString,
10
+ } from "./types.js";
11
+ import type {
12
+ BarekeyPublicGeneratedTypeMap,
13
+ BarekeyPublicKey,
14
+ BarekeyPublicKnownKey,
15
+ } from "./public-types.js";
16
+
17
+ declare module "./types.js" {
18
+ interface BarekeyGeneratedTypeMap {
19
+ PRIVATE_TOKEN: Env<Secret, string, never, "private">;
20
+ }
21
+ }
22
+
23
+ declare module "./public-types.js" {
24
+ interface BarekeyPublicGeneratedTypeMap {
25
+ PUBLIC_THEME: Env<Secret, "light" | "dark", never, "public">;
26
+ }
27
+ }
28
+
29
+ type Assert<T extends true> = T;
30
+
31
+ type IsEqual<TLeft, TRight> = (<TValue>() => TValue extends TLeft ? 1 : 2) extends <
32
+ TValue,
33
+ >() => TValue extends TRight ? 1 : 2
34
+ ? true
35
+ : false;
36
+
37
+ type UnwrapHandle<TValue> = TValue extends BarekeyEnvHandle<infer TResolved> ? TResolved : never;
38
+
39
+ declare const client: BarekeyClient;
40
+ declare const publicClient: PublicBarekeyClient;
41
+
42
+ const privateKnownHandle = client.get("PRIVATE_TOKEN");
43
+ const privateUnknownHandle = client.get("SOME_RUNTIME_KEY");
44
+ const publicKnownHandle = publicClient.get("PUBLIC_THEME");
45
+ const publicUnknownHandle = publicClient.get("SOME_RUNTIME_KEY");
46
+
47
+ type _barekeyKnownKeyStillExact = Assert<IsEqual<BarekeyKnownKey, "PRIVATE_TOKEN">>;
48
+ type _barekeyPublicKnownKeyStillExact = Assert<IsEqual<BarekeyPublicKnownKey, "PUBLIC_THEME">>;
49
+ type _barekeyKeyAllowsStrings = Assert<
50
+ IsEqual<BarekeyKey, BarekeyKnownKey | BarekeyLiteralString>
51
+ >;
52
+ type _barekeyPublicKeyAllowsStrings = Assert<
53
+ IsEqual<BarekeyPublicKey, BarekeyPublicKnownKey | BarekeyLiteralString>
54
+ >;
55
+ type _privateKnownHandleKeepsGeneratedValue = Assert<
56
+ IsEqual<UnwrapHandle<typeof privateKnownHandle>, BarekeyGeneratedTypeMap["PRIVATE_TOKEN"]>
57
+ >;
58
+ type _privateUnknownHandleFallsBackToUnknown = Assert<
59
+ IsEqual<UnwrapHandle<typeof privateUnknownHandle>, unknown>
60
+ >;
61
+ type _publicKnownHandleKeepsGeneratedValue = Assert<
62
+ IsEqual<UnwrapHandle<typeof publicKnownHandle>, BarekeyPublicGeneratedTypeMap["PUBLIC_THEME"]>
63
+ >;
64
+ type _publicUnknownHandleFallsBackToUnknown = Assert<
65
+ IsEqual<UnwrapHandle<typeof publicUnknownHandle>, unknown>
66
+ >;
67
+
68
+ export {};