@objectstack/rest 9.9.0 → 9.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.
- package/dist/index.cjs +30 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +30 -3
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.cts
CHANGED
|
@@ -237,7 +237,8 @@ declare class RestServer {
|
|
|
237
237
|
private sharingRulesServiceProvider?;
|
|
238
238
|
private i18nServiceProvider?;
|
|
239
239
|
private analyticsServiceProvider?;
|
|
240
|
-
|
|
240
|
+
private settingsServiceProvider?;
|
|
241
|
+
constructor(server: IHttpServer, protocol: ObjectStackProtocol, config?: RestServerConfig, kernelManager?: RestKernelManager, envRegistry?: RestEnvRegistry, defaultEnvironmentIdProvider?: () => string | undefined, authServiceProvider?: (environmentId?: string) => Promise<any | undefined>, objectQLProvider?: (environmentId?: string) => Promise<any | undefined>, emailServiceProvider?: (environmentId?: string) => Promise<any | undefined>, sharingServiceProvider?: (environmentId?: string) => Promise<any | undefined>, reportsServiceProvider?: (environmentId?: string) => Promise<any | undefined>, approvalsServiceProvider?: (environmentId?: string) => Promise<any | undefined>, sharingRulesServiceProvider?: (environmentId?: string) => Promise<any | undefined>, i18nServiceProvider?: (environmentId?: string) => Promise<any | undefined>, analyticsServiceProvider?: (environmentId?: string) => Promise<any | undefined>, settingsServiceProvider?: (environmentId?: string) => Promise<any | undefined>);
|
|
241
242
|
/**
|
|
242
243
|
* Resolve the protocol for a given request. When `environmentId` is present
|
|
243
244
|
* and a KernelManager is wired, fetch the per-project kernel's
|
package/dist/index.d.ts
CHANGED
|
@@ -237,7 +237,8 @@ declare class RestServer {
|
|
|
237
237
|
private sharingRulesServiceProvider?;
|
|
238
238
|
private i18nServiceProvider?;
|
|
239
239
|
private analyticsServiceProvider?;
|
|
240
|
-
|
|
240
|
+
private settingsServiceProvider?;
|
|
241
|
+
constructor(server: IHttpServer, protocol: ObjectStackProtocol, config?: RestServerConfig, kernelManager?: RestKernelManager, envRegistry?: RestEnvRegistry, defaultEnvironmentIdProvider?: () => string | undefined, authServiceProvider?: (environmentId?: string) => Promise<any | undefined>, objectQLProvider?: (environmentId?: string) => Promise<any | undefined>, emailServiceProvider?: (environmentId?: string) => Promise<any | undefined>, sharingServiceProvider?: (environmentId?: string) => Promise<any | undefined>, reportsServiceProvider?: (environmentId?: string) => Promise<any | undefined>, approvalsServiceProvider?: (environmentId?: string) => Promise<any | undefined>, sharingRulesServiceProvider?: (environmentId?: string) => Promise<any | undefined>, i18nServiceProvider?: (environmentId?: string) => Promise<any | undefined>, analyticsServiceProvider?: (environmentId?: string) => Promise<any | undefined>, settingsServiceProvider?: (environmentId?: string) => Promise<any | undefined>);
|
|
241
242
|
/**
|
|
242
243
|
* Resolve the protocol for a given request. When `environmentId` is present
|
|
243
244
|
* and a KernelManager is wired, fetch the per-project kernel's
|
package/dist/index.js
CHANGED
|
@@ -449,7 +449,7 @@ function rowsToCsv(fields, rows, includeHeader) {
|
|
|
449
449
|
return lines.join("\r\n") + (lines.length > 0 ? "\r\n" : "");
|
|
450
450
|
}
|
|
451
451
|
var RestServer = class {
|
|
452
|
-
constructor(server, protocol, config = {}, kernelManager, envRegistry, defaultEnvironmentIdProvider, authServiceProvider, objectQLProvider, emailServiceProvider, sharingServiceProvider, reportsServiceProvider, approvalsServiceProvider, sharingRulesServiceProvider, i18nServiceProvider, analyticsServiceProvider) {
|
|
452
|
+
constructor(server, protocol, config = {}, kernelManager, envRegistry, defaultEnvironmentIdProvider, authServiceProvider, objectQLProvider, emailServiceProvider, sharingServiceProvider, reportsServiceProvider, approvalsServiceProvider, sharingRulesServiceProvider, i18nServiceProvider, analyticsServiceProvider, settingsServiceProvider) {
|
|
453
453
|
/**
|
|
454
454
|
* Short-TTL cache for `hostname → environmentId` (P1-4). `resolveByHostname`
|
|
455
455
|
* is a control-plane lookup (typically a DB query) that otherwise runs on
|
|
@@ -480,6 +480,7 @@ var RestServer = class {
|
|
|
480
480
|
this.sharingRulesServiceProvider = sharingRulesServiceProvider;
|
|
481
481
|
this.i18nServiceProvider = i18nServiceProvider;
|
|
482
482
|
this.analyticsServiceProvider = analyticsServiceProvider;
|
|
483
|
+
this.settingsServiceProvider = settingsServiceProvider;
|
|
483
484
|
}
|
|
484
485
|
/**
|
|
485
486
|
* Resolve the protocol for a given request. When `environmentId` is present
|
|
@@ -869,6 +870,23 @@ var RestServer = class {
|
|
|
869
870
|
} catch {
|
|
870
871
|
}
|
|
871
872
|
}
|
|
873
|
+
let timezone;
|
|
874
|
+
let locale;
|
|
875
|
+
try {
|
|
876
|
+
const settings = this.settingsServiceProvider ? await this.settingsServiceProvider(environmentId).catch(() => void 0) : void 0;
|
|
877
|
+
if (settings && typeof settings.get === "function") {
|
|
878
|
+
const sctx = { tenantId, userId };
|
|
879
|
+
const [tzRes, localeRes] = await Promise.all([
|
|
880
|
+
settings.get("localization", "timezone", sctx).catch(() => void 0),
|
|
881
|
+
settings.get("localization", "locale", sctx).catch(() => void 0)
|
|
882
|
+
]);
|
|
883
|
+
const tzVal = tzRes?.value;
|
|
884
|
+
const localeVal = localeRes?.value;
|
|
885
|
+
if (typeof tzVal === "string" && tzVal.trim()) timezone = tzVal.trim();
|
|
886
|
+
if (typeof localeVal === "string" && localeVal.trim()) locale = localeVal.trim();
|
|
887
|
+
}
|
|
888
|
+
} catch {
|
|
889
|
+
}
|
|
872
890
|
return {
|
|
873
891
|
userId,
|
|
874
892
|
tenantId,
|
|
@@ -876,7 +894,9 @@ var RestServer = class {
|
|
|
876
894
|
permissions,
|
|
877
895
|
systemPermissions,
|
|
878
896
|
isSystem: false,
|
|
879
|
-
org_user_ids
|
|
897
|
+
org_user_ids,
|
|
898
|
+
...timezone ? { timezone } : {},
|
|
899
|
+
...locale ? { locale } : {}
|
|
880
900
|
};
|
|
881
901
|
} catch {
|
|
882
902
|
return void 0;
|
|
@@ -4409,6 +4429,13 @@ function createRestApiPlugin(config = {}) {
|
|
|
4409
4429
|
return void 0;
|
|
4410
4430
|
}
|
|
4411
4431
|
};
|
|
4432
|
+
const settingsServiceProvider = async (_environmentId) => {
|
|
4433
|
+
try {
|
|
4434
|
+
return ctx.getService("settings");
|
|
4435
|
+
} catch {
|
|
4436
|
+
return void 0;
|
|
4437
|
+
}
|
|
4438
|
+
};
|
|
4412
4439
|
if (!server) {
|
|
4413
4440
|
ctx.logger.warn(`RestApiPlugin: HTTP Server service '${serverService}' not found. REST routes skipped.`);
|
|
4414
4441
|
return;
|
|
@@ -4419,7 +4446,7 @@ function createRestApiPlugin(config = {}) {
|
|
|
4419
4446
|
}
|
|
4420
4447
|
ctx.logger.info("Hydrating REST API from Protocol...");
|
|
4421
4448
|
try {
|
|
4422
|
-
const restServer = new RestServer(server, protocol, config.api, kernelManager, envRegistry, defaultEnvironmentIdProvider, authServiceProvider, objectQLProvider, emailServiceProvider, sharingServiceProvider, reportsServiceProvider, approvalsServiceProvider, sharingRulesServiceProvider, i18nServiceProvider, analyticsServiceProvider);
|
|
4449
|
+
const restServer = new RestServer(server, protocol, config.api, kernelManager, envRegistry, defaultEnvironmentIdProvider, authServiceProvider, objectQLProvider, emailServiceProvider, sharingServiceProvider, reportsServiceProvider, approvalsServiceProvider, sharingRulesServiceProvider, i18nServiceProvider, analyticsServiceProvider, settingsServiceProvider);
|
|
4423
4450
|
restServer.registerRoutes();
|
|
4424
4451
|
ctx.logger.info("REST API successfully registered");
|
|
4425
4452
|
} catch (err) {
|