@guinetik/primitives-ts 0.11.0 → 0.13.0

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.
@@ -32,7 +32,7 @@ exports.FEATURE_LABELS = {
32
32
  files: 'File uploads',
33
33
  launchpad: 'Launchpad',
34
34
  users: 'Users',
35
- system: 'System monitoring',
35
+ system: 'Host',
36
36
  chat: 'Chat',
37
37
  agents: 'Agents',
38
38
  analytics: 'Analytics',
@@ -34,6 +34,7 @@ describe('access.types', () => {
34
34
  it('exposes a stable feature catalog', () => {
35
35
  expect(access_types_1.FEATURE_CATALOG).toContain('users');
36
36
  expect(access_types_1.FEATURE_CATALOG.length).toBe(11);
37
+ expect(access_types_1.FEATURE_LABELS.system).toBe('Host');
37
38
  });
38
39
  });
39
40
  describe('email feature key', () => {
@@ -0,0 +1,32 @@
1
+ export type HomeWidgetType = 'launchpad' | 'clock' | 'webpage';
2
+ export type HomeWidgetColSpan = 1 | 2 | 3;
3
+ export interface LaunchpadWidgetConfig {
4
+ }
5
+ export interface ClockWidgetConfig {
6
+ timeZone: string;
7
+ preset: string;
8
+ /** Display the time on a 12-hour clock. Defaults to 24-hour when absent. */
9
+ hour12?: boolean;
10
+ }
11
+ export interface WebpageWidgetConfig {
12
+ url: string;
13
+ }
14
+ export type HomeWidgetConfig = LaunchpadWidgetConfig | ClockWidgetConfig | WebpageWidgetConfig;
15
+ export interface HomeDashboardWidget {
16
+ id: string;
17
+ type: HomeWidgetType;
18
+ colSpan: HomeWidgetColSpan;
19
+ order: number;
20
+ config: HomeWidgetConfig;
21
+ }
22
+ export interface HomeDashboard {
23
+ version: 1;
24
+ widgets: HomeDashboardWidget[];
25
+ }
26
+ export declare const HOME_WIDGET_TYPES: readonly HomeWidgetType[];
27
+ export declare const MAX_HOME_WIDGETS = 30;
28
+ export declare const CLOCK_DEFAULT_TIMEZONE = "America/Sao_Paulo";
29
+ export declare const CLOCK_DEFAULT_PRESET = "aurora";
30
+ export declare const CLOCK_PRESETS: readonly ["aurora", "grid", "binary"];
31
+ export declare function isHomeWidgetType(value: string): value is HomeWidgetType;
32
+ //# sourceMappingURL=home-dashboard.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home-dashboard.types.d.ts","sourceRoot":"","sources":["../src/home-dashboard.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,MAAM,WAAW,qBAAqB;CAErC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAItD,CAAC;AAEF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,eAAO,MAAM,aAAa,uCAAwC,CAAC;AAEnE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CLOCK_PRESETS = exports.CLOCK_DEFAULT_PRESET = exports.CLOCK_DEFAULT_TIMEZONE = exports.MAX_HOME_WIDGETS = exports.HOME_WIDGET_TYPES = void 0;
4
+ exports.isHomeWidgetType = isHomeWidgetType;
5
+ exports.HOME_WIDGET_TYPES = [
6
+ 'launchpad',
7
+ 'clock',
8
+ 'webpage',
9
+ ];
10
+ exports.MAX_HOME_WIDGETS = 30;
11
+ exports.CLOCK_DEFAULT_TIMEZONE = 'America/Sao_Paulo';
12
+ exports.CLOCK_DEFAULT_PRESET = 'aurora';
13
+ exports.CLOCK_PRESETS = ['aurora', 'grid', 'binary'];
14
+ function isHomeWidgetType(value) {
15
+ return exports.HOME_WIDGET_TYPES.includes(value);
16
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=home-dashboard.types.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home-dashboard.types.spec.d.ts","sourceRoot":"","sources":["../src/home-dashboard.types.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const website_firestore_types_1 = require("./website-firestore.types");
4
+ const home_dashboard_types_1 = require("./home-dashboard.types");
5
+ describe('home dashboard types', () => {
6
+ it('registers the Firestore collection', () => {
7
+ expect(website_firestore_types_1.FIRESTORE_COLLECTIONS.HOME_DASHBOARDS).toBe('home-dashboards');
8
+ });
9
+ it('accepts the three shipped types and rejects unknown ones', () => {
10
+ expect(home_dashboard_types_1.HOME_WIDGET_TYPES).toEqual(['launchpad', 'clock', 'webpage']);
11
+ expect((0, home_dashboard_types_1.isHomeWidgetType)('clock')).toBe(true);
12
+ expect((0, home_dashboard_types_1.isHomeWidgetType)('weather')).toBe(false);
13
+ });
14
+ it('caps a board at 30 widgets and defaults the clock', () => {
15
+ expect(home_dashboard_types_1.MAX_HOME_WIDGETS).toBe(30);
16
+ expect(home_dashboard_types_1.CLOCK_DEFAULT_TIMEZONE).toBe('America/Sao_Paulo');
17
+ expect(home_dashboard_types_1.CLOCK_DEFAULT_PRESET).toBe('aurora');
18
+ });
19
+ });
20
+ describe('clock presets', () => {
21
+ it('includes the binary preset', () => {
22
+ expect(home_dashboard_types_1.CLOCK_PRESETS).toContain('binary');
23
+ });
24
+ it('keeps aurora as the default and a member of the list', () => {
25
+ expect(home_dashboard_types_1.CLOCK_DEFAULT_PRESET).toBe('aurora');
26
+ expect(home_dashboard_types_1.CLOCK_PRESETS).toContain(home_dashboard_types_1.CLOCK_DEFAULT_PRESET);
27
+ });
28
+ it('allows an optional hour12 flag on a clock config', () => {
29
+ const twentyFour = { timeZone: 'UTC', preset: 'grid' };
30
+ const twelve = { timeZone: 'UTC', preset: 'grid', hour12: true };
31
+ expect(twentyFour.hour12).toBeUndefined();
32
+ expect(twelve.hour12).toBe(true);
33
+ });
34
+ });
package/dist/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export * from './type-guards';
21
21
  export * from './agent.types';
22
22
  export * from './file.types';
23
23
  export * from './launchpad.types';
24
+ export * from './home-dashboard.types';
24
25
  export * from './email.types';
25
26
  export * from './analytics.types';
26
27
  export type { Security, SecurityChallengeOptions, SecurityChallengeResult } from './security.interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,cAAc,CAAC;AAG7B,cAAc,4BAA4B,CAAC;AAG3C,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAG7B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAG9B,cAAc,mBAAmB,CAAC;AAGlC,YAAY,EAAE,QAAQ,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,cAAc,CAAC;AAG7B,cAAc,4BAA4B,CAAC;AAG3C,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAG7B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,eAAe,CAAC;AAG9B,cAAc,mBAAmB,CAAC;AAGlC,YAAY,EAAE,QAAQ,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -52,6 +52,8 @@ __exportStar(require("./agent.types"), exports);
52
52
  __exportStar(require("./file.types"), exports);
53
53
  // Launchpad bookmark board types
54
54
  __exportStar(require("./launchpad.types"), exports);
55
+ // Per-user home dashboard widget types
56
+ __exportStar(require("./home-dashboard.types"), exports);
55
57
  // Email module types
56
58
  __exportStar(require("./email.types"), exports);
57
59
  // Google Analytics portal types
@@ -136,6 +136,7 @@ export declare const FIRESTORE_COLLECTIONS: {
136
136
  readonly TOTP_SECRETS: "totp_secrets";
137
137
  readonly LAUNCHPAD_GROUPS: "launchpad-groups";
138
138
  readonly LAUNCHPAD_ITEMS: "launchpad-items";
139
+ readonly HOME_DASHBOARDS: "home-dashboards";
139
140
  };
140
141
  /**
141
142
  * Firestore document IDs for singleton documents
@@ -1 +1 @@
1
- {"version":3,"file":"website-firestore.types.d.ts","sourceRoot":"","sources":["../src/website-firestore.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"website-firestore.types.d.ts","sourceRoot":"","sources":["../src/website-firestore.types.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ exports.FIRESTORE_COLLECTIONS = {
25
25
  TOTP_SECRETS: 'totp_secrets',
26
26
  LAUNCHPAD_GROUPS: 'launchpad-groups',
27
27
  LAUNCHPAD_ITEMS: 'launchpad-items',
28
+ HOME_DASHBOARDS: 'home-dashboards',
28
29
  };
29
30
  /**
30
31
  * Firestore document IDs for singleton documents
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guinetik/primitives-ts",
3
- "version": "0.11.0",
3
+ "version": "0.13.0",
4
4
  "description": "Shared TypeScript primitives for Guinetik projects",
5
5
  "author": "Guinetik",
6
6
  "license": "MIT",