@bessemer/cornerstone 0.5.99 → 0.5.102

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.
@@ -1 +1 @@
1
- {"version":3,"file":"aspect-ratio.d.ts","sourceRoot":"","sources":["../src/aspect-ratio.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAIhG,eAAO,MAAM,SAAS,gFAAkC,CAAA;AACxD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAMzE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,WAEpC,CAAA;AAED,eAAO,MAAM,MAAM,mEAAiD,CAAA;AAEpE,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,WAK9D,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,aAAa,WAAW,KAAG,MAGvD,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,aAAa,WAAW,KAAG,MAGzE,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,aAAa,WAAW,KAAG,MAGzE,CAAA"}
1
+ {"version":3,"file":"aspect-ratio.d.ts","sourceRoot":"","sources":["../src/aspect-ratio.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAIhG,eAAO,MAAM,SAAS,gFAAkC,CAAA;AACxD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAMzE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,WAEpC,CAAA;AAED,eAAO,MAAM,MAAM,mEAIjB,CAAA;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,WAK9D,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,aAAa,WAAW,KAAG,MAGvD,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,aAAa,WAAW,KAAG,MAGzE,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,aAAa,WAAW,KAAG,MAGzE,CAAA"}
@@ -15,7 +15,11 @@ var parseString = (value) => {
15
15
  var from = (value) => {
16
16
  return unpackResult(parseString(value));
17
17
  };
18
- var Schema = structuredTransform(Zod.string(), parseString);
18
+ var Schema = structuredTransform(Zod.string(), parseString).meta({
19
+ type: "string",
20
+ format: Namespace,
21
+ pattern: "^[1-9]\\d*:[1-9]\\d*$"
22
+ });
19
23
  var fromDimensions = (width, height) => {
20
24
  const factor = greatestCommonFactor(width, height);
21
25
  const ratioWidth = width / factor;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/aspect-ratio.ts"],"sourcesContent":["import Zod from 'zod'\nimport { greatestCommonFactor } from '@bessemer/cornerstone/math'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('aspect-ratio')\nexport type AspectRatio = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<AspectRatio, ErrorEvent> => {\n if (!/^[1-9]\\d*:[1-9]\\d*$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `Aspect Ratio must be in the format 'width:height' (e.g., '16:9', '4:3').` }))\n }\n\n return success(value as AspectRatio)\n}\n\nexport const from = (value: string): AspectRatio => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString)\n\nexport const fromDimensions = (width: number, height: number): AspectRatio => {\n const factor = greatestCommonFactor(width, height)\n const ratioWidth = width / factor\n const ratioHeight = height / factor\n return `${ratioWidth}:${ratioHeight}` as AspectRatio\n}\n\nexport const numericValue = (aspectRatio: AspectRatio): number => {\n const [width, height] = aspectRatio.split(':').map(Number)\n return width! / height!\n}\n\nexport const calculateHeight = (width: number, aspectRatio: AspectRatio): number => {\n const ratio = numericValue(aspectRatio)\n return width / ratio\n}\n\nexport const calculateWidth = (height: number, aspectRatio: AspectRatio): number => {\n const ratio = numericValue(aspectRatio)\n return height * ratio\n}\n"],"mappings":";AAAA,OAAO,SAAS;AAChB,SAAS,4BAA4B;AAErC,SAAS,SAAiB,eAAe;AACzC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,cAAc;AAGhD,IAAM,cAAc,CAAC,UAAmD;AAC7E,MAAI,CAAC,sBAAsB,KAAK,KAAK,GAAG;AACtC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,2EAA2E,CAAC,CAAC;AAAA,EACnJ;AAEA,SAAO,QAAQ,KAAoB;AACrC;AAEO,IAAM,OAAO,CAAC,UAA+B;AAClD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW;AAE5D,IAAM,iBAAiB,CAAC,OAAe,WAAgC;AAC5E,QAAM,SAAS,qBAAqB,OAAO,MAAM;AACjD,QAAM,aAAa,QAAQ;AAC3B,QAAM,cAAc,SAAS;AAC7B,SAAO,GAAG,UAAU,IAAI,WAAW;AACrC;AAEO,IAAM,eAAe,CAAC,gBAAqC;AAChE,QAAM,CAAC,OAAO,MAAM,IAAI,YAAY,MAAM,GAAG,EAAE,IAAI,MAAM;AACzD,SAAO,QAAS;AAClB;AAEO,IAAM,kBAAkB,CAAC,OAAe,gBAAqC;AAClF,QAAM,QAAQ,aAAa,WAAW;AACtC,SAAO,QAAQ;AACjB;AAEO,IAAM,iBAAiB,CAAC,QAAgB,gBAAqC;AAClF,QAAM,QAAQ,aAAa,WAAW;AACtC,SAAO,SAAS;AAClB;","names":[]}
1
+ {"version":3,"sources":["../src/aspect-ratio.ts"],"sourcesContent":["import Zod from 'zod'\nimport { greatestCommonFactor } from '@bessemer/cornerstone/math'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('aspect-ratio')\nexport type AspectRatio = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<AspectRatio, ErrorEvent> => {\n if (!/^[1-9]\\d*:[1-9]\\d*$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `Aspect Ratio must be in the format 'width:height' (e.g., '16:9', '4:3').` }))\n }\n\n return success(value as AspectRatio)\n}\n\nexport const from = (value: string): AspectRatio => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^[1-9]\\\\d*:[1-9]\\\\d*$',\n})\n\nexport const fromDimensions = (width: number, height: number): AspectRatio => {\n const factor = greatestCommonFactor(width, height)\n const ratioWidth = width / factor\n const ratioHeight = height / factor\n return `${ratioWidth}:${ratioHeight}` as AspectRatio\n}\n\nexport const numericValue = (aspectRatio: AspectRatio): number => {\n const [width, height] = aspectRatio.split(':').map(Number)\n return width! / height!\n}\n\nexport const calculateHeight = (width: number, aspectRatio: AspectRatio): number => {\n const ratio = numericValue(aspectRatio)\n return width / ratio\n}\n\nexport const calculateWidth = (height: number, aspectRatio: AspectRatio): number => {\n const ratio = numericValue(aspectRatio)\n return height * ratio\n}\n"],"mappings":";AAAA,OAAO,SAAS;AAChB,SAAS,4BAA4B;AAErC,SAAS,SAAiB,eAAe;AACzC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,cAAc;AAGhD,IAAM,cAAc,CAAC,UAAmD;AAC7E,MAAI,CAAC,sBAAsB,KAAK,KAAK,GAAG;AACtC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,2EAA2E,CAAC,CAAC;AAAA,EACnJ;AAEA,SAAO,QAAQ,KAAoB;AACrC;AAEO,IAAM,OAAO,CAAC,UAA+B;AAClD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EACxE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAEM,IAAM,iBAAiB,CAAC,OAAe,WAAgC;AAC5E,QAAM,SAAS,qBAAqB,OAAO,MAAM;AACjD,QAAM,aAAa,QAAQ;AAC3B,QAAM,cAAc,SAAS;AAC7B,SAAO,GAAG,UAAU,IAAI,WAAW;AACrC;AAEO,IAAM,eAAe,CAAC,gBAAqC;AAChE,QAAM,CAAC,OAAO,MAAM,IAAI,YAAY,MAAM,GAAG,EAAE,IAAI,MAAM;AACzD,SAAO,QAAS;AAClB;AAEO,IAAM,kBAAkB,CAAC,OAAe,gBAAqC;AAClF,QAAM,QAAQ,aAAa,WAAW;AACtC,SAAO,QAAQ;AACjB;AAEO,IAAM,iBAAiB,CAAC,QAAgB,gBAAqC;AAClF,QAAM,QAAQ,aAAa,WAAW;AACtC,SAAO,SAAS;AAClB;","names":[]}
@@ -1,6 +1,7 @@
1
1
  import { NominalType } from '@bessemer/cornerstone/types';
2
2
  import Zod from 'zod';
3
- export type DataSize = NominalType<number, 'DataSize'>;
3
+ export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"data-size">;
4
+ export type DataSize = NominalType<number, typeof Namespace>;
4
5
  export declare const fromBytes: (value: number) => DataSize;
5
6
  export declare const Schema: Zod.ZodPipe<Zod.ZodNumber, Zod.ZodTransform<DataSize, number>>;
6
7
  export declare const toBytes: (byte: DataSize) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"data-size.d.ts","sourceRoot":"","sources":["../src/data-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAEtD,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,QAEzC,CAAA;AAED,eAAO,MAAM,MAAM,gEAAoC,CAAA;AAEvD,eAAO,MAAM,OAAO,GAAI,MAAM,QAAQ,KAAG,MAExC,CAAA;AAGD,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAGD,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA"}
