@guinetik/primitives-ts 0.1.1 → 0.2.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.
package/README.md CHANGED
@@ -1,87 +1,87 @@
1
- # @guinetik/primitives-ts
2
-
3
- Shared TypeScript primitives for Guinetik projects.
4
-
5
- ## Overview
6
-
7
- This package contains pure TypeScript type definitions and interfaces used across the Guinetik ecosystem. It provides a single source of truth for data contracts between frontend and backend applications.
8
-
9
- ## Features
10
-
11
- - ✅ **Pure TypeScript** - No runtime dependencies
12
- - ✅ **Type-safe** - Full TypeScript support with declaration files
13
- - ✅ **Lightweight** - Minimal bundle size
14
- - ✅ **Universal** - Works in Node.js, browsers, and other JavaScript runtimes
15
-
16
- ## Installation
17
-
18
- ```bash
19
- npm install @guinetik/primitives-ts
20
- ```
21
-
22
- ## Usage
23
-
24
- ```typescript
25
- import { User, SystemMetrics, Container } from '@guinetik/primitives-ts';
26
-
27
- // Use the types in your application
28
- const user: User = {
29
- uid: '123',
30
- email: 'user@example.com',
31
- displayName: 'John Doe'
32
- };
33
-
34
- const metrics: SystemMetrics = {
35
- cpu: { usage: 45.2, cores: 4, model: 'Intel Xeon' },
36
- memory: { used: 8, total: 16, percentage: 50 },
37
- disk: { used: 100, total: 500, percentage: 20 },
38
- uptime: 86400,
39
- timestamp: new Date()
40
- };
41
- ```
42
-
43
- ## Type Categories
44
-
45
- ### Authentication (`auth.types.ts`)
46
- - `User` - User information
47
- - `AuthResponse` - Authentication response
48
- - `AuthProvider` - Authentication provider types
49
- - `UserUpdateData` - User profile update data
50
- - `LoginPayload` - Login request payload
51
-
52
- ### System Monitoring (`system.types.ts`)
53
- - `SystemMetrics` - System metrics (CPU, memory, disk)
54
- - `Container` - Docker container information
55
- - `LogEntry` - Container log entry
56
- - `NetworkStats` - Network statistics
57
- - `DeploymentInfo` - Deployment information
58
- - `CommandResult` - Shell command execution result
59
-
60
- ### Website Content (`website.types.ts`)
61
- - `SiteContent` - Full site content structure
62
- - `SiteMetadata` - Site metadata
63
- - `Menu`, `MenuItem` - Navigation menu
64
- - `Theme`, `ThemeConfig` - Theme configuration
65
- - `Card`, `Tag` - Project/demo cards with tags
66
- - `Experiment` - CodePen experiments
67
- - `AboutSection`, `ProjectsSection`, `DemosSection`, `ReposSection` - Content sections
68
-
69
- ## Development
70
-
71
- ```bash
72
- # Build the package
73
- npm run build
74
-
75
- # The build output will be in the dist/ folder
76
- ```
77
-
78
- ## Publishing
79
-
80
- ```bash
81
- # Publish to npm (requires authentication)
82
- npm publish --access public
83
- ```
84
-
85
- ## License
86
-
87
- MIT © Guinetik
1
+ # @guinetik/primitives-ts
2
+
3
+ Shared TypeScript primitives for Guinetik projects.
4
+
5
+ ## Overview
6
+
7
+ This package contains pure TypeScript type definitions and interfaces used across the Guinetik ecosystem. It provides a single source of truth for data contracts between frontend and backend applications.
8
+
9
+ ## Features
10
+
11
+ - ✅ **Pure TypeScript** - No runtime dependencies
12
+ - ✅ **Type-safe** - Full TypeScript support with declaration files
13
+ - ✅ **Lightweight** - Minimal bundle size
14
+ - ✅ **Universal** - Works in Node.js, browsers, and other JavaScript runtimes
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install @guinetik/primitives-ts
20
+ ```
21
+
22
+ ## Usage
23
+
24
+ ```typescript
25
+ import { User, SystemMetrics, Container } from '@guinetik/primitives-ts';
26
+
27
+ // Use the types in your application
28
+ const user: User = {
29
+ uid: '123',
30
+ email: 'user@example.com',
31
+ displayName: 'John Doe'
32
+ };
33
+
34
+ const metrics: SystemMetrics = {
35
+ cpu: { usage: 45.2, cores: 4, model: 'Intel Xeon' },
36
+ memory: { used: 8, total: 16, percentage: 50 },
37
+ disk: { used: 100, total: 500, percentage: 20 },
38
+ uptime: 86400,
39
+ timestamp: new Date()
40
+ };
41
+ ```
42
+
43
+ ## Type Categories
44
+
45
+ ### Authentication (`auth.types.ts`)
46
+ - `User` - User information
47
+ - `AuthResponse` - Authentication response
48
+ - `AuthProvider` - Authentication provider types
49
+ - `UserUpdateData` - User profile update data
50
+ - `LoginPayload` - Login request payload
51
+
52
+ ### System Monitoring (`system.types.ts`)
53
+ - `SystemMetrics` - System metrics (CPU, memory, disk)
54
+ - `Container` - Docker container information
55
+ - `LogEntry` - Container log entry
56
+ - `NetworkStats` - Network statistics
57
+ - `DeploymentInfo` - Deployment information
58
+ - `CommandResult` - Shell command execution result
59
+
60
+ ### Website Content (`website.types.ts`)
61
+ - `SiteContent` - Full site content structure
62
+ - `SiteMetadata` - Site metadata
63
+ - `Menu`, `MenuItem` - Navigation menu
64
+ - `Theme`, `ThemeConfig` - Theme configuration
65
+ - `Card`, `Tag` - Project/demo cards with tags
66
+ - `Experiment` - CodePen experiments
67
+ - `AboutSection`, `ProjectsSection`, `DemosSection`, `ReposSection` - Content sections
68
+
69
+ ## Development
70
+
71
+ ```bash
72
+ # Build the package
73
+ npm run build
74
+
75
+ # The build output will be in the dist/ folder
76
+ ```
77
+
78
+ ## Publishing
79
+
80
+ ```bash
81
+ # Publish to npm (requires authentication)
82
+ npm publish --access public
83
+ ```
84
+
85
+ ## License
86
+
87
+ MIT © Guinetik
package/dist/index.d.ts CHANGED
@@ -12,4 +12,5 @@ export * from './system.types';
12
12
  export * from './website.types';
13
13
  export * from './firestore.types';
14
14
  export * from './website-firestore.types';
15
+ export * from './totp.types';
15
16
  //# 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,iBAAiB,CAAC;AAGhC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,2BAA2B,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,iBAAiB,CAAC;AAGhC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -33,3 +33,5 @@ __exportStar(require("./website.types"), exports);
33
33
  __exportStar(require("./firestore.types"), exports);
34
34
  // Website Firestore document types (backend only)
35
35
  __exportStar(require("./website-firestore.types"), exports);
36
+ // TOTP/2FA types
37
+ __exportStar(require("./totp.types"), exports);
@@ -0,0 +1,95 @@
1
+ /**
2
+ * TOTP/2FA Types
3
+ * Types for Time-based One-Time Password authentication
4
+ */
5
+ import { FirestoreDocument } from './firestore.types';
6
+ /**
7
+ * Firestore document for TOTP secrets collection
8
+ * Collection: totp_secrets
9
+ * Document ID: Firebase user ID
10
+ *
11
+ * Stores TOTP secret keys for two-factor authentication.
12
+ * One document per user, identified by their Firebase UID.
13
+ */
14
+ export interface TotpSecretDocument extends FirestoreDocument {
15
+ /** TOTP secret key (Base32 encoded) */
16
+ secret: string;
17
+ /** Is 2FA enabled for this user? */
18
+ enabled: boolean;
19
+ /** Document creation timestamp */
20
+ created_at: Date | any;
21
+ /** Document last update timestamp */
22
+ updated_at: Date | any;
23
+ }
24
+ /**
25
+ * Request to setup 2FA for a user
26
+ */
27
+ export interface TotpSetupRequest {
28
+ /** Firebase user ID */
29
+ uid: string;
30
+ }
31
+ /**
32
+ * Response from 2FA setup endpoint
33
+ */
34
+ export interface TotpSetupResponse {
35
+ /** Base32 encoded TOTP secret */
36
+ secret: string;
37
+ /** QR code as base64 data URI */
38
+ qr_code: string;
39
+ /** OTPAuth URI for manual entry */
40
+ uri: string;
41
+ }
42
+ /**
43
+ * Request to verify a TOTP code
44
+ */
45
+ export interface TotpVerifyRequest {
46
+ /** Firebase user ID */
47
+ uid: string;
48
+ /** 6-digit TOTP code */
49
+ code: string;
50
+ }
51
+ /**
52
+ * Response from TOTP verification
53
+ */
54
+ export interface TotpVerifyResponse {
55
+ /** Was the code valid? */
56
+ verified: boolean;
57
+ /** Human-readable message */
58
+ message: string;
59
+ }
60
+ /**
61
+ * Request to disable 2FA
62
+ */
63
+ export interface TotpDisableRequest {
64
+ /** Firebase user ID */
65
+ uid: string;
66
+ /** Current valid TOTP code (required to confirm) */
67
+ code: string;
68
+ }
69
+ /**
70
+ * Response from checking 2FA status
71
+ */
72
+ export interface TotpStatusResponse {
73
+ /** Is user enrolled in 2FA? (has a secret) */
74
+ enrolled: boolean;
75
+ /** Is 2FA currently enabled? */
76
+ enabled: boolean;
77
+ }
78
+ /**
79
+ * TOTP collection name in Firestore
80
+ */
81
+ export declare const TOTP_COLLECTION: "totp_secrets";
82
+ /**
83
+ * TOTP configuration constants
84
+ */
85
+ export declare const TOTP_CONFIG: {
86
+ /** Number of digits in TOTP code */
87
+ readonly DIGITS: 6;
88
+ /** Time step in seconds */
89
+ readonly INTERVAL: 30;
90
+ /** Issuer name displayed in authenticator apps */
91
+ readonly ISSUER: "Guinetik";
92
+ /** Algorithm used for TOTP */
93
+ readonly ALGORITHM: "SHA1";
94
+ };
95
+ //# sourceMappingURL=totp.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"totp.types.d.ts","sourceRoot":"","sources":["../src/totp.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAMtD;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IAEf,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IAEjB,kCAAkC;IAClC,UAAU,EAAE,IAAI,GAAG,GAAG,CAAC;IAEvB,qCAAqC;IACrC,UAAU,EAAE,IAAI,GAAG,GAAG,CAAC;CACxB;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IAEf,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAEhB,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IAEZ,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAElB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IAEZ,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAElB,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAG,cAAuB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,oCAAoC;;IAGpC,2BAA2B;;IAG3B,kDAAkD;;IAGlD,8BAA8B;;CAEtB,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ /**
3
+ * TOTP/2FA Types
4
+ * Types for Time-based One-Time Password authentication
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TOTP_CONFIG = exports.TOTP_COLLECTION = void 0;
8
+ // ============================================================================
9
+ // Constants
10
+ // ============================================================================
11
+ /**
12
+ * TOTP collection name in Firestore
13
+ */
14
+ exports.TOTP_COLLECTION = 'totp_secrets';
15
+ /**
16
+ * TOTP configuration constants
17
+ */
18
+ exports.TOTP_CONFIG = {
19
+ /** Number of digits in TOTP code */
20
+ DIGITS: 6,
21
+ /** Time step in seconds */
22
+ INTERVAL: 30,
23
+ /** Issuer name displayed in authenticator apps */
24
+ ISSUER: 'Guinetik',
25
+ /** Algorithm used for TOTP */
26
+ ALGORITHM: 'SHA1',
27
+ };
@@ -109,6 +109,19 @@ export interface ExperimentDocument extends FirestoreDocument, Experiment {
109
109
  /** Optional technology tags */
110
110
  tags?: string[];
111
111
  }
112
+ /**
113
+ * Firestore document for runtime-config collection
114
+ * Collection: runtime-config
115
+ * Document ID: configuration key (e.g., 'adminEmail', 'GITHUB_TOKEN')
116
+ *
117
+ * Runtime configuration values that can be updated without redeployment
118
+ */
119
+ export interface RuntimeConfigDocument extends FirestoreDocument {
120
+ /** Configuration key */
121
+ key: string;
122
+ /** Configuration value (can be string, number, boolean, or object) */
123
+ value: string | number | boolean | Record<string, any>;
124
+ }
112
125
  /**
113
126
  * Firestore collection names
114
127
  */
@@ -119,6 +132,8 @@ export declare const FIRESTORE_COLLECTIONS: {
119
132
  readonly PROJECTS: "website-projects";
120
133
  readonly DEMOS: "website-demos";
121
134
  readonly EXPERIMENTS: "website-experiments";
135
+ readonly RUNTIME_CONFIG: "runtime-config";
136
+ readonly TOTP_SECRETS: "totp_secrets";
122
137
  };
123
138
  /**
124
139
  * 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":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMlF;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,4BAA4B;IAC5B,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,iBAAiB;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,KAAK;IAC7D,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,wBAAwB;IACxB,OAAO,EAAE,OAAO,CAAC;IAEjB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6BAA6B;IAC7B,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB,EAAE,IAAI;IAC9D,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAElB,0BAA0B;IAC1B,OAAO,EAAE,OAAO,CAAC;IAEjB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,iBAAiB,EAAE,IAAI;IAC3D,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,uBAAuB;IACvB,OAAO,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB,EAAE,UAAU;IACvE,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAMD;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;CAOxB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC"}
1
+ {"version":3,"file":"website-firestore.types.d.ts","sourceRoot":"","sources":["../src/website-firestore.types.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ exports.FIRESTORE_COLLECTIONS = {
21
21
  PROJECTS: 'website-projects',
22
22
  DEMOS: 'website-demos',
23
23
  EXPERIMENTS: 'website-experiments',
24
+ RUNTIME_CONFIG: 'runtime-config',
25
+ TOTP_SECRETS: 'totp_secrets',
24
26
  };
25
27
  /**
26
28
  * 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.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Shared TypeScript primitives for Guinetik projects",
5
5
  "author": "Guinetik",
6
6
  "license": "MIT",