@infinitetoken/lumber-kit 0.4.20 → 0.4.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/index.d.mts +359 -0
  2. package/dist/index.d.ts +359 -0
  3. package/dist/index.js +124 -0
  4. package/dist/index.mjs +83 -0
  5. package/package.json +22 -25
  6. package/dist/cjs/constants/index.d.ts +0 -3
  7. package/dist/cjs/constants/index.d.ts.map +0 -1
  8. package/dist/cjs/constants/index.js +0 -18
  9. package/dist/cjs/constants/logLevel.d.ts +0 -17
  10. package/dist/cjs/constants/logLevel.d.ts.map +0 -1
  11. package/dist/cjs/constants/logLevel.js +0 -31
  12. package/dist/cjs/constants/subscription.d.ts +0 -27
  13. package/dist/cjs/constants/subscription.d.ts.map +0 -1
  14. package/dist/cjs/constants/subscription.js +0 -28
  15. package/dist/cjs/index.d.ts +0 -4
  16. package/dist/cjs/index.d.ts.map +0 -1
  17. package/dist/cjs/index.js +0 -19
  18. package/dist/cjs/types/app.d.ts +0 -62
  19. package/dist/cjs/types/app.d.ts.map +0 -1
  20. package/dist/cjs/types/app.js +0 -2
  21. package/dist/cjs/types/deviceLink.d.ts +0 -19
  22. package/dist/cjs/types/deviceLink.d.ts.map +0 -1
  23. package/dist/cjs/types/deviceLink.js +0 -2
  24. package/dist/cjs/types/flag.d.ts +0 -14
  25. package/dist/cjs/types/flag.d.ts.map +0 -1
  26. package/dist/cjs/types/flag.js +0 -2
  27. package/dist/cjs/types/index.d.ts +0 -10
  28. package/dist/cjs/types/index.d.ts.map +0 -1
  29. package/dist/cjs/types/index.js +0 -25
  30. package/dist/cjs/types/log.d.ts +0 -59
  31. package/dist/cjs/types/log.d.ts.map +0 -1
  32. package/dist/cjs/types/log.js +0 -2
  33. package/dist/cjs/types/note.d.ts +0 -40
  34. package/dist/cjs/types/note.d.ts.map +0 -1
  35. package/dist/cjs/types/note.js +0 -2
  36. package/dist/cjs/types/response.d.ts +0 -14
  37. package/dist/cjs/types/response.d.ts.map +0 -1
  38. package/dist/cjs/types/response.js +0 -2
  39. package/dist/cjs/types/team.d.ts +0 -34
  40. package/dist/cjs/types/team.d.ts.map +0 -1
  41. package/dist/cjs/types/team.js +0 -2
  42. package/dist/cjs/types/timeseries.d.ts +0 -30
  43. package/dist/cjs/types/timeseries.d.ts.map +0 -1
  44. package/dist/cjs/types/timeseries.js +0 -2
  45. package/dist/cjs/types/user.d.ts +0 -34
  46. package/dist/cjs/types/user.d.ts.map +0 -1
  47. package/dist/cjs/types/user.js +0 -2
  48. package/dist/cjs/utils/index.d.ts +0 -12
  49. package/dist/cjs/utils/index.d.ts.map +0 -1
  50. package/dist/cjs/utils/index.js +0 -33
  51. package/dist/esm/constants/index.d.ts +0 -3
  52. package/dist/esm/constants/index.d.ts.map +0 -1
  53. package/dist/esm/constants/index.js +0 -2
  54. package/dist/esm/constants/logLevel.d.ts +0 -17
  55. package/dist/esm/constants/logLevel.d.ts.map +0 -1
  56. package/dist/esm/constants/logLevel.js +0 -28
  57. package/dist/esm/constants/subscription.d.ts +0 -27
  58. package/dist/esm/constants/subscription.d.ts.map +0 -1
  59. package/dist/esm/constants/subscription.js +0 -25
  60. package/dist/esm/index.d.ts +0 -4
  61. package/dist/esm/index.d.ts.map +0 -1
  62. package/dist/esm/index.js +0 -3
  63. package/dist/esm/package.json +0 -1
  64. package/dist/esm/types/app.d.ts +0 -62
  65. package/dist/esm/types/app.d.ts.map +0 -1
  66. package/dist/esm/types/app.js +0 -1
  67. package/dist/esm/types/deviceLink.d.ts +0 -19
  68. package/dist/esm/types/deviceLink.d.ts.map +0 -1
  69. package/dist/esm/types/deviceLink.js +0 -1
  70. package/dist/esm/types/flag.d.ts +0 -14
  71. package/dist/esm/types/flag.d.ts.map +0 -1
  72. package/dist/esm/types/flag.js +0 -1
  73. package/dist/esm/types/index.d.ts +0 -10
  74. package/dist/esm/types/index.d.ts.map +0 -1
  75. package/dist/esm/types/index.js +0 -9
  76. package/dist/esm/types/log.d.ts +0 -59
  77. package/dist/esm/types/log.d.ts.map +0 -1
  78. package/dist/esm/types/log.js +0 -1
  79. package/dist/esm/types/note.d.ts +0 -40
  80. package/dist/esm/types/note.d.ts.map +0 -1
  81. package/dist/esm/types/note.js +0 -1
  82. package/dist/esm/types/response.d.ts +0 -14
  83. package/dist/esm/types/response.d.ts.map +0 -1
  84. package/dist/esm/types/response.js +0 -1
  85. package/dist/esm/types/team.d.ts +0 -34
  86. package/dist/esm/types/team.d.ts.map +0 -1
  87. package/dist/esm/types/team.js +0 -1
  88. package/dist/esm/types/timeseries.d.ts +0 -30
  89. package/dist/esm/types/timeseries.d.ts.map +0 -1
  90. package/dist/esm/types/timeseries.js +0 -1
  91. package/dist/esm/types/user.d.ts +0 -34
  92. package/dist/esm/types/user.d.ts.map +0 -1
  93. package/dist/esm/types/user.js +0 -1
  94. package/dist/esm/utils/index.d.ts +0 -12
  95. package/dist/esm/utils/index.d.ts.map +0 -1
  96. package/dist/esm/utils/index.js +0 -23
