@feelflow/ffid-sdk 7.0.0 → 7.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 +47 -0
- package/dist/{chunk-32VOLLNV.js → chunk-E2AJAVX6.js} +352 -64
- package/dist/{chunk-BI6UM2EJ.cjs → chunk-SOZ2B2ZL.cjs} +357 -63
- package/dist/components/index.cjs +8 -8
- package/dist/components/index.js +1 -1
- package/dist/{ffid-client-C8XV7lUt.d.cts → ffid-client-BFgoVPOZ.d.cts} +161 -1
- package/dist/{ffid-client-CpVixUM3.d.ts → ffid-client-QNEFA3mv.d.ts} +161 -1
- package/dist/index.cjs +82 -58
- package/dist/index.d.cts +161 -1
- package/dist/index.d.ts +161 -1
- package/dist/index.js +2 -2
- package/dist/server/index.cjs +357 -63
- package/dist/server/index.d.cts +2 -2
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +352 -64
- package/dist/server/test/index.d.cts +1 -1
- package/dist/server/test/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/server/index.cjs
CHANGED
|
@@ -223,13 +223,18 @@ function mapUserinfoSubscriptionToSession(userinfo, serviceCode) {
|
|
|
223
223
|
];
|
|
224
224
|
}
|
|
225
225
|
var JWKS_ENDPOINT = "/.well-known/jwks.json";
|
|
226
|
-
var
|
|
226
|
+
var LEGACY_JWT_ISSUER = "https://id.feelflow.net";
|
|
227
227
|
var JWT_ALGORITHM = "ES256";
|
|
228
228
|
var JWT_CLOCK_TOLERANCE_SECONDS = 30;
|
|
229
|
+
function resolveAcceptedIssuers(baseUrl) {
|
|
230
|
+
const deployedOrigin = new URL(baseUrl).origin;
|
|
231
|
+
return deployedOrigin === LEGACY_JWT_ISSUER ? [LEGACY_JWT_ISSUER] : [deployedOrigin, LEGACY_JWT_ISSUER];
|
|
232
|
+
}
|
|
229
233
|
function createJwtVerifier(deps) {
|
|
230
234
|
const { baseUrl, serviceCode, logger, createError, errorCodes } = deps;
|
|
231
235
|
const jwksUrl = new URL(JWKS_ENDPOINT, baseUrl);
|
|
232
236
|
const jwks = jose.createRemoteJWKSet(jwksUrl);
|
|
237
|
+
const acceptedIssuers = resolveAcceptedIssuers(baseUrl);
|
|
233
238
|
async function verifyJwt(accessToken) {
|
|
234
239
|
if (!accessToken || !accessToken.trim()) {
|
|
235
240
|
return {
|
|
@@ -242,7 +247,7 @@ function createJwtVerifier(deps) {
|
|
|
242
247
|
try {
|
|
243
248
|
const { payload } = await jose.jwtVerify(accessToken, jwks, {
|
|
244
249
|
algorithms: [JWT_ALGORITHM],
|
|
245
|
-
issuer:
|
|
250
|
+
issuer: acceptedIssuers,
|
|
246
251
|
audience: serviceCode,
|
|
247
252
|
clockTolerance: JWT_CLOCK_TOLERANCE_SECONDS
|
|
248
253
|
});
|
|
@@ -1298,6 +1303,310 @@ function createMembersMethods(deps) {
|
|
|
1298
1303
|
return { listMembers, addMember, updateMemberRole, removeMember };
|
|
1299
1304
|
}
|
|
1300
1305
|
|
|
1306
|
+
// src/types/organization-profile.ts
|
|
1307
|
+
var FFID_INDUSTRY_CODES = [
|
|
1308
|
+
"agriculture",
|
|
1309
|
+
"construction",
|
|
1310
|
+
"manufacturing",
|
|
1311
|
+
"it-software",
|
|
1312
|
+
"telecom",
|
|
1313
|
+
"media",
|
|
1314
|
+
"retail",
|
|
1315
|
+
"wholesale",
|
|
1316
|
+
"finance-insurance",
|
|
1317
|
+
"real-estate",
|
|
1318
|
+
"transport-logistics",
|
|
1319
|
+
"hospitality-food",
|
|
1320
|
+
"healthcare",
|
|
1321
|
+
"education",
|
|
1322
|
+
"professional-services",
|
|
1323
|
+
"marketing-advertising",
|
|
1324
|
+
"energy-utilities",
|
|
1325
|
+
"public-sector",
|
|
1326
|
+
"nonprofit",
|
|
1327
|
+
"other"
|
|
1328
|
+
];
|
|
1329
|
+
var FFID_COMPANY_SIZE_CODES = [
|
|
1330
|
+
"1-10",
|
|
1331
|
+
"11-50",
|
|
1332
|
+
"51-200",
|
|
1333
|
+
"201-500",
|
|
1334
|
+
"501-1000",
|
|
1335
|
+
"1001+"
|
|
1336
|
+
];
|
|
1337
|
+
var BYTES_PER_KB = 1024;
|
|
1338
|
+
var KB_PER_MB = 1024;
|
|
1339
|
+
var FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_MB = 2;
|
|
1340
|
+
var FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_BYTES = FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_MB * KB_PER_MB * BYTES_PER_KB;
|
|
1341
|
+
var FFID_ALLOWED_ORGANIZATION_LOGO_MIME_TYPES = [
|
|
1342
|
+
"image/png",
|
|
1343
|
+
"image/jpeg",
|
|
1344
|
+
"image/webp"
|
|
1345
|
+
];
|
|
1346
|
+
var FFID_ORGANIZATION_PROFILE_ERROR_CODES = {
|
|
1347
|
+
VALIDATION_ERROR: "VALIDATION_ERROR",
|
|
1348
|
+
ORGANIZATION_NOT_FOUND: "ORGANIZATION_NOT_FOUND",
|
|
1349
|
+
CONSENTED_BY_NOT_MEMBER: "CONSENTED_BY_NOT_MEMBER",
|
|
1350
|
+
MISSING_FILE: "MISSING_FILE",
|
|
1351
|
+
INVALID_FILE_TYPE: "INVALID_FILE_TYPE",
|
|
1352
|
+
FILE_TOO_LARGE: "FILE_TOO_LARGE",
|
|
1353
|
+
INVALID_IMAGE: "INVALID_IMAGE",
|
|
1354
|
+
LOGO_UPLOAD_FAILED: "LOGO_UPLOAD_FAILED"
|
|
1355
|
+
};
|
|
1356
|
+
|
|
1357
|
+
// src/client/version-check.ts
|
|
1358
|
+
var SDK_VERSION = "7.2.0";
|
|
1359
|
+
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1360
|
+
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1361
|
+
function sdkHeaders() {
|
|
1362
|
+
if (typeof window !== "undefined") return {};
|
|
1363
|
+
return {
|
|
1364
|
+
"User-Agent": SDK_USER_AGENT,
|
|
1365
|
+
[SDK_VERSION_HEADER]: SDK_VERSION
|
|
1366
|
+
};
|
|
1367
|
+
}
|
|
1368
|
+
var LATEST_VERSION_HEADER = "X-FFID-SDK-Latest-Version";
|
|
1369
|
+
var SEMVER_PATTERN = /^\d+(\.\d+)*$/;
|
|
1370
|
+
var _versionWarningShown = false;
|
|
1371
|
+
function compareSemver(a, b) {
|
|
1372
|
+
const cleanA = a.replace(/^v/, "");
|
|
1373
|
+
const cleanB = b.replace(/^v/, "");
|
|
1374
|
+
if (!SEMVER_PATTERN.test(cleanA) || !SEMVER_PATTERN.test(cleanB)) return 0;
|
|
1375
|
+
const partsA = cleanA.split(".").map(Number);
|
|
1376
|
+
const partsB = cleanB.split(".").map(Number);
|
|
1377
|
+
const maxLen = Math.max(partsA.length, partsB.length);
|
|
1378
|
+
for (let i = 0; i < maxLen; i++) {
|
|
1379
|
+
const numA = partsA[i] ?? 0;
|
|
1380
|
+
const numB = partsB[i] ?? 0;
|
|
1381
|
+
if (numA < numB) return -1;
|
|
1382
|
+
if (numA > numB) return 1;
|
|
1383
|
+
}
|
|
1384
|
+
return 0;
|
|
1385
|
+
}
|
|
1386
|
+
function checkVersionHeader(response, logger) {
|
|
1387
|
+
if (_versionWarningShown) return;
|
|
1388
|
+
if (typeof process !== "undefined" && process.env?.NODE_ENV === "production") return;
|
|
1389
|
+
if (!response.headers?.get) return;
|
|
1390
|
+
const latestVersion = response.headers.get(LATEST_VERSION_HEADER);
|
|
1391
|
+
if (!latestVersion) return;
|
|
1392
|
+
if (compareSemver(SDK_VERSION, latestVersion) < 0) {
|
|
1393
|
+
_versionWarningShown = true;
|
|
1394
|
+
logger.warn(
|
|
1395
|
+
`\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u5229\u7528\u53EF\u80FD\u3067\u3059: v${latestVersion} (\u73FE\u5728: v${SDK_VERSION})
|
|
1396
|
+
npm install @feelflow/ffid-sdk@latest \u3067\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3067\u304D\u307E\u3059`
|
|
1397
|
+
);
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
// src/client/organization-profile-methods.ts
|
|
1402
|
+
var EXT_PROFILE_ENDPOINT = "/api/v1/organizations/ext/profile";
|
|
1403
|
+
var EXT_PROFILE_LOGO_ENDPOINT = "/api/v1/organizations/ext/profile/logo";
|
|
1404
|
+
var LOGO_WALL_ENDPOINT = "/api/v1/organizations/logo-wall";
|
|
1405
|
+
var DEFAULT_LOGO_UPLOAD_FILENAME = "logo";
|
|
1406
|
+
function isBlank(value) {
|
|
1407
|
+
return !value || !value.trim();
|
|
1408
|
+
}
|
|
1409
|
+
function resolveOrganizationId(organizationIdOrParams) {
|
|
1410
|
+
return typeof organizationIdOrParams === "string" ? organizationIdOrParams : organizationIdOrParams.organizationId;
|
|
1411
|
+
}
|
|
1412
|
+
function resolveUpsertParams(organizationIdOrParams, payload) {
|
|
1413
|
+
if (typeof organizationIdOrParams === "string") {
|
|
1414
|
+
return { ...payload, organizationId: organizationIdOrParams };
|
|
1415
|
+
}
|
|
1416
|
+
return organizationIdOrParams;
|
|
1417
|
+
}
|
|
1418
|
+
function resolveUploadParams(organizationIdOrParams, file) {
|
|
1419
|
+
if (typeof organizationIdOrParams === "string") {
|
|
1420
|
+
return { organizationId: organizationIdOrParams, file };
|
|
1421
|
+
}
|
|
1422
|
+
return organizationIdOrParams;
|
|
1423
|
+
}
|
|
1424
|
+
function buildUpsertBody(params) {
|
|
1425
|
+
const { organizationId, ...body } = params;
|
|
1426
|
+
return body;
|
|
1427
|
+
}
|
|
1428
|
+
function profileQuery(organizationId) {
|
|
1429
|
+
return new URLSearchParams({ organizationId }).toString();
|
|
1430
|
+
}
|
|
1431
|
+
function logoUploadFilename(file) {
|
|
1432
|
+
if (typeof File !== "undefined" && file instanceof File && file.name) {
|
|
1433
|
+
return file.name;
|
|
1434
|
+
}
|
|
1435
|
+
return DEFAULT_LOGO_UPLOAD_FILENAME;
|
|
1436
|
+
}
|
|
1437
|
+
function listingConsentValidationError(listingConsent, createError) {
|
|
1438
|
+
if (!listingConsent || listingConsent.consented !== true) return null;
|
|
1439
|
+
if (isBlank(listingConsent.consentVersion) || isBlank(listingConsent.consentedByUserId)) {
|
|
1440
|
+
return createError(
|
|
1441
|
+
FFID_ORGANIZATION_PROFILE_ERROR_CODES.VALIDATION_ERROR,
|
|
1442
|
+
"\u63B2\u8F09\u540C\u610F\u3092\u8A18\u9332\u3059\u308B\u5834\u5408\u306F consentVersion \u3068 consentedByUserId \u304C\u5FC5\u9808\u3067\u3059"
|
|
1443
|
+
);
|
|
1444
|
+
}
|
|
1445
|
+
return null;
|
|
1446
|
+
}
|
|
1447
|
+
function resolveLogoFile(file, createError) {
|
|
1448
|
+
if (!file) {
|
|
1449
|
+
return {
|
|
1450
|
+
ok: false,
|
|
1451
|
+
error: createError(
|
|
1452
|
+
FFID_ORGANIZATION_PROFILE_ERROR_CODES.MISSING_FILE,
|
|
1453
|
+
"file \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u30ED\u30B4\u753B\u50CF\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"
|
|
1454
|
+
)
|
|
1455
|
+
};
|
|
1456
|
+
}
|
|
1457
|
+
if (file.size > FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_BYTES) {
|
|
1458
|
+
return {
|
|
1459
|
+
ok: false,
|
|
1460
|
+
error: createError(
|
|
1461
|
+
FFID_ORGANIZATION_PROFILE_ERROR_CODES.FILE_TOO_LARGE,
|
|
1462
|
+
`\u30ED\u30B4\u753B\u50CF\u306F${FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_MB}MB\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044`
|
|
1463
|
+
)
|
|
1464
|
+
};
|
|
1465
|
+
}
|
|
1466
|
+
if (file.type !== "" && !FFID_ALLOWED_ORGANIZATION_LOGO_MIME_TYPES.includes(file.type)) {
|
|
1467
|
+
return {
|
|
1468
|
+
ok: false,
|
|
1469
|
+
error: createError(
|
|
1470
|
+
FFID_ORGANIZATION_PROFILE_ERROR_CODES.INVALID_FILE_TYPE,
|
|
1471
|
+
"\u30ED\u30B4\u753B\u50CF\u306F PNG / JPEG / WebP \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"
|
|
1472
|
+
)
|
|
1473
|
+
};
|
|
1474
|
+
}
|
|
1475
|
+
return { ok: true, file };
|
|
1476
|
+
}
|
|
1477
|
+
function createOrganizationProfileMethods(deps) {
|
|
1478
|
+
const { fetchWithAuth, createError, authMode, baseUrl, logger, errorCodes } = deps;
|
|
1479
|
+
function serviceKeyModeError() {
|
|
1480
|
+
if (authMode === "service-key") return null;
|
|
1481
|
+
return createError(
|
|
1482
|
+
FFID_ORGANIZATION_PROFILE_ERROR_CODES.VALIDATION_ERROR,
|
|
1483
|
+
"getOrganizationProfile / upsertOrganizationProfile / uploadOrganizationLogo \u306F service-key \u8A8D\u8A3C\uFF08X-Service-Api-Key\uFF09\u3067\u306E\u307F\u5229\u7528\u3067\u304D\u307E\u3059\u3002Bearer / cookie \u30E2\u30FC\u30C9\u3067\u306F\u547C\u3073\u51FA\u305B\u307E\u305B\u3093"
|
|
1484
|
+
);
|
|
1485
|
+
}
|
|
1486
|
+
function requireOrganizationId(organizationId) {
|
|
1487
|
+
if (isBlank(organizationId)) {
|
|
1488
|
+
return createError(
|
|
1489
|
+
FFID_ORGANIZATION_PROFILE_ERROR_CODES.VALIDATION_ERROR,
|
|
1490
|
+
"organizationId \u306F\u5FC5\u9808\u3067\u3059"
|
|
1491
|
+
);
|
|
1492
|
+
}
|
|
1493
|
+
return null;
|
|
1494
|
+
}
|
|
1495
|
+
async function fetchPublic(endpoint, options = {}) {
|
|
1496
|
+
const url = `${baseUrl}${endpoint}`;
|
|
1497
|
+
logger.debug("Fetching (public):", url);
|
|
1498
|
+
let response;
|
|
1499
|
+
try {
|
|
1500
|
+
response = await fetch(url, {
|
|
1501
|
+
...options,
|
|
1502
|
+
credentials: "omit",
|
|
1503
|
+
headers: {
|
|
1504
|
+
...sdkHeaders(),
|
|
1505
|
+
...options.headers
|
|
1506
|
+
}
|
|
1507
|
+
});
|
|
1508
|
+
} catch (error) {
|
|
1509
|
+
logger.error("Network error:", error);
|
|
1510
|
+
return {
|
|
1511
|
+
error: {
|
|
1512
|
+
code: errorCodes.NETWORK_ERROR,
|
|
1513
|
+
message: error instanceof Error ? error.message : "\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F"
|
|
1514
|
+
}
|
|
1515
|
+
};
|
|
1516
|
+
}
|
|
1517
|
+
let parsed;
|
|
1518
|
+
try {
|
|
1519
|
+
parsed = await response.json();
|
|
1520
|
+
} catch (parseError) {
|
|
1521
|
+
logger.error("Parse error:", parseError, "Status:", response.status);
|
|
1522
|
+
return {
|
|
1523
|
+
error: {
|
|
1524
|
+
code: errorCodes.PARSE_ERROR,
|
|
1525
|
+
message: `\u30B5\u30FC\u30D0\u30FC\u304B\u3089\u4E0D\u6B63\u306A\u30EC\u30B9\u30DD\u30F3\u30B9\u3092\u53D7\u4FE1\u3057\u307E\u3057\u305F (status: ${response.status})`
|
|
1526
|
+
}
|
|
1527
|
+
};
|
|
1528
|
+
}
|
|
1529
|
+
if (!parsed || typeof parsed !== "object") {
|
|
1530
|
+
return {
|
|
1531
|
+
error: {
|
|
1532
|
+
code: errorCodes.PARSE_ERROR,
|
|
1533
|
+
message: `\u30B5\u30FC\u30D0\u30FC\u304B\u3089\u4E0D\u6B63\u306A\u30EC\u30B9\u30DD\u30F3\u30B9\u3092\u53D7\u4FE1\u3057\u307E\u3057\u305F (status: ${response.status})`
|
|
1534
|
+
}
|
|
1535
|
+
};
|
|
1536
|
+
}
|
|
1537
|
+
const raw = parsed;
|
|
1538
|
+
logger.debug("Response (public):", response.status, raw);
|
|
1539
|
+
checkVersionHeader(response, logger);
|
|
1540
|
+
if (!response.ok) {
|
|
1541
|
+
return {
|
|
1542
|
+
error: raw.error ?? {
|
|
1543
|
+
code: errorCodes.UNKNOWN_ERROR,
|
|
1544
|
+
message: "\u4E0D\u660E\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F"
|
|
1545
|
+
}
|
|
1546
|
+
};
|
|
1547
|
+
}
|
|
1548
|
+
if (raw.data === void 0) {
|
|
1549
|
+
return {
|
|
1550
|
+
error: {
|
|
1551
|
+
code: errorCodes.UNKNOWN_ERROR,
|
|
1552
|
+
message: "\u30B5\u30FC\u30D0\u30FC\u304B\u3089\u30C7\u30FC\u30BF\u304C\u8FD4\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"
|
|
1553
|
+
}
|
|
1554
|
+
};
|
|
1555
|
+
}
|
|
1556
|
+
return { data: raw.data };
|
|
1557
|
+
}
|
|
1558
|
+
async function getOrganizationProfile(organizationIdOrParams) {
|
|
1559
|
+
const modeError = serviceKeyModeError();
|
|
1560
|
+
if (modeError) return { error: modeError };
|
|
1561
|
+
const organizationId = resolveOrganizationId(organizationIdOrParams);
|
|
1562
|
+
const idError = requireOrganizationId(organizationId);
|
|
1563
|
+
if (idError) return { error: idError };
|
|
1564
|
+
return fetchWithAuth(
|
|
1565
|
+
`${EXT_PROFILE_ENDPOINT}?${profileQuery(organizationId)}`
|
|
1566
|
+
);
|
|
1567
|
+
}
|
|
1568
|
+
async function upsertOrganizationProfile(organizationIdOrParams, payload) {
|
|
1569
|
+
const modeError = serviceKeyModeError();
|
|
1570
|
+
if (modeError) return { error: modeError };
|
|
1571
|
+
const params = resolveUpsertParams(organizationIdOrParams, payload);
|
|
1572
|
+
const idError = requireOrganizationId(params.organizationId);
|
|
1573
|
+
if (idError) return { error: idError };
|
|
1574
|
+
const consentError = listingConsentValidationError(params.listingConsent, createError);
|
|
1575
|
+
if (consentError) return { error: consentError };
|
|
1576
|
+
return fetchWithAuth(
|
|
1577
|
+
`${EXT_PROFILE_ENDPOINT}?${profileQuery(params.organizationId)}`,
|
|
1578
|
+
{
|
|
1579
|
+
method: "PUT",
|
|
1580
|
+
body: JSON.stringify(buildUpsertBody(params))
|
|
1581
|
+
}
|
|
1582
|
+
);
|
|
1583
|
+
}
|
|
1584
|
+
async function uploadOrganizationLogo(organizationIdOrParams, file) {
|
|
1585
|
+
const modeError = serviceKeyModeError();
|
|
1586
|
+
if (modeError) return { error: modeError };
|
|
1587
|
+
const params = resolveUploadParams(organizationIdOrParams, file);
|
|
1588
|
+
const idError = requireOrganizationId(params.organizationId);
|
|
1589
|
+
if (idError) return { error: idError };
|
|
1590
|
+
const logoFile = resolveLogoFile(params.file, createError);
|
|
1591
|
+
if (!logoFile.ok) return { error: logoFile.error };
|
|
1592
|
+
const form = new FormData();
|
|
1593
|
+
form.append("file", logoFile.file, logoUploadFilename(logoFile.file));
|
|
1594
|
+
return fetchWithAuth(
|
|
1595
|
+
`${EXT_PROFILE_LOGO_ENDPOINT}?${profileQuery(params.organizationId)}`,
|
|
1596
|
+
{ method: "POST", body: form }
|
|
1597
|
+
);
|
|
1598
|
+
}
|
|
1599
|
+
async function getPublicLogoWall() {
|
|
1600
|
+
return fetchPublic(LOGO_WALL_ENDPOINT);
|
|
1601
|
+
}
|
|
1602
|
+
return {
|
|
1603
|
+
getOrganizationProfile,
|
|
1604
|
+
upsertOrganizationProfile,
|
|
1605
|
+
uploadOrganizationLogo,
|
|
1606
|
+
getPublicLogoWall
|
|
1607
|
+
};
|
|
1608
|
+
}
|
|
1609
|
+
|
|
1301
1610
|
// src/client/provisioning-methods.ts
|
|
1302
1611
|
var USER_PROVISION_ENDPOINT = "/api/v1/ext/users/provision";
|
|
1303
1612
|
var USER_WELCOME_EMAIL_ENDPOINT = "/api/v1/ext/users/welcome-email";
|
|
@@ -1441,7 +1750,7 @@ function createSeatMethods(deps) {
|
|
|
1441
1750
|
}
|
|
1442
1751
|
|
|
1443
1752
|
// src/client/profile-methods.ts
|
|
1444
|
-
var
|
|
1753
|
+
var EXT_PROFILE_ENDPOINT2 = "/api/v1/users/ext/me";
|
|
1445
1754
|
function resolveAuthOverride(options, createError) {
|
|
1446
1755
|
if (!options || options.accessToken === void 0) {
|
|
1447
1756
|
return {};
|
|
@@ -1462,7 +1771,7 @@ function createProfileMethods(deps) {
|
|
|
1462
1771
|
async function getProfile(options) {
|
|
1463
1772
|
const { override, error } = resolveAuthOverride(options, createError);
|
|
1464
1773
|
if (error) return { error };
|
|
1465
|
-
return fetchWithAuth(
|
|
1774
|
+
return fetchWithAuth(EXT_PROFILE_ENDPOINT2, void 0, override);
|
|
1466
1775
|
}
|
|
1467
1776
|
async function updateProfile(data, options) {
|
|
1468
1777
|
if (data === null || typeof data !== "object" || Array.isArray(data)) {
|
|
@@ -1478,7 +1787,7 @@ function createProfileMethods(deps) {
|
|
|
1478
1787
|
const { override, error } = resolveAuthOverride(options, createError);
|
|
1479
1788
|
if (error) return { error };
|
|
1480
1789
|
return fetchWithAuth(
|
|
1481
|
-
|
|
1790
|
+
EXT_PROFILE_ENDPOINT2,
|
|
1482
1791
|
{
|
|
1483
1792
|
method: "PUT",
|
|
1484
1793
|
body: JSON.stringify(data)
|
|
@@ -1671,50 +1980,6 @@ function validateTokenResponse(tokenResponse) {
|
|
|
1671
1980
|
};
|
|
1672
1981
|
}
|
|
1673
1982
|
|
|
1674
|
-
// src/client/version-check.ts
|
|
1675
|
-
var SDK_VERSION = "7.0.0";
|
|
1676
|
-
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1677
|
-
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1678
|
-
function sdkHeaders() {
|
|
1679
|
-
if (typeof window !== "undefined") return {};
|
|
1680
|
-
return {
|
|
1681
|
-
"User-Agent": SDK_USER_AGENT,
|
|
1682
|
-
[SDK_VERSION_HEADER]: SDK_VERSION
|
|
1683
|
-
};
|
|
1684
|
-
}
|
|
1685
|
-
var LATEST_VERSION_HEADER = "X-FFID-SDK-Latest-Version";
|
|
1686
|
-
var SEMVER_PATTERN = /^\d+(\.\d+)*$/;
|
|
1687
|
-
var _versionWarningShown = false;
|
|
1688
|
-
function compareSemver(a, b) {
|
|
1689
|
-
const cleanA = a.replace(/^v/, "");
|
|
1690
|
-
const cleanB = b.replace(/^v/, "");
|
|
1691
|
-
if (!SEMVER_PATTERN.test(cleanA) || !SEMVER_PATTERN.test(cleanB)) return 0;
|
|
1692
|
-
const partsA = cleanA.split(".").map(Number);
|
|
1693
|
-
const partsB = cleanB.split(".").map(Number);
|
|
1694
|
-
const maxLen = Math.max(partsA.length, partsB.length);
|
|
1695
|
-
for (let i = 0; i < maxLen; i++) {
|
|
1696
|
-
const numA = partsA[i] ?? 0;
|
|
1697
|
-
const numB = partsB[i] ?? 0;
|
|
1698
|
-
if (numA < numB) return -1;
|
|
1699
|
-
if (numA > numB) return 1;
|
|
1700
|
-
}
|
|
1701
|
-
return 0;
|
|
1702
|
-
}
|
|
1703
|
-
function checkVersionHeader(response, logger) {
|
|
1704
|
-
if (_versionWarningShown) return;
|
|
1705
|
-
if (typeof process !== "undefined" && process.env?.NODE_ENV === "production") return;
|
|
1706
|
-
if (!response.headers?.get) return;
|
|
1707
|
-
const latestVersion = response.headers.get(LATEST_VERSION_HEADER);
|
|
1708
|
-
if (!latestVersion) return;
|
|
1709
|
-
if (compareSemver(SDK_VERSION, latestVersion) < 0) {
|
|
1710
|
-
_versionWarningShown = true;
|
|
1711
|
-
logger.warn(
|
|
1712
|
-
`\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u5229\u7528\u53EF\u80FD\u3067\u3059: v${latestVersion} (\u73FE\u5728: v${SDK_VERSION})
|
|
1713
|
-
npm install @feelflow/ffid-sdk@latest \u3067\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3067\u304D\u307E\u3059`
|
|
1714
|
-
);
|
|
1715
|
-
}
|
|
1716
|
-
}
|
|
1717
|
-
|
|
1718
1983
|
// src/client/oauth-token.ts
|
|
1719
1984
|
var OAUTH_TOKEN_ENDPOINT = "/api/v1/oauth/token";
|
|
1720
1985
|
var OAUTH_REVOKE_ENDPOINT = "/api/v1/oauth/revoke";
|
|
@@ -2535,7 +2800,7 @@ function normalizeRedirectUri(input) {
|
|
|
2535
2800
|
|
|
2536
2801
|
// src/client/password-reset.ts
|
|
2537
2802
|
var RESET_PASSWORD_BASE = "/api/v1/auth/reset-password";
|
|
2538
|
-
function
|
|
2803
|
+
function isBlank2(value) {
|
|
2539
2804
|
return !value || !value.trim();
|
|
2540
2805
|
}
|
|
2541
2806
|
function createPasswordResetMethods(deps) {
|
|
@@ -2596,7 +2861,7 @@ function createPasswordResetMethods(deps) {
|
|
|
2596
2861
|
return { data: raw.data };
|
|
2597
2862
|
}
|
|
2598
2863
|
async function requestPasswordReset(email) {
|
|
2599
|
-
if (
|
|
2864
|
+
if (isBlank2(email)) {
|
|
2600
2865
|
return {
|
|
2601
2866
|
error: createError("VALIDATION_ERROR", "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306F\u5FC5\u9808\u3067\u3059")
|
|
2602
2867
|
};
|
|
@@ -2610,7 +2875,7 @@ function createPasswordResetMethods(deps) {
|
|
|
2610
2875
|
);
|
|
2611
2876
|
}
|
|
2612
2877
|
async function verifyPasswordResetToken(accessToken) {
|
|
2613
|
-
if (
|
|
2878
|
+
if (isBlank2(accessToken)) {
|
|
2614
2879
|
return {
|
|
2615
2880
|
error: createError("VALIDATION_ERROR", "\u30A2\u30AF\u30BB\u30B9\u30C8\u30FC\u30AF\u30F3\u306F\u5FC5\u9808\u3067\u3059")
|
|
2616
2881
|
};
|
|
@@ -2624,12 +2889,12 @@ function createPasswordResetMethods(deps) {
|
|
|
2624
2889
|
);
|
|
2625
2890
|
}
|
|
2626
2891
|
async function establishResetSession(accessToken, refreshToken) {
|
|
2627
|
-
if (
|
|
2892
|
+
if (isBlank2(accessToken)) {
|
|
2628
2893
|
return {
|
|
2629
2894
|
error: createError("VALIDATION_ERROR", "\u30A2\u30AF\u30BB\u30B9\u30C8\u30FC\u30AF\u30F3\u306F\u5FC5\u9808\u3067\u3059")
|
|
2630
2895
|
};
|
|
2631
2896
|
}
|
|
2632
|
-
if (
|
|
2897
|
+
if (isBlank2(refreshToken)) {
|
|
2633
2898
|
return {
|
|
2634
2899
|
error: createError("VALIDATION_ERROR", "\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\u30C8\u30FC\u30AF\u30F3\u306F\u5FC5\u9808\u3067\u3059")
|
|
2635
2900
|
};
|
|
@@ -2643,7 +2908,7 @@ function createPasswordResetMethods(deps) {
|
|
|
2643
2908
|
);
|
|
2644
2909
|
}
|
|
2645
2910
|
async function confirmPasswordReset(password) {
|
|
2646
|
-
if (
|
|
2911
|
+
if (isBlank2(password)) {
|
|
2647
2912
|
return {
|
|
2648
2913
|
error: createError("VALIDATION_ERROR", "\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u5FC5\u9808\u3067\u3059")
|
|
2649
2914
|
};
|
|
@@ -2666,7 +2931,7 @@ function createPasswordResetMethods(deps) {
|
|
|
2666
2931
|
|
|
2667
2932
|
// src/client/otp.ts
|
|
2668
2933
|
var OTP_BASE = "/api/v1/auth/otp";
|
|
2669
|
-
function
|
|
2934
|
+
function isBlank3(value) {
|
|
2670
2935
|
return !value || !value.trim();
|
|
2671
2936
|
}
|
|
2672
2937
|
function createOtpMethods(deps) {
|
|
@@ -2727,7 +2992,7 @@ function createOtpMethods(deps) {
|
|
|
2727
2992
|
return { data: raw.data };
|
|
2728
2993
|
}
|
|
2729
2994
|
async function sendOtp(email, options) {
|
|
2730
|
-
if (
|
|
2995
|
+
if (isBlank3(email)) {
|
|
2731
2996
|
return {
|
|
2732
2997
|
error: createError("VALIDATION_ERROR", "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306F\u5FC5\u9808\u3067\u3059")
|
|
2733
2998
|
};
|
|
@@ -2744,12 +3009,12 @@ function createOtpMethods(deps) {
|
|
|
2744
3009
|
);
|
|
2745
3010
|
}
|
|
2746
3011
|
async function verifyOtp(params) {
|
|
2747
|
-
if (
|
|
3012
|
+
if (isBlank3(params.accessToken)) {
|
|
2748
3013
|
return {
|
|
2749
3014
|
error: createError("VALIDATION_ERROR", "\u30A2\u30AF\u30BB\u30B9\u30C8\u30FC\u30AF\u30F3\u306F\u5FC5\u9808\u3067\u3059")
|
|
2750
3015
|
};
|
|
2751
3016
|
}
|
|
2752
|
-
if (
|
|
3017
|
+
if (isBlank3(params.refreshToken)) {
|
|
2753
3018
|
return {
|
|
2754
3019
|
error: createError("VALIDATION_ERROR", "\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\u30C8\u30FC\u30AF\u30F3\u306F\u5FC5\u9808\u3067\u3059")
|
|
2755
3020
|
};
|
|
@@ -3240,6 +3505,12 @@ function resolveRedirectUri(raw, logger) {
|
|
|
3240
3505
|
return raw;
|
|
3241
3506
|
}
|
|
3242
3507
|
}
|
|
3508
|
+
function jsonContentTypeHeader(body) {
|
|
3509
|
+
if (typeof FormData !== "undefined" && body instanceof FormData) {
|
|
3510
|
+
return {};
|
|
3511
|
+
}
|
|
3512
|
+
return { "Content-Type": "application/json" };
|
|
3513
|
+
}
|
|
3243
3514
|
function createFFIDClient(config) {
|
|
3244
3515
|
if (!config.serviceCode || !config.serviceCode.trim()) {
|
|
3245
3516
|
throw new Error("FFID Client: serviceCode \u304C\u672A\u8A2D\u5B9A\u3067\u3059");
|
|
@@ -3292,7 +3563,7 @@ function createFFIDClient(config) {
|
|
|
3292
3563
|
...options,
|
|
3293
3564
|
credentials: "omit",
|
|
3294
3565
|
headers: {
|
|
3295
|
-
|
|
3566
|
+
...jsonContentTypeHeader(options.body),
|
|
3296
3567
|
...sdkHeaders(),
|
|
3297
3568
|
...options.headers,
|
|
3298
3569
|
Authorization: `Bearer ${authOverride.accessToken}`
|
|
@@ -3304,7 +3575,7 @@ function createFFIDClient(config) {
|
|
|
3304
3575
|
...options,
|
|
3305
3576
|
credentials: "omit",
|
|
3306
3577
|
headers: {
|
|
3307
|
-
|
|
3578
|
+
...jsonContentTypeHeader(options.body),
|
|
3308
3579
|
...sdkHeaders(),
|
|
3309
3580
|
"X-Service-Api-Key": serviceApiKey,
|
|
3310
3581
|
...options.headers
|
|
@@ -3314,7 +3585,7 @@ function createFFIDClient(config) {
|
|
|
3314
3585
|
if (authMode === "token") {
|
|
3315
3586
|
const tokens = tokenStore.getTokens();
|
|
3316
3587
|
const headers = {
|
|
3317
|
-
|
|
3588
|
+
...jsonContentTypeHeader(options.body),
|
|
3318
3589
|
...sdkHeaders(),
|
|
3319
3590
|
...options.headers
|
|
3320
3591
|
};
|
|
@@ -3331,7 +3602,7 @@ function createFFIDClient(config) {
|
|
|
3331
3602
|
...options,
|
|
3332
3603
|
credentials: "include",
|
|
3333
3604
|
headers: {
|
|
3334
|
-
|
|
3605
|
+
...jsonContentTypeHeader(options.body),
|
|
3335
3606
|
...sdkHeaders(),
|
|
3336
3607
|
...options.headers
|
|
3337
3608
|
}
|
|
@@ -3548,6 +3819,19 @@ function createFFIDClient(config) {
|
|
|
3548
3819
|
createError,
|
|
3549
3820
|
serviceCode: config.serviceCode
|
|
3550
3821
|
});
|
|
3822
|
+
const {
|
|
3823
|
+
getOrganizationProfile,
|
|
3824
|
+
upsertOrganizationProfile,
|
|
3825
|
+
uploadOrganizationLogo,
|
|
3826
|
+
getPublicLogoWall
|
|
3827
|
+
} = createOrganizationProfileMethods({
|
|
3828
|
+
fetchWithAuth,
|
|
3829
|
+
createError,
|
|
3830
|
+
authMode,
|
|
3831
|
+
baseUrl,
|
|
3832
|
+
logger,
|
|
3833
|
+
errorCodes: FFID_ERROR_CODES
|
|
3834
|
+
});
|
|
3551
3835
|
const { provisionUser, sendProvisionWelcomeEmail, provisionOrganization } = createProvisioningMethods({
|
|
3552
3836
|
fetchWithAuth,
|
|
3553
3837
|
createError,
|
|
@@ -3648,6 +3932,10 @@ function createFFIDClient(config) {
|
|
|
3648
3932
|
addMember,
|
|
3649
3933
|
updateMemberRole,
|
|
3650
3934
|
removeMember,
|
|
3935
|
+
getOrganizationProfile,
|
|
3936
|
+
upsertOrganizationProfile,
|
|
3937
|
+
uploadOrganizationLogo,
|
|
3938
|
+
getPublicLogoWall,
|
|
3651
3939
|
provisionUser,
|
|
3652
3940
|
sendProvisionWelcomeEmail,
|
|
3653
3941
|
provisionOrganization,
|
|
@@ -4118,9 +4406,15 @@ exports.CATALOG_HASH_PATTERN = CATALOG_HASH_PATTERN;
|
|
|
4118
4406
|
exports.CONSENT_COOKIE_NAME = CONSENT_COOKIE_NAME;
|
|
4119
4407
|
exports.COOKIE_VERSION = COOKIE_VERSION;
|
|
4120
4408
|
exports.FFIDCatalogHashError = FFIDCatalogHashError;
|
|
4409
|
+
exports.FFID_ALLOWED_ORGANIZATION_LOGO_MIME_TYPES = FFID_ALLOWED_ORGANIZATION_LOGO_MIME_TYPES;
|
|
4121
4410
|
exports.FFID_CATALOG_ENVIRONMENTS = FFID_CATALOG_ENVIRONMENTS;
|
|
4122
4411
|
exports.FFID_CATALOG_PUBLICATION_STATUSES = FFID_CATALOG_PUBLICATION_STATUSES;
|
|
4412
|
+
exports.FFID_COMPANY_SIZE_CODES = FFID_COMPANY_SIZE_CODES;
|
|
4123
4413
|
exports.FFID_ERROR_CODES = FFID_ERROR_CODES;
|
|
4414
|
+
exports.FFID_INDUSTRY_CODES = FFID_INDUSTRY_CODES;
|
|
4415
|
+
exports.FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_BYTES = FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_BYTES;
|
|
4416
|
+
exports.FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_MB = FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_MB;
|
|
4417
|
+
exports.FFID_ORGANIZATION_PROFILE_ERROR_CODES = FFID_ORGANIZATION_PROFILE_ERROR_CODES;
|
|
4124
4418
|
exports.FFID_SESSION_COOKIE_NAME = FFID_SESSION_COOKIE_NAME;
|
|
4125
4419
|
exports.canonicalizeCatalogValue = canonicalizeCatalogValue;
|
|
4126
4420
|
exports.computeFFIDCheckoutCopyHash = computeFFIDCheckoutCopyHash;
|
package/dist/server/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as FFIDLogger, a as FFIDError, b as FFIDCacheAdapter, c as FFIDVerifyAccessTokenOptions, d as FFIDApiResponse, e as FFIDOAuthUserInfo, f as FFIDCatalogEnvironment, g as FFIDBillingInterval, h as FFIDTaxBehavior, i as FFIDPublishedCatalog } from '../ffid-client-
|
|
2
|
-
export { j as FFIDAddMemberParams, k as FFIDAddMemberRequest, l as FFIDAddMemberResponse, m as
|
|
1
|
+
import { F as FFIDLogger, a as FFIDError, b as FFIDCacheAdapter, c as FFIDVerifyAccessTokenOptions, d as FFIDApiResponse, e as FFIDOAuthUserInfo, f as FFIDCatalogEnvironment, g as FFIDBillingInterval, h as FFIDTaxBehavior, i as FFIDPublishedCatalog } from '../ffid-client-BFgoVPOZ.cjs';
|
|
2
|
+
export { j as FFIDAddMemberParams, k as FFIDAddMemberRequest, l as FFIDAddMemberResponse, m as FFIDAllowedLogoMimeType, n as FFIDAssignableMemberRole, o as FFIDCacheConfig, p as FFIDCatalogPublication, q as FFIDCatalogPublicationStatus, r as FFIDClient, s as FFIDCompanySizeCode, t as FFIDConfig, u as FFIDIndustryCode, v as FFIDListMembersResponse, w as FFIDListingConsentInput, x as FFIDLogoWallEntry, y as FFIDLogoWallResponse, z as FFIDMemberRole, A as FFIDOrganization, B as FFIDOrganizationLogoUploadResponse, C as FFIDOrganizationMember, D as FFIDOrganizationProfile, E as FFIDOrganizationProfileErrorCode, G as FFIDOrganizationProfileResponse, H as FFIDOtpSendResponse, I as FFIDOtpVerifyResponse, J as FFIDPasswordResetConfirmResponse, K as FFIDPasswordResetResponse, L as FFIDPasswordResetVerifyResponse, M as FFIDProfileCallOptions, N as FFIDProvisionMemberPlan, O as FFIDProvisionMemberPlanStatus, P as FFIDProvisionMemberResult, Q as FFIDProvisionMemberStatus, R as FFIDProvisionOrganizationDryRun, S as FFIDProvisionOrganizationMemberInput, T as FFIDProvisionOrganizationOutcome, U as FFIDProvisionOrganizationParams, V as FFIDProvisionOrganizationResponse, W as FFIDProvisionUserDryRun, X as FFIDProvisionUserOutcome, Y as FFIDProvisionUserParams, Z as FFIDProvisionUserProfileInput, _ as FFIDProvisionUserResponse, $ as FFIDProvisionedOrganization, a0 as FFIDProvisionedUser, a1 as FFIDPublishedPlan, a2 as FFIDRemoveMemberResponse, a3 as FFIDResetSessionResponse, a4 as FFIDSubscription, a5 as FFIDUpdateMemberRoleResponse, a6 as FFIDUpdateUserProfileRequest, a7 as FFIDUploadOrganizationLogoParams, a8 as FFIDUpsertOrganizationProfileParams, a9 as FFIDUpsertOrganizationProfileRequest, aa as FFIDUser, ab as FFIDUserProfile, ac as FFID_ALLOWED_ORGANIZATION_LOGO_MIME_TYPES, ad as FFID_CATALOG_ENVIRONMENTS, ae as FFID_CATALOG_PUBLICATION_STATUSES, af as FFID_COMPANY_SIZE_CODES, ag as FFID_INDUSTRY_CODES, ah as FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_BYTES, ai as FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_MB, aj as FFID_ORGANIZATION_PROFILE_ERROR_CODES, ak as TokenData, al as TokenStore, am as createFFIDClient, an as createTokenStore } from '../ffid-client-BFgoVPOZ.cjs';
|
|
3
3
|
export { D as DEFAULT_API_BASE_URL, a as DEFAULT_OAUTH_SCOPES } from '../constants-Ce2eXQtB.cjs';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import '../types-Cjb9J0rL.cjs';
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as FFIDLogger, a as FFIDError, b as FFIDCacheAdapter, c as FFIDVerifyAccessTokenOptions, d as FFIDApiResponse, e as FFIDOAuthUserInfo, f as FFIDCatalogEnvironment, g as FFIDBillingInterval, h as FFIDTaxBehavior, i as FFIDPublishedCatalog } from '../ffid-client-
|
|
2
|
-
export { j as FFIDAddMemberParams, k as FFIDAddMemberRequest, l as FFIDAddMemberResponse, m as
|
|
1
|
+
import { F as FFIDLogger, a as FFIDError, b as FFIDCacheAdapter, c as FFIDVerifyAccessTokenOptions, d as FFIDApiResponse, e as FFIDOAuthUserInfo, f as FFIDCatalogEnvironment, g as FFIDBillingInterval, h as FFIDTaxBehavior, i as FFIDPublishedCatalog } from '../ffid-client-QNEFA3mv.js';
|
|
2
|
+
export { j as FFIDAddMemberParams, k as FFIDAddMemberRequest, l as FFIDAddMemberResponse, m as FFIDAllowedLogoMimeType, n as FFIDAssignableMemberRole, o as FFIDCacheConfig, p as FFIDCatalogPublication, q as FFIDCatalogPublicationStatus, r as FFIDClient, s as FFIDCompanySizeCode, t as FFIDConfig, u as FFIDIndustryCode, v as FFIDListMembersResponse, w as FFIDListingConsentInput, x as FFIDLogoWallEntry, y as FFIDLogoWallResponse, z as FFIDMemberRole, A as FFIDOrganization, B as FFIDOrganizationLogoUploadResponse, C as FFIDOrganizationMember, D as FFIDOrganizationProfile, E as FFIDOrganizationProfileErrorCode, G as FFIDOrganizationProfileResponse, H as FFIDOtpSendResponse, I as FFIDOtpVerifyResponse, J as FFIDPasswordResetConfirmResponse, K as FFIDPasswordResetResponse, L as FFIDPasswordResetVerifyResponse, M as FFIDProfileCallOptions, N as FFIDProvisionMemberPlan, O as FFIDProvisionMemberPlanStatus, P as FFIDProvisionMemberResult, Q as FFIDProvisionMemberStatus, R as FFIDProvisionOrganizationDryRun, S as FFIDProvisionOrganizationMemberInput, T as FFIDProvisionOrganizationOutcome, U as FFIDProvisionOrganizationParams, V as FFIDProvisionOrganizationResponse, W as FFIDProvisionUserDryRun, X as FFIDProvisionUserOutcome, Y as FFIDProvisionUserParams, Z as FFIDProvisionUserProfileInput, _ as FFIDProvisionUserResponse, $ as FFIDProvisionedOrganization, a0 as FFIDProvisionedUser, a1 as FFIDPublishedPlan, a2 as FFIDRemoveMemberResponse, a3 as FFIDResetSessionResponse, a4 as FFIDSubscription, a5 as FFIDUpdateMemberRoleResponse, a6 as FFIDUpdateUserProfileRequest, a7 as FFIDUploadOrganizationLogoParams, a8 as FFIDUpsertOrganizationProfileParams, a9 as FFIDUpsertOrganizationProfileRequest, aa as FFIDUser, ab as FFIDUserProfile, ac as FFID_ALLOWED_ORGANIZATION_LOGO_MIME_TYPES, ad as FFID_CATALOG_ENVIRONMENTS, ae as FFID_CATALOG_PUBLICATION_STATUSES, af as FFID_COMPANY_SIZE_CODES, ag as FFID_INDUSTRY_CODES, ah as FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_BYTES, ai as FFID_MAX_ORGANIZATION_LOGO_FILE_SIZE_MB, aj as FFID_ORGANIZATION_PROFILE_ERROR_CODES, ak as TokenData, al as TokenStore, am as createFFIDClient, an as createTokenStore } from '../ffid-client-QNEFA3mv.js';
|
|
3
3
|
export { D as DEFAULT_API_BASE_URL, a as DEFAULT_OAUTH_SCOPES } from '../constants-Ce2eXQtB.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import '../types-Cjb9J0rL.js';
|