@schemavaults/app-definitions 0.6.1

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 (67) hide show
  1. package/README.md +24 -0
  2. package/dist/api-server-definition.d.ts +47 -0
  3. package/dist/api-server-definition.js +33 -0
  4. package/dist/api-server-definition.js.map +1 -0
  5. package/dist/api-server-id.d.ts +3 -0
  6. package/dist/api-server-id.js +8 -0
  7. package/dist/api-server-id.js.map +1 -0
  8. package/dist/app-environments.d.ts +5 -0
  9. package/dist/app-environments.js +10 -0
  10. package/dist/app-environments.js.map +1 -0
  11. package/dist/app-id.d.ts +3 -0
  12. package/dist/app-id.js +14 -0
  13. package/dist/app-id.js.map +1 -0
  14. package/dist/app_to_api_permission_def.d.ts +15 -0
  15. package/dist/app_to_api_permission_def.js +9 -0
  16. package/dist/app_to_api_permission_def.js.map +1 -0
  17. package/dist/assertions/assertHttpsUsageOnWindowLocation.d.ts +1 -0
  18. package/dist/assertions/assertHttpsUsageOnWindowLocation.js +19 -0
  19. package/dist/assertions/assertHttpsUsageOnWindowLocation.js.map +1 -0
  20. package/dist/client-app-definition.d.ts +77 -0
  21. package/dist/client-app-definition.js +41 -0
  22. package/dist/client-app-definition.js.map +1 -0
  23. package/dist/default-hardcoded-app-creation-time.d.ts +1 -0
  24. package/dist/default-hardcoded-app-creation-time.js +2 -0
  25. package/dist/default-hardcoded-app-creation-time.js.map +1 -0
  26. package/dist/get-app-environment/get-app-environment.d.ts +3 -0
  27. package/dist/get-app-environment/get-app-environment.js +11 -0
  28. package/dist/get-app-environment/get-app-environment.js.map +1 -0
  29. package/dist/get-app-environment/index.d.ts +2 -0
  30. package/dist/get-app-environment/index.js +3 -0
  31. package/dist/get-app-environment/index.js.map +1 -0
  32. package/dist/get-app-environment/isBrowserRuntime.d.ts +1 -0
  33. package/dist/get-app-environment/isBrowserRuntime.js +15 -0
  34. package/dist/get-app-environment/isBrowserRuntime.js.map +1 -0
  35. package/dist/get-app-environment/parse-app-environment-from-processDotEnv.d.ts +2 -0
  36. package/dist/get-app-environment/parse-app-environment-from-processDotEnv.js +77 -0
  37. package/dist/get-app-environment/parse-app-environment-from-processDotEnv.js.map +1 -0
  38. package/dist/get-app-environment.cjs +4078 -0
  39. package/dist/get-hardcoded-client-web-app-domain.d.ts +2 -0
  40. package/dist/get-hardcoded-client-web-app-domain.js +34 -0
  41. package/dist/get-hardcoded-client-web-app-domain.js.map +1 -0
  42. package/dist/hardcoded-core-schemavaults-api-server-domains.d.ts +179 -0
  43. package/dist/hardcoded-core-schemavaults-api-server-domains.js +84 -0
  44. package/dist/hardcoded-core-schemavaults-api-server-domains.js.map +1 -0
  45. package/dist/hardcoded-core-schemavaults-api-servers.d.ts +32 -0
  46. package/dist/hardcoded-core-schemavaults-api-servers.js +23 -0
  47. package/dist/hardcoded-core-schemavaults-api-servers.js.map +1 -0
  48. package/dist/hardcoded-core-schemavaults-app-domains.d.ts +181 -0
  49. package/dist/hardcoded-core-schemavaults-app-domains.js +122 -0
  50. package/dist/hardcoded-core-schemavaults-app-domains.js.map +1 -0
  51. package/dist/hardcoded-core-schemavaults-apps.d.ts +107 -0
  52. package/dist/hardcoded-core-schemavaults-apps.js +60 -0
  53. package/dist/hardcoded-core-schemavaults-apps.js.map +1 -0
  54. package/dist/index.cjs +4637 -0
  55. package/dist/index.d.ts +27 -0
  56. package/dist/index.js +16 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/list-registry-api-servers-query-params.d.ts +14 -0
  59. package/dist/list-registry-api-servers-query-params.js +7 -0
  60. package/dist/list-registry-api-servers-query-params.js.map +1 -0
  61. package/dist/list-registry-apps-query-params.d.ts +14 -0
  62. package/dist/list-registry-apps-query-params.js +9 -0
  63. package/dist/list-registry-apps-query-params.js.map +1 -0
  64. package/dist/production-auth-server-url.d.ts +1 -0
  65. package/dist/production-auth-server-url.js +4 -0
  66. package/dist/production-auth-server-url.js.map +1 -0
  67. package/package.json +75 -0
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # @schemavaults/app-definitions
2
+
3
+ ## About
4
+
5
+ This package defines hardcoded apps, URLs for hardcoded APIs, valid app environments (e.g. `development`, `test`, `staging`, `production`), and utility functions. Used by the different SchemaVaults apps to link to the other core services or communicate with backend resources.
6
+
7
+ ## Install dependencies
8
+
9
+ This package uses the [Bun](https://bun.sh) package manager:
10
+ ```bash
11
+ bun install
12
+ ```
13
+
14
+ ## Build package
15
+
16
+ ```bash
17
+ bun run build
18
+ ```
19
+
20
+ ## Run unit tests
21
+
22
+ ```bash
23
+ bun run test
24
+ ```
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ export declare const schemaVaultsApiServerDefinitionSchema: z.ZodObject<{
3
+ api_server_id: z.ZodUnion<[z.ZodString, z.ZodLiteral<"schemavaults-registry">, z.ZodLiteral<"schemavaults-auth">, z.ZodLiteral<"schemavaults-mail">]>;
4
+ api_server_name: z.ZodString;
5
+ api_server_description: z.ZodString;
6
+ created_at: z.ZodNumber;
7
+ public: z.ZodBoolean;
8
+ hardcoded: z.ZodBoolean;
9
+ }, "strict", z.ZodTypeAny, {
10
+ api_server_id: string;
11
+ api_server_name: string;
12
+ api_server_description: string;
13
+ created_at: number;
14
+ public: boolean;
15
+ hardcoded: boolean;
16
+ }, {
17
+ api_server_id: string;
18
+ api_server_name: string;
19
+ api_server_description: string;
20
+ created_at: number;
21
+ public: boolean;
22
+ hardcoded: boolean;
23
+ }>;
24
+ export type SchemaVaultsApiServerDefinition = z.infer<typeof schemaVaultsApiServerDefinitionSchema>;
25
+ export declare const schemaVaultsApiServerDomainRefSchema: z.ZodObject<{
26
+ api_server_id: z.ZodUnion<[z.ZodString, z.ZodLiteral<"schemavaults-registry">, z.ZodLiteral<"schemavaults-auth">, z.ZodLiteral<"schemavaults-mail">]>;
27
+ created_at: z.ZodNumber;
28
+ hardcoded: z.ZodBoolean;
29
+ api_server_domain_ref_id: z.ZodString;
30
+ domain: z.ZodString;
31
+ environment: z.ZodEnum<["development", "staging", "test", "production"]>;
32
+ }, "strict", z.ZodTypeAny, {
33
+ api_server_id: string;
34
+ created_at: number;
35
+ hardcoded: boolean;
36
+ api_server_domain_ref_id: string;
37
+ domain: string;
38
+ environment: "development" | "staging" | "test" | "production";
39
+ }, {
40
+ api_server_id: string;
41
+ created_at: number;
42
+ hardcoded: boolean;
43
+ api_server_domain_ref_id: string;
44
+ domain: string;
45
+ environment: "development" | "staging" | "test" | "production";
46
+ }>;
47
+ export type SchemaVaultsApiServerDomainRef = z.infer<typeof schemaVaultsApiServerDomainRefSchema>;
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ import { apiServerIdSchema } from './api-server-id';
3
+ import { schemaVaultsAppEnvironmentSchema } from "./app-environments";
4
+ export const schemaVaultsApiServerDefinitionSchema = z.object({
5
+ api_server_id: apiServerIdSchema,
6
+ api_server_name: z.string().max(64),
7
+ api_server_description: z.string().max(512),
8
+ created_at: z.number().nonnegative(),
9
+ public: z.boolean(), // whether the app is publicly listed
10
+ hardcoded: z.boolean()
11
+ }).required({
12
+ api_server_id: true,
13
+ api_server_name: true,
14
+ created_at: true,
15
+ public: true,
16
+ hardcoded: true
17
+ }).strict();
18
+ export const schemaVaultsApiServerDomainRefSchema = z.object({
19
+ api_server_domain_ref_id: z.string().uuid(),
20
+ api_server_id: apiServerIdSchema,
21
+ domain: z.string().max(255),
22
+ environment: schemaVaultsAppEnvironmentSchema,
23
+ created_at: z.number().nonnegative(),
24
+ hardcoded: z.boolean()
25
+ }).required({
26
+ api_server_domain_ref_id: true,
27
+ api_server_id: true,
28
+ domain: true,
29
+ environment: true,
30
+ created_at: true,
31
+ hardcoded: true
32
+ }).strict();
33
+ //# sourceMappingURL=api-server-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-server-definition.js","sourceRoot":"","sources":["../src/api-server-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,qCAAqC;IAC1D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC,CAAC,QAAQ,CAAC;IACV,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3C,aAAa,EAAE,iBAAiB;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3B,WAAW,EAAE,gCAAgC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC,CAAC,QAAQ,CAAC;IACV,wBAAwB,EAAE,IAAI;IAC9B,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC,MAAM,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { z } from "zod";
2
+ export declare const apiServerIdSchema: z.ZodUnion<[z.ZodString, z.ZodLiteral<"schemavaults-registry">, z.ZodLiteral<"schemavaults-auth">, z.ZodLiteral<"schemavaults-mail">]>;
3
+ export type ApiServerId = z.infer<typeof apiServerIdSchema>;
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+ export const apiServerIdSchema = z.union([
3
+ z.string().uuid(),
4
+ z.literal("schemavaults-registry"),
5
+ z.literal("schemavaults-auth"),
6
+ z.literal("schemavaults-mail"),
7
+ ]);
8
+ //# sourceMappingURL=api-server-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-server-id.js","sourceRoot":"","sources":["../src/api-server-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC;IACvC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACjB,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAClC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAC9B,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;CAC/B,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { z } from "zod";
2
+ export declare const schemaVaultsAppEnvironments: readonly ["development", "staging", "test", "production"];
3
+ export declare const schemaVaultsAppEnvironmentSchema: z.ZodEnum<["development", "staging", "test", "production"]>;
4
+ export type SchemaVaultsAppEnvironment = z.infer<typeof schemaVaultsAppEnvironmentSchema>;
5
+ export default schemaVaultsAppEnvironmentSchema;
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ export const schemaVaultsAppEnvironments = [
3
+ "development",
4
+ "staging",
5
+ "test",
6
+ "production",
7
+ ];
8
+ export const schemaVaultsAppEnvironmentSchema = z.enum(schemaVaultsAppEnvironments);
9
+ export default schemaVaultsAppEnvironmentSchema;
10
+ //# sourceMappingURL=app-environments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-environments.js","sourceRoot":"","sources":["../src/app-environments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,aAAa;IACb,SAAS;IACT,MAAM;IACN,YAAY;CACwB,CAAC;AAEvC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,IAAI,CACpD,2BAA2B,CAC5B,CAAC;AAMF,eAAe,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { z } from "zod";
2
+ export declare const appIdSchema: z.ZodUnion<readonly [z.ZodString, z.ZodEffects<z.ZodString, "schemavaults-auth" | "schemavaults-mail" | "schemavaults-web" | "schemavaults-cli", string>]>;
3
+ export type AppId = z.infer<typeof appIdSchema>;
package/dist/app-id.js ADDED
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ import { HARDCODED_CORE_SCHEMAVAULTS_APPS, } from "./hardcoded-core-schemavaults-apps";
3
+ const hardcoded_app_ids = HARDCODED_CORE_SCHEMAVAULTS_APPS.map((hardcoded_app) => hardcoded_app.app_id);
4
+ const hardcodedAppIdSchema = z
5
+ .string()
6
+ .refine((app_id) => {
7
+ hardcoded_app_ids;
8
+ return hardcoded_app_ids.includes(app_id);
9
+ }, "Invalid hardcoded app id");
10
+ export const appIdSchema = z.union([
11
+ z.string().uuid(),
12
+ hardcodedAppIdSchema,
13
+ ]);
14
+ //# sourceMappingURL=app-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-id.js","sourceRoot":"","sources":["../src/app-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gCAAgC,GAEjC,MAAM,oCAAoC,CAAC;AAE5C,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,GAAG,CAC5D,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CACZ,CAAC;AAE9B,MAAM,oBAAoB,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,MAAc,EAA4B,EAAE;IACnD,iBAA6C,CAAC;IAC9C,OAAQ,iBAAuC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnE,CAAC,EAAE,0BAA0B,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC;IACjC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACjB,oBAAoB;CACZ,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ export declare const appToApiPermissionSchema: z.ZodObject<{
3
+ client_app_id: z.ZodUnion<readonly [z.ZodString, z.ZodEffects<z.ZodString, "schemavaults-auth" | "schemavaults-mail" | "schemavaults-web" | "schemavaults-cli", string>]>;
4
+ api_server_id: z.ZodUnion<[z.ZodString, z.ZodLiteral<"schemavaults-registry">, z.ZodLiteral<"schemavaults-auth">, z.ZodLiteral<"schemavaults-mail">]>;
5
+ created_at: z.ZodNumber;
6
+ }, "strict", z.ZodTypeAny, {
7
+ api_server_id: string;
8
+ created_at: number;
9
+ client_app_id: string;
10
+ }, {
11
+ api_server_id: string;
12
+ created_at: number;
13
+ client_app_id: string;
14
+ }>;
15
+ export type AppToApiPermission = z.infer<typeof appToApiPermissionSchema>;
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ import { appIdSchema } from "./app-id";
3
+ import { apiServerIdSchema } from './api-server-id';
4
+ export const appToApiPermissionSchema = z.object({
5
+ client_app_id: appIdSchema,
6
+ api_server_id: apiServerIdSchema,
7
+ created_at: z.number().nonnegative()
8
+ }).required().strict();
9
+ //# sourceMappingURL=app_to_api_permission_def.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app_to_api_permission_def.js","sourceRoot":"","sources":["../src/app_to_api_permission_def.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,iBAAiB;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;CACrC,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export default function assertHttpsUsageOnWindowLocation(): void;
@@ -0,0 +1,19 @@
1
+ export default function assertHttpsUsageOnWindowLocation() {
2
+ // @ts-expect-error We're checking if the 'window' global is defined when DOM library is not explicitly loaded
3
+ if (!window) {
4
+ throw new Error("assertHttpsUsageOnWindowLocation can only be called in a browser");
5
+ }
6
+ // @ts-expect-error We're checking if the 'window.location' global is defined when DOM library is not explicitly loaded
7
+ else if (!("location" in window) || !window.location) {
8
+ throw new Error("assertHttpsUsageOnWindowLocation can only be called in a browser");
9
+ }
10
+ // @ts-expect-error We're checking if the 'window.location' global is defined when DOM library is not explicitly loaded
11
+ else if (!window.location.protocol) {
12
+ throw new Error("assertHttpsUsageOnWindowLocation can only be called in a browser");
13
+ }
14
+ // @ts-expect-error We're checking if the 'window.location.protocol' is set to https: when DOM library is not explicitly loaded
15
+ if (window.location.protocol !== "https:") {
16
+ throw new Error("Production and staging environments must use HTTPS!");
17
+ }
18
+ }
19
+ //# sourceMappingURL=assertHttpsUsageOnWindowLocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertHttpsUsageOnWindowLocation.js","sourceRoot":"","sources":["../../src/assertions/assertHttpsUsageOnWindowLocation.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,gCAAgC;IACtD,8GAA8G;IAC9G,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,uHAAuH;SAClH,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,uHAAuH;SAClH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,+HAA+H;IAC/H,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { z } from "zod";
2
+ export declare const baseSchemaVaultsAppDefinitionSchema: z.ZodObject<{
3
+ created_at: z.ZodNumber;
4
+ public: z.ZodBoolean;
5
+ hardcoded: z.ZodBoolean;
6
+ app_id: z.ZodString;
7
+ app_name: z.ZodString;
8
+ app_description: z.ZodString;
9
+ web: z.ZodOptional<z.ZodBoolean>;
10
+ }, "strict", z.ZodTypeAny, {
11
+ created_at: number;
12
+ public: boolean;
13
+ hardcoded: boolean;
14
+ app_id: string;
15
+ app_name: string;
16
+ app_description: string;
17
+ web?: boolean | undefined;
18
+ }, {
19
+ created_at: number;
20
+ public: boolean;
21
+ hardcoded: boolean;
22
+ app_id: string;
23
+ app_name: string;
24
+ app_description: string;
25
+ web?: boolean | undefined;
26
+ }>;
27
+ export type SchemaVaultsApp = z.infer<typeof baseSchemaVaultsAppDefinitionSchema>;
28
+ export declare const schemaVaultsAppDefinitionSchema: z.ZodObject<z.objectUtil.extendShape<{
29
+ created_at: z.ZodNumber;
30
+ public: z.ZodBoolean;
31
+ hardcoded: z.ZodBoolean;
32
+ app_id: z.ZodString;
33
+ app_name: z.ZodString;
34
+ app_description: z.ZodString;
35
+ web: z.ZodOptional<z.ZodBoolean>;
36
+ }, {
37
+ app_id: z.ZodEffects<z.ZodString, string, string>;
38
+ }>, "strict", z.ZodTypeAny, {
39
+ created_at: number;
40
+ public: boolean;
41
+ hardcoded: boolean;
42
+ app_id: string;
43
+ app_name: string;
44
+ app_description: string;
45
+ web?: boolean | undefined;
46
+ }, {
47
+ created_at: number;
48
+ public: boolean;
49
+ hardcoded: boolean;
50
+ app_id: string;
51
+ app_name: string;
52
+ app_description: string;
53
+ web?: boolean | undefined;
54
+ }>;
55
+ export declare const schemaVaultsAppDomainRefSchema: z.ZodObject<{
56
+ created_at: z.ZodNumber;
57
+ hardcoded: z.ZodBoolean;
58
+ domain: z.ZodString;
59
+ environment: z.ZodEnum<["development", "staging", "test", "production"]>;
60
+ app_id: z.ZodUnion<readonly [z.ZodString, z.ZodEffects<z.ZodString, "schemavaults-auth" | "schemavaults-mail" | "schemavaults-web" | "schemavaults-cli", string>]>;
61
+ app_domain_ref_id: z.ZodString;
62
+ }, "strict", z.ZodTypeAny, {
63
+ created_at: number;
64
+ hardcoded: boolean;
65
+ domain: string;
66
+ environment: "development" | "staging" | "test" | "production";
67
+ app_id: string;
68
+ app_domain_ref_id: string;
69
+ }, {
70
+ created_at: number;
71
+ hardcoded: boolean;
72
+ domain: string;
73
+ environment: "development" | "staging" | "test" | "production";
74
+ app_id: string;
75
+ app_domain_ref_id: string;
76
+ }>;
77
+ export type SchemaVaultsAppDomainRef = z.infer<typeof schemaVaultsAppDomainRefSchema>;
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ import { appIdSchema } from "./app-id";
3
+ import { schemaVaultsAppEnvironmentSchema } from "./app-environments";
4
+ // THIS SHOULD NOT BE USED OUTSIDE OF @schemavaults/app-definitions
5
+ // schemaVaultsAppDefinitionSchema restricts the scope of app_id after applying hardcoded app ids
6
+ export const baseSchemaVaultsAppDefinitionSchema = z.object({
7
+ app_id: z.string(),
8
+ app_name: z.string().max(64),
9
+ app_description: z.string().max(512),
10
+ created_at: z.number().nonnegative(),
11
+ public: z.boolean(), // whether the app is publicly listed
12
+ hardcoded: z.boolean(),
13
+ web: z.boolean().optional() // whether this app can be opened by url or requires native installation
14
+ }).required({
15
+ app_id: true,
16
+ app_name: true,
17
+ created_at: true,
18
+ public: true,
19
+ hardcoded: true
20
+ }).strict();
21
+ export const schemaVaultsAppDefinitionSchema = baseSchemaVaultsAppDefinitionSchema.extend({
22
+ app_id: z.string().refine((str) => {
23
+ return appIdSchema.safeParse(str).success;
24
+ }, "Invalid client application ID")
25
+ });
26
+ export const schemaVaultsAppDomainRefSchema = z.object({
27
+ app_domain_ref_id: z.string().uuid(),
28
+ app_id: appIdSchema,
29
+ domain: z.string().max(255),
30
+ environment: schemaVaultsAppEnvironmentSchema,
31
+ created_at: z.number().nonnegative(),
32
+ hardcoded: z.boolean()
33
+ }).required({
34
+ app_domain_ref_id: true,
35
+ app_id: true,
36
+ domain: true,
37
+ environment: true,
38
+ created_at: true,
39
+ hardcoded: true
40
+ }).strict();
41
+ //# sourceMappingURL=client-app-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-app-definition.js","sourceRoot":"","sources":["../src/client-app-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAGtE,mEAAmE;AACnE,iGAAiG;AACjG,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,qCAAqC;IAC1D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,wEAAwE;CACrG,CAAC,CAAC,QAAQ,CAAC;IACV,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,+BAA+B,GAAG,mCAAmC,CAAC,MAAM,CAAC;IACxF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAkC,EAAE;QAChE,OAAO,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IAC5C,CAAC,EAAE,+BAA+B,CAAC;CACpC,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACpC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3B,WAAW,EAAE,gCAAgC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC,CAAC,QAAQ,CAAC;IACV,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC,MAAM,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const defaultHardcodedAppCreationTime: number;
@@ -0,0 +1,2 @@
1
+ export const defaultHardcodedAppCreationTime = new Date(new Date(new Date().setFullYear(2024)).setMonth(7)).setDate(27);
2
+ //# sourceMappingURL=default-hardcoded-app-creation-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-hardcoded-app-creation-time.js","sourceRoot":"","sources":["../src/default-hardcoded-app-creation-time.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,+BAA+B,GAAW,IAAI,IAAI,CAC7D,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnD,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type SchemaVaultsAppEnvironment } from "../app-environments";
2
+ export declare function getAppEnvironment(DEBUG_GET_APP_ENVIRONMENT?: boolean): SchemaVaultsAppEnvironment;
3
+ export default getAppEnvironment;
@@ -0,0 +1,11 @@
1
+ import isBrowserRuntime from "./isBrowserRuntime";
2
+ import parseAppEnvironmentFromProcessDotEnv from "./parse-app-environment-from-processDotEnv";
3
+ export function getAppEnvironment(DEBUG_GET_APP_ENVIRONMENT = false) {
4
+ const isBrowser = isBrowserRuntime();
5
+ if (isBrowser) {
6
+ throw new Error("Invalid usage of getAppEnvironment() in a browser context!");
7
+ }
8
+ return parseAppEnvironmentFromProcessDotEnv(DEBUG_GET_APP_ENVIRONMENT);
9
+ }
10
+ export default getAppEnvironment;
11
+ //# sourceMappingURL=get-app-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-app-environment.js","sourceRoot":"","sources":["../../src/get-app-environment/get-app-environment.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,oCAAoC,MAAM,4CAA4C,CAAC;AAE9F,MAAM,UAAU,iBAAiB,CAC/B,4BAAqC,KAAK;IAE1C,MAAM,SAAS,GAAY,gBAAgB,EAAE,CAAC;IAE9C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO,oCAAoC,CAAC,yBAAyB,CAAC,CAAC;AACzE,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { getAppEnvironment, default as default } from "./get-app-environment";
2
+ export type { SchemaVaultsAppEnvironment } from "../app-environments";
@@ -0,0 +1,3 @@
1
+ // get-app-environment/index.ts
2
+ export { getAppEnvironment, default as default } from "./get-app-environment";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/get-app-environment/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EAAE,iBAAiB,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ export default function isBrowser(): boolean;
@@ -0,0 +1,15 @@
1
+ export default function isBrowser() {
2
+ let isWindowGlobalVariableSet = false;
3
+ try {
4
+ // @ts-expect-error We're checking if the 'window' global is defined when DOM library is not explicitly loaded
5
+ if (window) {
6
+ isWindowGlobalVariableSet = true;
7
+ }
8
+ }
9
+ catch (e) {
10
+ void e; // no-op-- it's okay for this to not be a browser
11
+ isWindowGlobalVariableSet = false;
12
+ }
13
+ return isWindowGlobalVariableSet;
14
+ }
15
+ //# sourceMappingURL=isBrowserRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBrowserRuntime.js","sourceRoot":"","sources":["../../src/get-app-environment/isBrowserRuntime.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,IAAI,yBAAyB,GAAY,KAAK,CAAC;IAC/C,IAAI,CAAC;QACH,8GAA8G;QAC9G,IAAI,MAAM,EAAE,CAAC;YACX,yBAAyB,GAAG,IAAI,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,KAAK,CAAC,CAAC,CAAC,iDAAiD;QACzD,yBAAyB,GAAG,KAAK,CAAC;IACpC,CAAC;IACD,OAAO,yBAAyB,CAAC;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type SchemaVaultsAppEnvironment } from "../app-environments";
2
+ export default function parseAppEnvironmentFromProcessDotEnv(DEBUG_GET_APP_ENVIRONMENT?: boolean): SchemaVaultsAppEnvironment;
@@ -0,0 +1,77 @@
1
+ import { schemaVaultsAppEnvironmentSchema, } from "../app-environments";
2
+ function stripQuotes(maybeQuotes) {
3
+ if (!maybeQuotes)
4
+ return maybeQuotes;
5
+ const trimmed = maybeQuotes.trim();
6
+ if (trimmed.startsWith('"') && trimmed.endsWith('"')) {
7
+ return trimmed.slice(1, -1);
8
+ }
9
+ if (trimmed.startsWith("'") && trimmed.endsWith("'")) {
10
+ return trimmed.slice(1, -1);
11
+ }
12
+ return trimmed;
13
+ }
14
+ export default function parseAppEnvironmentFromProcessDotEnv(DEBUG_GET_APP_ENVIRONMENT = false) {
15
+ const dynamicProcessDotEnvAppEnv = process.env.SCHEMAVAULTS_APP_ENVIRONMENT;
16
+ const inlinedNextJsAppEnv = process.env.NEXT_PUBLIC_SCHEMAVAULTS_APP_ENVIRONMENT;
17
+ // dynamic should take priority over NEXT_PUBLIC_ , as one is inlined
18
+ // (e.g. in docker build it will always be "production", even if trying to run container as test/development)
19
+ if (typeof dynamicProcessDotEnvAppEnv === "string") {
20
+ const parsed = schemaVaultsAppEnvironmentSchema.safeParse(stripQuotes(dynamicProcessDotEnvAppEnv));
21
+ if (parsed.success) {
22
+ if (DEBUG_GET_APP_ENVIRONMENT) {
23
+ console.log("[getAppEnvironment] Using SCHEMAVAULTS_APP_ENVIRONMENT environment variable: ", parsed.data);
24
+ }
25
+ return parsed.data;
26
+ }
27
+ throw new Error("Environment variable SCHEMAVAULTS_APP_ENVIRONMENT is defined but invalid!");
28
+ }
29
+ else {
30
+ if (DEBUG_GET_APP_ENVIRONMENT) {
31
+ console.log("[getAppEnvironment] Environment variable SCHEMAVAULTS_APP_ENVIRONMENT is not defined");
32
+ }
33
+ }
34
+ if (typeof inlinedNextJsAppEnv === "string") {
35
+ const parsed = schemaVaultsAppEnvironmentSchema.safeParse(stripQuotes(inlinedNextJsAppEnv));
36
+ if (parsed.success) {
37
+ if (DEBUG_GET_APP_ENVIRONMENT) {
38
+ console.log("[getAppEnvironment] Using NEXT_PUBLIC_SCHEMAVAULTS_APP_ENVIRONMENT environment variable: ", parsed.data);
39
+ }
40
+ return parsed.data;
41
+ }
42
+ throw new Error("Environment variable NEXT_PUBLIC_SCHEMAVAULTS_APP_ENVIRONMENT is defined but invalid!");
43
+ }
44
+ else {
45
+ if (DEBUG_GET_APP_ENVIRONMENT) {
46
+ console.log("[getAppEnvironment] Environment variable NEXT_PUBLIC_SCHEMAVAULTS_APP_ENVIRONMENT is not defined");
47
+ }
48
+ }
49
+ // Show this warning in all environments
50
+ if (DEBUG_GET_APP_ENVIRONMENT) {
51
+ console.warn("SCHEMAVAULTS_APP_ENVIRONMENT and NEXT_PUBLIC_SCHEMAVAULTS_APP_ENVIRONMENT are not defined!" +
52
+ " Falling back to examining NODE_ENV...");
53
+ }
54
+ const node_env = process.env.NODE_ENV;
55
+ if (node_env !== "development" &&
56
+ node_env !== "test" &&
57
+ node_env !== "production") {
58
+ throw new TypeError("Expected NODE_ENV to be one of: 'development', 'test', or 'production'");
59
+ }
60
+ if (node_env === "development") {
61
+ if (DEBUG_GET_APP_ENVIRONMENT) {
62
+ console.log("[getAppEnvironment] Running in 'development' environment based on NODE_ENV");
63
+ }
64
+ return "development";
65
+ }
66
+ if (node_env === "test") {
67
+ if (DEBUG_GET_APP_ENVIRONMENT) {
68
+ console.log("[getAppEnvironment] Running in 'test' environment based on NODE_ENV");
69
+ }
70
+ return "test";
71
+ }
72
+ if (node_env !== "production") {
73
+ throw new Error("Expected NODE_ENV to be 'production' if this point is reached!");
74
+ }
75
+ throw new Error("NODE_ENV is set to 'production', but SCHEMAVAULTS_APP_ENVIRONMENT environment variable is not defined!");
76
+ }
77
+ //# sourceMappingURL=parse-app-environment-from-processDotEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-app-environment-from-processDotEnv.js","sourceRoot":"","sources":["../../src/get-app-environment/parse-app-environment-from-processDotEnv.ts"],"names":[],"mappings":"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"}