1
+ {"version":3,"file":"data-size.d.ts","sourceRoot":"","sources":["../src/data-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,eAAO,MAAM,SAAS,6EAA+B,CAAA;AACrD,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE5D,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,QAEzC,CAAA;AAED,eAAO,MAAM,MAAM,gEAGjB,CAAA;AAEF,eAAO,MAAM,OAAO,GAAI,MAAM,QAAQ,KAAG,MAExC,CAAA;AAGD,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAGD,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAE7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAE5C,CAAA"}
package/dist/data-size.js CHANGED
@@ -1,9 +1,14 @@
1
1
  // src/data-size.ts
2
2
  import Zod from "zod";
3
+ import { createNamespace } from "@bessemer/cornerstone/resource-key";
4
+ var Namespace = createNamespace("data-size");
3
5
  var fromBytes = (value) => {
4
6
  return value;
5
7
  };
6
- var Schema = Zod.number().transform(fromBytes);
8
+ var Schema = Zod.number().transform(fromBytes).meta({
9
+ type: "number",
10
+ format: Namespace
11
+ });
7
12
  var toBytes = (byte) => {
8
13
  return byte;
9
14
  };
@@ -44,6 +49,7 @@ var toGibibytes = (byte) => {
44
49
  return toMebibytes(byte) / 1024;
45
50
  };
46
51
  export {
52
+ Namespace,
47
53
  Schema,
48
54
  fromBytes,
49
55
  fromGibibytes,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data-size.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\n\nexport type DataSize = NominalType<number, 'DataSize'>\n\nexport const fromBytes = (value: number): DataSize => {\n return value as DataSize\n}\n\nexport const Schema = Zod.number().transform(fromBytes)\n\nexport const toBytes = (byte: DataSize): number => {\n return byte\n}\n\n// === SI (Decimal) Units ===\nexport const fromKilobytes = (value: number): DataSize => {\n return fromBytes(value * 1000)\n}\n\nexport const toKilobytes = (byte: DataSize): number => {\n return toBytes(byte) / 1000\n}\n\nexport const fromMegabytes = (value: number): DataSize => {\n return fromKilobytes(value * 1000)\n}\n\nexport const toMegabytes = (byte: DataSize): number => {\n return toKilobytes(byte) / 1000\n}\n\nexport const fromGigabytes = (value: number): DataSize => {\n return fromMegabytes(value * 1000)\n}\n\nexport const toGigabytes = (byte: DataSize): number => {\n return toMegabytes(byte) / 1000\n}\n\n// === IEC (Binary) Units ===\nexport const fromKibibytes = (value: number): DataSize => {\n return fromBytes(value * 1024)\n}\n\nexport const toKibibytes = (byte: DataSize): number => {\n return toBytes(byte) / 1024\n}\n\nexport const fromMebibytes = (value: number): DataSize => {\n return fromKibibytes(value * 1024)\n}\n\nexport const toMebibytes = (byte: DataSize): number => {\n return toKibibytes(byte) / 1024\n}\n\nexport const fromGibibytes = (value: number): DataSize => {\n return fromMebibytes(value * 1024)\n}\n\nexport const toGibibytes = (byte: DataSize): number => {\n return toMebibytes(byte) / 1024\n}\n"],"mappings":";AACA,OAAO,SAAS;AAIT,IAAM,YAAY,CAAC,UAA4B;AACpD,SAAO;AACT;AAEO,IAAM,SAAS,IAAI,OAAO,EAAE,UAAU,SAAS;AAE/C,IAAM,UAAU,CAAC,SAA2B;AACjD,SAAO;AACT;AAGO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,UAAU,QAAQ,GAAI;AAC/B;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,QAAQ,IAAI,IAAI;AACzB;AAEO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,cAAc,QAAQ,GAAI;AACnC;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,YAAY,IAAI,IAAI;AAC7B;AAEO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,cAAc,QAAQ,GAAI;AACnC;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,YAAY,IAAI,IAAI;AAC7B;AAGO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,UAAU,QAAQ,IAAI;AAC/B;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,QAAQ,IAAI,IAAI;AACzB;AAEO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,cAAc,QAAQ,IAAI;AACnC;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,YAAY,IAAI,IAAI;AAC7B;AAEO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,cAAc,QAAQ,IAAI;AACnC;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,YAAY,IAAI,IAAI;AAC7B;","names":[]}
1
+ {"version":3,"sources":["../src/data-size.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\n\nexport const Namespace = createNamespace('data-size')\nexport type DataSize = NominalType<number, typeof Namespace>\n\nexport const fromBytes = (value: number): DataSize => {\n return value as DataSize\n}\n\nexport const Schema = Zod.number().transform(fromBytes).meta({\n type: 'number',\n format: Namespace,\n})\n\nexport const toBytes = (byte: DataSize): number => {\n return byte\n}\n\n// === SI (Decimal) Units ===\nexport const fromKilobytes = (value: number): DataSize => {\n return fromBytes(value * 1000)\n}\n\nexport const toKilobytes = (byte: DataSize): number => {\n return toBytes(byte) / 1000\n}\n\nexport const fromMegabytes = (value: number): DataSize => {\n return fromKilobytes(value * 1000)\n}\n\nexport const toMegabytes = (byte: DataSize): number => {\n return toKilobytes(byte) / 1000\n}\n\nexport const fromGigabytes = (value: number): DataSize => {\n return fromMegabytes(value * 1000)\n}\n\nexport const toGigabytes = (byte: DataSize): number => {\n return toMegabytes(byte) / 1000\n}\n\n// === IEC (Binary) Units ===\nexport const fromKibibytes = (value: number): DataSize => {\n return fromBytes(value * 1024)\n}\n\nexport const toKibibytes = (byte: DataSize): number => {\n return toBytes(byte) / 1024\n}\n\nexport const fromMebibytes = (value: number): DataSize => {\n return fromKibibytes(value * 1024)\n}\n\nexport const toMebibytes = (byte: DataSize): number => {\n return toKibibytes(byte) / 1024\n}\n\nexport const fromGibibytes = (value: number): DataSize => {\n return fromMebibytes(value * 1024)\n}\n\nexport const toGibibytes = (byte: DataSize): number => {\n return toMebibytes(byte) / 1024\n}\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,uBAAuB;AAEzB,IAAM,YAAY,gBAAgB,WAAW;AAG7C,IAAM,YAAY,CAAC,UAA4B;AACpD,SAAO;AACT;AAEO,IAAM,SAAS,IAAI,OAAO,EAAE,UAAU,SAAS,EAAE,KAAK;AAAA,EAC3D,MAAM;AAAA,EACN,QAAQ;AACV,CAAC;AAEM,IAAM,UAAU,CAAC,SAA2B;AACjD,SAAO;AACT;AAGO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,UAAU,QAAQ,GAAI;AAC/B;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,QAAQ,IAAI,IAAI;AACzB;AAEO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,cAAc,QAAQ,GAAI;AACnC;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,YAAY,IAAI,IAAI;AAC7B;AAEO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,cAAc,QAAQ,GAAI;AACnC;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,YAAY,IAAI,IAAI;AAC7B;AAGO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,UAAU,QAAQ,IAAI;AAC/B;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,QAAQ,IAAI,IAAI;AACzB;AAEO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,cAAc,QAAQ,IAAI;AACnC;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,YAAY,IAAI,IAAI;AAC7B;AAEO,IAAM,gBAAgB,CAAC,UAA4B;AACxD,SAAO,cAAc,QAAQ,IAAI;AACnC;AAEO,IAAM,cAAc,CAAC,SAA2B;AACrD,SAAO,YAAY,IAAI,IAAI;AAC7B;","names":[]}
package/dist/glob.d.ts CHANGED
@@ -2,7 +2,7 @@ import Zod from 'zod';
2
2
  import { Result } from '@bessemer/cornerstone/result';
3
3
  import { NominalType } from '@bessemer/cornerstone/types';
4
4
  import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
5
- export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"glob-pattern">;
5
+ export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"glob">;
6
6
  export type GlobPattern = NominalType<string, typeof Namespace>;
7
7
  export declare const parseString: (value: string) => Result<GlobPattern, ErrorEvent>;
8
8
  export declare const from: (value: string) => GlobPattern;
@@ -1 +1 @@
1
- {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAIhG,eAAO,MAAM,SAAS,gFAAkC,CAAA;AACxD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CA8BzE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,WAEpC,CAAA;AAED,eAAO,MAAM,MAAM,mEAAiD,CAAA;AAEpE,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,EAAE,SAAS,WAAW,KAAG,OAEzD,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,UAAU,KAAK,CAAC,WAAW,CAAC,KAAG,OAEpE,CAAA"}
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAIhG,eAAO,MAAM,SAAS,wEAA0B,CAAA;AAChD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CA8BzE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,WAEpC,CAAA;AAED,eAAO,MAAM,MAAM,mEAIjB,CAAA;AAEF,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,EAAE,SAAS,WAAW,KAAG,OAEzD,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,UAAU,KAAK,CAAC,WAAW,CAAC,KAAG,OAEpE,CAAA"}
package/dist/glob.js CHANGED
@@ -5,7 +5,7 @@ import { failure, success } from "@bessemer/cornerstone/result";
5
5
  import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
6
6
  import { createNamespace } from "@bessemer/cornerstone/resource-key";
7
7
  import { structuredTransform } from "@bessemer/cornerstone/zod-util";
8
- var Namespace = createNamespace("glob-pattern");
8
+ var Namespace = createNamespace("glob");
9
9
  var parseString = (value) => {
10
10
  const validGlobPattern = /^[a-zA-Z0-9\-_.\/\\*?\[\]{}!,|]+$/;
11
11
  if (!validGlobPattern.test(value)) {
@@ -32,7 +32,11 @@ var parseString = (value) => {
32
32
  var from = (value) => {
33
33
  return unpackResult(parseString(value));
34
34
  };
35
- var Schema = structuredTransform(Zod.string(), parseString);
35
+ var Schema = structuredTransform(Zod.string(), parseString).meta({
36
+ type: "string",
37
+ format: Namespace,
38
+ pattern: "^[a-zA-Z0-9\\-_.\\/\\\\*?\\[\\]{}!,|]+$"
39
+ });
36
40
  var match = (str, pattern) => {
37
41
  return minimatch(str, pattern);
38
42
  };
package/dist/glob.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/glob.ts"],"sourcesContent":["import { minimatch } from 'minimatch'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('glob-pattern')\nexport type GlobPattern = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<GlobPattern, ErrorEvent> => {\n // Check for valid glob characters and patterns\n const validGlobPattern = /^[a-zA-Z0-9\\-_.\\/\\\\*?\\[\\]{}!,|]+$/\n\n // Basic validation - contains valid characters\n if (!validGlobPattern.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern contains invalid characters.` }))\n }\n\n // Check for balanced brackets\n const brackets = value.match(/[\\[\\]]/g)\n if (brackets) {\n const openBrackets = (value.match(/\\[/g) || []).length\n const closeBrackets = (value.match(/]/g) || []).length\n if (openBrackets !== closeBrackets) {\n return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced brackets.` }))\n }\n }\n\n // Check for balanced braces\n const braces = value.match(/[{}]/g)\n if (braces) {\n const openBraces = (value.match(/\\{/g) || []).length\n const closeBraces = (value.match(/}/g) || []).length\n if (openBraces !== closeBraces) {\n return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced braces.` }))\n }\n }\n\n return success(value as GlobPattern)\n}\n\nexport const from = (value: string): GlobPattern => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString)\n\nexport const match = (str: string, pattern: GlobPattern): boolean => {\n return minimatch(str, pattern)\n}\n\nexport const anyMatch = (str: string, patterns: Array<GlobPattern>): boolean => {\n return patterns.some((it) => match(str, it))\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AAEzC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,cAAc;AAGhD,IAAM,cAAc,CAAC,UAAmD;AAE7E,QAAM,mBAAmB;AAGzB,MAAI,CAAC,iBAAiB,KAAK,KAAK,GAAG;AACjC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,2CAA2C,CAAC,CAAC;AAAA,EACnH;AAGA,QAAM,WAAW,MAAM,MAAM,SAAS;AACtC,MAAI,UAAU;AACZ,UAAM,gBAAgB,MAAM,MAAM,KAAK,KAAK,CAAC,GAAG;AAChD,UAAM,iBAAiB,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG;AAChD,QAAI,iBAAiB,eAAe;AAClC,aAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,uCAAuC,CAAC,CAAC;AAAA,IAC/G;AAAA,EACF;AAGA,QAAM,SAAS,MAAM,MAAM,OAAO;AAClC,MAAI,QAAQ;AACV,UAAM,cAAc,MAAM,MAAM,KAAK,KAAK,CAAC,GAAG;AAC9C,UAAM,eAAe,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG;AAC9C,QAAI,eAAe,aAAa;AAC9B,aAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,qCAAqC,CAAC,CAAC;AAAA,IAC7G;AAAA,EACF;AAEA,SAAO,QAAQ,KAAoB;AACrC;AAEO,IAAM,OAAO,CAAC,UAA+B;AAClD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW;AAE5D,IAAM,QAAQ,CAAC,KAAa,YAAkC;AACnE,SAAO,UAAU,KAAK,OAAO;AAC/B;AAEO,IAAM,WAAW,CAAC,KAAa,aAA0C;AAC9E,SAAO,SAAS,KAAK,CAAC,OAAO,MAAM,KAAK,EAAE,CAAC;AAC7C;","names":[]}
1
+ {"version":3,"sources":["../src/glob.ts"],"sourcesContent":["import { minimatch } from 'minimatch'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('glob')\nexport type GlobPattern = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<GlobPattern, ErrorEvent> => {\n // Check for valid glob characters and patterns\n const validGlobPattern = /^[a-zA-Z0-9\\-_.\\/\\\\*?\\[\\]{}!,|]+$/\n\n // Basic validation - contains valid characters\n if (!validGlobPattern.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern contains invalid characters.` }))\n }\n\n // Check for balanced brackets\n const brackets = value.match(/[\\[\\]]/g)\n if (brackets) {\n const openBrackets = (value.match(/\\[/g) || []).length\n const closeBrackets = (value.match(/]/g) || []).length\n if (openBrackets !== closeBrackets) {\n return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced brackets.` }))\n }\n }\n\n // Check for balanced braces\n const braces = value.match(/[{}]/g)\n if (braces) {\n const openBraces = (value.match(/\\{/g) || []).length\n const closeBraces = (value.match(/}/g) || []).length\n if (openBraces !== closeBraces) {\n return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced braces.` }))\n }\n }\n\n return success(value as GlobPattern)\n}\n\nexport const from = (value: string): GlobPattern => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^[a-zA-Z0-9\\\\-_.\\\\/\\\\\\\\*?\\\\[\\\\]{}!,|]+$',\n})\n\nexport const match = (str: string, pattern: GlobPattern): boolean => {\n return minimatch(str, pattern)\n}\n\nexport const anyMatch = (str: string, patterns: Array<GlobPattern>): boolean => {\n return patterns.some((it) => match(str, it))\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AAEzC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,MAAM;AAGxC,IAAM,cAAc,CAAC,UAAmD;AAE7E,QAAM,mBAAmB;AAGzB,MAAI,CAAC,iBAAiB,KAAK,KAAK,GAAG;AACjC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,2CAA2C,CAAC,CAAC;AAAA,EACnH;AAGA,QAAM,WAAW,MAAM,MAAM,SAAS;AACtC,MAAI,UAAU;AACZ,UAAM,gBAAgB,MAAM,MAAM,KAAK,KAAK,CAAC,GAAG;AAChD,UAAM,iBAAiB,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG;AAChD,QAAI,iBAAiB,eAAe;AAClC,aAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,uCAAuC,CAAC,CAAC;AAAA,IAC/G;AAAA,EACF;AAGA,QAAM,SAAS,MAAM,MAAM,OAAO;AAClC,MAAI,QAAQ;AACV,UAAM,cAAc,MAAM,MAAM,KAAK,KAAK,CAAC,GAAG;AAC9C,UAAM,eAAe,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG;AAC9C,QAAI,eAAe,aAAa;AAC9B,aAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,qCAAqC,CAAC,CAAC;AAAA,IAC7G;AAAA,EACF;AAEA,SAAO,QAAQ,KAAoB;AACrC;AAEO,IAAM,OAAO,CAAC,UAA+B;AAClD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EACxE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAEM,IAAM,QAAQ,CAAC,KAAa,YAAkC;AACnE,SAAO,UAAU,KAAK,OAAO;AAC/B;AAEO,IAAM,WAAW,CAAC,KAAa,aAA0C;AAC9E,SAAO,SAAS,KAAK,CAAC,OAAO,MAAM,KAAK,EAAE,CAAC;AAC7C;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"hex-code.d.ts","sourceRoot":"","sources":["../src/hex-code.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,4EAA8B,CAAA;AACpD,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,OAAO,EAAE,UAAU,CAarE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,OAEpC,CAAA;AAED,eAAO,MAAM,MAAM,+DAAiD,CAAA"}
1
+ {"version":3,"file":"hex-code.d.ts","sourceRoot":"","sources":["../src/hex-code.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,4EAA8B,CAAA;AACpD,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,OAAO,EAAE,UAAU,CAarE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,OAEpC,CAAA;AAED,eAAO,MAAM,MAAM,+DAIjB,CAAA"}
package/dist/hex-code.js CHANGED
@@ -19,7 +19,11 @@ var parseString = (value) => {
19
19
  var from = (value) => {
20
20
  return unpackResult(parseString(value));
21
21
  };
22
- var Schema = structuredTransform(Zod.string(), parseString);
22
+ var Schema = structuredTransform(Zod.string(), parseString).meta({
23
+ type: "string",
24
+ format: Namespace,
25
+ pattern: "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
26
+ });
23
27
  export {
24
28
  Namespace,
25
29
  Schema,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hex-code.ts"],"sourcesContent":["import Zod from 'zod'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('hex-code')\nexport type HexCode = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<HexCode, ErrorEvent> => {\n if (!/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `HexCode must be a valid hex code (# followed by 3 or 6 characters).` }))\n }\n\n let normalizedValue = value.toUpperCase()\n\n if (normalizedValue.length === 4) {\n const shortHex = normalizedValue.slice(1) // Remove the #\n normalizedValue = `#${shortHex[0]}${shortHex[0]}${shortHex[1]}${shortHex[1]}${shortHex[2]}${shortHex[2]}`\n }\n\n return success(normalizedValue as HexCode)\n}\n\nexport const from = (value: string): HexCode => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString)\n"],"mappings":";AAAA,OAAO,SAAS;AAEhB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,UAAU;AAG5C,IAAM,cAAc,CAAC,UAA+C;AACzE,MAAI,CAAC,qCAAqC,KAAK,KAAK,GAAG;AACrD,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,sEAAsE,CAAC,CAAC;AAAA,EAC9I;AAEA,MAAI,kBAAkB,MAAM,YAAY;AAExC,MAAI,gBAAgB,WAAW,GAAG;AAChC,UAAM,WAAW,gBAAgB,MAAM,CAAC;AACxC,sBAAkB,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAAA,EACzG;AAEA,SAAO,QAAQ,eAA0B;AAC3C;AAEO,IAAM,OAAO,CAAC,UAA2B;AAC9C,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW;","names":[]}
1
+ {"version":3,"sources":["../src/hex-code.ts"],"sourcesContent":["import Zod from 'zod'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('hex-code')\nexport type HexCode = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<HexCode, ErrorEvent> => {\n if (!/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `HexCode must be a valid hex code (# followed by 3 or 6 characters).` }))\n }\n\n let normalizedValue = value.toUpperCase()\n\n if (normalizedValue.length === 4) {\n const shortHex = normalizedValue.slice(1) // Remove the #\n normalizedValue = `#${shortHex[0]}${shortHex[0]}${shortHex[1]}${shortHex[1]}${shortHex[2]}${shortHex[2]}`\n }\n\n return success(normalizedValue as HexCode)\n}\n\nexport const from = (value: string): HexCode => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$',\n})\n"],"mappings":";AAAA,OAAO,SAAS;AAEhB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,UAAU;AAG5C,IAAM,cAAc,CAAC,UAA+C;AACzE,MAAI,CAAC,qCAAqC,KAAK,KAAK,GAAG;AACrD,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,sEAAsE,CAAC,CAAC;AAAA,EAC9I;AAEA,MAAI,kBAAkB,MAAM,YAAY;AAExC,MAAI,gBAAgB,WAAW,GAAG;AAChC,UAAM,WAAW,gBAAgB,MAAM,CAAC;AACxC,sBAAkB,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAAA,EACzG;AAEA,SAAO,QAAQ,eAA0B;AAC3C;AAEO,IAAM,OAAO,CAAC,UAA2B;AAC9C,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EACxE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"currency-code.d.ts","sourceRoot":"","sources":["../../src/intl/currency-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,iFAAmC,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAEhE,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAM1E,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,YAEpC,CAAA;AAED,eAAO,MAAM,MAAM,oEAAiD,CAAA;AAEpE,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA"}
1
+ {"version":3,"file":"currency-code.d.ts","sourceRoot":"","sources":["../../src/intl/currency-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,iFAAmC,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAEhE,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAM1E,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,YAEpC,CAAA;AAED,eAAO,MAAM,MAAM,oEAIjB,CAAA;AAEF,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA;AACxC,eAAO,MAAM,GAAG,EAAY,YAAY,CAAA"}
@@ -6,7 +6,7 @@ import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-ev
6
6
  import { structuredTransform } from "@bessemer/cornerstone/zod-util";
7
7
  var Namespace = createNamespace("currency-code");
8
8
  var parseString = (value) => {
9
- if (!/^[A-Z]{3}$/i.test(value)) {
9
+ if (!/^[A-Za-z]{3}$/.test(value)) {
10
10
  return failure(invalidValue(value, { namespace: Namespace, message: `Currency Code must be exactly 3 letters.` }));
11
11
  }
12
12
  return success(value.toUpperCase());
@@ -14,7 +14,11 @@ var parseString = (value) => {
14
14
  var from = (value) => {
15
15
  return unpackResult(parseString(value));
16
16
  };
17
- var Schema = structuredTransform(Zod.string(), parseString);
17
+ var Schema = structuredTransform(Zod.string(), parseString).meta({
18
+ type: "string",
19
+ format: Namespace,
20
+ pattern: "^[A-Za-z]{3}$"
21
+ });
18
22
  var USD = "USD";
19
23
  var EUR = "EUR";
20
24
  var GBP = "GBP";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/intl/currency-code.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('currency-code')\nexport type CurrencyCode = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<CurrencyCode, ErrorEvent> => {\n if (!/^[A-Z]{3}$/i.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `Currency Code must be exactly 3 letters.` }))\n }\n\n return success(value.toUpperCase() as CurrencyCode)\n}\n\nexport const from = (value: string): CurrencyCode => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString)\n\nexport const USD = 'USD' as CurrencyCode\nexport const EUR = 'EUR' as CurrencyCode\nexport const GBP = 'GBP' as CurrencyCode\nexport const JPY = 'JPY' as CurrencyCode\nexport const CAD = 'CAD' as CurrencyCode\nexport const AUD = 'AUD' as CurrencyCode\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,eAAe;AAGjD,IAAM,cAAc,CAAC,UAAoD;AAC9E,MAAI,CAAC,cAAc,KAAK,KAAK,GAAG;AAC9B,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,2CAA2C,CAAC,CAAC;AAAA,EACnH;AAEA,SAAO,QAAQ,MAAM,YAAY,CAAiB;AACpD;AAEO,IAAM,OAAO,CAAC,UAAgC;AACnD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW;AAE5D,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,MAAM;","names":[]}
1
+ {"version":3,"sources":["../../src/intl/currency-code.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('currency-code')\nexport type CurrencyCode = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<CurrencyCode, ErrorEvent> => {\n if (!/^[A-Za-z]{3}$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `Currency Code must be exactly 3 letters.` }))\n }\n\n return success(value.toUpperCase() as CurrencyCode)\n}\n\nexport const from = (value: string): CurrencyCode => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^[A-Za-z]{3}$',\n})\n\nexport const USD = 'USD' as CurrencyCode\nexport const EUR = 'EUR' as CurrencyCode\nexport const GBP = 'GBP' as CurrencyCode\nexport const JPY = 'JPY' as CurrencyCode\nexport const CAD = 'CAD' as CurrencyCode\nexport const AUD = 'AUD' as CurrencyCode\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,eAAe;AAGjD,IAAM,cAAc,CAAC,UAAoD;AAC9E,MAAI,CAAC,gBAAgB,KAAK,KAAK,GAAG;AAChC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,2CAA2C,CAAC,CAAC;AAAA,EACnH;AAEA,SAAO,QAAQ,MAAM,YAAY,CAAiB;AACpD;AAEO,IAAM,OAAO,CAAC,UAAgC;AACnD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EACxE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAEM,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,MAAM;","names":[]}
@@ -2,7 +2,7 @@ import { NominalType } from '@bessemer/cornerstone/types';
2
2
  import Zod from 'zod';
3
3
  import { Result } from '@bessemer/cornerstone/result';
4
4
  import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
5
- export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"mime-literal">;
5
+ export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"mime-type">;
6
6
  export type MimeLiteral = NominalType<string, typeof Namespace>;
7
7
  export declare const parseString: (value: string) => Result<MimeLiteral, ErrorEvent>;
8
8
  export declare const from: (value: string) => MimeLiteral;
@@ -1 +1 @@
1
- {"version":3,"file":"mime-type.d.ts","sourceRoot":"","sources":["../src/mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,gFAAkC,CAAA;AACxD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAMzE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,WAEpC,CAAA;AAED,eAAO,MAAM,MAAM,mEAAiD,CAAA;AAGpE,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,GAAG,EAAsB,WAAW,CAAA;AACjD,eAAO,MAAM,GAAG,EAAqB,WAAW,CAAA;AAChD,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,UAAU,eAAyC,CAAA;AAGhE,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,QAAQ,EAAkB,WAAW,CAAA;AAClD,eAAO,MAAM,UAAU,eAAwB,CAAA;AAG/C,eAAO,MAAM,GAAG,EAAmB,WAAW,CAAA;AAC9C,eAAO,MAAM,QAAQ,EAAkB,WAAW,CAAA;AAClD,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,UAAU,eAAuB,CAAA;AAG9C,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,IAAI,EAAyB,WAAW,CAAA;AACrD,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,SAAS,EAAmB,WAAW,CAAA;AACpD,eAAO,MAAM,IAAI,EAAkB,WAAW,CAAA;AAC9C,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,aAAa,eAAyC,CAAA;AAGnE,eAAO,MAAM,IAAI,EAAkB,WAAW,CAAA;AAC9C,eAAO,MAAM,KAAK,EAAmB,WAAW,CAAA;AAChD,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,SAAS,eAA0B,CAAA;AAGhD,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,IAAI,EAAyB,WAAW,CAAA;AACrD,eAAO,MAAM,GAAG,EAA0B,WAAW,CAAA;AACrD,eAAO,MAAM,MAAM,EAA6B,WAAW,CAAA;AAC3D,eAAO,MAAM,gBAAgB,eAA2B,CAAA;AAGxD,eAAO,MAAM,QAAQ,EAA4B,WAAW,CAAA;AAC5D,eAAO,MAAM,UAAU,EAA+B,WAAW,CAAA;AACjE,eAAO,MAAM,WAAW,EAAiC,WAAW,CAAA"}
1
+ {"version":3,"file":"mime-type.d.ts","sourceRoot":"","sources":["../src/mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,6EAA+B,CAAA;AACrD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAMzE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,WAEpC,CAAA;AAED,eAAO,MAAM,MAAM,mEAIjB,CAAA;AAGF,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,GAAG,EAAsB,WAAW,CAAA;AACjD,eAAO,MAAM,GAAG,EAAqB,WAAW,CAAA;AAChD,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,UAAU,eAAyC,CAAA;AAGhE,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,QAAQ,EAAkB,WAAW,CAAA;AAClD,eAAO,MAAM,UAAU,eAAwB,CAAA;AAG/C,eAAO,MAAM,GAAG,EAAmB,WAAW,CAAA;AAC9C,eAAO,MAAM,QAAQ,EAAkB,WAAW,CAAA;AAClD,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,UAAU,eAAuB,CAAA;AAG9C,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,IAAI,EAAyB,WAAW,CAAA;AACrD,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,SAAS,EAAmB,WAAW,CAAA;AACpD,eAAO,MAAM,IAAI,EAAkB,WAAW,CAAA;AAC9C,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,aAAa,eAAyC,CAAA;AAGnE,eAAO,MAAM,IAAI,EAAkB,WAAW,CAAA;AAC9C,eAAO,MAAM,KAAK,EAAmB,WAAW,CAAA;AAChD,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,SAAS,eAA0B,CAAA;AAGhD,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,IAAI,EAAyB,WAAW,CAAA;AACrD,eAAO,MAAM,GAAG,EAA0B,WAAW,CAAA;AACrD,eAAO,MAAM,MAAM,EAA6B,WAAW,CAAA;AAC3D,eAAO,MAAM,gBAAgB,eAA2B,CAAA;AAGxD,eAAO,MAAM,QAAQ,EAA4B,WAAW,CAAA;AAC5D,eAAO,MAAM,UAAU,EAA+B,WAAW,CAAA;AACjE,eAAO,MAAM,WAAW,EAAiC,WAAW,CAAA"}
package/dist/mime-type.js CHANGED
@@ -4,7 +4,7 @@ import { failure, success } from "@bessemer/cornerstone/result";
4
4
  import { createNamespace } from "@bessemer/cornerstone/resource-key";
5
5
  import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
6
6
  import { structuredTransform } from "@bessemer/cornerstone/zod-util";
7
- var Namespace = createNamespace("mime-literal");
7
+ var Namespace = createNamespace("mime-type");
8
8
  var parseString = (value) => {
9
9
  if (!/^[\w-]+\/[\w.+-]+$/.test(value)) {
10
10
  return failure(invalidValue(value, { namespace: Namespace, message: `Invalid MIME type format.` }));
@@ -14,7 +14,11 @@ var parseString = (value) => {
14
14
  var from = (value) => {
15
15
  return unpackResult(parseString(value));
16
16
  };
17
- var Schema = structuredTransform(Zod.string(), parseString);
17
+ var Schema = structuredTransform(Zod.string(), parseString).meta({
18
+ type: "string",
19
+ format: Namespace,
20
+ pattern: "^[\\w-]+\\/[\\w.+-]+$"
21
+ });
18
22
  var Jpeg = "image/jpeg";
19
23
  var Png = "image/png";
20
24
  var Gif = "image/gif";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mime-type.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('mime-literal')\nexport type MimeLiteral = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<MimeLiteral, ErrorEvent> => {\n if (!/^[\\w-]+\\/[\\w.+-]+$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `Invalid MIME type format.` }))\n }\n\n return success(value as MimeLiteral)\n}\n\nexport const from = (value: string): MimeLiteral => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString)\n\n// Images\nexport const Jpeg = 'image/jpeg' as MimeLiteral\nexport const Png = 'image/png' as MimeLiteral\nexport const Gif = 'image/gif' as MimeLiteral\nexport const Webp = 'image/webp' as MimeLiteral\nexport const Svg = 'image/svg+xml' as MimeLiteral\nexport const Ico = 'image/x-icon' as MimeLiteral\nexport const Avif = 'image/avif' as MimeLiteral\nexport const ImageTypes = [Jpeg, Png, Gif, Webp, Svg, Ico, Avif]\n\n// Video\nexport const Mp4 = 'video/mp4' as MimeLiteral\nexport const Webm = 'video/webm' as MimeLiteral\nexport const OggVideo = 'video/ogg' as MimeLiteral\nexport const VideoTypes = [Mp4, Webm, OggVideo]\n\n// Audio\nexport const Mp3 = 'audio/mpeg' as MimeLiteral\nexport const OggAudio = 'audio/ogg' as MimeLiteral\nexport const Wav = 'audio/wav' as MimeLiteral\nexport const AudioTypes = [Mp3, OggAudio, Wav]\n\n// Documents\nexport const Pdf = 'application/pdf' as MimeLiteral\nexport const Json = 'application/json' as MimeLiteral\nexport const Csv = 'text/csv' as MimeLiteral\nexport const PlainText = 'text/plain' as MimeLiteral\nexport const Html = 'text/html' as MimeLiteral\nexport const Xml = 'application/xml' as MimeLiteral\nexport const DocumentTypes = [Pdf, Json, Csv, PlainText, Html, Xml]\n\n// Fonts\nexport const Woff = 'font/woff' as MimeLiteral\nexport const Woff2 = 'font/woff2' as MimeLiteral\nexport const Ttf = 'font/ttf' as MimeLiteral\nexport const Otf = 'font/otf' as MimeLiteral\nexport const FontTypes = [Woff, Woff2, Ttf, Otf]\n\n// Compression\nexport const Zip = 'application/zip' as MimeLiteral\nexport const Gzip = 'application/gzip' as MimeLiteral\nexport const Tar = 'application/x-tar' as MimeLiteral\nexport const Brotli = 'application/x-brotli' as MimeLiteral\nexport const CompressionTypes = [Zip, Gzip, Tar, Brotli]\n\n// Misc\nexport const FormData = 'multipart/form-data' as MimeLiteral\nexport const Javascript = 'application/javascript' as MimeLiteral\nexport const OctetStream = 'application/octet-stream' as MimeLiteral\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,cAAc;AAGhD,IAAM,cAAc,CAAC,UAAmD;AAC7E,MAAI,CAAC,qBAAqB,KAAK,KAAK,GAAG;AACrC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,4BAA4B,CAAC,CAAC;AAAA,EACpG;AAEA,SAAO,QAAQ,KAAoB;AACrC;AAEO,IAAM,OAAO,CAAC,UAA+B;AAClD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW;AAG5D,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,aAAa,CAAC,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,IAAI;AAGxD,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,WAAW;AACjB,IAAM,aAAa,CAAC,KAAK,MAAM,QAAQ;AAGvC,IAAM,MAAM;AACZ,IAAM,WAAW;AACjB,IAAM,MAAM;AACZ,IAAM,aAAa,CAAC,KAAK,UAAU,GAAG;AAGtC,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,YAAY;AAClB,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,gBAAgB,CAAC,KAAK,MAAM,KAAK,WAAW,MAAM,GAAG;AAG3D,IAAM,OAAO;AACb,IAAM,QAAQ;AACd,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,YAAY,CAAC,MAAM,OAAO,KAAK,GAAG;AAGxC,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,SAAS;AACf,IAAM,mBAAmB,CAAC,KAAK,MAAM,KAAK,MAAM;AAGhD,IAAM,WAAW;AACjB,IAAM,aAAa;AACnB,IAAM,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/mime-type.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('mime-type')\nexport type MimeLiteral = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<MimeLiteral, ErrorEvent> => {\n if (!/^[\\w-]+\\/[\\w.+-]+$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `Invalid MIME type format.` }))\n }\n\n return success(value as MimeLiteral)\n}\n\nexport const from = (value: string): MimeLiteral => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^[\\\\w-]+\\\\/[\\\\w.+-]+$',\n})\n\n// Images\nexport const Jpeg = 'image/jpeg' as MimeLiteral\nexport const Png = 'image/png' as MimeLiteral\nexport const Gif = 'image/gif' as MimeLiteral\nexport const Webp = 'image/webp' as MimeLiteral\nexport const Svg = 'image/svg+xml' as MimeLiteral\nexport const Ico = 'image/x-icon' as MimeLiteral\nexport const Avif = 'image/avif' as MimeLiteral\nexport const ImageTypes = [Jpeg, Png, Gif, Webp, Svg, Ico, Avif]\n\n// Video\nexport const Mp4 = 'video/mp4' as MimeLiteral\nexport const Webm = 'video/webm' as MimeLiteral\nexport const OggVideo = 'video/ogg' as MimeLiteral\nexport const VideoTypes = [Mp4, Webm, OggVideo]\n\n// Audio\nexport const Mp3 = 'audio/mpeg' as MimeLiteral\nexport const OggAudio = 'audio/ogg' as MimeLiteral\nexport const Wav = 'audio/wav' as MimeLiteral\nexport const AudioTypes = [Mp3, OggAudio, Wav]\n\n// Documents\nexport const Pdf = 'application/pdf' as MimeLiteral\nexport const Json = 'application/json' as MimeLiteral\nexport const Csv = 'text/csv' as MimeLiteral\nexport const PlainText = 'text/plain' as MimeLiteral\nexport const Html = 'text/html' as MimeLiteral\nexport const Xml = 'application/xml' as MimeLiteral\nexport const DocumentTypes = [Pdf, Json, Csv, PlainText, Html, Xml]\n\n// Fonts\nexport const Woff = 'font/woff' as MimeLiteral\nexport const Woff2 = 'font/woff2' as MimeLiteral\nexport const Ttf = 'font/ttf' as MimeLiteral\nexport const Otf = 'font/otf' as MimeLiteral\nexport const FontTypes = [Woff, Woff2, Ttf, Otf]\n\n// Compression\nexport const Zip = 'application/zip' as MimeLiteral\nexport const Gzip = 'application/gzip' as MimeLiteral\nexport const Tar = 'application/x-tar' as MimeLiteral\nexport const Brotli = 'application/x-brotli' as MimeLiteral\nexport const CompressionTypes = [Zip, Gzip, Tar, Brotli]\n\n// Misc\nexport const FormData = 'multipart/form-data' as MimeLiteral\nexport const Javascript = 'application/javascript' as MimeLiteral\nexport const OctetStream = 'application/octet-stream' as MimeLiteral\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,WAAW;AAG7C,IAAM,cAAc,CAAC,UAAmD;AAC7E,MAAI,CAAC,qBAAqB,KAAK,KAAK,GAAG;AACrC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,4BAA4B,CAAC,CAAC;AAAA,EACpG;AAEA,SAAO,QAAQ,KAAoB;AACrC;AAEO,IAAM,OAAO,CAAC,UAA+B;AAClD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EACxE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAGM,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,aAAa,CAAC,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,IAAI;AAGxD,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,WAAW;AACjB,IAAM,aAAa,CAAC,KAAK,MAAM,QAAQ;AAGvC,IAAM,MAAM;AACZ,IAAM,WAAW;AACjB,IAAM,MAAM;AACZ,IAAM,aAAa,CAAC,KAAK,UAAU,GAAG;AAGtC,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,YAAY;AAClB,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,gBAAgB,CAAC,KAAK,MAAM,KAAK,WAAW,MAAM,GAAG;AAG3D,IAAM,OAAO;AACb,IAAM,QAAQ;AACd,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,YAAY,CAAC,MAAM,OAAO,KAAK,GAAG;AAGxC,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,SAAS;AACf,IAAM,mBAAmB,CAAC,KAAK,MAAM,KAAK,MAAM;AAGhD,IAAM,WAAW;AACjB,IAAM,aAAa;AACnB,IAAM,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"instant.d.ts","sourceRoot":"","sources":["../../src/temporal/instant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instant.d.ts","sourceRoot":"","sources":["../../src/temporal/instant.ts"],"names":[],"mappings":"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"}
@@ -50,8 +50,14 @@ function toDate(value) {
50
50
  }
51
51
  return new Date(from(value).epochMilliseconds);
52
52
  }
53
- var SchemaLiteral = structuredTransform(Zod.string(), (it) => mapResult(parseString(it), (it2) => toLiteral(it2)));
54
- var SchemaInstance = structuredTransform(Zod.string(), parseString);
53
+ var SchemaLiteral = structuredTransform(Zod.string(), (it) => mapResult(parseString(it), (it2) => toLiteral(it2))).meta({
54
+ type: "string",
55
+ format: "date-time"
56
+ });
57
+ var SchemaInstance = structuredTransform(Zod.string(), parseString).meta({
58
+ type: "string",
59
+ format: "date-time"
60
+ });
55
61
  var isInstant = _isInstant;
56
62
  var now = (clock = DefaultClock) => {
57
63
  return clock.instant();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/temporal/instant.ts"],"sourcesContent":["import { Temporal } from '@js-temporal/polyfill'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { Comparator } from '@bessemer/cornerstone/comparator'\nimport { fromComparator } from '@bessemer/cornerstone/equalitor'\nimport { failure, mapResult, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { isError } from '@bessemer/cornerstone/error/error'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\nimport Zod from 'zod'\nimport { Default as DefaultClock } from '@bessemer/cornerstone/temporal/clock'\nimport { Duration, DurationLike, from as fromDuration } from '@bessemer/cornerstone/temporal/duration'\nimport { _isInstant, instantToLiteral, TimeUnit } from '@bessemer/cornerstone/temporal/chrono'\nimport { isString } from '@bessemer/cornerstone/string'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { Locale } from '@bessemer/cornerstone/intl/locale'\nimport { DateTimeFormatOptions, format as formatPlainDateTime, fromInstant } from '@bessemer/cornerstone/temporal/plain-date-time'\nimport { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id'\n\nexport type Instant = Temporal.Instant\nexport const Namespace = createNamespace('instant')\nexport type InstantLiteral = NominalType<string, typeof Namespace>\nexport type InstantLike = Instant | Date | InstantLiteral\n\nexport function from(value: InstantLike | string): Instant\nexport function from(value: InstantLike | string | null): Instant | null\nexport function from(value: InstantLike | string | undefined): Instant | undefined\nexport function from(value: InstantLike | string | null | undefined): Instant | null | undefined\nexport function from(value: InstantLike | string | null | undefined): Instant | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.Instant) {\n return value\n }\n if (isString(value)) {\n return unpackResult(parseString(value))\n }\n\n return Temporal.Instant.fromEpochMilliseconds(value.getTime())\n}\n\nexport const CompareBy: Comparator<Instant> = (first: Instant, second: Instant): number => Temporal.Instant.compare(first, second)\nexport const EqualBy = fromComparator(CompareBy)\n\nexport const parseString = (value: string): Result<Instant, ErrorEvent> => {\n try {\n return success(Temporal.Instant.from(value))\n } catch (e) {\n if (!isError(e)) {\n throw e\n }\n\n return failure(invalidValue(value, { namespace: Namespace, message: e.message }))\n }\n}\n\nexport function toLiteral(value: InstantLike): InstantLiteral\nexport function toLiteral(value: InstantLike | null): InstantLiteral | null\nexport function toLiteral(value: InstantLike | undefined): InstantLiteral | undefined\nexport function toLiteral(value: InstantLike | null | undefined): InstantLiteral | null | undefined\nexport function toLiteral(value: InstantLike | null | undefined): InstantLiteral | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n return instantToLiteral(from(value))\n}\n\nexport function toDate(value: InstantLike): Date\nexport function toDate(value: InstantLike | null): Date | null\nexport function toDate(value: InstantLike | undefined): Date | undefined\nexport function toDate(value: InstantLike | null | undefined): Date | null | undefined\nexport function toDate(value: InstantLike | null | undefined): Date | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n return new Date(from(value).epochMilliseconds)\n}\n\nexport const SchemaLiteral = structuredTransform(Zod.string(), (it: string) => mapResult(parseString(it), (it) => toLiteral(it)))\nexport const SchemaInstance = structuredTransform(Zod.string(), parseString)\n\nexport const isInstant = _isInstant\n\nexport const now = (clock = DefaultClock): Instant => {\n return clock.instant()\n}\n\nexport const add = (element: InstantLike, duration: DurationLike): Instant => {\n return from(element).add(fromDuration(duration))\n}\n\nexport const subtract = (element: InstantLike, duration: DurationLike): Instant => {\n return from(element).subtract(fromDuration(duration))\n}\n\nexport const until = (element: InstantLike, other: InstantLike): Duration => {\n return from(element).until(from(other))\n}\n\nexport const round = (element: InstantLike, unit: TimeUnit): Instant => {\n return from(element).round({ smallestUnit: unit })\n}\n\nexport function isEqual(element: InstantLike, other: InstantLike): boolean\nexport function isEqual(element: InstantLike | null, other: InstantLike | null): boolean\nexport function isEqual(element: InstantLike | undefined, other: InstantLike | undefined): boolean\nexport function isEqual(element: InstantLike | null | undefined, other: InstantLike | null | undefined): boolean {\n if (isNil(element) || isNil(other)) {\n return element === other\n }\n\n return EqualBy(from(element), from(other))\n}\n\nexport const isBefore = (element: InstantLike, other: InstantLike): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isAfter = (element: InstantLike, other: InstantLike): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport const format = (element: InstantLike, timeZone: TimeZoneId, locale: Locale, options: DateTimeFormatOptions): string => {\n const plainDateTime = fromInstant(from(element), timeZone)\n return formatPlainDateTime(plainDateTime, locale, options)\n}\n"],"mappings":"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","names":["it"]}
1
+ {"version":3,"sources":["../../src/temporal/instant.ts"],"sourcesContent":["import { Temporal } from '@js-temporal/polyfill'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { Comparator } from '@bessemer/cornerstone/comparator'\nimport { fromComparator } from '@bessemer/cornerstone/equalitor'\nimport { failure, mapResult, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { isError } from '@bessemer/cornerstone/error/error'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\nimport Zod from 'zod'\nimport { Default as DefaultClock } from '@bessemer/cornerstone/temporal/clock'\nimport { Duration, DurationLike, from as fromDuration } from '@bessemer/cornerstone/temporal/duration'\nimport { _isInstant, instantToLiteral, TimeUnit } from '@bessemer/cornerstone/temporal/chrono'\nimport { isString } from '@bessemer/cornerstone/string'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { Locale } from '@bessemer/cornerstone/intl/locale'\nimport { DateTimeFormatOptions, format as formatPlainDateTime, fromInstant } from '@bessemer/cornerstone/temporal/plain-date-time'\nimport { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id'\n\nexport type Instant = Temporal.Instant\nexport const Namespace = createNamespace('instant')\nexport type InstantLiteral = NominalType<string, typeof Namespace>\nexport type InstantLike = Instant | Date | InstantLiteral\n\nexport function from(value: InstantLike | string): Instant\nexport function from(value: InstantLike | string | null): Instant | null\nexport function from(value: InstantLike | string | undefined): Instant | undefined\nexport function from(value: InstantLike | string | null | undefined): Instant | null | undefined\nexport function from(value: InstantLike | string | null | undefined): Instant | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.Instant) {\n return value\n }\n if (isString(value)) {\n return unpackResult(parseString(value))\n }\n\n return Temporal.Instant.fromEpochMilliseconds(value.getTime())\n}\n\nexport const CompareBy: Comparator<Instant> = (first: Instant, second: Instant): number => Temporal.Instant.compare(first, second)\nexport const EqualBy = fromComparator(CompareBy)\n\nexport const parseString = (value: string): Result<Instant, ErrorEvent> => {\n try {\n return success(Temporal.Instant.from(value))\n } catch (e) {\n if (!isError(e)) {\n throw e\n }\n\n return failure(invalidValue(value, { namespace: Namespace, message: e.message }))\n }\n}\n\nexport function toLiteral(value: InstantLike): InstantLiteral\nexport function toLiteral(value: InstantLike | null): InstantLiteral | null\nexport function toLiteral(value: InstantLike | undefined): InstantLiteral | undefined\nexport function toLiteral(value: InstantLike | null | undefined): InstantLiteral | null | undefined\nexport function toLiteral(value: InstantLike | null | undefined): InstantLiteral | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n return instantToLiteral(from(value))\n}\n\nexport function toDate(value: InstantLike): Date\nexport function toDate(value: InstantLike | null): Date | null\nexport function toDate(value: InstantLike | undefined): Date | undefined\nexport function toDate(value: InstantLike | null | undefined): Date | null | undefined\nexport function toDate(value: InstantLike | null | undefined): Date | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n return new Date(from(value).epochMilliseconds)\n}\n\nexport const SchemaLiteral = structuredTransform(Zod.string(), (it: string) => mapResult(parseString(it), (it) => toLiteral(it))).meta({\n type: 'string',\n format: 'date-time',\n})\n\nexport const SchemaInstance = structuredTransform(Zod.string(), parseString).meta({\n type: 'string',\n format: 'date-time',\n})\n\nexport const isInstant = _isInstant\n\nexport const now = (clock = DefaultClock): Instant => {\n return clock.instant()\n}\n\nexport const add = (element: InstantLike, duration: DurationLike): Instant => {\n return from(element).add(fromDuration(duration))\n}\n\nexport const subtract = (element: InstantLike, duration: DurationLike): Instant => {\n return from(element).subtract(fromDuration(duration))\n}\n\nexport const until = (element: InstantLike, other: InstantLike): Duration => {\n return from(element).until(from(other))\n}\n\nexport const round = (element: InstantLike, unit: TimeUnit): Instant => {\n return from(element).round({ smallestUnit: unit })\n}\n\nexport function isEqual(element: InstantLike, other: InstantLike): boolean\nexport function isEqual(element: InstantLike | null, other: InstantLike | null): boolean\nexport function isEqual(element: InstantLike | undefined, other: InstantLike | undefined): boolean\nexport function isEqual(element: InstantLike | null | undefined, other: InstantLike | null | undefined): boolean {\n if (isNil(element) || isNil(other)) {\n return element === other\n }\n\n return EqualBy(from(element), from(other))\n}\n\nexport const isBefore = (element: InstantLike, other: InstantLike): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isAfter = (element: InstantLike, other: InstantLike): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport const format = (element: InstantLike, timeZone: TimeZoneId, locale: Locale, options: DateTimeFormatOptions): string => {\n const plainDateTime = fromInstant(from(element), timeZone)\n return formatPlainDateTime(plainDateTime, locale, options)\n}\n"],"mappings":"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","names":["it"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ulid.d.ts","sourceRoot":"","sources":["../../src/uuid/ulid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,wEAA0B,CAAA;AAChD,MAAM,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAExD,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,IAAI,EAAE,UAAU,CAM5D,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,IAEpC,CAAA;AAED,eAAO,MAAM,MAAM,4DAA2C,CAAA;AAE9D,eAAO,MAAM,QAAQ,QAAO,IAE3B,CAAA"}
1
+ {"version":3,"file":"ulid.d.ts","sourceRoot":"","sources":["../../src/uuid/ulid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,wEAA0B,CAAA;AAChD,MAAM,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAExD,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,IAAI,EAAE,UAAU,CAM5D,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,IAEpC,CAAA;AAED,eAAO,MAAM,MAAM,4DAIjB,CAAA;AAEF,eAAO,MAAM,QAAQ,QAAO,IAE3B,CAAA"}
package/dist/uuid/ulid.js CHANGED
@@ -7,7 +7,7 @@ import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-ev
7
7
  import { structuredTransform } from "@bessemer/cornerstone/zod-util";
8
8
  var Namespace = createNamespace("ulid");
9
9
  var parse = (value) => {
10
- if (!/^[0-9A-HJKMNP-TV-Z]{26}$/i.test(value)) {
10
+ if (!/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/.test(value)) {
11
11
  return failure(invalidValue(value, { namespace: Namespace, message: `[${Namespace}]: Invalid Ulid format: [${value}]` }));
12
12
  }
13
13
  return success(value.toUpperCase());
@@ -15,7 +15,11 @@ var parse = (value) => {
15
15
  var from = (value) => {
16
16
  return unpackResult(parse(value));
17
17
  };
18
- var Schema = structuredTransform(Zod.string(), parse);
18
+ var Schema = structuredTransform(Zod.string(), parse).meta({
19
+ type: "string",
20
+ format: Namespace,
21
+ pattern: "^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$"
22
+ });
19
23
  var generate = () => {
20
24
  return ulid();
21
25
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uuid/ulid.ts"],"sourcesContent":["import { ulid } from 'ulid'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('ulid')\nexport type Ulid = NominalType<string, typeof Namespace>\n\nexport const parse = (value: string): Result<Ulid, ErrorEvent> => {\n if (!/^[0-9A-HJKMNP-TV-Z]{26}$/i.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `[${Namespace}]: Invalid Ulid format: [${value}]` }))\n }\n\n return success(value.toUpperCase() as Ulid)\n}\n\nexport const from = (value: string): Ulid => {\n return unpackResult(parse(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parse)\n\nexport const generate = (): Ulid => {\n return ulid() as Ulid\n}\n"],"mappings":";AAAA,SAAS,YAAY;AAErB,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,MAAM;AAGxC,IAAM,QAAQ,CAAC,UAA4C;AAChE,MAAI,CAAC,4BAA4B,KAAK,KAAK,GAAG;AAC5C,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,IAAI,SAAS,4BAA4B,KAAK,IAAI,CAAC,CAAC;AAAA,EAC1H;AAEA,SAAO,QAAQ,MAAM,YAAY,CAAS;AAC5C;AAEO,IAAM,OAAO,CAAC,UAAwB;AAC3C,SAAO,aAAa,MAAM,KAAK,CAAC;AAClC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,KAAK;AAEtD,IAAM,WAAW,MAAY;AAClC,SAAO,KAAK;AACd;","names":[]}
1
+ {"version":3,"sources":["../../src/uuid/ulid.ts"],"sourcesContent":["import { ulid } from 'ulid'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('ulid')\nexport type Ulid = NominalType<string, typeof Namespace>\n\nexport const parse = (value: string): Result<Ulid, ErrorEvent> => {\n if (!/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `[${Namespace}]: Invalid Ulid format: [${value}]` }))\n }\n\n return success(value.toUpperCase() as Ulid)\n}\n\nexport const from = (value: string): Ulid => {\n return unpackResult(parse(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parse).meta({\n type: 'string',\n format: Namespace,\n pattern: '^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$',\n})\n\nexport const generate = (): Ulid => {\n return ulid() as Ulid\n}\n"],"mappings":";AAAA,SAAS,YAAY;AAErB,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,MAAM;AAGxC,IAAM,QAAQ,CAAC,UAA4C;AAChE,MAAI,CAAC,wCAAwC,KAAK,KAAK,GAAG;AACxD,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,IAAI,SAAS,4BAA4B,KAAK,IAAI,CAAC,CAAC;AAAA,EAC1H;AAEA,SAAO,QAAQ,MAAM,YAAY,CAAS;AAC5C;AAEO,IAAM,OAAO,CAAC,UAAwB;AAC3C,SAAO,aAAa,MAAM,KAAK,CAAC;AAClC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,KAAK,EAAE,KAAK;AAAA,EAClE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAEM,IAAM,WAAW,MAAY;AAClC,SAAO,KAAK;AACd;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"uuid-v4.d.ts","sourceRoot":"","sources":["../../src/uuid/uuid-v4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAIhG,eAAO,MAAM,SAAS,2EAA6B,CAAA;AACnD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE1D,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAM9D,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,MAEpC,CAAA;AAED,eAAO,MAAM,MAAM,8DAA2C,CAAA;AAE9D,eAAO,MAAM,QAAQ,QAAO,MAM3B,CAAA"}
1
+ {"version":3,"file":"uuid-v4.d.ts","sourceRoot":"","sources":["../../src/uuid/uuid-v4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAIhG,eAAO,MAAM,SAAS,2EAA6B,CAAA;AACnD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE1D,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAM9D,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,MAEpC,CAAA;AAED,eAAO,MAAM,MAAM,8DAIjB,CAAA;AAEF,eAAO,MAAM,QAAQ,QAAO,MAM3B,CAAA"}
@@ -8,7 +8,7 @@ import { createNamespace } from "@bessemer/cornerstone/resource-key";
8
8
  import { structuredTransform } from "@bessemer/cornerstone/zod-util";
9
9
  var Namespace = createNamespace("uuid-v4");
10
10
  var parse = (value) => {
11
- if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value)) {
11
+ if (!/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(value)) {
12
12
  return failure(invalidValue(value, { namespace: Namespace, message: `[${Namespace}]: Invalid UuidV4 format: [${value}]` }));
13
13
  }
14
14
  return success(value.toLowerCase());
@@ -16,7 +16,11 @@ var parse = (value) => {
16
16
  var from = (value) => {
17
17
  return unpackResult(parse(value));
18
18
  };
19
- var Schema = structuredTransform(Zod.string(), parse);
19
+ var Schema = structuredTransform(Zod.string(), parse).meta({
20
+ type: "string",
21
+ format: "uuid",
22
+ pattern: "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
23
+ });
20
24
  var generate = () => {
21
25
  if (isNil(crypto.randomUUID)) {
22
26
  return `${randomHex(8)}-${randomHex(4)}-${randomHex(4)}-${randomHex(4)}-${randomHex(12)}`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uuid/uuid-v4.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { padStart } from '@bessemer/cornerstone/string'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('uuid-v4')\nexport type UuidV4 = NominalType<string, typeof Namespace>\n\nexport const parse = (value: string): Result<UuidV4, ErrorEvent> => {\n if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `[${Namespace}]: Invalid UuidV4 format: [${value}]` }))\n }\n\n return success(value.toLowerCase() as UuidV4)\n}\n\nexport const from = (value: string): UuidV4 => {\n return unpackResult(parse(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parse)\n\nexport const generate = (): UuidV4 => {\n if (isNil(crypto.randomUUID)) {\n return `${randomHex(8)}-${randomHex(4)}-${randomHex(4)}-${randomHex(4)}-${randomHex(12)}` as UuidV4\n } else {\n return crypto.randomUUID() as UuidV4\n }\n}\n\nconst randomHex = (characters: number) => {\n // Generates a random number between 0x0..0 and 0xF..F for the target number of characters\n const randomNum = Math.floor(Math.random() * (16 ** characters - 1))\n return padStart(randomNum.toString(16), characters, '0')\n}\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,SAAiB,eAAe;AACzC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,SAAS;AAG3C,IAAM,QAAQ,CAAC,UAA8C;AAClE,MAAI,CAAC,6EAA6E,KAAK,KAAK,GAAG;AAC7F,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,IAAI,SAAS,8BAA8B,KAAK,IAAI,CAAC,CAAC;AAAA,EAC5H;AAEA,SAAO,QAAQ,MAAM,YAAY,CAAW;AAC9C;AAEO,IAAM,OAAO,CAAC,UAA0B;AAC7C,SAAO,aAAa,MAAM,KAAK,CAAC;AAClC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,KAAK;AAEtD,IAAM,WAAW,MAAc;AACpC,MAAI,MAAM,OAAO,UAAU,GAAG;AAC5B,WAAO,GAAG,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;AAAA,EACzF,OAAO;AACL,WAAO,OAAO,WAAW;AAAA,EAC3B;AACF;AAEA,IAAM,YAAY,CAAC,eAAuB;AAExC,QAAM,YAAY,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,aAAa,EAAE;AACnE,SAAO,SAAS,UAAU,SAAS,EAAE,GAAG,YAAY,GAAG;AACzD;","names":[]}
1
+ {"version":3,"sources":["../../src/uuid/uuid-v4.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { padStart } from '@bessemer/cornerstone/string'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('uuid-v4')\nexport type UuidV4 = NominalType<string, typeof Namespace>\n\nexport const parse = (value: string): Result<UuidV4, ErrorEvent> => {\n if (!/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `[${Namespace}]: Invalid UuidV4 format: [${value}]` }))\n }\n\n return success(value.toLowerCase() as UuidV4)\n}\n\nexport const from = (value: string): UuidV4 => {\n return unpackResult(parse(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parse).meta({\n type: 'string',\n format: 'uuid',\n pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$',\n})\n\nexport const generate = (): UuidV4 => {\n if (isNil(crypto.randomUUID)) {\n return `${randomHex(8)}-${randomHex(4)}-${randomHex(4)}-${randomHex(4)}-${randomHex(12)}` as UuidV4\n } else {\n return crypto.randomUUID() as UuidV4\n }\n}\n\nconst randomHex = (characters: number) => {\n // Generates a random number between 0x0..0 and 0xF..F for the target number of characters\n const randomNum = Math.floor(Math.random() * (16 ** characters - 1))\n return padStart(randomNum.toString(16), characters, '0')\n}\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,SAAiB,eAAe;AACzC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,SAAS;AAG3C,IAAM,QAAQ,CAAC,UAA8C;AAClE,MAAI,CAAC,6FAA6F,KAAK,KAAK,GAAG;AAC7G,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,IAAI,SAAS,8BAA8B,KAAK,IAAI,CAAC,CAAC;AAAA,EAC5H;AAEA,SAAO,QAAQ,MAAM,YAAY,CAAW;AAC9C;AAEO,IAAM,OAAO,CAAC,UAA0B;AAC7C,SAAO,aAAa,MAAM,KAAK,CAAC;AAClC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,KAAK,EAAE,KAAK;AAAA,EAClE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAEM,IAAM,WAAW,MAAc;AACpC,MAAI,MAAM,OAAO,UAAU,GAAG;AAC5B,WAAO,GAAG,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;AAAA,EACzF,OAAO;AACL,WAAO,OAAO,WAAW;AAAA,EAC3B;AACF;AAEA,IAAM,YAAY,CAAC,eAAuB;AAExC,QAAM,YAAY,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,aAAa,EAAE;AACnE,SAAO,SAAS,UAAU,SAAS,EAAE,GAAG,YAAY,GAAG;AACzD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"uuid-v7.d.ts","sourceRoot":"","sources":["../../src/uuid/uuid-v7.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AACpE,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAElE,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAA;AAC9D,OAAO,KAAK,QAAQ,MAAM,wCAAwC,CAAA;AAGlE,eAAO,MAAM,SAAS,2CAA0C,CAAA;AAChE,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE1D,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAM9D,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,MAEpC,CAAA;AAED,eAAO,MAAM,MAAM,8DAAmD,CAAA;AAEtE,eAAO,MAAM,QAAQ,GAAI;;;;CAAsB,KAAG,MAyBjD,CAAA"}
1
+ {"version":3,"file":"uuid-v7.d.ts","sourceRoot":"","sources":["../../src/uuid/uuid-v7.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AACpE,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAElE,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAA;AAC9D,OAAO,KAAK,QAAQ,MAAM,wCAAwC,CAAA;AAGlE,eAAO,MAAM,SAAS,2CAA0C,CAAA;AAChE,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE1D,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAM9D,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,MAEpC,CAAA;AAED,eAAO,MAAM,MAAM,8DAIjB,CAAA;AAEF,eAAO,MAAM,QAAQ,GAAI;;;;CAAsB,KAAG,MAyBjD,CAAA"}
@@ -9,7 +9,7 @@ import * as Instants from "@bessemer/cornerstone/temporal/instant";
9
9
  import * as Strings from "@bessemer/cornerstone/string";
10
10
  var Namespace = ResourceKeys.createNamespace("uuid-v7");
11
11
  var parse = (value) => {
12
- if (!/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value)) {
12
+ if (!/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(value)) {
13
13
  return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: `[${Namespace}]: Invalid UuidV7 format: [${value}]` }));
14
14
  }
15
15
  return Results.success(value.toLowerCase());
@@ -17,7 +17,11 @@ var parse = (value) => {
17
17
  var from = (value) => {
18
18
  return ErrorEvents.unpackResult(parse(value));
19
19
  };
20
- var Schema = ZodUtil.structuredTransform(Zod.string(), parse);
20
+ var Schema = ZodUtil.structuredTransform(Zod.string(), parse).meta({
21
+ type: "string",
22
+ format: "uuid",
23
+ pattern: "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
24
+ });
21
25
  var generate = (clock = Clocks.Default) => {
22
26
  const timestamp = Instants.now(clock).epochMilliseconds;
23
27
  const timestampHex = Strings.padStart(timestamp.toString(16), 12, "0");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uuid/uuid-v7.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport * as Results from '@bessemer/cornerstone/result'\nimport { Result } from '@bessemer/cornerstone/result'\nimport * as ErrorEvents from '@bessemer/cornerstone/error/error-event'\nimport { ErrorEvent } from '@bessemer/cornerstone/error/error-event'\nimport * as ResourceKeys from '@bessemer/cornerstone/resource-key'\nimport * as ZodUtil from '@bessemer/cornerstone/zod-util'\nimport * as Clocks from '@bessemer/cornerstone/temporal/clock'\nimport * as Instants from '@bessemer/cornerstone/temporal/instant'\nimport * as Strings from '@bessemer/cornerstone/string'\n\nexport const Namespace = ResourceKeys.createNamespace('uuid-v7')\nexport type UuidV7 = NominalType<string, typeof Namespace>\n\nexport const parse = (value: string): Result<UuidV7, ErrorEvent> => {\n if (!/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value)) {\n return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: `[${Namespace}]: Invalid UuidV7 format: [${value}]` }))\n }\n\n return Results.success(value.toLowerCase() as UuidV7)\n}\n\nexport const from = (value: string): UuidV7 => {\n return ErrorEvents.unpackResult(parse(value))\n}\n\nexport const Schema = ZodUtil.structuredTransform(Zod.string(), parse)\n\nexport const generate = (clock = Clocks.Default): UuidV7 => {\n const timestamp = Instants.now(clock).epochMilliseconds\n\n // Convert timestamp to 48-bit (12 hex characters)\n const timestampHex = Strings.padStart(timestamp.toString(16), 12, '0')\n\n // Generate 12 bits of random data for sub-millisecond precision\n const randomA = Math.floor(Math.random() * 0x1000) // 12 bits\n\n // Set version (7) in the most significant 4 bits\n const versionAndRandom = 0x7000 | randomA\n const versionAndRandomHex = Strings.padStart(versionAndRandom.toString(16), 4, '0')\n\n // Generate 14 bits of random data for clock sequence\n const clockSeq = Math.floor(Math.random() * 0x4000) // 14 bits\n\n // Set variant bits (10xx) in the most significant 2 bits\n const variantAndClockSeq = 0x8000 | clockSeq\n const variantAndClockSeqHex = Strings.padStart(variantAndClockSeq.toString(16), 4, '0')\n\n // Generate 48 bits (12 hex characters) of random data for node\n const nodeHex = randomHex(12)\n\n // Format as UUID: xxxxxxxx-xxxx-7xxx-xxxx-xxxxxxxxxxxx\n return `${timestampHex.slice(0, 8)}-${timestampHex.slice(8, 12)}-${versionAndRandomHex}-${variantAndClockSeqHex}-${nodeHex}` as UuidV7\n}\n\nconst randomHex = (characters: number) => {\n // Generates a random number between 0x0..0 and 0xF..F for the target number of characters\n const randomNum = Math.floor(Math.random() * (16 ** characters - 1))\n return Strings.padStart(randomNum.toString(16), characters, '0')\n}\n"],"mappings":";AACA,OAAO,SAAS;AAChB,YAAY,aAAa;AAEzB,YAAY,iBAAiB;AAE7B,YAAY,kBAAkB;AAC9B,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,cAAc;AAC1B,YAAY,aAAa;AAElB,IAAM,YAAyB,6BAAgB,SAAS;AAGxD,IAAM,QAAQ,CAAC,UAA8C;AAClE,MAAI,CAAC,yEAAyE,KAAK,KAAK,GAAG;AACzF,WAAe,gBAAoB,yBAAa,OAAO,EAAE,WAAW,WAAW,SAAS,IAAI,SAAS,8BAA8B,KAAK,IAAI,CAAC,CAAC;AAAA,EAChJ;AAEA,SAAe,gBAAQ,MAAM,YAAY,CAAW;AACtD;AAEO,IAAM,OAAO,CAAC,UAA0B;AAC7C,SAAmB,yBAAa,MAAM,KAAK,CAAC;AAC9C;AAEO,IAAM,SAAiB,4BAAoB,IAAI,OAAO,GAAG,KAAK;AAE9D,IAAM,WAAW,CAAC,QAAe,mBAAoB;AAC1D,QAAM,YAAqB,aAAI,KAAK,EAAE;AAGtC,QAAM,eAAuB,iBAAS,UAAU,SAAS,EAAE,GAAG,IAAI,GAAG;AAGrE,QAAM,UAAU,KAAK,MAAM,KAAK,OAAO,IAAI,IAAM;AAGjD,QAAM,mBAAmB,QAAS;AAClC,QAAM,sBAA8B,iBAAS,iBAAiB,SAAS,EAAE,GAAG,GAAG,GAAG;AAGlF,QAAM,WAAW,KAAK,MAAM,KAAK,OAAO,IAAI,KAAM;AAGlD,QAAM,qBAAqB,QAAS;AACpC,QAAM,wBAAgC,iBAAS,mBAAmB,SAAS,EAAE,GAAG,GAAG,GAAG;AAGtF,QAAM,UAAU,UAAU,EAAE;AAG5B,SAAO,GAAG,aAAa,MAAM,GAAG,CAAC,CAAC,IAAI,aAAa,MAAM,GAAG,EAAE,CAAC,IAAI,mBAAmB,IAAI,qBAAqB,IAAI,OAAO;AAC5H;AAEA,IAAM,YAAY,CAAC,eAAuB;AAExC,QAAM,YAAY,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,aAAa,EAAE;AACnE,SAAe,iBAAS,UAAU,SAAS,EAAE,GAAG,YAAY,GAAG;AACjE;","names":[]}
1
+ {"version":3,"sources":["../../src/uuid/uuid-v7.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport * as Results from '@bessemer/cornerstone/result'\nimport { Result } from '@bessemer/cornerstone/result'\nimport * as ErrorEvents from '@bessemer/cornerstone/error/error-event'\nimport { ErrorEvent } from '@bessemer/cornerstone/error/error-event'\nimport * as ResourceKeys from '@bessemer/cornerstone/resource-key'\nimport * as ZodUtil from '@bessemer/cornerstone/zod-util'\nimport * as Clocks from '@bessemer/cornerstone/temporal/clock'\nimport * as Instants from '@bessemer/cornerstone/temporal/instant'\nimport * as Strings from '@bessemer/cornerstone/string'\n\nexport const Namespace = ResourceKeys.createNamespace('uuid-v7')\nexport type UuidV7 = NominalType<string, typeof Namespace>\n\nexport const parse = (value: string): Result<UuidV7, ErrorEvent> => {\n if (!/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(value)) {\n return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: `[${Namespace}]: Invalid UuidV7 format: [${value}]` }))\n }\n\n return Results.success(value.toLowerCase() as UuidV7)\n}\n\nexport const from = (value: string): UuidV7 => {\n return ErrorEvents.unpackResult(parse(value))\n}\n\nexport const Schema = ZodUtil.structuredTransform(Zod.string(), parse).meta({\n type: 'string',\n format: 'uuid',\n pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$',\n})\n\nexport const generate = (clock = Clocks.Default): UuidV7 => {\n const timestamp = Instants.now(clock).epochMilliseconds\n\n // Convert timestamp to 48-bit (12 hex characters)\n const timestampHex = Strings.padStart(timestamp.toString(16), 12, '0')\n\n // Generate 12 bits of random data for sub-millisecond precision\n const randomA = Math.floor(Math.random() * 0x1000) // 12 bits\n\n // Set version (7) in the most significant 4 bits\n const versionAndRandom = 0x7000 | randomA\n const versionAndRandomHex = Strings.padStart(versionAndRandom.toString(16), 4, '0')\n\n // Generate 14 bits of random data for clock sequence\n const clockSeq = Math.floor(Math.random() * 0x4000) // 14 bits\n\n // Set variant bits (10xx) in the most significant 2 bits\n const variantAndClockSeq = 0x8000 | clockSeq\n const variantAndClockSeqHex = Strings.padStart(variantAndClockSeq.toString(16), 4, '0')\n\n // Generate 48 bits (12 hex characters) of random data for node\n const nodeHex = randomHex(12)\n\n // Format as UUID: xxxxxxxx-xxxx-7xxx-xxxx-xxxxxxxxxxxx\n return `${timestampHex.slice(0, 8)}-${timestampHex.slice(8, 12)}-${versionAndRandomHex}-${variantAndClockSeqHex}-${nodeHex}` as UuidV7\n}\n\nconst randomHex = (characters: number) => {\n // Generates a random number between 0x0..0 and 0xF..F for the target number of characters\n const randomNum = Math.floor(Math.random() * (16 ** characters - 1))\n return Strings.padStart(randomNum.toString(16), characters, '0')\n}\n"],"mappings":";AACA,OAAO,SAAS;AAChB,YAAY,aAAa;AAEzB,YAAY,iBAAiB;AAE7B,YAAY,kBAAkB;AAC9B,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,cAAc;AAC1B,YAAY,aAAa;AAElB,IAAM,YAAyB,6BAAgB,SAAS;AAGxD,IAAM,QAAQ,CAAC,UAA8C;AAClE,MAAI,CAAC,yFAAyF,KAAK,KAAK,GAAG;AACzG,WAAe,gBAAoB,yBAAa,OAAO,EAAE,WAAW,WAAW,SAAS,IAAI,SAAS,8BAA8B,KAAK,IAAI,CAAC,CAAC;AAAA,EAChJ;AAEA,SAAe,gBAAQ,MAAM,YAAY,CAAW;AACtD;AAEO,IAAM,OAAO,CAAC,UAA0B;AAC7C,SAAmB,yBAAa,MAAM,KAAK,CAAC;AAC9C;AAEO,IAAM,SAAiB,4BAAoB,IAAI,OAAO,GAAG,KAAK,EAAE,KAAK;AAAA,EAC1E,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAEM,IAAM,WAAW,CAAC,QAAe,mBAAoB;AAC1D,QAAM,YAAqB,aAAI,KAAK,EAAE;AAGtC,QAAM,eAAuB,iBAAS,UAAU,SAAS,EAAE,GAAG,IAAI,GAAG;AAGrE,QAAM,UAAU,KAAK,MAAM,KAAK,OAAO,IAAI,IAAM;AAGjD,QAAM,mBAAmB,QAAS;AAClC,QAAM,sBAA8B,iBAAS,iBAAiB,SAAS,EAAE,GAAG,GAAG,GAAG;AAGlF,QAAM,WAAW,KAAK,MAAM,KAAK,OAAO,IAAI,KAAM;AAGlD,QAAM,qBAAqB,QAAS;AACpC,QAAM,wBAAgC,iBAAS,mBAAmB,SAAS,EAAE,GAAG,GAAG,GAAG;AAGtF,QAAM,UAAU,UAAU,EAAE;AAG5B,SAAO,GAAG,aAAa,MAAM,GAAG,CAAC,CAAC,IAAI,aAAa,MAAM,GAAG,EAAE,CAAC,IAAI,mBAAmB,IAAI,qBAAqB,IAAI,OAAO;AAC5H;AAEA,IAAM,YAAY,CAAC,eAAuB;AAExC,QAAM,YAAY,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,aAAa,EAAE;AACnE,SAAe,iBAAS,UAAU,SAAS,EAAE,GAAG,YAAY,GAAG;AACjE;","names":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bessemer/cornerstone",
3
3
  "type": "module",
4
- "version": "0.5.99",
4
+ "version": "0.5.102",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "sideEffects": false,
@@ -30,7 +30,7 @@
30
30
  "pino": "9.6.0",
31
31
  "type-fest": "4.32.0",
32
32
  "ulid": "2.3.0",
33
- "zod": "4.0.15"
33
+ "zod": "4.1.12"
34
34
  },
35
35
  "devDependencies": {
36
36
  "expect-type": "1.2.2",