@@ -1,59 +0,0 @@
1
- import { LogLevel } from '../constants';
2
- /**
3
- * Structured log context content.
4
- */
5
- export interface LogContext {
6
- code?: string;
7
- method?: string;
8
- line?: number;
9
- column?: number;
10
- note?: string;
11
- [key: string]: unknown;
12
- }
13
- /**
14
- * Encrypted envelope stored on the server.
15
- * payload = base64(authTag + ciphertext)
16
- * nonce = base64(random IV)
17
- * keyVersion enables future rotation support.
18
- */
19
- export interface LogEncrypted {
20
- nonce: string;
21
- payload: string;
22
- keyVersion: number;
23
- }
24
- /**
25
- * Plaintext shape of log content — encrypted before sending, never stored plaintext on server.
26
- */
27
- export interface LogPayload {
28
- level: LogLevel;
29
- message: string;
30
- requestId?: string;
31
- traceId?: string;
32
- context?: LogContext;
33
- metadata?: Record<string, unknown>;
34
- }
35
- /**
36
- * API response shape for a stored log.
37
- * level is plaintext for server-side notification routing; all content is inside encrypted.
38
- */
39
- export interface LogRecord {
40
- id: string;
41
- createdAt: string;
42
- updatedAt: string;
43
- appId: string;
44
- level: LogLevel;
45
- encrypted: LogEncrypted;
46
- }
47
- /**
48
- * Sync-protocol params for GET /logs.
49
- */
50
- export interface LogsQuery {
51
- appIds?: string[];
52
- levels?: number[];
53
- from?: string;
54
- to?: string;
55
- sort?: string;
56
- limit?: number;
57
- cursor?: string;
58
- }
59
- //# sourceMappingURL=log.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/types/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,QAAQ,CAAA;IACf,SAAS,EAAE,YAAY,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,40 +0,0 @@
1
- /**
2
- * Encrypted note content.
3
- * payload = base64(authTag + ciphertext)
4
- * nonce = base64(random IV)
5
- * keyVersion enables future key rotation.
6
- */
7
- export interface NoteEncrypted {
8
- payload: string;
9
- nonce: string;
10
- keyVersion: number;
11
- }
12
- /**
13
- * A short user-authored note, encrypted with the app key.
14
- * Visible to all members of the associated app.
15
- * Query by teamId in NotesQuery to build a cross-app team feed.
16
- */
17
- export interface NoteRecord {
18
- id: string;
19
- createdAt: string;
20
- updatedAt: string;
21
- appId: string;
22
- userId: string;
23
- logId?: string;
24
- encrypted: NoteEncrypted;
25
- }
26
- /**
27
- * Filter params for GET /notes.
28
- */
29
- export interface NotesQuery {
30
- appId?: string;
31
- teamId?: string;
32
- userId?: string;
33
- logId?: string;
34
- from?: string;
35
- to?: string;
36
- sort?: string;
37
- limit?: number;
38
- cursor?: string;
39
- }
40
- //# sourceMappingURL=note.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../../src/types/note.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IAEjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,SAAS,EAAE,aAAa,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,14 +0,0 @@
1
- export interface ResponseMetadata {
2
- requestId: string;
3
- durationMs: number;
4
- warnings?: string[];
5
- cursor?: string | null;
6
- hasMore?: boolean;
7
- count?: number;
8
- hiddenCount?: number;
9
- }
10
- export interface ApiResponse<T> {
11
- data: T;
12
- metadata: ResponseMetadata;
13
- }
14
- //# sourceMappingURL=response.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/types/response.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAA;IACP,QAAQ,EAAE,gBAAgB,CAAA;CAC3B"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,34 +0,0 @@
1
- import { SubscriptionLevel } from '../constants';
2
- /**
3
- * An organization that owns apps and pays for member usage.
4
- * Team subscriptionLevel takes precedence over individual member levels.
5
- */
6
- export interface TeamRecord {
7
- id: string;
8
- createdAt: string;
9
- updatedAt: string;
10
- name: string;
11
- color?: string;
12
- imageUrl?: string;
13
- subscriptionLevel: SubscriptionLevel;
14
- }
15
- /**
16
- * Membership of a user in a team.
17
- */
18
- export interface TeamMemberRecord {
19
- id: string;
20
- createdAt: string;
21
- updatedAt: string;
22
- teamId: string;
23
- userId: string;
24
- role: 'owner' | 'admin' | 'member';
25
- }
26
- /**
27
- * Filter params for GET /teams.
28
- */
29
- export interface TeamsQuery {
30
- sort?: string;
31
- limit?: number;
32
- cursor?: string;
33
- }
34
- //# sourceMappingURL=team.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../../src/types/team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IAEjB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IAEjB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IAEd,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,30 +0,0 @@
1
- /**
2
- * A single time bucket in a timeseries response.
3
- * date is an ISO date string (YYYY-MM-DD for 'day', ISO datetime for 'hour').
4
- * byLevel optionally breaks down the count per LogLevel for severity-tinted rendering.
5
- */
6
- export interface TimeseriesBucket {
7
- date: string;
8
- count: number;
9
- byLevel?: Partial<Record<number, number>>;
10
- }
11
- /**
12
- * Generic timeseries aggregate response. Reusable across logs, notifications, messages, etc.
13
- */
14
- export interface TimeseriesResponse {
15
- buckets: TimeseriesBucket[];
16
- from: string;
17
- to: string;
18
- interval: 'day' | 'hour';
19
- }
20
- /**
21
- * Filter params for GET /logs/timeseries.
22
- */
23
- export interface LogTimeseriesQuery {
24
- appIds?: string[];
25
- levels?: number[];
26
- from?: string;
27
- to?: string;
28
- interval?: 'day' | 'hour';
29
- }
30
- //# sourceMappingURL=timeseries.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeseries.d.ts","sourceRoot":"","sources":["../../../src/types/timeseries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAC1B"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,34 +0,0 @@
1
- export type Appearance = 'system' | 'dark' | 'light';
2
- export interface PushToken {
3
- token: string;
4
- deviceId?: string;
5
- platform?: 'ios' | 'android' | 'web';
6
- }
7
- export interface NotificationPreference {
8
- enabled?: boolean;
9
- minimumLevel?: number;
10
- lastReadAt?: string;
11
- }
12
- export interface NotificationPreferences {
13
- enabled?: boolean;
14
- minimumLevel?: number;
15
- perApp?: Record<string, NotificationPreference>;
16
- }
17
- /**
18
- * Public user profile returned from API.
19
- */
20
- export interface UserRecord {
21
- id: string;
22
- createdAt: string;
23
- updatedAt: string;
24
- email: string;
25
- name?: string;
26
- publicKey?: string;
27
- appearance?: Appearance;
28
- color?: string;
29
- imageUrl?: string;
30
- agreedToTermsVersion?: string;
31
- notificationPreferences: NotificationPreferences;
32
- pushTokens: PushToken[];
33
- }
34
- //# sourceMappingURL=user.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/types/user.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAEpD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,CAAA;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IAEjB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,uBAAuB,EAAE,uBAAuB,CAAA;IAChD,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,12 +0,0 @@
1
- import { LogLevel, SubscriptionLevel } from '../constants';
2
- import { Appearance, DeviceLinkStatus, TeamMemberRecord } from '../types';
3
- export declare const isValidAppearance: (value: unknown) => value is Appearance;
4
- /** Accepts 3- and 6-digit hex color strings (#rgb, #rrggbb). */
5
- export declare const isValidColor: (value: string) => boolean;
6
- export declare const isValidLogLevel: (value: unknown) => value is LogLevel;
7
- export declare const isValidSubscriptionLevel: (value: unknown) => value is SubscriptionLevel;
8
- export declare const isValidDeviceLinkStatus: (value: unknown) => value is DeviceLinkStatus;
9
- export declare const isValidTeamMemberRole: (value: unknown) => value is TeamMemberRecord["role"];
10
- /** Accepts any valid absolute URL (https://..., http://..., etc.). */
11
- export declare const isValidImageUrl: (value: unknown) => value is string;
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,iBAAiB,EAAsB,MAAM,cAAc,CAAA;AACzF,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAIzE,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,UAA4D,CAAA;AAExH,gEAAgE;AAChE,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,OAA2D,CAAA;AAExG,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,QAA6D,CAAA;AAEvH,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iBAAyF,CAAA;AAI5J,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAA0E,CAAA;AAI5I,eAAO,MAAM,qBAAqB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAgE,CAAA;AAEvJ,sEAAsE;AACtE,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAQzD,CAAA"}
@@ -1,23 +0,0 @@
1
- import { logLevels, subscriptionLevels } from '../constants/index.js';
2
- const appearanceValues = ['system', 'dark', 'light'];
3
- export const isValidAppearance = (value) => appearanceValues.includes(value);
4
- /** Accepts 3- and 6-digit hex color strings (#rgb, #rrggbb). */
5
- export const isValidColor = (value) => /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(value);
6
- export const isValidLogLevel = (value) => logLevels.includes(value);
7
- export const isValidSubscriptionLevel = (value) => subscriptionLevels.includes(value);
8
- const deviceLinkStatuses = ['pending', 'approved', 'denied'];
9
- export const isValidDeviceLinkStatus = (value) => deviceLinkStatuses.includes(value);
10
- const teamMemberRoles = ['owner', 'admin', 'member'];
11
- export const isValidTeamMemberRole = (value) => teamMemberRoles.includes(value);
12
- /** Accepts any valid absolute URL (https://..., http://..., etc.). */
13
- export const isValidImageUrl = (value) => {
14
- if (typeof value !== 'string' || value.length === 0)
15
- return false;
16
- try {
17
- new URL(value);
18
- return true;
19
- }
20
- catch {
21
- return false;
22
- }
23
- };