@open-mercato/shared 0.4.11-develop.1534.b42f9ddcb3 → 0.4.11-develop.1536.bce594656c

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,4 +1,4 @@
1
- const APP_VERSION = "0.4.11-develop.1534.b42f9ddcb3";
1
+ const APP_VERSION = "0.4.11-develop.1536.bce594656c";
2
2
  const appVersion = APP_VERSION;
3
3
  export {
4
4
  APP_VERSION,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/version.ts"],
4
- "sourcesContent": ["// Build-time generated version\nexport const APP_VERSION = '0.4.11-develop.1534.b42f9ddcb3'\nexport const appVersion = APP_VERSION\n"],
4
+ "sourcesContent": ["// Build-time generated version\nexport const APP_VERSION = '0.4.11-develop.1536.bce594656c'\nexport const appVersion = APP_VERSION\n"],
5
5
  "mappings": "AACO,MAAM,cAAc;AACpB,MAAM,aAAa;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-mercato/shared",
3
- "version": "0.4.11-develop.1534.b42f9ddcb3",
3
+ "version": "0.4.11-develop.1536.bce594656c",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
@@ -0,0 +1,56 @@
1
+ import {
2
+ FALSE_VALUES,
3
+ TRUE_VALUES,
4
+ parseBooleanFlag,
5
+ parseBooleanFromUnknown,
6
+ parseBooleanToken,
7
+ parseBooleanWithDefault,
8
+ } from '../boolean'
9
+
10
+ describe('boolean helpers', () => {
11
+ it('parses recognized truthy tokens regardless of case or surrounding whitespace', () => {
12
+ for (const token of TRUE_VALUES) {
13
+ expect(parseBooleanToken(token)).toBe(true)
14
+ expect(parseBooleanToken(` ${token.toUpperCase()} `)).toBe(true)
15
+ }
16
+ })
17
+
18
+ it('parses recognized falsy tokens regardless of case or surrounding whitespace', () => {
19
+ for (const token of FALSE_VALUES) {
20
+ expect(parseBooleanToken(token)).toBe(false)
21
+ expect(parseBooleanToken(` ${token.toUpperCase()} `)).toBe(false)
22
+ }
23
+ })
24
+
25
+ it('returns null for blank, invalid, or non-string token inputs', () => {
26
+ expect(parseBooleanToken('')).toBeNull()
27
+ expect(parseBooleanToken(' ')).toBeNull()
28
+ expect(parseBooleanToken('maybe')).toBeNull()
29
+ expect(parseBooleanToken(null)).toBeNull()
30
+ expect(parseBooleanToken(undefined)).toBeNull()
31
+ })
32
+
33
+ it('falls back only when the token cannot be parsed', () => {
34
+ expect(parseBooleanWithDefault('enabled', false)).toBe(true)
35
+ expect(parseBooleanWithDefault('disabled', true)).toBe(false)
36
+ expect(parseBooleanWithDefault('unknown', true)).toBe(true)
37
+ expect(parseBooleanWithDefault(undefined, false)).toBe(false)
38
+ })
39
+
40
+ it('returns undefined for unparseable flags while preserving parsed booleans', () => {
41
+ expect(parseBooleanFlag('yes')).toBe(true)
42
+ expect(parseBooleanFlag('no')).toBe(false)
43
+ expect(parseBooleanFlag('maybe')).toBeUndefined()
44
+ expect(parseBooleanFlag()).toBeUndefined()
45
+ })
46
+
47
+ it('parses booleans from unknown values without coercing unsupported types', () => {
48
+ expect(parseBooleanFromUnknown(true)).toBe(true)
49
+ expect(parseBooleanFromUnknown(false)).toBe(false)
50
+ expect(parseBooleanFromUnknown(' on ')).toBe(true)
51
+ expect(parseBooleanFromUnknown(' off ')).toBe(false)
52
+ expect(parseBooleanFromUnknown('unexpected')).toBeNull()
53
+ expect(parseBooleanFromUnknown(1)).toBeNull()
54
+ expect(parseBooleanFromUnknown({ value: 'true' })).toBeNull()
55
+ })
56
+ })