@janooma/commons 0.1.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 ADDED
@@ -0,0 +1,90 @@
1
+ # @janooma/commons
2
+
3
+ Shared constants, types, and utilities for all Janooma applications.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @janooma/commons
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### Application registry
14
+
15
+ ```typescript
16
+ import {
17
+ getApplicationName,
18
+ getApplication,
19
+ APPLICATIONS,
20
+ APP_ID_ADMIN,
21
+ APP_ID_SELLER,
22
+ APP_ID_SHOP,
23
+ } from '@janooma/commons';
24
+
25
+ // Get canonical display name (PROD name)
26
+ getApplicationName(1); // → "Janooma Administration"
27
+ getApplicationName(2); // → "Janooma Sellers"
28
+ getApplicationName(3); // → "Janooma"
29
+
30
+ // Get full application config for a specific environment
31
+ getApplication(1, 'LOCAL');
32
+ // → { id: 1, app_name: "Janooma Administration", login_redirect_url: "http://localhost:7001/...", ... }
33
+
34
+ getApplication(1, 'PROD');
35
+ // → { id: 1, app_name: "Janooma Administration", login_redirect_url: "https://admin.janooma.com/...", ... }
36
+ ```
37
+
38
+ ### Types
39
+
40
+ ```typescript
41
+ import type { Application, ApplicationEnvironment } from '@janooma/commons';
42
+
43
+ const app: Application = getApplication(1, 'PROD')!;
44
+ const env: ApplicationEnvironment = 'LOCAL'; // 'LOCAL' | 'DEV' | 'UAT' | 'PROD'
45
+ ```
46
+
47
+ ## Application IDs
48
+
49
+ | Constant | ID | Description |
50
+ |------------------|----|---------------------------|
51
+ | `APP_ID_ADMIN` | 1 | Janooma Administration |
52
+ | `APP_ID_SELLER` | 2 | Janooma Sellers |
53
+ | `APP_ID_SHOP` | 3 | Janooma (Shop) |
54
+
55
+ ## Registered Environments
56
+
57
+ - `LOCAL` — local development
58
+ - `DEV` — development environment
59
+ - `UAT` — user-acceptance testing
60
+ - `PROD` — production
61
+
62
+ ## Building
63
+
64
+ ```bash
65
+ npm run build
66
+ ```
67
+
68
+ ## Publishing
69
+
70
+ ```bash
71
+ npm publish --access public
72
+ ```
73
+
74
+ ## Local development (npm link)
75
+
76
+ ```bash
77
+ # In the commons repo:
78
+ cd commons
79
+ npm install
80
+ npm run build
81
+ npm link
82
+
83
+ # In consumer repos:
84
+ cd admin-react
85
+ npm link @janooma/commons
86
+
87
+ cd admin-api
88
+ npm link @janooma/commons
89
+ ```
90
+
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @janooma/commons — applications
3
+ *
4
+ * Central registry of every Janooma application and its per-environment
5
+ * configuration. This file is the single source of truth and is consumed
6
+ * by admin-api (Cloudflare Workers / Hono) and all front-end apps (Next.js).
7
+ */
8
+ import type { Application, ApplicationEnvironment, ApplicationEnvironmentConfig } from './types.js';
9
+ export declare const APP_ID_ADMIN = 1;
10
+ export declare const APP_ID_SELLER = 2;
11
+ export declare const APP_ID_SHOP = 3;
12
+ export declare const APPLICATIONS: Record<number, ApplicationEnvironmentConfig>;
13
+ /**
14
+ * Return the full Application config for a given app ID + environment.
15
+ * Returns null when the app ID is unknown.
16
+ */
17
+ export declare function getApplication(appId: number, env?: ApplicationEnvironment): Application | null;
18
+ /**
19
+ * Return the canonical display name for an application.
20
+ * Uses the PROD environment name as the canonical label.
21
+ * Falls back to `'Unknown Application'` for unknown IDs.
22
+ */
23
+ export declare function getApplicationName(appId: number): string;
24
+ /**
25
+ * Return all registered application IDs.
26
+ */
27
+ export declare function getApplicationIds(): number[];
28
+ /**
29
+ * Check whether an application ID is registered.
30
+ */
31
+ export declare function isValidApplicationId(appId: number): boolean;
32
+ //# sourceMappingURL=applications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applications.d.ts","sourceRoot":"","sources":["../src/applications.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAIpG,eAAO,MAAM,YAAY,IAAK,CAAC;AAC/B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAM,CAAC;AAI/B,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAqHrE,CAAC;AAIF;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,KAAK,EAAG,MAAM,EACd,GAAG,GAAK,sBAA+B,GACxC,WAAW,GAAG,IAAI,CAEpB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * @janooma/commons — applications
3
+ *
4
+ * Central registry of every Janooma application and its per-environment
5
+ * configuration. This file is the single source of truth and is consumed
6
+ * by admin-api (Cloudflare Workers / Hono) and all front-end apps (Next.js).
7
+ */
8
+ // ─── Application IDs ──────────────────────────────────────────────────────────
9
+ export const APP_ID_ADMIN = 1;
10
+ export const APP_ID_SELLER = 2;
11
+ export const APP_ID_SHOP = 3;
12
+ // ─── Registry ─────────────────────────────────────────────────────────────────
13
+ export const APPLICATIONS = {
14
+ [APP_ID_ADMIN]: {
15
+ LOCAL: {
16
+ id: APP_ID_ADMIN,
17
+ app_name: 'Janooma Administration',
18
+ authorization: 1,
19
+ ttl_days: 30,
20
+ login_redirect_url: 'http://localhost:7001/security/dashboard',
21
+ logout_redirect_url: 'http://localhost:7001',
22
+ pwd_login: 1,
23
+ },
24
+ DEV: {
25
+ id: APP_ID_ADMIN,
26
+ app_name: 'Janooma Administration',
27
+ authorization: 1,
28
+ ttl_days: 30,
29
+ login_redirect_url: 'https://dadmin.janooma.com/security/dashboard',
30
+ logout_redirect_url: 'https://dadmin.janooma.com',
31
+ pwd_login: 1,
32
+ },
33
+ UAT: {
34
+ id: APP_ID_ADMIN,
35
+ app_name: 'Janooma Administration',
36
+ authorization: 1,
37
+ ttl_days: 30,
38
+ login_redirect_url: 'https://uadmin.janooma.com/security/dashboard',
39
+ logout_redirect_url: 'https://uadmin.janooma.com',
40
+ pwd_login: 1,
41
+ },
42
+ PROD: {
43
+ id: APP_ID_ADMIN,
44
+ app_name: 'Janooma Administration',
45
+ authorization: 1,
46
+ ttl_days: 30,
47
+ login_redirect_url: 'https://admin.janooma.com/security/dashboard',
48
+ logout_redirect_url: 'https://admin.janooma.com',
49
+ pwd_login: 1,
50
+ },
51
+ },
52
+ [APP_ID_SELLER]: {
53
+ LOCAL: {
54
+ id: APP_ID_SELLER,
55
+ app_name: 'Janooma Sellers',
56
+ authorization: 0,
57
+ ttl_days: 30,
58
+ login_redirect_url: 'http://localhost:5000/os',
59
+ logout_redirect_url: 'http://localhost:5000',
60
+ pwd_login: 1,
61
+ },
62
+ DEV: {
63
+ id: APP_ID_SELLER,
64
+ app_name: 'Janooma Sellers',
65
+ authorization: 0,
66
+ ttl_days: 30,
67
+ login_redirect_url: 'https://dseller.janooma.com/os',
68
+ logout_redirect_url: 'https://dseller.janooma.com',
69
+ pwd_login: 1,
70
+ },
71
+ UAT: {
72
+ id: APP_ID_SELLER,
73
+ app_name: 'Janooma Sellers',
74
+ authorization: 0,
75
+ ttl_days: 30,
76
+ login_redirect_url: 'https://useller.janooma.com/os',
77
+ logout_redirect_url: 'https://useller.janooma.com',
78
+ pwd_login: 1,
79
+ },
80
+ PROD: {
81
+ id: APP_ID_SELLER,
82
+ app_name: 'Janooma Sellers',
83
+ authorization: 0,
84
+ ttl_days: 30,
85
+ login_redirect_url: 'https://seller.janooma.com/os',
86
+ logout_redirect_url: 'https://seller.janooma.com',
87
+ pwd_login: 1,
88
+ },
89
+ },
90
+ [APP_ID_SHOP]: {
91
+ LOCAL: {
92
+ id: APP_ID_SHOP,
93
+ app_name: 'Janooma Shop',
94
+ authorization: 0,
95
+ ttl_days: 30,
96
+ login_redirect_url: 'http://localhost:8000/',
97
+ logout_redirect_url: 'http://localhost:8000',
98
+ pwd_login: 1,
99
+ },
100
+ DEV: {
101
+ id: APP_ID_SHOP,
102
+ app_name: 'Janooma',
103
+ authorization: 0,
104
+ ttl_days: 30,
105
+ login_redirect_url: 'https://d.janooma.com/',
106
+ logout_redirect_url: 'https://d.janooma.com',
107
+ pwd_login: 1,
108
+ },
109
+ UAT: {
110
+ id: APP_ID_SHOP,
111
+ app_name: 'Janooma',
112
+ authorization: 0,
113
+ ttl_days: 30,
114
+ login_redirect_url: 'https://u.janooma.com/',
115
+ logout_redirect_url: 'https://u.janooma.com',
116
+ pwd_login: 1,
117
+ },
118
+ PROD: {
119
+ id: APP_ID_SHOP,
120
+ app_name: 'Janooma',
121
+ authorization: 0,
122
+ ttl_days: 30,
123
+ login_redirect_url: 'https://janooma.com/',
124
+ logout_redirect_url: 'https://janooma.com',
125
+ pwd_login: 1,
126
+ },
127
+ },
128
+ };
129
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
130
+ /**
131
+ * Return the full Application config for a given app ID + environment.
132
+ * Returns null when the app ID is unknown.
133
+ */
134
+ export function getApplication(appId, env = 'PROD') {
135
+ return APPLICATIONS[appId]?.[env] ?? null;
136
+ }
137
+ /**
138
+ * Return the canonical display name for an application.
139
+ * Uses the PROD environment name as the canonical label.
140
+ * Falls back to `'Unknown Application'` for unknown IDs.
141
+ */
142
+ export function getApplicationName(appId) {
143
+ return APPLICATIONS[appId]?.PROD.app_name ?? 'Unknown Application';
144
+ }
145
+ /**
146
+ * Return all registered application IDs.
147
+ */
148
+ export function getApplicationIds() {
149
+ return Object.keys(APPLICATIONS).map(Number);
150
+ }
151
+ /**
152
+ * Check whether an application ID is registered.
153
+ */
154
+ export function isValidApplicationId(appId) {
155
+ return appId in APPLICATIONS;
156
+ }
157
+ //# sourceMappingURL=applications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applications.js","sourceRoot":"","sources":["../src/applications.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @janooma/commons
3
+ *
4
+ * Single entry-point — re-exports everything from all sub-modules.
5
+ */
6
+ export type { Application, ApplicationEnvironment, ApplicationEnvironmentConfig, } from './types.js';
7
+ export { APP_ID_ADMIN, APP_ID_SELLER, APP_ID_SHOP, APPLICATIONS, getApplication, getApplicationName, getApplicationIds, isValidApplicationId, } from './applications.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACR,WAAW,EACX,sBAAsB,EACtB,4BAA4B,GAC/B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACH,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @janooma/commons
3
+ *
4
+ * Single entry-point — re-exports everything from all sub-modules.
5
+ */
6
+ export { APP_ID_ADMIN, APP_ID_SELLER, APP_ID_SHOP, APPLICATIONS, getApplication, getApplicationName, getApplicationIds, isValidApplicationId, } from './applications.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EACH,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Common types shared across all Janooma applications.
3
+ * Mirrors the Application type used in admin-api.
4
+ */
5
+ export type Application = {
6
+ id: number;
7
+ app_name: string;
8
+ ttl_days: number;
9
+ login_redirect_url: string;
10
+ logout_redirect_url: string;
11
+ authorization: number;
12
+ pwd_login: number;
13
+ created_on?: string;
14
+ modified_on?: string;
15
+ };
16
+ export type ApplicationEnvironment = 'LOCAL' | 'DEV' | 'UAT' | 'PROD';
17
+ export type ApplicationEnvironmentConfig = {
18
+ LOCAL: Application;
19
+ DEV: Application;
20
+ UAT: Application;
21
+ PROD: Application;
22
+ };
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,WAAW,GAAG;IACtB,EAAE,EAAmB,MAAM,CAAC;IAC5B,QAAQ,EAAa,MAAM,CAAC;IAC5B,QAAQ,EAAa,MAAM,CAAC;IAC5B,kBAAkB,EAAG,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAQ,MAAM,CAAC;IAC5B,SAAS,EAAY,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAU,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAS,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtE,MAAM,MAAM,4BAA4B,GAAG;IACvC,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAI,WAAW,CAAC;IACnB,GAAG,EAAI,WAAW,CAAC;IACnB,IAAI,EAAG,WAAW,CAAC;CACtB,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Common types shared across all Janooma applications.
3
+ * Mirrors the Application type used in admin-api.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@janooma/commons",
3
+ "version": "0.1.0",
4
+ "description": "Common constants, types and utilities shared across Janooma applications",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "build:watch": "tsc --watch",
21
+ "prepublishOnly": "npm run build",
22
+ "clean": "rm -rf dist"
23
+ },
24
+ "keywords": [
25
+ "janooma",
26
+ "commons",
27
+ "constants",
28
+ "types"
29
+ ],
30
+ "author": "Janooma",
31
+ "license": "UNLICENSED",
32
+ "devDependencies": {
33
+ "typescript": "^5"
34
+ }
35
+ }
36
+