@guinetik/primitives-ts 0.8.4 → 0.10.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.
@@ -9,7 +9,7 @@ export type AdminUserStatus = 'invited' | 'active' | 'disabled';
9
9
  /** Avatar resolution strategy for admin users. */
10
10
  export type AvatarSource = 'gravatar' | 'google' | 'custom';
11
11
  /** Feature keys that gate admin panel pages and API areas. */
12
- export type FeatureKey = 'dashboard' | 'site' | 'runtime' | 'files' | 'launchpad' | 'users' | 'system' | 'chat' | 'agents';
12
+ export type FeatureKey = 'dashboard' | 'site' | 'runtime' | 'files' | 'launchpad' | 'users' | 'system' | 'chat' | 'agents' | 'analytics' | 'email';
13
13
  /** Canonical ordered list of grantable features. */
14
14
  export declare const FEATURE_CATALOG: readonly FeatureKey[];
15
15
  /** Human-readable labels for feature checklist UI. */
@@ -1 +1 @@
1
- {"version":3,"file":"access.types.d.ts","sourceRoot":"","sources":["../src/access.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access.types.d.ts","sourceRoot":"","sources":["../src/access.types.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ exports.FEATURE_CATALOG = [
21
21
  'system',
22
22
  'chat',
23
23
  'agents',
24
+ 'email',
25
+ 'analytics',
24
26
  ];
25
27
  /** Human-readable labels for feature checklist UI. */
26
28
  exports.FEATURE_LABELS = {
@@ -33,6 +35,8 @@ exports.FEATURE_LABELS = {
33
35
  system: 'System monitoring',
34
36
  chat: 'Chat',
35
37
  agents: 'Agents',
38
+ analytics: 'Analytics',
39
+ email: 'Email',
36
40
  };
37
41
  /**
38
42
  * Returns true when the value is a known feature key.
@@ -33,6 +33,26 @@ describe('access.types', () => {
33
33
  });
34
34
  it('exposes a stable feature catalog', () => {
35
35
  expect(access_types_1.FEATURE_CATALOG).toContain('users');
36
- expect(access_types_1.FEATURE_CATALOG.length).toBe(9);
36
+ expect(access_types_1.FEATURE_CATALOG.length).toBe(11);
37
+ });
38
+ });
39
+ describe('email feature key', () => {
40
+ it('includes email in the catalog with a label', () => {
41
+ expect(access_types_1.FEATURE_CATALOG).toContain('email');
42
+ expect(access_types_1.FEATURE_LABELS.email).toBe('Email');
43
+ expect((0, access_types_1.isFeatureKey)('email')).toBe(true);
44
+ });
45
+ });
46
+ describe('analytics feature key', () => {
47
+ it('includes analytics in the catalog with a label', () => {
48
+ expect(access_types_1.FEATURE_CATALOG).toContain('analytics');
49
+ expect(access_types_1.FEATURE_LABELS.analytics).toBe('Analytics');
50
+ expect((0, access_types_1.isFeatureKey)('analytics')).toBe(true);
51
+ expect(access_types_1.FEATURE_CATALOG.length).toBe(11);
52
+ });
53
+ it('grants analytics only when listed for guests', () => {
54
+ const guest = { role: 'guest', features: ['analytics'] };
55
+ expect((0, access_types_1.userHasFeature)(guest, 'analytics')).toBe(true);
56
+ expect((0, access_types_1.userHasFeature)(guest, 'system')).toBe(false);
37
57
  });
38
58
  });
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Google Analytics portal types shared by API and Admin.
3
+ * Refresh tokens never appear in these types.
4
+ */
5
+ /** Saved report window. Maps to GA `NdaysAgo` .. `yesterday`. */
6
+ export type AnalyticsDateRangePreset = '7d' | '28d' | '90d';
7
+ /** Connection + setup as returned to the client (no secrets). */
8
+ export interface AnalyticsConnectionStatus {
9
+ connected: boolean;
10
+ googleEmail?: string;
11
+ selectedAccountId?: string;
12
+ selectedAccountName?: string;
13
+ selectedPropertyId?: string;
14
+ selectedPropertyName?: string;
15
+ dateRangePreset: AnalyticsDateRangePreset;
16
+ }
17
+ /** One GA4 property under an account. */
18
+ export interface GaPropertySummary {
19
+ /** Admin API resource name, e.g. `properties/123456`. */
20
+ propertyId: string;
21
+ displayName: string;
22
+ }
23
+ /** One GA account with child properties. */
24
+ export interface GaAccountSummary {
25
+ /** Admin API resource name, e.g. `accounts/123`. */
26
+ accountId: string;
27
+ displayName: string;
28
+ properties: GaPropertySummary[];
29
+ }
30
+ /** Totals card metrics for the selected property. */
31
+ export interface AnalyticsReportTotals {
32
+ activeUsers: number;
33
+ sessions: number;
34
+ screenPageViews: number;
35
+ }
36
+ /** One row in the top-pages table. */
37
+ export interface AnalyticsTopPageRow {
38
+ pagePath: string;
39
+ pageTitle: string;
40
+ screenPageViews: number;
41
+ }
42
+ /** v1 report payload. */
43
+ export interface AnalyticsReport {
44
+ propertyId: string;
45
+ dateRangePreset: AnalyticsDateRangePreset;
46
+ startDate: string;
47
+ endDate: string;
48
+ totals: AnalyticsReportTotals;
49
+ topPages: AnalyticsTopPageRow[];
50
+ }
51
+ //# sourceMappingURL=analytics.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.types.d.ts","sourceRoot":"","sources":["../src/analytics.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iEAAiE;AACjE,MAAM,MAAM,wBAAwB,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5D,iEAAiE;AACjE,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,wBAAwB,CAAC;CAC3C;AAED,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,qDAAqD;AACrD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,sCAAsC;AACtC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,wBAAwB,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Google Analytics portal types shared by API and Admin.
4
+ * Refresh tokens never appear in these types.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Email module types: provider configuration, sending, and API keys.
3
+ */
4
+ import type { FirestoreDocument } from './firestore.types';
5
+ /** Supported outbound email providers. */
6
+ export type EmailProviderType = 'resend' | 'mailersend' | 'smtp';
7
+ /** Settings shared by every provider type. */
8
+ export interface EmailProviderSettingsBase {
9
+ fromEmail: string;
10
+ fromName?: string;
11
+ }
12
+ /** Resend (https://resend.com) settings. */
13
+ export interface ResendSettings extends EmailProviderSettingsBase {
14
+ apiKey: string;
15
+ }
16
+ /** MailerSend (https://mailersend.com) settings. */
17
+ export interface MailerSendSettings extends EmailProviderSettingsBase {
18
+ apiKey: string;
19
+ }
20
+ /** Generic SMTP settings (nodemailer). */
21
+ export interface SmtpSettings extends EmailProviderSettingsBase {
22
+ host: string;
23
+ port: number;
24
+ secure: boolean;
25
+ username: string;
26
+ password: string;
27
+ }
28
+ export type EmailProviderSettings = ResendSettings | MailerSendSettings | SmtpSettings;
29
+ /** A configured provider with decrypted settings (server-internal). */
30
+ export interface EmailProviderConfig {
31
+ id: string;
32
+ type: EmailProviderType;
33
+ name: string;
34
+ enabled: boolean;
35
+ settings: EmailProviderSettings;
36
+ }
37
+ /** Provider settings safe to return to clients (no secrets). */
38
+ export interface EmailProviderPublicSettings {
39
+ fromEmail: string;
40
+ fromName?: string;
41
+ host?: string;
42
+ port?: number;
43
+ secure?: boolean;
44
+ username?: string;
45
+ }
46
+ /** Provider config as exposed by the API: secrets stripped, flags instead. */
47
+ export interface EmailProviderConfigPublic {
48
+ id: string;
49
+ type: EmailProviderType;
50
+ name: string;
51
+ enabled: boolean;
52
+ active: boolean;
53
+ settings: EmailProviderPublicSettings;
54
+ hasApiKey: boolean;
55
+ hasPassword: boolean;
56
+ }
57
+ /** Payload for POST /email/send and the admin test send. */
58
+ export interface SendEmailRequest {
59
+ to: string[];
60
+ subject: string;
61
+ html: string;
62
+ text?: string;
63
+ /** Optional from-address override; defaults to the provider's fromEmail. */
64
+ from?: string;
65
+ }
66
+ /** Result of a successful send. */
67
+ export interface SendEmailResult {
68
+ id: string;
69
+ provider: EmailProviderType;
70
+ accepted: string[];
71
+ timestamp: string;
72
+ }
73
+ /** Result of a provider connection check. */
74
+ export interface EmailVerifyResult {
75
+ ok: boolean;
76
+ error?: string;
77
+ }
78
+ /** API key metadata — never contains the full key. */
79
+ export interface EmailApiKey {
80
+ id: string;
81
+ name: string;
82
+ /** Free-form attribution label (e.g. agents@guinetik.com). Not an account link. */
83
+ owner?: string;
84
+ prefix: string;
85
+ createdAt: string;
86
+ lastUsedAt?: string;
87
+ }
88
+ /** Returned once, at creation time only. */
89
+ export interface EmailApiKeyCreated extends EmailApiKey {
90
+ key: string;
91
+ }
92
+ /** email-providers doc. Secret fields stored as enc:v1:... strings. */
93
+ export interface EmailProviderDocument extends FirestoreDocument {
94
+ type: EmailProviderType;
95
+ name: string;
96
+ enabled: boolean;
97
+ settings: Record<string, string | number | boolean>;
98
+ }
99
+ /** email-settings singleton doc. */
100
+ export interface EmailSettingsDocument extends FirestoreDocument {
101
+ activeProviderId: string | null;
102
+ }
103
+ /** email-api-keys doc. */
104
+ export interface EmailApiKeyDocument extends FirestoreDocument {
105
+ name: string;
106
+ owner?: string;
107
+ keyHash: string;
108
+ prefix: string;
109
+ lastUsedAt?: Date;
110
+ }
111
+ //# sourceMappingURL=email.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.types.d.ts","sourceRoot":"","sources":["../src/email.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * Email module types: provider configuration, sending, and API keys.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/index.d.ts CHANGED
@@ -21,6 +21,8 @@ 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 './email.types';
25
+ export * from './analytics.types';
24
26
  export type { Security, SecurityChallengeOptions, SecurityChallengeResult } from './security.interface';
25
27
  export { SecurityLevel } from './security.interface';
26
28
  //# sourceMappingURL=index.d.ts.map
@@ -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,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,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,5 +52,9 @@ __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
+ // Email module types
56
+ __exportStar(require("./email.types"), exports);
57
+ // Google Analytics portal types
58
+ __exportStar(require("./analytics.types"), exports);
55
59
  var security_interface_1 = require("./security.interface");
56
60
  Object.defineProperty(exports, "SecurityLevel", { enumerable: true, get: function () { return security_interface_1.SecurityLevel; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guinetik/primitives-ts",
3
- "version": "0.8.4",
3
+ "version": "0.10.0",
4
4
  "description": "Shared TypeScript primitives for Guinetik projects",
5
5
  "author": "Guinetik",
6
6
  "license": "MIT",