@atproto/oauth-provider 0.7.2 → 0.7.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atproto/oauth-provider
2
2
 
3
+ ## 0.7.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#3764](https://github.com/bluesky-social/atproto/pull/3764) [`30f9b6690`](https://github.com/bluesky-social/atproto/commit/30f9b6690e0e2c5810772e94e631322b9d89c65a) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Allow customizing contrast and hue colors
8
+
9
+ - Updated dependencies [[`30f9b6690`](https://github.com/bluesky-social/atproto/commit/30f9b6690e0e2c5810772e94e631322b9d89c65a), [`30f9b6690`](https://github.com/bluesky-social/atproto/commit/30f9b6690e0e2c5810772e94e631322b9d89c65a), [`0d77d1b55`](https://github.com/bluesky-social/atproto/commit/0d77d1b550a58117aee8f7f1e2be24d255ade9e4), [`30f9b6690`](https://github.com/bluesky-social/atproto/commit/30f9b6690e0e2c5810772e94e631322b9d89c65a), [`30f9b6690`](https://github.com/bluesky-social/atproto/commit/30f9b6690e0e2c5810772e94e631322b9d89c65a), [`30f9b6690`](https://github.com/bluesky-social/atproto/commit/30f9b6690e0e2c5810772e94e631322b9d89c65a), [`0d77d1b55`](https://github.com/bluesky-social/atproto/commit/0d77d1b550a58117aee8f7f1e2be24d255ade9e4), [`30f9b6690`](https://github.com/bluesky-social/atproto/commit/30f9b6690e0e2c5810772e94e631322b9d89c65a), [`30f9b6690`](https://github.com/bluesky-social/atproto/commit/30f9b6690e0e2c5810772e94e631322b9d89c65a)]:
10
+ - @atproto/oauth-provider-frontend@0.1.3
11
+ - @atproto-labs/simple-store@0.2.0
12
+ - @atproto/oauth-types@0.2.6
13
+ - @atproto-labs/simple-store-memory@0.1.3
14
+ - @atproto/oauth-provider-api@0.1.1
15
+ - @atproto/oauth-provider-ui@0.1.2
16
+
3
17
  ## 0.7.2
4
18
 
5
19
  ### Patch Changes
@@ -2,7 +2,40 @@ import { z } from 'zod';
2
2
  export declare const brandingSchema: z.ZodObject<{
3
3
  name: z.ZodOptional<z.ZodString>;
4
4
  logo: z.ZodOptional<z.ZodString>;
5
- colors: z.ZodOptional<z.ZodRecord<z.ZodEnum<["primary", "error", "warning", "success"]>, z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>>>;
5
+ colors: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
6
+ light: z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>;
7
+ dark: z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>;
8
+ }, Record<"error" | "success" | "warning" | "primary", z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>>>, Record<"errorContrast" | "successContrast" | "warningContrast" | "primaryContrast", z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>>>, Record<"errorHue" | "successHue" | "warningHue" | "primaryHue", z.ZodOptional<z.ZodNumber>>>, "strip", z.ZodTypeAny, {
9
+ error?: import("../lib/util/color.js").RgbColor | undefined;
10
+ success?: import("../lib/util/color.js").RgbColor | undefined;
11
+ warning?: import("../lib/util/color.js").RgbColor | undefined;
12
+ light?: import("../lib/util/color.js").RgbColor | undefined;
13
+ dark?: import("../lib/util/color.js").RgbColor | undefined;
14
+ primary?: import("../lib/util/color.js").RgbColor | undefined;
15
+ errorContrast?: import("../lib/util/color.js").RgbColor | undefined;
16
+ successContrast?: import("../lib/util/color.js").RgbColor | undefined;
17
+ warningContrast?: import("../lib/util/color.js").RgbColor | undefined;
18
+ primaryContrast?: import("../lib/util/color.js").RgbColor | undefined;
19
+ errorHue?: number | undefined;
20
+ successHue?: number | undefined;
21
+ warningHue?: number | undefined;
22
+ primaryHue?: number | undefined;
23
+ }, {
24
+ error?: string | undefined;
25
+ success?: string | undefined;
26
+ warning?: string | undefined;
27
+ light?: string | undefined;
28
+ dark?: string | undefined;
29
+ primary?: string | undefined;
30
+ errorContrast?: string | undefined;
31
+ successContrast?: string | undefined;
32
+ warningContrast?: string | undefined;
33
+ primaryContrast?: string | undefined;
34
+ errorHue?: number | undefined;
35
+ successHue?: number | undefined;
36
+ warningHue?: number | undefined;
37
+ primaryHue?: number | undefined;
38
+ }>>;
6
39
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
7
40
  title: z.ZodUnion<[z.ZodString, z.ZodIntersection<z.ZodObject<{
8
41
  en: z.ZodString;
@@ -29,7 +62,22 @@ export declare const brandingSchema: z.ZodObject<{
29
62
  }, "strip", z.ZodTypeAny, {
30
63
  name?: string | undefined;
31
64
  logo?: string | undefined;
32
- colors?: Partial<Record<"error" | "success" | "warning" | "primary", import("../lib/util/color.js").RgbColor | undefined>> | undefined;
65
+ colors?: {
66
+ error?: import("../lib/util/color.js").RgbColor | undefined;
67
+ success?: import("../lib/util/color.js").RgbColor | undefined;
68
+ warning?: import("../lib/util/color.js").RgbColor | undefined;
69
+ light?: import("../lib/util/color.js").RgbColor | undefined;
70
+ dark?: import("../lib/util/color.js").RgbColor | undefined;
71
+ primary?: import("../lib/util/color.js").RgbColor | undefined;
72
+ errorContrast?: import("../lib/util/color.js").RgbColor | undefined;
73
+ successContrast?: import("../lib/util/color.js").RgbColor | undefined;
74
+ warningContrast?: import("../lib/util/color.js").RgbColor | undefined;
75
+ primaryContrast?: import("../lib/util/color.js").RgbColor | undefined;
76
+ errorHue?: number | undefined;
77
+ successHue?: number | undefined;
78
+ warningHue?: number | undefined;
79
+ primaryHue?: number | undefined;
80
+ } | undefined;
33
81
  links?: {
34
82
  title: string | ({
35
83
  en: string;
@@ -40,7 +88,22 @@ export declare const brandingSchema: z.ZodObject<{
40
88
  }, {
41
89
  name?: string | undefined;
42
90
  logo?: string | undefined;
43
- colors?: Partial<Record<"error" | "success" | "warning" | "primary", string | undefined>> | undefined;
91
+ colors?: {
92
+ error?: string | undefined;
93
+ success?: string | undefined;
94
+ warning?: string | undefined;
95
+ light?: string | undefined;
96
+ dark?: string | undefined;
97
+ primary?: string | undefined;
98
+ errorContrast?: string | undefined;
99
+ successContrast?: string | undefined;
100
+ warningContrast?: string | undefined;
101
+ primaryContrast?: string | undefined;
102
+ errorHue?: number | undefined;
103
+ successHue?: number | undefined;
104
+ warningHue?: number | undefined;
105
+ primaryHue?: number | undefined;
106
+ } | undefined;
44
107
  links?: {
45
108
  title: string | ({
46
109
  en: string;
@@ -1 +1 @@
1
- {"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/customization/branding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKzB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC1D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/customization/branding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKzB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC1D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA"}
@@ -10,17 +10,18 @@ function buildCustomizationCss({ branding, }) {
10
10
  }
11
11
  function* buildCustomizationVars(branding) {
12
12
  if (branding?.colors) {
13
- // @NOTE these could come from branding (in the future)
14
- const contrastLight = { r: 255, g: 255, b: 255 };
15
- const contrastDark = { r: 0, g: 0, b: 0 };
13
+ const contrastLight = branding.colors.light ?? { r: 255, g: 255, b: 255 };
14
+ const contrastDark = branding.colors.dark ?? { r: 0, g: 0, b: 0 };
16
15
  for (const name of colors_js_1.COLOR_NAMES) {
17
16
  const value = branding.colors[name];
18
17
  if (!value)
19
18
  continue; // Skip missing colors
20
- const contrast = (0, color_js_1.pickContrastColor)(value, contrastLight, contrastDark);
19
+ const contrast = branding.colors[`${name}Contrast`] ??
20
+ (0, color_js_1.pickContrastColor)(value, contrastLight, contrastDark);
21
+ const hue = branding.colors[`${name}Hue`] ?? (0, color_js_1.extractHue)(value);
21
22
  yield `--branding-color-${name}: ${value.r} ${value.g} ${value.b};`;
22
23
  yield `--branding-color-${name}-contrast: ${contrast.r} ${contrast.g} ${contrast.b};`;
23
- yield `--branding-color-${name}-hue: ${(0, color_js_1.extractHue)(value)};`;
24
+ yield `--branding-color-${name}-hue: ${hue};`;
24
25
  }
25
26
  }
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-customization-css.js","sourceRoot":"","sources":["../../src/customization/build-customization-css.ts"],"names":[],"mappings":";;AAKA,sDAKC;AAVD,mDAAoE;AAEpE,2CAAyC;AAGzC,SAAgB,qBAAqB,CAAC,EACpC,QAAQ,GACM;IACd,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAA;IACzD,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;AACvD,CAAC;AAED,QAAQ,CAAC,CAAC,sBAAsB,CAAC,QAAmB;IAClD,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,uDAAuD;QACvD,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;QAChD,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAEzC,KAAK,MAAM,IAAI,IAAI,uBAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,CAAC,KAAK;gBAAE,SAAQ,CAAC,sBAAsB;YAE3C,MAAM,QAAQ,GAAG,IAAA,4BAAiB,EAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;YAEtE,MAAM,oBAAoB,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAA;YACnE,MAAM,oBAAoB,IAAI,cAAc,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAA;YACrF,MAAM,oBAAoB,IAAI,SAAS,IAAA,qBAAU,EAAC,KAAK,CAAC,GAAG,CAAA;QAC7D,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"build-customization-css.js","sourceRoot":"","sources":["../../src/customization/build-customization-css.ts"],"names":[],"mappings":";;AAKA,sDAKC;AAVD,mDAAoE;AAEpE,2CAAyC;AAGzC,SAAgB,qBAAqB,CAAC,EACpC,QAAQ,GACM;IACd,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAA;IACzD,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;AACvD,CAAC;AAED,QAAQ,CAAC,CAAC,sBAAsB,CAAC,QAAmB;IAClD,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;QACzE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAEjE,KAAK,MAAM,IAAI,IAAI,uBAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,CAAC,KAAK;gBAAE,SAAQ,CAAC,sBAAsB;YAE3C,MAAM,QAAQ,GACZ,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC;gBAClC,IAAA,4BAAiB,EAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;YAEvD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAA;YAE9D,MAAM,oBAAoB,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAA;YACnE,MAAM,oBAAoB,IAAI,cAAc,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAA;YACrF,MAAM,oBAAoB,IAAI,SAAS,GAAG,GAAG,CAAA;QAC/C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,7 +1,39 @@
1
1
  import { z } from 'zod';
2
- import { RgbColor } from '../lib/util/color.js';
3
2
  export declare const COLOR_NAMES: readonly ["primary", "error", "warning", "success"];
4
- export declare const rgbColorSchema: z.ZodEffects<z.ZodString, RgbColor, string>;
5
- export declare const colorsSchema: z.ZodRecord<z.ZodEnum<["primary", "error", "warning", "success"]>, z.ZodOptional<z.ZodEffects<z.ZodString, RgbColor, string>>>;
3
+ export type ColorName = (typeof COLOR_NAMES)[number];
4
+ export declare const colorsSchema: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
5
+ light: z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>;
6
+ dark: z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>;
7
+ }, Record<"error" | "success" | "warning" | "primary", z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>>>, Record<"errorContrast" | "successContrast" | "warningContrast" | "primaryContrast", z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>>>, Record<"errorHue" | "successHue" | "warningHue" | "primaryHue", z.ZodOptional<z.ZodNumber>>>, "strip", z.ZodTypeAny, {
8
+ error?: import("../lib/util/color.js").RgbColor | undefined;
9
+ success?: import("../lib/util/color.js").RgbColor | undefined;
10
+ warning?: import("../lib/util/color.js").RgbColor | undefined;
11
+ light?: import("../lib/util/color.js").RgbColor | undefined;
12
+ dark?: import("../lib/util/color.js").RgbColor | undefined;
13
+ primary?: import("../lib/util/color.js").RgbColor | undefined;
14
+ errorContrast?: import("../lib/util/color.js").RgbColor | undefined;
15
+ successContrast?: import("../lib/util/color.js").RgbColor | undefined;
16
+ warningContrast?: import("../lib/util/color.js").RgbColor | undefined;
17
+ primaryContrast?: import("../lib/util/color.js").RgbColor | undefined;
18
+ errorHue?: number | undefined;
19
+ successHue?: number | undefined;
20
+ warningHue?: number | undefined;
21
+ primaryHue?: number | undefined;
22
+ }, {
23
+ error?: string | undefined;
24
+ success?: string | undefined;
25
+ warning?: string | undefined;
26
+ light?: string | undefined;
27
+ dark?: string | undefined;
28
+ primary?: string | undefined;
29
+ errorContrast?: string | undefined;
30
+ successContrast?: string | undefined;
31
+ warningContrast?: string | undefined;
32
+ primaryContrast?: string | undefined;
33
+ errorHue?: number | undefined;
34
+ successHue?: number | undefined;
35
+ warningHue?: number | undefined;
36
+ primaryHue?: number | undefined;
37
+ }>;
6
38
  export type Colors = z.infer<typeof colorsSchema>;
7
39
  //# sourceMappingURL=colors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/customization/colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAc,MAAM,sBAAsB,CAAA;AAE3D,eAAO,MAAM,WAAW,qDAAsD,CAAA;AAE9E,eAAO,MAAM,cAAc,6CAiBzB,CAAA;AAEF,eAAO,MAAM,YAAY,gIAGxB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA"}
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/customization/colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,WAAW,qDAAsD,CAAA;AAC9E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBtB,CAAA;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA"}
@@ -1,27 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.colorsSchema = exports.rgbColorSchema = exports.COLOR_NAMES = void 0;
3
+ exports.colorsSchema = exports.COLOR_NAMES = void 0;
4
4
  const zod_1 = require("zod");
5
- const color_js_1 = require("../lib/util/color.js");
5
+ const color_hue_js_1 = require("../types/color-hue.js");
6
+ const rgb_color_js_1 = require("../types/rgb-color.js");
6
7
  exports.COLOR_NAMES = ['primary', 'error', 'warning', 'success'];
7
- exports.rgbColorSchema = zod_1.z.string().transform((value, ctx) => {
8
- try {
9
- const parsed = (0, color_js_1.parseColor)(value);
10
- if ('a' in parsed && parsed.a !== undefined) {
11
- ctx.addIssue({
12
- code: zod_1.z.ZodIssueCode.custom,
13
- message: 'Alpha values are not supported',
14
- });
15
- }
16
- return parsed;
17
- }
18
- catch (e) {
19
- ctx.addIssue({
20
- code: zod_1.z.ZodIssueCode.custom,
21
- message: e instanceof Error ? e.message : 'Invalid color value',
22
- });
23
- return zod_1.z.NEVER;
24
- }
25
- });
26
- exports.colorsSchema = zod_1.z.record(zod_1.z.enum(exports.COLOR_NAMES), exports.rgbColorSchema.optional());
8
+ exports.colorsSchema = zod_1.z
9
+ .object({
10
+ light: rgb_color_js_1.rgbColorSchema.optional(),
11
+ dark: rgb_color_js_1.rgbColorSchema.optional(),
12
+ })
13
+ .extend(Object.fromEntries(exports.COLOR_NAMES.map((name) => [name, rgb_color_js_1.rgbColorSchema.optional()])))
14
+ .extend(Object.fromEntries(exports.COLOR_NAMES.map((name) => [`${name}Contrast`, rgb_color_js_1.rgbColorSchema.optional()])))
15
+ .extend(Object.fromEntries(exports.COLOR_NAMES.map((name) => [`${name}Hue`, color_hue_js_1.colorHueSchema.optional()])));
27
16
  //# sourceMappingURL=colors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/customization/colors.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mDAA2D;AAE9C,QAAA,WAAW,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAU,CAAA;AAEjE,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,EAAY,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAA;QAChC,IAAI,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,gCAAgC;aAC1C,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB;SAChE,CAAC,CAAA;QACF,OAAO,OAAC,CAAC,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAC,CAAA;AAEW,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAClC,OAAC,CAAC,IAAI,CAAC,mBAAW,CAAC,EACnB,sBAAc,CAAC,QAAQ,EAAE,CAC1B,CAAA"}
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/customization/colors.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,wDAAsD;AACtD,wDAAsD;AAEzC,QAAA,WAAW,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAU,CAAA;AAGjE,QAAA,YAAY,GAAG,OAAC;KAC1B,MAAM,CAAC;IACN,KAAK,EAAE,6BAAc,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,6BAAc,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,MAAM,CACL,MAAM,CAAC,WAAW,CAChB,mBAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,6BAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CACF,CAC7D;KACA,MAAM,CACL,MAAM,CAAC,WAAW,CAChB,mBAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,UAAU,EAAE,6BAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CACF,CAC1E;KACA,MAAM,CACL,MAAM,CAAC,WAAW,CAChB,mBAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,6BAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CACF,CACrE,CAAA"}
@@ -11,7 +11,40 @@ export declare const customizationSchema: z.ZodObject<{
11
11
  branding: z.ZodOptional<z.ZodObject<{
12
12
  name: z.ZodOptional<z.ZodString>;
13
13
  logo: z.ZodOptional<z.ZodString>;
14
- colors: z.ZodOptional<z.ZodRecord<z.ZodEnum<["primary", "error", "warning", "success"]>, z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>>>;
14
+ colors: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
15
+ light: z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>;
16
+ dark: z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>;
17
+ }, Record<"error" | "success" | "warning" | "primary", z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>>>, Record<"errorContrast" | "successContrast" | "warningContrast" | "primaryContrast", z.ZodOptional<z.ZodEffects<z.ZodString, import("../lib/util/color.js").RgbColor, string>>>>, Record<"errorHue" | "successHue" | "warningHue" | "primaryHue", z.ZodOptional<z.ZodNumber>>>, "strip", z.ZodTypeAny, {
18
+ error?: import("../lib/util/color.js").RgbColor | undefined;
19
+ success?: import("../lib/util/color.js").RgbColor | undefined;
20
+ warning?: import("../lib/util/color.js").RgbColor | undefined;
21
+ light?: import("../lib/util/color.js").RgbColor | undefined;
22
+ dark?: import("../lib/util/color.js").RgbColor | undefined;
23
+ primary?: import("../lib/util/color.js").RgbColor | undefined;
24
+ errorContrast?: import("../lib/util/color.js").RgbColor | undefined;
25
+ successContrast?: import("../lib/util/color.js").RgbColor | undefined;
26
+ warningContrast?: import("../lib/util/color.js").RgbColor | undefined;
27
+ primaryContrast?: import("../lib/util/color.js").RgbColor | undefined;
28
+ errorHue?: number | undefined;
29
+ successHue?: number | undefined;
30
+ warningHue?: number | undefined;
31
+ primaryHue?: number | undefined;
32
+ }, {
33
+ error?: string | undefined;
34
+ success?: string | undefined;
35
+ warning?: string | undefined;
36
+ light?: string | undefined;
37
+ dark?: string | undefined;
38
+ primary?: string | undefined;
39
+ errorContrast?: string | undefined;
40
+ successContrast?: string | undefined;
41
+ warningContrast?: string | undefined;
42
+ primaryContrast?: string | undefined;
43
+ errorHue?: number | undefined;
44
+ successHue?: number | undefined;
45
+ warningHue?: number | undefined;
46
+ primaryHue?: number | undefined;
47
+ }>>;
15
48
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
16
49
  title: z.ZodUnion<[z.ZodString, z.ZodIntersection<z.ZodObject<{
17
50
  en: z.ZodString;
@@ -38,7 +71,22 @@ export declare const customizationSchema: z.ZodObject<{
38
71
  }, "strip", z.ZodTypeAny, {
39
72
  name?: string | undefined;
40
73
  logo?: string | undefined;
41
- colors?: Partial<Record<"error" | "success" | "warning" | "primary", import("../lib/util/color.js").RgbColor | undefined>> | undefined;
74
+ colors?: {
75
+ error?: import("../lib/util/color.js").RgbColor | undefined;
76
+ success?: import("../lib/util/color.js").RgbColor | undefined;
77
+ warning?: import("../lib/util/color.js").RgbColor | undefined;
78
+ light?: import("../lib/util/color.js").RgbColor | undefined;
79
+ dark?: import("../lib/util/color.js").RgbColor | undefined;
80
+ primary?: import("../lib/util/color.js").RgbColor | undefined;
81
+ errorContrast?: import("../lib/util/color.js").RgbColor | undefined;
82
+ successContrast?: import("../lib/util/color.js").RgbColor | undefined;
83
+ warningContrast?: import("../lib/util/color.js").RgbColor | undefined;
84
+ primaryContrast?: import("../lib/util/color.js").RgbColor | undefined;
85
+ errorHue?: number | undefined;
86
+ successHue?: number | undefined;
87
+ warningHue?: number | undefined;
88
+ primaryHue?: number | undefined;
89
+ } | undefined;
42
90
  links?: {
43
91
  title: string | ({
44
92
  en: string;
@@ -49,7 +97,22 @@ export declare const customizationSchema: z.ZodObject<{
49
97
  }, {
50
98
  name?: string | undefined;
51
99
  logo?: string | undefined;
52
- colors?: Partial<Record<"error" | "success" | "warning" | "primary", string | undefined>> | undefined;
100
+ colors?: {
101
+ error?: string | undefined;
102
+ success?: string | undefined;
103
+ warning?: string | undefined;
104
+ light?: string | undefined;
105
+ dark?: string | undefined;
106
+ primary?: string | undefined;
107
+ errorContrast?: string | undefined;
108
+ successContrast?: string | undefined;
109
+ warningContrast?: string | undefined;
110
+ primaryContrast?: string | undefined;
111
+ errorHue?: number | undefined;
112
+ successHue?: number | undefined;
113
+ warningHue?: number | undefined;
114
+ primaryHue?: number | undefined;
115
+ } | undefined;
53
116
  links?: {
54
117
  title: string | ({
55
118
  en: string;
@@ -86,7 +149,22 @@ export declare const customizationSchema: z.ZodObject<{
86
149
  branding?: {
87
150
  name?: string | undefined;
88
151
  logo?: string | undefined;
89
- colors?: Partial<Record<"error" | "success" | "warning" | "primary", import("../lib/util/color.js").RgbColor | undefined>> | undefined;
152
+ colors?: {
153
+ error?: import("../lib/util/color.js").RgbColor | undefined;
154
+ success?: import("../lib/util/color.js").RgbColor | undefined;
155
+ warning?: import("../lib/util/color.js").RgbColor | undefined;
156
+ light?: import("../lib/util/color.js").RgbColor | undefined;
157
+ dark?: import("../lib/util/color.js").RgbColor | undefined;
158
+ primary?: import("../lib/util/color.js").RgbColor | undefined;
159
+ errorContrast?: import("../lib/util/color.js").RgbColor | undefined;
160
+ successContrast?: import("../lib/util/color.js").RgbColor | undefined;
161
+ warningContrast?: import("../lib/util/color.js").RgbColor | undefined;
162
+ primaryContrast?: import("../lib/util/color.js").RgbColor | undefined;
163
+ errorHue?: number | undefined;
164
+ successHue?: number | undefined;
165
+ warningHue?: number | undefined;
166
+ primaryHue?: number | undefined;
167
+ } | undefined;
90
168
  links?: {
91
169
  title: string | ({
92
170
  en: string;
@@ -107,7 +185,22 @@ export declare const customizationSchema: z.ZodObject<{
107
185
  branding?: {
108
186
  name?: string | undefined;
109
187
  logo?: string | undefined;
110
- colors?: Partial<Record<"error" | "success" | "warning" | "primary", string | undefined>> | undefined;
188
+ colors?: {
189
+ error?: string | undefined;
190
+ success?: string | undefined;
191
+ warning?: string | undefined;
192
+ light?: string | undefined;
193
+ dark?: string | undefined;
194
+ primary?: string | undefined;
195
+ errorContrast?: string | undefined;
196
+ successContrast?: string | undefined;
197
+ warningContrast?: string | undefined;
198
+ primaryContrast?: string | undefined;
199
+ errorHue?: number | undefined;
200
+ successHue?: number | undefined;
201
+ warningHue?: number | undefined;
202
+ primaryHue?: number | undefined;
203
+ } | undefined;
111
204
  links?: {
112
205
  title: string | ({
113
206
  en: string;
@@ -1 +1 @@
1
- {"version":3,"file":"customization.d.ts","sourceRoot":"","sources":["../../src/customization/customization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,mBAAmB;IAC9B;;;OAGG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;OAEG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"customization.d.ts","sourceRoot":"","sources":["../../src/customization/customization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,mBAAmB;IAC9B;;;OAGG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;OAEG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ export declare const colorHueSchema: z.ZodNumber;
3
+ //# sourceMappingURL=color-hue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-hue.d.ts","sourceRoot":"","sources":["../../src/types/color-hue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,cAAc,aAA6B,CAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.colorHueSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.colorHueSchema = zod_1.z.number().min(0).max(360);
6
+ //# sourceMappingURL=color-hue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-hue.js","sourceRoot":"","sources":["../../src/types/color-hue.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { RgbColor } from '../lib/util/color.js';
3
+ export declare const rgbColorSchema: z.ZodEffects<z.ZodString, RgbColor, string>;
4
+ //# sourceMappingURL=rgb-color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgb-color.d.ts","sourceRoot":"","sources":["../../src/types/rgb-color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAc,MAAM,sBAAsB,CAAA;AAE3D,eAAO,MAAM,cAAc,6CAiBzB,CAAA"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rgbColorSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const color_js_1 = require("../lib/util/color.js");
6
+ exports.rgbColorSchema = zod_1.z.string().transform((value, ctx) => {
7
+ try {
8
+ const parsed = (0, color_js_1.parseColor)(value);
9
+ if ('a' in parsed && parsed.a !== undefined) {
10
+ ctx.addIssue({
11
+ code: zod_1.z.ZodIssueCode.custom,
12
+ message: 'Alpha values are not supported',
13
+ });
14
+ }
15
+ return parsed;
16
+ }
17
+ catch (e) {
18
+ ctx.addIssue({
19
+ code: zod_1.z.ZodIssueCode.custom,
20
+ message: e instanceof Error ? e.message : 'Invalid color value',
21
+ });
22
+ return zod_1.z.NEVER;
23
+ }
24
+ });
25
+ //# sourceMappingURL=rgb-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgb-color.js","sourceRoot":"","sources":["../../src/types/rgb-color.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mDAA2D;AAE9C,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,EAAY,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAA;QAChC,IAAI,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,gCAAgC;aAC1C,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB;SAChE,CAAC,CAAA;QACF,OAAO,OAAC,CAAC,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/oauth-provider",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "license": "MIT",
5
5
  "description": "Generic OAuth2 and OpenID Connect provider for Node.js. Currently only supports features needed for Atproto.",
6
6
  "keywords": [
@@ -43,19 +43,19 @@
43
43
  "jose": "^5.2.0",
44
44
  "psl": "^1.9.0",
45
45
  "zod": "^3.23.8",
46
+ "@atproto-labs/fetch": "0.2.2",
46
47
  "@atproto-labs/fetch-node": "0.1.8",
47
48
  "@atproto-labs/pipe": "0.1.0",
48
- "@atproto-labs/simple-store": "0.1.2",
49
- "@atproto-labs/simple-store-memory": "0.1.2",
49
+ "@atproto-labs/simple-store": "0.2.0",
50
+ "@atproto-labs/simple-store-memory": "0.1.3",
50
51
  "@atproto/common": "^0.4.10",
51
52
  "@atproto/jwk": "0.1.5",
52
53
  "@atproto/jwk-jose": "0.1.6",
53
- "@atproto/oauth-types": "0.2.5",
54
- "@atproto/oauth-provider-api": "0.1.0",
55
- "@atproto/oauth-provider-frontend": "0.1.2",
56
- "@atproto/oauth-provider-ui": "0.1.1",
57
- "@atproto/syntax": "0.4.0",
58
- "@atproto-labs/fetch": "0.2.2"
54
+ "@atproto/oauth-types": "0.2.6",
55
+ "@atproto/oauth-provider-api": "0.1.1",
56
+ "@atproto/oauth-provider-frontend": "0.1.3",
57
+ "@atproto/oauth-provider-ui": "0.1.2",
58
+ "@atproto/syntax": "0.4.0"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/cookie": "^0.6.0",
@@ -12,19 +12,22 @@ export function buildCustomizationCss({
12
12
 
13
13
  function* buildCustomizationVars(branding?: Branding): Generator<string> {
14
14
  if (branding?.colors) {
15
- // @NOTE these could come from branding (in the future)
16
- const contrastLight = { r: 255, g: 255, b: 255 }
17
- const contrastDark = { r: 0, g: 0, b: 0 }
15
+ const contrastLight = branding.colors.light ?? { r: 255, g: 255, b: 255 }
16
+ const contrastDark = branding.colors.dark ?? { r: 0, g: 0, b: 0 }
18
17
 
19
18
  for (const name of COLOR_NAMES) {
20
19
  const value = branding.colors[name]
21
20
  if (!value) continue // Skip missing colors
22
21
 
23
- const contrast = pickContrastColor(value, contrastLight, contrastDark)
22
+ const contrast =
23
+ branding.colors[`${name}Contrast`] ??
24
+ pickContrastColor(value, contrastLight, contrastDark)
25
+
26
+ const hue = branding.colors[`${name}Hue`] ?? extractHue(value)
24
27
 
25
28
  yield `--branding-color-${name}: ${value.r} ${value.g} ${value.b};`
26
29
  yield `--branding-color-${name}-contrast: ${contrast.r} ${contrast.g} ${contrast.b};`
27
- yield `--branding-color-${name}-hue: ${extractHue(value)};`
30
+ yield `--branding-color-${name}-hue: ${hue};`
28
31
  }
29
32
  }
30
33
  }
@@ -1,30 +1,29 @@
1
1
  import { z } from 'zod'
2
- import { RgbColor, parseColor } from '../lib/util/color.js'
2
+ import { colorHueSchema } from '../types/color-hue.js'
3
+ import { rgbColorSchema } from '../types/rgb-color.js'
3
4
 
4
5
  export const COLOR_NAMES = ['primary', 'error', 'warning', 'success'] as const
6
+ export type ColorName = (typeof COLOR_NAMES)[number]
5
7
 
6
- export const rgbColorSchema = z.string().transform((value, ctx): RgbColor => {
7
- try {
8
- const parsed = parseColor(value)
9
- if ('a' in parsed && parsed.a !== undefined) {
10
- ctx.addIssue({
11
- code: z.ZodIssueCode.custom,
12
- message: 'Alpha values are not supported',
13
- })
14
- }
15
- return parsed
16
- } catch (e) {
17
- ctx.addIssue({
18
- code: z.ZodIssueCode.custom,
19
- message: e instanceof Error ? e.message : 'Invalid color value',
20
- })
21
- return z.NEVER
22
- }
23
- })
24
-
25
- export const colorsSchema = z.record(
26
- z.enum(COLOR_NAMES),
27
- rgbColorSchema.optional(),
28
- )
8
+ export const colorsSchema = z
9
+ .object({
10
+ light: rgbColorSchema.optional(),
11
+ dark: rgbColorSchema.optional(),
12
+ })
13
+ .extend(
14
+ Object.fromEntries(
15
+ COLOR_NAMES.map((name) => [name, rgbColorSchema.optional()]),
16
+ ) as Record<ColorName, z.ZodOptional<typeof rgbColorSchema>>,
17
+ )
18
+ .extend(
19
+ Object.fromEntries(
20
+ COLOR_NAMES.map((name) => [`${name}Contrast`, rgbColorSchema.optional()]),
21
+ ) as Record<`${ColorName}Contrast`, z.ZodOptional<typeof rgbColorSchema>>,
22
+ )
23
+ .extend(
24
+ Object.fromEntries(
25
+ COLOR_NAMES.map((name) => [`${name}Hue`, colorHueSchema.optional()]),
26
+ ) as Record<`${ColorName}Hue`, z.ZodOptional<typeof colorHueSchema>>,
27
+ )
29
28
 
30
29
  export type Colors = z.infer<typeof colorsSchema>
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod'
2
+
3
+ export const colorHueSchema = z.number().min(0).max(360)
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod'
2
+ import { RgbColor, parseColor } from '../lib/util/color.js'
3
+
4
+ export const rgbColorSchema = z.string().transform((value, ctx): RgbColor => {
5
+ try {
6
+ const parsed = parseColor(value)
7
+ if ('a' in parsed && parsed.a !== undefined) {
8
+ ctx.addIssue({
9
+ code: z.ZodIssueCode.custom,
10
+ message: 'Alpha values are not supported',
11
+ })
12
+ }
13
+ return parsed
14
+ } catch (e) {
15
+ ctx.addIssue({
16
+ code: z.ZodIssueCode.custom,
17
+ message: e instanceof Error ? e.message : 'Invalid color value',
18
+ })
19
+ return z.NEVER
20
+ }
21
+ })
@@ -1 +1 @@
1
- {"root":["./src/constants.ts","./src/index.ts","./src/oauth-client.ts","./src/oauth-dpop.ts","./src/oauth-errors.ts","./src/oauth-hooks.ts","./src/oauth-middleware.ts","./src/oauth-provider.ts","./src/oauth-store.ts","./src/oauth-verifier.ts","./src/access-token/access-token-mode.ts","./src/account/account-manager.ts","./src/account/account-store.ts","./src/account/sign-in-data.ts","./src/account/sign-up-input.ts","./src/client/client-auth.ts","./src/client/client-data.ts","./src/client/client-id.ts","./src/client/client-info.ts","./src/client/client-manager.ts","./src/client/client-store.ts","./src/client/client-utils.ts","./src/client/client.ts","./src/customization/branding.ts","./src/customization/build-customization-css.ts","./src/customization/build-customization-data.ts","./src/customization/colors.ts","./src/customization/customization.ts","./src/customization/links.ts","./src/device/device-data.ts","./src/device/device-id.ts","./src/device/device-manager.ts","./src/device/device-store.ts","./src/device/session-id.ts","./src/dpop/dpop-manager.ts","./src/dpop/dpop-nonce.ts","./src/errors/access-denied-error.ts","./src/errors/account-selection-required-error.ts","./src/errors/consent-required-error.ts","./src/errors/error-parser.ts","./src/errors/handle-unavailable-error.ts","./src/errors/invalid-authorization-details-error.ts","./src/errors/invalid-client-error.ts","./src/errors/invalid-client-id-error.ts","./src/errors/invalid-client-metadata-error.ts","./src/errors/invalid-dpop-key-binding-error.ts","./src/errors/invalid-dpop-proof-error.ts","./src/errors/invalid-grant-error.ts","./src/errors/invalid-invite-code-error.ts","./src/errors/invalid-parameters-error.ts","./src/errors/invalid-redirect-uri-error.ts","./src/errors/invalid-request-error.ts","./src/errors/invalid-scope-error.ts","./src/errors/invalid-token-error.ts","./src/errors/login-required-error.ts","./src/errors/oauth-error.ts","./src/errors/second-authentication-factor-required-error.ts","./src/errors/unauthorized-client-error.ts","./src/errors/use-dpop-nonce-error.ts","./src/errors/www-authenticate-error.ts","./src/lib/hcaptcha.ts","./src/lib/redis.ts","./src/lib/send-web-page.ts","./src/lib/csp/index.ts","./src/lib/html/build-document.ts","./src/lib/html/escapers.ts","./src/lib/html/html.ts","./src/lib/html/hydration-data.ts","./src/lib/html/index.ts","./src/lib/html/tags.ts","./src/lib/html/util.ts","./src/lib/http/accept.ts","./src/lib/http/context.ts","./src/lib/http/headers.ts","./src/lib/http/index.ts","./src/lib/http/method.ts","./src/lib/http/middleware.ts","./src/lib/http/parser.ts","./src/lib/http/path.ts","./src/lib/http/request.ts","./src/lib/http/response.ts","./src/lib/http/route.ts","./src/lib/http/router.ts","./src/lib/http/security-headers.ts","./src/lib/http/stream.ts","./src/lib/http/types.ts","./src/lib/http/url.ts","./src/lib/util/authorization-header.ts","./src/lib/util/cast.ts","./src/lib/util/color.ts","./src/lib/util/crypto.ts","./src/lib/util/date.ts","./src/lib/util/function.ts","./src/lib/util/hostname.ts","./src/lib/util/locale.ts","./src/lib/util/redirect-uri.ts","./src/lib/util/time.ts","./src/lib/util/type.ts","./src/lib/util/ui8.ts","./src/lib/util/well-known.ts","./src/lib/util/zod-error.ts","./src/metadata/build-metadata.ts","./src/oidc/sub.ts","./src/replay/replay-manager.ts","./src/replay/replay-store-memory.ts","./src/replay/replay-store-redis.ts","./src/replay/replay-store.ts","./src/request/code.ts","./src/request/request-data.ts","./src/request/request-id.ts","./src/request/request-info.ts","./src/request/request-manager.ts","./src/request/request-store-memory.ts","./src/request/request-store-redis.ts","./src/request/request-store.ts","./src/request/request-uri.ts","./src/result/authorization-redirect-parameters.ts","./src/result/authorization-result-authorize-page.ts","./src/result/authorization-result-redirect.ts","./src/router/create-account-page-middleware.ts","./src/router/create-api-middleware.ts","./src/router/create-authorization-page-middleware.ts","./src/router/create-oauth-middleware.ts","./src/router/error-handler.ts","./src/router/middleware-options.ts","./src/router/send-redirect.ts","./src/router/assets/assets-manifest.ts","./src/router/assets/assets.ts","./src/router/assets/csrf.ts","./src/router/assets/send-account-page.ts","./src/router/assets/send-authorization-page.ts","./src/router/assets/send-error-page.ts","./src/signer/api-token-payload.ts","./src/signer/signed-token-payload.ts","./src/signer/signer.ts","./src/token/refresh-token.ts","./src/token/token-data.ts","./src/token/token-id.ts","./src/token/token-manager.ts","./src/token/token-store.ts","./src/token/verify-token-claims.ts","./src/types/email-otp.ts","./src/types/email.ts","./src/types/handle.ts","./src/types/invite-code.ts","./src/types/password.ts"],"version":"5.8.2"}
1
+ {"root":["./src/constants.ts","./src/index.ts","./src/oauth-client.ts","./src/oauth-dpop.ts","./src/oauth-errors.ts","./src/oauth-hooks.ts","./src/oauth-middleware.ts","./src/oauth-provider.ts","./src/oauth-store.ts","./src/oauth-verifier.ts","./src/access-token/access-token-mode.ts","./src/account/account-manager.ts","./src/account/account-store.ts","./src/account/sign-in-data.ts","./src/account/sign-up-input.ts","./src/client/client-auth.ts","./src/client/client-data.ts","./src/client/client-id.ts","./src/client/client-info.ts","./src/client/client-manager.ts","./src/client/client-store.ts","./src/client/client-utils.ts","./src/client/client.ts","./src/customization/branding.ts","./src/customization/build-customization-css.ts","./src/customization/build-customization-data.ts","./src/customization/colors.ts","./src/customization/customization.ts","./src/customization/links.ts","./src/device/device-data.ts","./src/device/device-id.ts","./src/device/device-manager.ts","./src/device/device-store.ts","./src/device/session-id.ts","./src/dpop/dpop-manager.ts","./src/dpop/dpop-nonce.ts","./src/errors/access-denied-error.ts","./src/errors/account-selection-required-error.ts","./src/errors/consent-required-error.ts","./src/errors/error-parser.ts","./src/errors/handle-unavailable-error.ts","./src/errors/invalid-authorization-details-error.ts","./src/errors/invalid-client-error.ts","./src/errors/invalid-client-id-error.ts","./src/errors/invalid-client-metadata-error.ts","./src/errors/invalid-dpop-key-binding-error.ts","./src/errors/invalid-dpop-proof-error.ts","./src/errors/invalid-grant-error.ts","./src/errors/invalid-invite-code-error.ts","./src/errors/invalid-parameters-error.ts","./src/errors/invalid-redirect-uri-error.ts","./src/errors/invalid-request-error.ts","./src/errors/invalid-scope-error.ts","./src/errors/invalid-token-error.ts","./src/errors/login-required-error.ts","./src/errors/oauth-error.ts","./src/errors/second-authentication-factor-required-error.ts","./src/errors/unauthorized-client-error.ts","./src/errors/use-dpop-nonce-error.ts","./src/errors/www-authenticate-error.ts","./src/lib/hcaptcha.ts","./src/lib/redis.ts","./src/lib/send-web-page.ts","./src/lib/csp/index.ts","./src/lib/html/build-document.ts","./src/lib/html/escapers.ts","./src/lib/html/html.ts","./src/lib/html/hydration-data.ts","./src/lib/html/index.ts","./src/lib/html/tags.ts","./src/lib/html/util.ts","./src/lib/http/accept.ts","./src/lib/http/context.ts","./src/lib/http/headers.ts","./src/lib/http/index.ts","./src/lib/http/method.ts","./src/lib/http/middleware.ts","./src/lib/http/parser.ts","./src/lib/http/path.ts","./src/lib/http/request.ts","./src/lib/http/response.ts","./src/lib/http/route.ts","./src/lib/http/router.ts","./src/lib/http/security-headers.ts","./src/lib/http/stream.ts","./src/lib/http/types.ts","./src/lib/http/url.ts","./src/lib/util/authorization-header.ts","./src/lib/util/cast.ts","./src/lib/util/color.ts","./src/lib/util/crypto.ts","./src/lib/util/date.ts","./src/lib/util/function.ts","./src/lib/util/hostname.ts","./src/lib/util/locale.ts","./src/lib/util/redirect-uri.ts","./src/lib/util/time.ts","./src/lib/util/type.ts","./src/lib/util/ui8.ts","./src/lib/util/well-known.ts","./src/lib/util/zod-error.ts","./src/metadata/build-metadata.ts","./src/oidc/sub.ts","./src/replay/replay-manager.ts","./src/replay/replay-store-memory.ts","./src/replay/replay-store-redis.ts","./src/replay/replay-store.ts","./src/request/code.ts","./src/request/request-data.ts","./src/request/request-id.ts","./src/request/request-info.ts","./src/request/request-manager.ts","./src/request/request-store-memory.ts","./src/request/request-store-redis.ts","./src/request/request-store.ts","./src/request/request-uri.ts","./src/result/authorization-redirect-parameters.ts","./src/result/authorization-result-authorize-page.ts","./src/result/authorization-result-redirect.ts","./src/router/create-account-page-middleware.ts","./src/router/create-api-middleware.ts","./src/router/create-authorization-page-middleware.ts","./src/router/create-oauth-middleware.ts","./src/router/error-handler.ts","./src/router/middleware-options.ts","./src/router/send-redirect.ts","./src/router/assets/assets-manifest.ts","./src/router/assets/assets.ts","./src/router/assets/csrf.ts","./src/router/assets/send-account-page.ts","./src/router/assets/send-authorization-page.ts","./src/router/assets/send-error-page.ts","./src/signer/api-token-payload.ts","./src/signer/signed-token-payload.ts","./src/signer/signer.ts","./src/token/refresh-token.ts","./src/token/token-data.ts","./src/token/token-id.ts","./src/token/token-manager.ts","./src/token/token-store.ts","./src/token/verify-token-claims.ts","./src/types/color-hue.ts","./src/types/email-otp.ts","./src/types/email.ts","./src/types/handle.ts","./src/types/invite-code.ts","./src/types/password.ts","./src/types/rgb-color.ts"],"version":"5.8.2"}