@digilogiclabs/platform-core 1.7.0 → 1.9.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/dist/auth.d.mts +3 -2
- package/dist/auth.d.ts +3 -2
- package/dist/auth.js +119 -0
- package/dist/auth.js.map +1 -1
- package/dist/auth.mjs +113 -0
- package/dist/auth.mjs.map +1 -1
- package/dist/email-templates.d.mts +210 -0
- package/dist/email-templates.d.ts +210 -0
- package/dist/email-templates.js +338 -0
- package/dist/email-templates.js.map +1 -0
- package/dist/email-templates.mjs +297 -0
- package/dist/email-templates.mjs.map +1 -0
- package/dist/{env-DerQ7Da-.d.mts → env-DHPZR3Lv.d.mts} +345 -74
- package/dist/{env-DerQ7Da-.d.ts → env-DHPZR3Lv.d.ts} +345 -74
- package/dist/{index-CepDdu7h.d.mts → index-DzQ0Js5Z.d.mts} +13 -1
- package/dist/{index-CepDdu7h.d.ts → index-DzQ0Js5Z.d.ts} +13 -1
- package/dist/index.d.mts +99 -3
- package/dist/index.d.ts +99 -3
- package/dist/index.js +974 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +960 -14
- package/dist/index.mjs.map +1 -1
- package/dist/migrations/index.d.mts +1 -1
- package/dist/migrations/index.d.ts +1 -1
- package/dist/migrations/index.js +72 -1
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/index.mjs +72 -1
- package/dist/migrations/index.mjs.map +1 -1
- package/dist/security-BvLXaQkv.d.mts +88 -0
- package/dist/security-BvLXaQkv.d.ts +88 -0
- package/package.json +6 -1
package/dist/auth.mjs
CHANGED
|
@@ -1106,6 +1106,113 @@ function isValidBearerToken(request, secret) {
|
|
|
1106
1106
|
return constantTimeEqual(token, secret);
|
|
1107
1107
|
}
|
|
1108
1108
|
|
|
1109
|
+
// src/auth/beta-client.ts
|
|
1110
|
+
var DEFAULT_CONFIG = {
|
|
1111
|
+
baseUrl: "",
|
|
1112
|
+
settingsEndpoint: "/api/beta-settings",
|
|
1113
|
+
validateEndpoint: "/api/validate-beta-code",
|
|
1114
|
+
storageKey: "beta_code",
|
|
1115
|
+
failSafeDefaults: {
|
|
1116
|
+
betaMode: true,
|
|
1117
|
+
requireInviteCode: true,
|
|
1118
|
+
betaMessage: ""
|
|
1119
|
+
}
|
|
1120
|
+
};
|
|
1121
|
+
function createBetaClient(config = {}) {
|
|
1122
|
+
const cfg = {
|
|
1123
|
+
...DEFAULT_CONFIG,
|
|
1124
|
+
...config,
|
|
1125
|
+
failSafeDefaults: {
|
|
1126
|
+
...DEFAULT_CONFIG.failSafeDefaults,
|
|
1127
|
+
...config.failSafeDefaults
|
|
1128
|
+
}
|
|
1129
|
+
};
|
|
1130
|
+
return {
|
|
1131
|
+
fetchSettings: () => fetchBetaSettings(cfg),
|
|
1132
|
+
validateCode: (code) => validateBetaCode(code, cfg),
|
|
1133
|
+
storeCode: (code) => storeBetaCode(code, cfg),
|
|
1134
|
+
getStoredCode: () => getStoredBetaCode(cfg),
|
|
1135
|
+
clearStoredCode: () => clearStoredBetaCode(cfg)
|
|
1136
|
+
};
|
|
1137
|
+
}
|
|
1138
|
+
async function fetchBetaSettings(config = {}) {
|
|
1139
|
+
const cfg = { ...DEFAULT_CONFIG, ...config };
|
|
1140
|
+
try {
|
|
1141
|
+
const response = await fetch(`${cfg.baseUrl}${cfg.settingsEndpoint}`, {
|
|
1142
|
+
method: "GET",
|
|
1143
|
+
headers: { "Content-Type": "application/json" },
|
|
1144
|
+
cache: "no-store"
|
|
1145
|
+
});
|
|
1146
|
+
if (!response.ok) {
|
|
1147
|
+
throw new Error(`Failed to fetch beta settings: ${response.status}`);
|
|
1148
|
+
}
|
|
1149
|
+
const data = await response.json();
|
|
1150
|
+
return {
|
|
1151
|
+
betaMode: data.betaMode ?? cfg.failSafeDefaults.betaMode ?? true,
|
|
1152
|
+
requireInviteCode: data.requireInviteCode ?? cfg.failSafeDefaults.requireInviteCode ?? true,
|
|
1153
|
+
betaMessage: data.betaMessage ?? cfg.failSafeDefaults.betaMessage ?? ""
|
|
1154
|
+
};
|
|
1155
|
+
} catch (error) {
|
|
1156
|
+
console.error("Error fetching beta settings:", error);
|
|
1157
|
+
return {
|
|
1158
|
+
betaMode: cfg.failSafeDefaults.betaMode ?? true,
|
|
1159
|
+
requireInviteCode: cfg.failSafeDefaults.requireInviteCode ?? true,
|
|
1160
|
+
betaMessage: cfg.failSafeDefaults.betaMessage ?? ""
|
|
1161
|
+
};
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
async function validateBetaCode(code, config = {}) {
|
|
1165
|
+
const cfg = { ...DEFAULT_CONFIG, ...config };
|
|
1166
|
+
if (!code || code.trim().length < 3) {
|
|
1167
|
+
return {
|
|
1168
|
+
valid: false,
|
|
1169
|
+
message: "Please enter a valid invite code."
|
|
1170
|
+
};
|
|
1171
|
+
}
|
|
1172
|
+
try {
|
|
1173
|
+
const response = await fetch(`${cfg.baseUrl}${cfg.validateEndpoint}`, {
|
|
1174
|
+
method: "POST",
|
|
1175
|
+
headers: { "Content-Type": "application/json" },
|
|
1176
|
+
body: JSON.stringify({ code: code.trim().toUpperCase() })
|
|
1177
|
+
});
|
|
1178
|
+
if (response.status === 429) {
|
|
1179
|
+
return {
|
|
1180
|
+
valid: false,
|
|
1181
|
+
message: "Too many attempts. Please try again later."
|
|
1182
|
+
};
|
|
1183
|
+
}
|
|
1184
|
+
if (!response.ok) {
|
|
1185
|
+
throw new Error(`Validation request failed: ${response.status}`);
|
|
1186
|
+
}
|
|
1187
|
+
return await response.json();
|
|
1188
|
+
} catch (error) {
|
|
1189
|
+
console.error("Error validating invite code:", error);
|
|
1190
|
+
return {
|
|
1191
|
+
valid: false,
|
|
1192
|
+
message: "Unable to validate code. Please try again."
|
|
1193
|
+
};
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
function storeBetaCode(code, config = {}) {
|
|
1197
|
+
const key = config.storageKey ?? DEFAULT_CONFIG.storageKey;
|
|
1198
|
+
if (typeof window !== "undefined") {
|
|
1199
|
+
sessionStorage.setItem(key, code.trim().toUpperCase());
|
|
1200
|
+
}
|
|
1201
|
+
}
|
|
1202
|
+
function getStoredBetaCode(config = {}) {
|
|
1203
|
+
const key = config.storageKey ?? DEFAULT_CONFIG.storageKey;
|
|
1204
|
+
if (typeof window !== "undefined") {
|
|
1205
|
+
return sessionStorage.getItem(key);
|
|
1206
|
+
}
|
|
1207
|
+
return null;
|
|
1208
|
+
}
|
|
1209
|
+
function clearStoredBetaCode(config = {}) {
|
|
1210
|
+
const key = config.storageKey ?? DEFAULT_CONFIG.storageKey;
|
|
1211
|
+
if (typeof window !== "undefined") {
|
|
1212
|
+
sessionStorage.removeItem(key);
|
|
1213
|
+
}
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1109
1216
|
// src/env.ts
|
|
1110
1217
|
function getRequiredEnv(key) {
|
|
1111
1218
|
const value = process.env[key];
|
|
@@ -1227,11 +1334,13 @@ export {
|
|
|
1227
1334
|
checkEnvVars,
|
|
1228
1335
|
checkRateLimit,
|
|
1229
1336
|
classifyError,
|
|
1337
|
+
clearStoredBetaCode,
|
|
1230
1338
|
constantTimeEqual,
|
|
1231
1339
|
containsHtml,
|
|
1232
1340
|
containsUrls,
|
|
1233
1341
|
createAuditActor,
|
|
1234
1342
|
createAuditLogger,
|
|
1343
|
+
createBetaClient,
|
|
1235
1344
|
createFeatureFlags,
|
|
1236
1345
|
createMemoryRateLimitStore,
|
|
1237
1346
|
createRedisRateLimitStore,
|
|
@@ -1245,6 +1354,7 @@ export {
|
|
|
1245
1354
|
extractAuditUserAgent,
|
|
1246
1355
|
extractBearerToken,
|
|
1247
1356
|
extractClientIp,
|
|
1357
|
+
fetchBetaSettings,
|
|
1248
1358
|
getBoolEnv,
|
|
1249
1359
|
getCorrelationId,
|
|
1250
1360
|
getEndSessionEndpoint,
|
|
@@ -1253,6 +1363,7 @@ export {
|
|
|
1253
1363
|
getOptionalEnv,
|
|
1254
1364
|
getRateLimitStatus,
|
|
1255
1365
|
getRequiredEnv,
|
|
1366
|
+
getStoredBetaCode,
|
|
1256
1367
|
getTokenEndpoint,
|
|
1257
1368
|
hasAllRoles,
|
|
1258
1369
|
hasAnyRole,
|
|
@@ -1267,7 +1378,9 @@ export {
|
|
|
1267
1378
|
resolveIdentifier,
|
|
1268
1379
|
resolveRateLimitIdentifier,
|
|
1269
1380
|
sanitizeApiError,
|
|
1381
|
+
storeBetaCode,
|
|
1270
1382
|
stripHtml,
|
|
1383
|
+
validateBetaCode,
|
|
1271
1384
|
validateEnvVars,
|
|
1272
1385
|
zodErrorResponse
|
|
1273
1386
|
};
|