mcp-creatio 0.4.1 → 0.6.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 +265 -212
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -1
- package/dist/config-builder.d.ts.map +1 -1
- package/dist/config-builder.js +13 -1
- package/dist/config-builder.js.map +1 -1
- package/dist/creatio/auth/auth.d.ts +16 -2
- package/dist/creatio/auth/auth.d.ts.map +1 -1
- package/dist/creatio/auth/auth.js +9 -0
- package/dist/creatio/auth/auth.js.map +1 -1
- package/dist/creatio/auth/index.d.ts +2 -1
- package/dist/creatio/auth/index.d.ts.map +1 -1
- package/dist/creatio/auth/index.js +4 -1
- package/dist/creatio/auth/index.js.map +1 -1
- package/dist/creatio/auth/providers/base-provider.d.ts +2 -5
- package/dist/creatio/auth/providers/base-provider.d.ts.map +1 -1
- package/dist/creatio/auth/providers/base-provider.js +0 -15
- package/dist/creatio/auth/providers/base-provider.js.map +1 -1
- package/dist/creatio/auth/providers/oauth2-code-provider.js +3 -3
- package/dist/creatio/client-config.d.ts +8 -0
- package/dist/creatio/client-config.d.ts.map +1 -1
- package/dist/creatio/{providers → contracts}/admin-operation-provider.d.ts.map +1 -1
- package/dist/creatio/contracts/admin-operation-provider.js.map +1 -0
- package/dist/creatio/{providers → contracts}/configuration-provider.d.ts +3 -2
- package/dist/creatio/contracts/configuration-provider.d.ts.map +1 -0
- package/dist/creatio/contracts/configuration-provider.js.map +1 -0
- package/dist/creatio/contracts/crud-provider.d.ts +52 -0
- package/dist/creatio/contracts/crud-provider.d.ts.map +1 -0
- package/dist/creatio/contracts/crud-provider.js.map +1 -0
- package/dist/creatio/{providers → contracts}/feature-provider.d.ts.map +1 -1
- package/dist/creatio/contracts/feature-provider.js.map +1 -0
- package/dist/creatio/{providers → contracts}/index.d.ts +1 -0
- package/dist/creatio/contracts/index.d.ts.map +1 -0
- package/dist/creatio/{providers → contracts}/index.js +1 -0
- package/dist/creatio/{providers → contracts}/index.js.map +1 -1
- package/dist/creatio/{providers → contracts}/process-provider.d.ts.map +1 -1
- package/dist/creatio/contracts/process-provider.js.map +1 -0
- package/dist/creatio/contracts/query.d.ts +69 -0
- package/dist/creatio/contracts/query.d.ts.map +1 -0
- package/dist/creatio/contracts/query.js +10 -0
- package/dist/creatio/contracts/query.js.map +1 -0
- package/dist/creatio/{providers → contracts}/sys-settings-provider.d.ts.map +1 -1
- package/dist/creatio/contracts/sys-settings-provider.js.map +1 -0
- package/dist/creatio/{providers → contracts}/user-provider.d.ts.map +1 -1
- package/dist/creatio/contracts/user-provider.js.map +1 -0
- package/dist/creatio/engines/{admin-operation/admin-operation-engine.d.ts → admin-operation-engine.d.ts} +4 -4
- package/dist/creatio/engines/admin-operation-engine.d.ts.map +1 -0
- package/dist/creatio/engines/admin-operation-engine.js +29 -0
- package/dist/creatio/engines/admin-operation-engine.js.map +1 -0
- package/dist/creatio/engines/configuration-engine.d.ts +10 -0
- package/dist/creatio/engines/configuration-engine.d.ts.map +1 -0
- package/dist/creatio/engines/configuration-engine.js +23 -0
- package/dist/creatio/engines/configuration-engine.js.map +1 -0
- package/dist/creatio/engines/crud-engine.d.ts +17 -0
- package/dist/creatio/engines/crud-engine.d.ts.map +1 -0
- package/dist/creatio/engines/crud-engine.js +39 -0
- package/dist/creatio/engines/crud-engine.js.map +1 -0
- package/dist/creatio/engines/engine-manager.d.ts +15 -8
- package/dist/creatio/engines/engine-manager.d.ts.map +1 -1
- package/dist/creatio/engines/engine-manager.js +26 -14
- package/dist/creatio/engines/engine-manager.js.map +1 -1
- package/dist/creatio/engines/engine.d.ts +36 -0
- package/dist/creatio/engines/engine.d.ts.map +1 -1
- package/dist/creatio/engines/engine.js +43 -0
- package/dist/creatio/engines/engine.js.map +1 -1
- package/dist/creatio/engines/feature-engine.d.ts +10 -0
- package/dist/creatio/engines/feature-engine.d.ts.map +1 -0
- package/dist/creatio/engines/{feature/feature-engine.js → feature-engine.js} +5 -3
- package/dist/creatio/engines/feature-engine.js.map +1 -0
- package/dist/creatio/engines/index.d.ts +7 -7
- package/dist/creatio/engines/index.d.ts.map +1 -1
- package/dist/creatio/engines/index.js +7 -7
- package/dist/creatio/engines/index.js.map +1 -1
- package/dist/creatio/engines/process-engine.d.ts +10 -0
- package/dist/creatio/engines/process-engine.d.ts.map +1 -0
- package/dist/creatio/engines/{process/process-engine.js → process-engine.js} +5 -3
- package/dist/creatio/engines/process-engine.js.map +1 -0
- package/dist/creatio/engines/{sys-settings/sys-settings-engine.d.ts → sys-settings-engine.d.ts} +4 -4
- package/dist/creatio/engines/sys-settings-engine.d.ts.map +1 -0
- package/dist/creatio/engines/sys-settings-engine.js +29 -0
- package/dist/creatio/engines/sys-settings-engine.js.map +1 -0
- package/dist/creatio/engines/user-engine.d.ts +10 -0
- package/dist/creatio/engines/user-engine.d.ts.map +1 -0
- package/dist/creatio/engines/{user/user-engine.js → user-engine.js} +4 -2
- package/dist/creatio/engines/user-engine.js.map +1 -0
- package/dist/creatio/index.d.ts +1 -1
- package/dist/creatio/index.js +1 -1
- package/dist/creatio/provider-context.d.ts +1 -1
- package/dist/creatio/services/admin-operation-service-provider.d.ts +1 -1
- package/dist/creatio/services/admin-operation-service-provider.d.ts.map +1 -1
- package/dist/creatio/services/admin-operation-service-provider.js +2 -2
- package/dist/creatio/services/admin-operation-service-provider.js.map +1 -1
- package/dist/creatio/services/configuration-service-provider.d.ts +1 -1
- package/dist/creatio/services/configuration-service-provider.d.ts.map +1 -1
- package/dist/creatio/services/configuration-service-provider.js +16 -5
- package/dist/creatio/services/configuration-service-provider.js.map +1 -1
- package/dist/creatio/services/creatio-service-context.d.ts +1 -1
- package/dist/creatio/services/creatio-service-context.d.ts.map +1 -1
- package/dist/creatio/services/creatio-service-context.js +6 -3
- package/dist/creatio/services/creatio-service-context.js.map +1 -1
- package/dist/creatio/services/crud-provider-factory.d.ts +16 -0
- package/dist/creatio/services/crud-provider-factory.d.ts.map +1 -0
- package/dist/creatio/services/crud-provider-factory.js +22 -0
- package/dist/creatio/services/crud-provider-factory.js.map +1 -0
- package/dist/creatio/services/dataservice/data-service-column-values.d.ts +12 -0
- package/dist/creatio/services/dataservice/data-service-column-values.d.ts.map +1 -0
- package/dist/creatio/services/dataservice/data-service-column-values.js +39 -0
- package/dist/creatio/services/dataservice/data-service-column-values.js.map +1 -0
- package/dist/creatio/services/dataservice/data-service-crud-provider.d.ts +49 -0
- package/dist/creatio/services/dataservice/data-service-crud-provider.d.ts.map +1 -0
- package/dist/creatio/services/dataservice/data-service-crud-provider.js +157 -0
- package/dist/creatio/services/dataservice/data-service-crud-provider.js.map +1 -0
- package/dist/creatio/services/dataservice/data-service-filter-translator.d.ts +32 -0
- package/dist/creatio/services/dataservice/data-service-filter-translator.d.ts.map +1 -0
- package/dist/creatio/services/dataservice/data-service-filter-translator.js +114 -0
- package/dist/creatio/services/dataservice/data-service-filter-translator.js.map +1 -0
- package/dist/creatio/services/dataservice/data-service-query-builder.d.ts +21 -0
- package/dist/creatio/services/dataservice/data-service-query-builder.d.ts.map +1 -0
- package/dist/creatio/services/dataservice/data-service-query-builder.js +97 -0
- package/dist/creatio/services/dataservice/data-service-query-builder.js.map +1 -0
- package/dist/creatio/services/dataservice/data-service-schema.d.ts +31 -0
- package/dist/creatio/services/dataservice/data-service-schema.d.ts.map +1 -0
- package/dist/creatio/services/dataservice/data-service-schema.js +95 -0
- package/dist/creatio/services/dataservice/data-service-schema.js.map +1 -0
- package/dist/creatio/services/dataservice/data-service-transport.d.ts +21 -0
- package/dist/creatio/services/dataservice/data-service-transport.d.ts.map +1 -0
- package/dist/creatio/services/dataservice/data-service-transport.js +49 -0
- package/dist/creatio/services/dataservice/data-service-transport.js.map +1 -0
- package/dist/creatio/services/dataservice/data-service-types.d.ts +180 -0
- package/dist/creatio/services/dataservice/data-service-types.d.ts.map +1 -0
- package/dist/creatio/services/dataservice/data-service-types.js +110 -0
- package/dist/creatio/services/dataservice/data-service-types.js.map +1 -0
- package/dist/creatio/services/dataservice/data-service-value-type.d.ts +27 -0
- package/dist/creatio/services/dataservice/data-service-value-type.d.ts.map +1 -0
- package/dist/creatio/services/dataservice/data-service-value-type.js +99 -0
- package/dist/creatio/services/dataservice/data-service-value-type.js.map +1 -0
- package/dist/creatio/services/entity-name.d.ts +8 -0
- package/dist/creatio/services/entity-name.d.ts.map +1 -0
- package/dist/creatio/services/entity-name.js +17 -0
- package/dist/creatio/services/entity-name.js.map +1 -0
- package/dist/creatio/services/feature-service-provider.d.ts +1 -1
- package/dist/creatio/services/feature-service-provider.d.ts.map +1 -1
- package/dist/creatio/services/feature-service-provider.js +5 -5
- package/dist/creatio/services/feature-service-provider.js.map +1 -1
- package/dist/creatio/services/http-client.d.ts +10 -1
- package/dist/creatio/services/http-client.d.ts.map +1 -1
- package/dist/creatio/services/http-client.js +15 -3
- package/dist/creatio/services/http-client.js.map +1 -1
- package/dist/creatio/services/index.d.ts +14 -2
- package/dist/creatio/services/index.d.ts.map +1 -1
- package/dist/creatio/services/index.js +14 -2
- package/dist/creatio/services/index.js.map +1 -1
- package/dist/creatio/services/lookup-path.d.ts +18 -0
- package/dist/creatio/services/lookup-path.d.ts.map +1 -0
- package/dist/creatio/services/lookup-path.js +33 -0
- package/dist/creatio/services/lookup-path.js.map +1 -0
- package/dist/creatio/services/{metadata-store.d.ts → odata/metadata-store.d.ts} +2 -2
- package/dist/creatio/services/odata/metadata-store.d.ts.map +1 -0
- package/dist/creatio/services/{metadata-store.js → odata/metadata-store.js} +5 -4
- package/dist/creatio/services/odata/metadata-store.js.map +1 -0
- package/dist/creatio/services/{odata-crud-provider.d.ts → odata/odata-crud-provider.d.ts} +7 -7
- package/dist/creatio/services/odata/odata-crud-provider.d.ts.map +1 -0
- package/dist/creatio/services/{odata-crud-provider.js → odata/odata-crud-provider.js} +35 -59
- package/dist/creatio/services/odata/odata-crud-provider.js.map +1 -0
- package/dist/creatio/services/odata/odata-query-translator.d.ts +37 -0
- package/dist/creatio/services/odata/odata-query-translator.d.ts.map +1 -0
- package/dist/creatio/services/odata/odata-query-translator.js +160 -0
- package/dist/creatio/services/odata/odata-query-translator.js.map +1 -0
- package/dist/creatio/services/odata/odata-routes.d.ts +4 -0
- package/dist/creatio/services/odata/odata-routes.d.ts.map +1 -0
- package/dist/creatio/services/odata/odata-routes.js +9 -0
- package/dist/creatio/services/odata/odata-routes.js.map +1 -0
- package/dist/creatio/services/process-service-provider.d.ts +1 -1
- package/dist/creatio/services/process-service-provider.d.ts.map +1 -1
- package/dist/creatio/services/process-service-provider.js +2 -5
- package/dist/creatio/services/process-service-provider.js.map +1 -1
- package/dist/creatio/services/sys-settings-service-provider.d.ts +1 -1
- package/dist/creatio/services/sys-settings-service-provider.d.ts.map +1 -1
- package/dist/creatio/services/sys-settings-service-provider.js +12 -16
- package/dist/creatio/services/sys-settings-service-provider.js.map +1 -1
- package/dist/creatio/services/user-info-provider.d.ts +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +5 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +8 -0
- package/dist/log.js.map +1 -1
- package/dist/server/http/creatio-oauth-handlers.d.ts.map +1 -1
- package/dist/server/http/creatio-oauth-handlers.js +21 -5
- package/dist/server/http/creatio-oauth-handlers.js.map +1 -1
- package/dist/server/http/httpServer.d.ts.map +1 -1
- package/dist/server/http/httpServer.js +6 -4
- package/dist/server/http/httpServer.js.map +1 -1
- package/dist/server/http/mcp-handlers.js +2 -2
- package/dist/server/mcp/creatio-rest.d.ts +44 -0
- package/dist/server/mcp/creatio-rest.d.ts.map +1 -0
- package/dist/server/mcp/creatio-rest.js +26 -0
- package/dist/server/mcp/creatio-rest.js.map +1 -0
- package/dist/server/mcp/crtmcp/crt-mcp-client.d.ts +52 -0
- package/dist/server/mcp/crtmcp/crt-mcp-client.d.ts.map +1 -0
- package/dist/server/mcp/crtmcp/crt-mcp-client.js +67 -0
- package/dist/server/mcp/crtmcp/crt-mcp-client.js.map +1 -0
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.d.ts +20 -0
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.d.ts.map +1 -0
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.js +74 -0
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.js.map +1 -0
- package/dist/server/mcp/dataforge/dataforge-client.d.ts +64 -0
- package/dist/server/mcp/dataforge/dataforge-client.d.ts.map +1 -0
- package/dist/server/mcp/dataforge/dataforge-client.js +130 -0
- package/dist/server/mcp/dataforge/dataforge-client.js.map +1 -0
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.d.ts +17 -0
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.d.ts.map +1 -0
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.js +42 -0
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.js.map +1 -0
- package/dist/server/mcp/filters.d.ts +7 -1
- package/dist/server/mcp/filters.d.ts.map +1 -1
- package/dist/server/mcp/filters.js +48 -74
- package/dist/server/mcp/filters.js.map +1 -1
- package/dist/server/mcp/globalsearch/globalsearch-client.d.ts +50 -0
- package/dist/server/mcp/globalsearch/globalsearch-client.d.ts.map +1 -0
- package/dist/server/mcp/globalsearch/globalsearch-client.js +118 -0
- package/dist/server/mcp/globalsearch/globalsearch-client.js.map +1 -0
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.d.ts +16 -0
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.d.ts.map +1 -0
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.js +34 -0
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.js.map +1 -0
- package/dist/server/mcp/json-schema-to-zod.d.ts +3 -0
- package/dist/server/mcp/json-schema-to-zod.d.ts.map +1 -0
- package/dist/server/mcp/json-schema-to-zod.js +54 -0
- package/dist/server/mcp/json-schema-to-zod.js.map +1 -0
- package/dist/server/mcp/server.d.ts +33 -0
- package/dist/server/mcp/server.d.ts.map +1 -1
- package/dist/server/mcp/server.js +243 -163
- package/dist/server/mcp/server.js.map +1 -1
- package/dist/server/mcp/tool-preparer.d.ts +26 -0
- package/dist/server/mcp/tool-preparer.d.ts.map +1 -0
- package/dist/server/mcp/tool-preparer.js +11 -0
- package/dist/server/mcp/tool-preparer.js.map +1 -0
- package/dist/server/mcp/tools-data.d.ts +119 -7
- package/dist/server/mcp/tools-data.d.ts.map +1 -1
- package/dist/server/mcp/tools-data.js +258 -43
- package/dist/server/mcp/tools-data.js.map +1 -1
- package/dist/sessions/index.d.ts.map +1 -0
- package/dist/sessions/index.js.map +1 -0
- package/dist/{services → sessions}/session-context.d.ts +16 -0
- package/dist/sessions/session-context.d.ts.map +1 -0
- package/dist/{services → sessions}/session-context.js +36 -1
- package/dist/sessions/session-context.js.map +1 -0
- package/dist/{services → sessions}/token-refresh-scheduler.d.ts.map +1 -1
- package/dist/{services → sessions}/token-refresh-scheduler.js +2 -2
- package/dist/{services → sessions}/token-refresh-scheduler.js.map +1 -1
- package/dist/utils/context.js +2 -2
- package/package.json +8 -8
- package/dist/creatio/engines/admin-operation/admin-operation-engine.d.ts.map +0 -1
- package/dist/creatio/engines/admin-operation/admin-operation-engine.js +0 -27
- package/dist/creatio/engines/admin-operation/admin-operation-engine.js.map +0 -1
- package/dist/creatio/engines/configuration/configuration-engine.d.ts +0 -10
- package/dist/creatio/engines/configuration/configuration-engine.d.ts.map +0 -1
- package/dist/creatio/engines/configuration/configuration-engine.js +0 -18
- package/dist/creatio/engines/configuration/configuration-engine.js.map +0 -1
- package/dist/creatio/engines/crud/crud-engine.d.ts +0 -15
- package/dist/creatio/engines/crud/crud-engine.d.ts.map +0 -1
- package/dist/creatio/engines/crud/crud-engine.js +0 -33
- package/dist/creatio/engines/crud/crud-engine.js.map +0 -1
- package/dist/creatio/engines/feature/feature-engine.d.ts +0 -10
- package/dist/creatio/engines/feature/feature-engine.d.ts.map +0 -1
- package/dist/creatio/engines/feature/feature-engine.js.map +0 -1
- package/dist/creatio/engines/process/process-engine.d.ts +0 -10
- package/dist/creatio/engines/process/process-engine.d.ts.map +0 -1
- package/dist/creatio/engines/process/process-engine.js.map +0 -1
- package/dist/creatio/engines/sys-settings/sys-settings-engine.d.ts.map +0 -1
- package/dist/creatio/engines/sys-settings/sys-settings-engine.js +0 -27
- package/dist/creatio/engines/sys-settings/sys-settings-engine.js.map +0 -1
- package/dist/creatio/engines/user/user-engine.d.ts +0 -10
- package/dist/creatio/engines/user/user-engine.d.ts.map +0 -1
- package/dist/creatio/engines/user/user-engine.js.map +0 -1
- package/dist/creatio/providers/admin-operation-provider.js.map +0 -1
- package/dist/creatio/providers/configuration-provider.d.ts.map +0 -1
- package/dist/creatio/providers/configuration-provider.js.map +0 -1
- package/dist/creatio/providers/crud-provider.d.ts +0 -40
- package/dist/creatio/providers/crud-provider.d.ts.map +0 -1
- package/dist/creatio/providers/crud-provider.js.map +0 -1
- package/dist/creatio/providers/feature-provider.js.map +0 -1
- package/dist/creatio/providers/index.d.ts.map +0 -1
- package/dist/creatio/providers/process-provider.js.map +0 -1
- package/dist/creatio/providers/sys-settings-provider.js.map +0 -1
- package/dist/creatio/providers/user-provider.js.map +0 -1
- package/dist/creatio/services/metadata-store.d.ts.map +0 -1
- package/dist/creatio/services/metadata-store.js.map +0 -1
- package/dist/creatio/services/odata-crud-provider.d.ts.map +0 -1
- package/dist/creatio/services/odata-crud-provider.js.map +0 -1
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js.map +0 -1
- package/dist/services/session-context.d.ts.map +0 -1
- package/dist/services/session-context.js.map +0 -1
- /package/dist/creatio/{providers → contracts}/admin-operation-provider.d.ts +0 -0
- /package/dist/creatio/{providers → contracts}/admin-operation-provider.js +0 -0
- /package/dist/creatio/{providers → contracts}/configuration-provider.js +0 -0
- /package/dist/creatio/{providers → contracts}/crud-provider.js +0 -0
- /package/dist/creatio/{providers → contracts}/feature-provider.d.ts +0 -0
- /package/dist/creatio/{providers → contracts}/feature-provider.js +0 -0
- /package/dist/creatio/{providers → contracts}/process-provider.d.ts +0 -0
- /package/dist/creatio/{providers → contracts}/process-provider.js +0 -0
- /package/dist/creatio/{providers → contracts}/sys-settings-provider.d.ts +0 -0
- /package/dist/creatio/{providers → contracts}/sys-settings-provider.js +0 -0
- /package/dist/creatio/{providers → contracts}/user-provider.d.ts +0 -0
- /package/dist/creatio/{providers → contracts}/user-provider.js +0 -0
- /package/dist/{services → sessions}/index.d.ts +0 -0
- /package/dist/{services → sessions}/index.js +0 -0
- /package/dist/{services → sessions}/token-refresh-scheduler.d.ts +0 -0
|
@@ -29,8 +29,14 @@ class ConfigurationServiceProvider {
|
|
|
29
29
|
return serialized ? `?${serialized}` : '';
|
|
30
30
|
}
|
|
31
31
|
_buildUrl(request) {
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
if (request.rawPath) {
|
|
33
|
+
// Caller-built multi-segment path (already safely encoded). Bypass the
|
|
34
|
+
// single-segment service/method validation.
|
|
35
|
+
const path = request.rawPath.startsWith('/') ? request.rawPath : `/${request.rawPath}`;
|
|
36
|
+
return `${this._client.normalizedBaseUrl}${path}${this._buildQueryString(request.query)}`;
|
|
37
|
+
}
|
|
38
|
+
this._validateName('service', request.service ?? '');
|
|
39
|
+
this._validateName('method', request.method ?? '');
|
|
34
40
|
const base = `${this._client.normalizedBaseUrl}/0/rest/${request.service}/${request.method}`;
|
|
35
41
|
return `${base}${this._buildQueryString(request.query)}`;
|
|
36
42
|
}
|
|
@@ -64,8 +70,10 @@ class ConfigurationServiceProvider {
|
|
|
64
70
|
async call(request) {
|
|
65
71
|
const httpMethod = request.httpMethod ?? 'POST';
|
|
66
72
|
const url = this._buildUrl(request);
|
|
67
|
-
const operation =
|
|
68
|
-
|
|
73
|
+
const operation = request.rawPath
|
|
74
|
+
? `call-configuration-service:${request.rawPath}`
|
|
75
|
+
: `call-configuration-service:${request.service}.${request.method}`;
|
|
76
|
+
return this._client.request(operation, url, async () => {
|
|
69
77
|
const init = await this._buildRequestInit(httpMethod, request.body);
|
|
70
78
|
return this._client.fetchWithAuth(url, async () => init);
|
|
71
79
|
}, async (response, duration) => {
|
|
@@ -83,7 +91,10 @@ class ConfigurationServiceProvider {
|
|
|
83
91
|
result.contentType = contentType;
|
|
84
92
|
}
|
|
85
93
|
return result;
|
|
86
|
-
},
|
|
94
|
+
}, {
|
|
95
|
+
errorPrefix: 'creatio_configuration_service_failed',
|
|
96
|
+
logContext: { httpMethod, service: request.service, method: request.method },
|
|
97
|
+
});
|
|
87
98
|
}
|
|
88
99
|
}
|
|
89
100
|
exports.ConfigurationServiceProvider = ConfigurationServiceProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-service-provider.js","sourceRoot":"","sources":["../../../src/creatio/services/configuration-service-provider.ts"],"names":[],"mappings":";;;AAUA,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AACtD,MAAM,oBAAoB,GAAgD,IAAI,GAAG,CAAC;IACjF,KAAK;IACL,QAAQ;CACR,CAAC,CAAC;AAEH,MAAa,4BAA4B;IACvB,OAAO,CAAoB;IAE5B,IAAI,GAAG,+BAA+B,CAAC;IAEvD,YAAY,MAAyB;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,aAAa,CAAC,IAA0B,EAAE,KAAa;QAC9D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;IACF,CAAC;IAEO,iBAAiB,CACxB,KAAiE;QAEjE,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACX,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;IAEO,SAAS,CAAC,OAAwC;QACzD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"configuration-service-provider.js","sourceRoot":"","sources":["../../../src/creatio/services/configuration-service-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ICreatioAuthProvider } from '../auth';
|
|
2
2
|
import { CreatioClientConfig } from '../client-config';
|
|
3
3
|
import { CreatioProviderContext } from '../provider-context';
|
|
4
|
-
import { AdminOperationProvider, ConfigurationProvider, CrudProvider, FeatureProvider, ProcessProvider, SysSettingsProvider, UserProvider } from '../
|
|
4
|
+
import { AdminOperationProvider, ConfigurationProvider, CrudProvider, FeatureProvider, ProcessProvider, SysSettingsProvider, UserProvider } from '../contracts';
|
|
5
5
|
export declare class CreatioServiceContext implements CreatioProviderContext {
|
|
6
6
|
private readonly _config;
|
|
7
7
|
private readonly _authManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creatio-service-context.d.ts","sourceRoot":"","sources":["../../../src/creatio/services/creatio-service-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,MAAM,cAAc,CAAC;AAYtB,qBAAa,qBAAsB,YAAW,sBAAsB;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAEhD,SAAgB,IAAI,sBAAsB;IAC1C,SAAgB,cAAc,EAAE,sBAAsB,CAAC;IACvD,SAAgB,aAAa,EAAE,qBAAqB,CAAC;IACrD,SAAgB,IAAI,EAAE,YAAY,CAAC;IACnC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,WAAW,EAAE,mBAAmB,CAAC;IACjD,SAAgB,IAAI,EAAE,YAAY,CAAC;IAEnC,IAAW,YAAY,IAAI,oBAAoB,CAE9C;gBAEW,MAAM,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"creatio-service-context.d.ts","sourceRoot":"","sources":["../../../src/creatio/services/creatio-service-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,MAAM,cAAc,CAAC;AAYtB,qBAAa,qBAAsB,YAAW,sBAAsB;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAEhD,SAAgB,IAAI,sBAAsB;IAC1C,SAAgB,cAAc,EAAE,sBAAsB,CAAC;IACvD,SAAgB,aAAa,EAAE,qBAAqB,CAAC;IACrD,SAAgB,IAAI,EAAE,YAAY,CAAC;IACnC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,WAAW,EAAE,mBAAmB,CAAC;IACjD,SAAgB,IAAI,EAAE,YAAY,CAAC;IAEnC,IAAW,YAAY,IAAI,oBAAoB,CAE9C;gBAEW,MAAM,EAAE,mBAAmB;CAgBvC"}
|
|
@@ -4,10 +4,10 @@ exports.CreatioServiceContext = void 0;
|
|
|
4
4
|
const auth_1 = require("../auth");
|
|
5
5
|
const admin_operation_service_provider_1 = require("./admin-operation-service-provider");
|
|
6
6
|
const configuration_service_provider_1 = require("./configuration-service-provider");
|
|
7
|
+
const crud_provider_factory_1 = require("./crud-provider-factory");
|
|
7
8
|
const feature_service_provider_1 = require("./feature-service-provider");
|
|
8
9
|
const http_client_1 = require("./http-client");
|
|
9
|
-
const metadata_store_1 = require("./metadata-store");
|
|
10
|
-
const odata_crud_provider_1 = require("./odata-crud-provider");
|
|
10
|
+
const metadata_store_1 = require("./odata/metadata-store");
|
|
11
11
|
const process_service_provider_1 = require("./process-service-provider");
|
|
12
12
|
const sys_settings_service_provider_1 = require("./sys-settings-service-provider");
|
|
13
13
|
const user_info_provider_1 = require("./user-info-provider");
|
|
@@ -33,7 +33,10 @@ class CreatioServiceContext {
|
|
|
33
33
|
const metadataStore = new metadata_store_1.ODataMetadataStore(this._httpClient);
|
|
34
34
|
this.adminOperation = new admin_operation_service_provider_1.AdminOperationServiceProvider(this._httpClient);
|
|
35
35
|
this.configuration = new configuration_service_provider_1.ConfigurationServiceProvider(this._httpClient);
|
|
36
|
-
this.crud =
|
|
36
|
+
this.crud = (0, crud_provider_factory_1.createCrudProvider)(config.crudBackend, {
|
|
37
|
+
client: this._httpClient,
|
|
38
|
+
metadataStore,
|
|
39
|
+
});
|
|
37
40
|
this.feature = new feature_service_provider_1.FeatureServiceProvider(this._httpClient);
|
|
38
41
|
this.process = new process_service_provider_1.ProcessServiceProvider(this._httpClient);
|
|
39
42
|
this.sysSettings = new sys_settings_service_provider_1.SysSettingsServiceProvider(this._httpClient);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creatio-service-context.js","sourceRoot":"","sources":["../../../src/creatio/services/creatio-service-context.ts"],"names":[],"mappings":";;;AAAA,kCAAmE;AAanE,yFAAmF;AACnF,qFAAgF;AAChF,yEAAoE;AACpE,+CAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"creatio-service-context.js","sourceRoot":"","sources":["../../../src/creatio/services/creatio-service-context.ts"],"names":[],"mappings":";;;AAAA,kCAAmE;AAanE,yFAAmF;AACnF,qFAAgF;AAChF,mEAA6D;AAC7D,yEAAoE;AACpE,+CAAkD;AAClD,2DAA4D;AAC5D,yEAAoE;AACpE,mFAA6E;AAC7E,6DAAwD;AAExD,MAAa,qBAAqB;IAChB,OAAO,CAAsB;IAC7B,YAAY,CAAqB;IACjC,WAAW,CAAoB;IAEhC,IAAI,GAAG,kBAAkB,CAAC;IAC1B,cAAc,CAAyB;IACvC,aAAa,CAAwB;IACrC,IAAI,CAAe;IACnB,OAAO,CAAkB;IACzB,OAAO,CAAkB;IACzB,WAAW,CAAsB;IACjC,IAAI,CAAe;IAEnC,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED,YAAY,MAA2B;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,yBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,+BAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,IAAI,mCAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,gEAA6B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,IAAI,CAAC,aAAa,GAAG,IAAI,6DAA4B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,IAAA,0CAAkB,EAAC,MAAM,CAAC,WAAW,EAAE;YAClD,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,aAAa;SACb,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,iDAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,iDAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,GAAG,IAAI,0DAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,IAAI,qCAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;CACD;AAlCD,sDAkCC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CrudBackend } from '../client-config';
|
|
2
|
+
import { CrudProvider } from '../contracts';
|
|
3
|
+
import { CreatioHttpClient } from './http-client';
|
|
4
|
+
import { ODataMetadataStore } from './odata/metadata-store';
|
|
5
|
+
export interface CrudProviderDeps {
|
|
6
|
+
client: CreatioHttpClient;
|
|
7
|
+
metadataStore: ODataMetadataStore;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Selects the CRUD provider for the configured backend — the same per-deployment,
|
|
11
|
+
* one-per-process pattern as {@link CreatioAuthManager}. Defaults to DataService (Creatio's
|
|
12
|
+
* native data API). This is the single extension point for adding a CRUD backend: implement
|
|
13
|
+
* {@link CrudProvider} and add a branch here; nothing above the provider interface changes.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createCrudProvider(backend: CrudBackend | undefined, deps: CrudProviderDeps): CrudProvider;
|
|
16
|
+
//# sourceMappingURL=crud-provider-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud-provider-factory.d.ts","sourceRoot":"","sources":["../../../src/creatio/services/crud-provider-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,kBAAkB,CAAC;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,IAAI,EAAE,gBAAgB,GACpB,YAAY,CASd"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCrudProvider = createCrudProvider;
|
|
4
|
+
const data_service_crud_provider_1 = require("./dataservice/data-service-crud-provider");
|
|
5
|
+
const odata_crud_provider_1 = require("./odata/odata-crud-provider");
|
|
6
|
+
/**
|
|
7
|
+
* Selects the CRUD provider for the configured backend — the same per-deployment,
|
|
8
|
+
* one-per-process pattern as {@link CreatioAuthManager}. Defaults to DataService (Creatio's
|
|
9
|
+
* native data API). This is the single extension point for adding a CRUD backend: implement
|
|
10
|
+
* {@link CrudProvider} and add a branch here; nothing above the provider interface changes.
|
|
11
|
+
*/
|
|
12
|
+
function createCrudProvider(backend, deps) {
|
|
13
|
+
switch (backend ?? 'dataservice') {
|
|
14
|
+
case 'dataservice':
|
|
15
|
+
return new data_service_crud_provider_1.DataServiceCrudProvider(deps.client);
|
|
16
|
+
case 'odata':
|
|
17
|
+
return new odata_crud_provider_1.ODataCrudProvider(deps.client, deps.metadataStore);
|
|
18
|
+
default:
|
|
19
|
+
throw new Error(`unsupported_crud_backend:${backend}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=crud-provider-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud-provider-factory.js","sourceRoot":"","sources":["../../../src/creatio/services/crud-provider-factory.ts"],"names":[],"mappings":";;AAmBA,gDAYC;AA5BD,yFAAmF;AAEnF,qEAAgE;AAQhE;;;;;GAKG;AACH,SAAgB,kBAAkB,CACjC,OAAgC,EAChC,IAAsB;IAEtB,QAAQ,OAAO,IAAI,aAAa,EAAE,CAAC;QAClC,KAAK,aAAa;YACjB,OAAO,IAAI,oDAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,KAAK,OAAO;YACX,OAAO,IAAI,uCAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D;YACC,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DataServiceColumnValues, DataValueType } from './data-service-types';
|
|
2
|
+
import { ValueTypeResolver } from './data-service-value-type';
|
|
3
|
+
/**
|
|
4
|
+
* Build a type resolver from an authoritative column->{@link DataValueType} map (from
|
|
5
|
+
* `RuntimeEntitySchemaRequest`). Falls back to the per-value heuristic for unknown columns.
|
|
6
|
+
* A Lookup column written with a bare GUID is typed as Guid so the lookup is set by its
|
|
7
|
+
* foreign key (DataService's Lookup type expects a lookup object, not a raw id).
|
|
8
|
+
*/
|
|
9
|
+
export declare function makeTypeResolver(types: Map<string, DataValueType>): ValueTypeResolver;
|
|
10
|
+
/** Project a plain data object onto a DataService `ColumnValues` map of typed parameters. */
|
|
11
|
+
export declare function buildColumnValues(data: Record<string, unknown> | undefined, resolveType: ValueTypeResolver): DataServiceColumnValues;
|
|
12
|
+
//# sourceMappingURL=data-service-column-values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-service-column-values.d.ts","sourceRoot":"","sources":["../../../../src/creatio/services/dataservice/data-service-column-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAKN,iBAAiB,EACjB,MAAM,2BAA2B,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,iBAAiB,CAarF;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,WAAW,EAAE,iBAAiB,GAC5B,uBAAuB,CAUzB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeTypeResolver = makeTypeResolver;
|
|
4
|
+
exports.buildColumnValues = buildColumnValues;
|
|
5
|
+
const data_service_types_1 = require("./data-service-types");
|
|
6
|
+
const data_service_value_type_1 = require("./data-service-value-type");
|
|
7
|
+
/**
|
|
8
|
+
* Build a type resolver from an authoritative column->{@link DataValueType} map (from
|
|
9
|
+
* `RuntimeEntitySchemaRequest`). Falls back to the per-value heuristic for unknown columns.
|
|
10
|
+
* A Lookup column written with a bare GUID is typed as Guid so the lookup is set by its
|
|
11
|
+
* foreign key (DataService's Lookup type expects a lookup object, not a raw id).
|
|
12
|
+
*/
|
|
13
|
+
function makeTypeResolver(types) {
|
|
14
|
+
return (field, value) => {
|
|
15
|
+
const known = types.get(field);
|
|
16
|
+
if (known === undefined) {
|
|
17
|
+
return (0, data_service_value_type_1.inferDataValueType)(field, value);
|
|
18
|
+
}
|
|
19
|
+
// Map the (possibly extended) column type down to a base Parameter type.
|
|
20
|
+
const base = (0, data_service_value_type_1.toParameterDataValueType)(known);
|
|
21
|
+
if (base === data_service_types_1.DataValueType.Lookup && (0, data_service_value_type_1.isGuid)(value)) {
|
|
22
|
+
return data_service_types_1.DataValueType.Guid;
|
|
23
|
+
}
|
|
24
|
+
return base;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/** Project a plain data object onto a DataService `ColumnValues` map of typed parameters. */
|
|
28
|
+
function buildColumnValues(data, resolveType) {
|
|
29
|
+
const items = {};
|
|
30
|
+
for (const [column, raw] of Object.entries(data ?? {})) {
|
|
31
|
+
const dataValueType = resolveType(column, raw);
|
|
32
|
+
items[column] = {
|
|
33
|
+
expressionType: data_service_types_1.ExpressionType.Parameter,
|
|
34
|
+
parameter: { dataValueType, value: (0, data_service_value_type_1.encodeParameterValue)(dataValueType, raw) },
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return { items };
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data-service-column-values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-service-column-values.js","sourceRoot":"","sources":["../../../../src/creatio/services/dataservice/data-service-column-values.ts"],"names":[],"mappings":";;AAeA,4CAaC;AAGD,8CAaC;AA5CD,6DAA8F;AAC9F,uEAMmC;AAEnC;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAiC;IACjE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAA,4CAAkB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,yEAAyE;QACzE,MAAM,IAAI,GAAG,IAAA,kDAAwB,EAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,IAAI,KAAK,kCAAa,CAAC,MAAM,IAAI,IAAA,gCAAM,EAAC,KAAK,CAAC,EAAE,CAAC;YACpD,OAAO,kCAAa,CAAC,IAAI,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;AACH,CAAC;AAED,6FAA6F;AAC7F,SAAgB,iBAAiB,CAChC,IAAyC,EACzC,WAA8B;IAE9B,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,KAAK,CAAC,MAAM,CAAC,GAAG;YACf,cAAc,EAAE,mCAAc,CAAC,SAAS;YACxC,SAAS,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,IAAA,8CAAoB,EAAC,aAAa,EAAE,GAAG,CAAC,EAAE;SAC7E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CrudCapabilities, CrudDeleteParams, CrudProvider, CrudUpdateParams, CrudWriteParams, EntitySchemaDescription, ReadQuery, ReadResult } from '../../contracts';
|
|
2
|
+
import { CreatioHttpClient } from '../http-client';
|
|
3
|
+
import { DataServiceFilterTranslator } from './data-service-filter-translator';
|
|
4
|
+
import { DataServiceQueryBuilder } from './data-service-query-builder';
|
|
5
|
+
import { DataServiceSchemaProvider } from './data-service-schema';
|
|
6
|
+
import { DataServiceSelectQuery } from './data-service-types';
|
|
7
|
+
import { DataServiceTransport } from './data-service-transport';
|
|
8
|
+
/**
|
|
9
|
+
* DataService-backed CRUD provider (alternative to OData, selected via
|
|
10
|
+
* `CREATIO_CRUD_BACKEND=dataservice`). Talks to `/0/DataService/json/SyncReply/*` using the
|
|
11
|
+
* neutral query contract end to end:
|
|
12
|
+
* - read -> SelectQuery (+ a COUNT aggregation query when `count`),
|
|
13
|
+
* - create -> InsertQuery with type-coerced ColumnValues,
|
|
14
|
+
* - update -> UpdateQuery (id -> Filters{ Id eq … }) + ColumnValues,
|
|
15
|
+
* - delete -> DeleteQuery (id -> Filters{ Id eq … }),
|
|
16
|
+
* - schema -> RuntimeEntitySchemaRequest / VwSysSchemaInWorkspace (see schema provider).
|
|
17
|
+
* Column values are typed from authoritative entity metadata, falling back to a heuristic.
|
|
18
|
+
*/
|
|
19
|
+
export declare class DataServiceCrudProvider implements CrudProvider {
|
|
20
|
+
private readonly _transport;
|
|
21
|
+
private readonly _queryBuilder;
|
|
22
|
+
private readonly _filters;
|
|
23
|
+
private readonly _schema;
|
|
24
|
+
readonly kind = "creatio-dataservice";
|
|
25
|
+
readonly capabilities: CrudCapabilities;
|
|
26
|
+
constructor(client: CreatioHttpClient, deps?: {
|
|
27
|
+
transport?: DataServiceTransport;
|
|
28
|
+
queryBuilder?: DataServiceQueryBuilder;
|
|
29
|
+
filters?: DataServiceFilterTranslator;
|
|
30
|
+
schema?: DataServiceSchemaProvider;
|
|
31
|
+
});
|
|
32
|
+
/** Visible for tests: build (don't send) the SelectQuery payload. */
|
|
33
|
+
buildSelectQuery(query: ReadQuery): DataServiceSelectQuery;
|
|
34
|
+
private _rows;
|
|
35
|
+
private _extractCount;
|
|
36
|
+
/** Filter selecting a single record by primary key (id-addressed update/delete -> set-based). */
|
|
37
|
+
private _byIdFilter;
|
|
38
|
+
private _columnValues;
|
|
39
|
+
/** Keep only the requested columns (DataService auto-adds primary display/image columns
|
|
40
|
+
* like `Photo`); in all-columns mode return rows untouched. */
|
|
41
|
+
private _project;
|
|
42
|
+
listEntitySets(): Promise<string[]>;
|
|
43
|
+
describeEntity(entitySet: string): Promise<EntitySchemaDescription>;
|
|
44
|
+
read(query: ReadQuery): Promise<ReadResult>;
|
|
45
|
+
create({ entity, data }: CrudWriteParams): Promise<any>;
|
|
46
|
+
update({ entity, id, data }: CrudUpdateParams): Promise<any>;
|
|
47
|
+
delete({ entity, id }: CrudDeleteParams): Promise<any>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data-service-crud-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-service-crud-provider.d.ts","sourceRoot":"","sources":["../../../../src/creatio/services/dataservice/data-service-crud-provider.ts"],"names":[],"mappings":"AACA,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAsB,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAsB,sBAAsB,EAAsB,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIhE;;;;;;;;;;GAUG;AACH,qBAAa,uBAAwB,YAAW,YAAY;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,SAAgB,IAAI,yBAAyB;IAG7C,SAAgB,YAAY,EAAE,gBAAgB,CAAuC;gBAGpF,MAAM,EAAE,iBAAiB,EACzB,IAAI,GAAE;QACL,SAAS,CAAC,EAAE,oBAAoB,CAAC;QACjC,YAAY,CAAC,EAAE,uBAAuB,CAAC;QACvC,OAAO,CAAC,EAAE,2BAA2B,CAAC;QACtC,MAAM,CAAC,EAAE,yBAAyB,CAAC;KAC9B;IAQP,qEAAqE;IAC9D,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,sBAAsB;IAIjE,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,aAAa;IAOrB,iGAAiG;IACjG,OAAO,CAAC,WAAW;YAaL,aAAa;IAgB3B;oEACgE;IAChE,OAAO,CAAC,QAAQ;IAeT,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAInE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IA8B3C,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAWvD,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAgB5D,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;CAanE"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DataServiceCrudProvider = void 0;
|
|
7
|
+
const log_1 = __importDefault(require("../../../log"));
|
|
8
|
+
const entity_name_1 = require("../entity-name");
|
|
9
|
+
const data_service_column_values_1 = require("./data-service-column-values");
|
|
10
|
+
const data_service_filter_translator_1 = require("./data-service-filter-translator");
|
|
11
|
+
const data_service_query_builder_1 = require("./data-service-query-builder");
|
|
12
|
+
const data_service_schema_1 = require("./data-service-schema");
|
|
13
|
+
const data_service_types_1 = require("./data-service-types");
|
|
14
|
+
const data_service_transport_1 = require("./data-service-transport");
|
|
15
|
+
const PRIMARY_KEY = 'Id';
|
|
16
|
+
/**
|
|
17
|
+
* DataService-backed CRUD provider (alternative to OData, selected via
|
|
18
|
+
* `CREATIO_CRUD_BACKEND=dataservice`). Talks to `/0/DataService/json/SyncReply/*` using the
|
|
19
|
+
* neutral query contract end to end:
|
|
20
|
+
* - read -> SelectQuery (+ a COUNT aggregation query when `count`),
|
|
21
|
+
* - create -> InsertQuery with type-coerced ColumnValues,
|
|
22
|
+
* - update -> UpdateQuery (id -> Filters{ Id eq … }) + ColumnValues,
|
|
23
|
+
* - delete -> DeleteQuery (id -> Filters{ Id eq … }),
|
|
24
|
+
* - schema -> RuntimeEntitySchemaRequest / VwSysSchemaInWorkspace (see schema provider).
|
|
25
|
+
* Column values are typed from authoritative entity metadata, falling back to a heuristic.
|
|
26
|
+
*/
|
|
27
|
+
class DataServiceCrudProvider {
|
|
28
|
+
_transport;
|
|
29
|
+
_queryBuilder;
|
|
30
|
+
_filters;
|
|
31
|
+
_schema;
|
|
32
|
+
kind = 'creatio-dataservice';
|
|
33
|
+
// DataService has no raw-string filter and no $expand; related data is read by column
|
|
34
|
+
// path and filters are always structured. So neither OData-only extra is offered.
|
|
35
|
+
capabilities = { rawFilter: false, expand: false };
|
|
36
|
+
constructor(client, deps = {}) {
|
|
37
|
+
this._transport = deps.transport ?? new data_service_transport_1.DataServiceTransport(client);
|
|
38
|
+
this._queryBuilder = deps.queryBuilder ?? new data_service_query_builder_1.DataServiceQueryBuilder();
|
|
39
|
+
this._filters = deps.filters ?? new data_service_filter_translator_1.DataServiceFilterTranslator();
|
|
40
|
+
this._schema = deps.schema ?? new data_service_schema_1.DataServiceSchemaProvider(this._transport);
|
|
41
|
+
}
|
|
42
|
+
/** Visible for tests: build (don't send) the SelectQuery payload. */
|
|
43
|
+
buildSelectQuery(query) {
|
|
44
|
+
return this._queryBuilder.buildSelectQuery(query);
|
|
45
|
+
}
|
|
46
|
+
_rows(body) {
|
|
47
|
+
return Array.isArray(body?.rows) ? body.rows : [];
|
|
48
|
+
}
|
|
49
|
+
_extractCount(body) {
|
|
50
|
+
const rows = this._rows(body);
|
|
51
|
+
const raw = rows.length ? rows[0]?.[data_service_query_builder_1.COUNT_COLUMN_ALIAS] : undefined;
|
|
52
|
+
const n = Number(raw);
|
|
53
|
+
return Number.isFinite(n) ? n : undefined;
|
|
54
|
+
}
|
|
55
|
+
/** Filter selecting a single record by primary key (id-addressed update/delete -> set-based). */
|
|
56
|
+
_byIdFilter(entity, id) {
|
|
57
|
+
const filters = this._filters.translate(entity, {
|
|
58
|
+
kind: 'condition',
|
|
59
|
+
field: PRIMARY_KEY,
|
|
60
|
+
op: 'eq',
|
|
61
|
+
value: id,
|
|
62
|
+
});
|
|
63
|
+
if (!filters) {
|
|
64
|
+
throw new Error(`invalid_record_id:${id}`);
|
|
65
|
+
}
|
|
66
|
+
return filters;
|
|
67
|
+
}
|
|
68
|
+
async _columnValues(entity, data) {
|
|
69
|
+
const types = await this._schema.columnTypes(entity);
|
|
70
|
+
// A scalar lookup FK key (`TypeId`/`OwnerId`) maps to the logical lookup column
|
|
71
|
+
// (`Type`/`Owner`) when the schema exposes it; DataService writes the lookup by that
|
|
72
|
+
// column, not by the `*Id` alias.
|
|
73
|
+
const remapped = {};
|
|
74
|
+
for (const [key, value] of Object.entries(data ?? {})) {
|
|
75
|
+
const column = !types.has(key) && key.endsWith('Id') && types.has(key.slice(0, -2))
|
|
76
|
+
? key.slice(0, -2)
|
|
77
|
+
: key;
|
|
78
|
+
remapped[column] = value;
|
|
79
|
+
}
|
|
80
|
+
return (0, data_service_column_values_1.buildColumnValues)(remapped, (0, data_service_column_values_1.makeTypeResolver)(types));
|
|
81
|
+
}
|
|
82
|
+
/** Keep only the requested columns (DataService auto-adds primary display/image columns
|
|
83
|
+
* like `Photo`); in all-columns mode return rows untouched. */
|
|
84
|
+
_project(rows, columns) {
|
|
85
|
+
if (!columns || columns.length === 0) {
|
|
86
|
+
return rows;
|
|
87
|
+
}
|
|
88
|
+
return rows.map((row) => {
|
|
89
|
+
const out = {};
|
|
90
|
+
for (const col of columns) {
|
|
91
|
+
if (row && Object.prototype.hasOwnProperty.call(row, col)) {
|
|
92
|
+
out[col] = row[col];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return out;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
listEntitySets() {
|
|
99
|
+
return this._schema.listEntitySets();
|
|
100
|
+
}
|
|
101
|
+
async describeEntity(entitySet) {
|
|
102
|
+
return this._schema.describeEntity((0, entity_name_1.assertEntityName)(entitySet));
|
|
103
|
+
}
|
|
104
|
+
async read(query) {
|
|
105
|
+
(0, entity_name_1.assertEntityName)(query.entity);
|
|
106
|
+
// top:0 means "no rows" (typically a count-only request). DataService cannot FETCH 0
|
|
107
|
+
// rows, so skip the row query entirely and return an empty set.
|
|
108
|
+
let items = [];
|
|
109
|
+
if (query.top !== 0) {
|
|
110
|
+
const select = this._queryBuilder.buildSelectQuery(query);
|
|
111
|
+
const body = await this._transport.post('SelectQuery', select, {
|
|
112
|
+
logContext: { entity: query.entity, top: query.top, skip: query.skip },
|
|
113
|
+
});
|
|
114
|
+
if (body?.notFoundColumns?.length) {
|
|
115
|
+
log_1.default.warn('creatio.dataservice.read.not_found_columns', {
|
|
116
|
+
entity: query.entity,
|
|
117
|
+
notFoundColumns: body.notFoundColumns,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
items = this._project(this._rows(body), query.columns);
|
|
121
|
+
}
|
|
122
|
+
if (!query.count) {
|
|
123
|
+
return { items };
|
|
124
|
+
}
|
|
125
|
+
const countBody = await this._transport.post('SelectQuery', this._queryBuilder.buildCountQuery(query), { logContext: { entity: query.entity, count: true } });
|
|
126
|
+
const totalCount = this._extractCount(countBody);
|
|
127
|
+
return totalCount !== undefined ? { items, totalCount } : { items };
|
|
128
|
+
}
|
|
129
|
+
async create({ entity, data }) {
|
|
130
|
+
(0, entity_name_1.assertEntityName)(entity);
|
|
131
|
+
const columnValues = await this._columnValues(entity, data ?? {});
|
|
132
|
+
const body = await this._transport.post('InsertQuery', { rootSchemaName: entity, operationType: data_service_types_1.QueryOperationType.Insert, columnValues }, { logContext: { entity }, checkSuccess: true });
|
|
133
|
+
return { id: body?.id, success: body?.success !== false, rowsAffected: body?.rowsAffected };
|
|
134
|
+
}
|
|
135
|
+
async update({ entity, id, data }) {
|
|
136
|
+
(0, entity_name_1.assertEntityName)(entity);
|
|
137
|
+
const columnValues = await this._columnValues(entity, data ?? {});
|
|
138
|
+
const body = await this._transport.post('UpdateQuery', {
|
|
139
|
+
rootSchemaName: entity,
|
|
140
|
+
operationType: data_service_types_1.QueryOperationType.Update,
|
|
141
|
+
columnValues,
|
|
142
|
+
filters: this._byIdFilter(entity, id),
|
|
143
|
+
}, { logContext: { entity, id }, checkSuccess: true });
|
|
144
|
+
return { success: body?.success !== false, rowsAffected: body?.rowsAffected };
|
|
145
|
+
}
|
|
146
|
+
async delete({ entity, id }) {
|
|
147
|
+
(0, entity_name_1.assertEntityName)(entity);
|
|
148
|
+
const body = await this._transport.post('DeleteQuery', {
|
|
149
|
+
rootSchemaName: entity,
|
|
150
|
+
operationType: data_service_types_1.QueryOperationType.Delete,
|
|
151
|
+
filters: this._byIdFilter(entity, id),
|
|
152
|
+
}, { logContext: { entity, id }, checkSuccess: true });
|
|
153
|
+
return { success: body?.success !== false, rowsAffected: body?.rowsAffected };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
exports.DataServiceCrudProvider = DataServiceCrudProvider;
|
|
157
|
+
//# sourceMappingURL=data-service-crud-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-service-crud-provider.js","sourceRoot":"","sources":["../../../../src/creatio/services/dataservice/data-service-crud-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { FilterNode } from '../../contracts';
|
|
2
|
+
import { DataServiceFilters } from './data-service-types';
|
|
3
|
+
import { ValueTypeResolver } from './data-service-value-type';
|
|
4
|
+
/**
|
|
5
|
+
* Projects a neutral {@link FilterNode} tree onto a Creatio DataService `Filters` tree.
|
|
6
|
+
* Groups become `FilterType.Group` with a keyed `items` map; comparisons become
|
|
7
|
+
* `FilterType.CompareFilter` with a column `LeftExpression` and a typed-parameter
|
|
8
|
+
* `RightExpression`; `isNull`/`isNotNull` become `FilterType.IsNullFilter`. An `in` list is
|
|
9
|
+
* expanded to an OR-group of equalities (DataService has no native IN in our op subset).
|
|
10
|
+
*/
|
|
11
|
+
export declare class DataServiceFilterTranslator {
|
|
12
|
+
private readonly _resolveType;
|
|
13
|
+
constructor(resolveType?: ValueTypeResolver);
|
|
14
|
+
/**
|
|
15
|
+
* Normalize a tool-supplied field to a DataService column path. The tool surface uses
|
|
16
|
+
* OData conventions (navigation with `/`, scalar FKs like `ContactId`); DataService
|
|
17
|
+
* addresses nested data by dotted path. So we map `/` -> `.`, and when a lookup is compared
|
|
18
|
+
* to a GUID we navigate it to its primary key (`Owner` -> `Owner.Id`,
|
|
19
|
+
* `Contact/Type` -> `Contact.Type.Id`). Non-GUID values keep the plain (dotted) path.
|
|
20
|
+
*/
|
|
21
|
+
private _columnPath;
|
|
22
|
+
private _column;
|
|
23
|
+
private _parameter;
|
|
24
|
+
private _compare;
|
|
25
|
+
private _condition;
|
|
26
|
+
private _group;
|
|
27
|
+
private _in;
|
|
28
|
+
private _node;
|
|
29
|
+
/** Build the root `Filters` for a schema, or undefined when the tree is empty. */
|
|
30
|
+
translate(rootSchemaName: string, node: FilterNode | undefined): DataServiceFilters | undefined;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data-service-filter-translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-service-filter-translator.d.ts","sourceRoot":"","sources":["../../../../src/creatio/services/dataservice/data-service-filter-translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGnG,OAAO,EAGN,kBAAkB,EAMlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIN,iBAAiB,EACjB,MAAM,2BAA2B,CAAC;AAcnC;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;gBAErC,WAAW,GAAE,iBAAsC;IAI/D;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,MAAM;IAoBd,OAAO,CAAC,GAAG;IAOX,OAAO,CAAC,KAAK;IAab,kFAAkF;IAC3E,SAAS,CACf,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,UAAU,GAAG,SAAS,GAC1B,kBAAkB,GAAG,SAAS;CAUjC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataServiceFilterTranslator = void 0;
|
|
4
|
+
const lookup_path_1 = require("../lookup-path");
|
|
5
|
+
const data_service_types_1 = require("./data-service-types");
|
|
6
|
+
const data_service_value_type_1 = require("./data-service-value-type");
|
|
7
|
+
const COMPARISON = {
|
|
8
|
+
eq: data_service_types_1.FilterComparisonType.Equal,
|
|
9
|
+
ne: data_service_types_1.FilterComparisonType.NotEqual,
|
|
10
|
+
gt: data_service_types_1.FilterComparisonType.Greater,
|
|
11
|
+
ge: data_service_types_1.FilterComparisonType.GreaterOrEqual,
|
|
12
|
+
lt: data_service_types_1.FilterComparisonType.Less,
|
|
13
|
+
le: data_service_types_1.FilterComparisonType.LessOrEqual,
|
|
14
|
+
contains: data_service_types_1.FilterComparisonType.Contain,
|
|
15
|
+
startswith: data_service_types_1.FilterComparisonType.StartWith,
|
|
16
|
+
endswith: data_service_types_1.FilterComparisonType.EndWith,
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Projects a neutral {@link FilterNode} tree onto a Creatio DataService `Filters` tree.
|
|
20
|
+
* Groups become `FilterType.Group` with a keyed `items` map; comparisons become
|
|
21
|
+
* `FilterType.CompareFilter` with a column `LeftExpression` and a typed-parameter
|
|
22
|
+
* `RightExpression`; `isNull`/`isNotNull` become `FilterType.IsNullFilter`. An `in` list is
|
|
23
|
+
* expanded to an OR-group of equalities (DataService has no native IN in our op subset).
|
|
24
|
+
*/
|
|
25
|
+
class DataServiceFilterTranslator {
|
|
26
|
+
_resolveType;
|
|
27
|
+
constructor(resolveType = data_service_value_type_1.inferDataValueType) {
|
|
28
|
+
this._resolveType = resolveType;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Normalize a tool-supplied field to a DataService column path. The tool surface uses
|
|
32
|
+
* OData conventions (navigation with `/`, scalar FKs like `ContactId`); DataService
|
|
33
|
+
* addresses nested data by dotted path. So we map `/` -> `.`, and when a lookup is compared
|
|
34
|
+
* to a GUID we navigate it to its primary key (`Owner` -> `Owner.Id`,
|
|
35
|
+
* `Contact/Type` -> `Contact.Type.Id`). Non-GUID values keep the plain (dotted) path.
|
|
36
|
+
*/
|
|
37
|
+
_columnPath(field, value) {
|
|
38
|
+
const path = field.replace(/\//g, '.');
|
|
39
|
+
return (0, data_service_value_type_1.isGuid)(value) ? (0, lookup_path_1.lookupIdPath)(path, '.') : path;
|
|
40
|
+
}
|
|
41
|
+
_column(field, value) {
|
|
42
|
+
return { expressionType: data_service_types_1.ExpressionType.SchemaColumn, columnPath: this._columnPath(field, value) };
|
|
43
|
+
}
|
|
44
|
+
_parameter(field, value) {
|
|
45
|
+
const dataValueType = this._resolveType(field, value);
|
|
46
|
+
return {
|
|
47
|
+
expressionType: data_service_types_1.ExpressionType.Parameter,
|
|
48
|
+
parameter: { dataValueType, value: (0, data_service_value_type_1.encodeParameterValue)(dataValueType, value) },
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
_compare(field, op, value) {
|
|
52
|
+
return {
|
|
53
|
+
filterType: data_service_types_1.FilterType.CompareFilter,
|
|
54
|
+
comparisonType: COMPARISON[op],
|
|
55
|
+
leftExpression: this._column(field, value),
|
|
56
|
+
rightExpression: this._parameter(field, value),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
_condition(node) {
|
|
60
|
+
if (node.op === 'isNull' || node.op === 'isNotNull') {
|
|
61
|
+
const isNull = node.op === 'isNull';
|
|
62
|
+
return {
|
|
63
|
+
filterType: data_service_types_1.FilterType.IsNullFilter,
|
|
64
|
+
comparisonType: isNull ? data_service_types_1.FilterComparisonType.IsNull : data_service_types_1.FilterComparisonType.IsNotNull,
|
|
65
|
+
// The platform's Filter.IsNull defaults to TRUE, so an IsNullFilter without this
|
|
66
|
+
// flag is always treated as IS NULL (inverting isNotNull). Set it explicitly.
|
|
67
|
+
isNull,
|
|
68
|
+
leftExpression: this._column(node.field),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return this._compare(node.field, node.op, node.value);
|
|
72
|
+
}
|
|
73
|
+
_group(logic, children) {
|
|
74
|
+
const items = {};
|
|
75
|
+
let n = 0;
|
|
76
|
+
for (const child of children) {
|
|
77
|
+
if (child) {
|
|
78
|
+
items[`item${++n}`] = child;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (n === 0) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
if (n === 1) {
|
|
85
|
+
return items.item1; // collapse a single-child group
|
|
86
|
+
}
|
|
87
|
+
return { filterType: data_service_types_1.FilterType.Group, logicalOperation: logic, items };
|
|
88
|
+
}
|
|
89
|
+
_in(node) {
|
|
90
|
+
return this._group(data_service_types_1.LogicalOperation.Or, node.values.map((v) => this._compare(node.field, 'eq', v)));
|
|
91
|
+
}
|
|
92
|
+
_node(node) {
|
|
93
|
+
if (node.kind === 'condition') {
|
|
94
|
+
return this._condition(node);
|
|
95
|
+
}
|
|
96
|
+
if (node.kind === 'in') {
|
|
97
|
+
return this._in(node);
|
|
98
|
+
}
|
|
99
|
+
return this._group(node.logic === 'or' ? data_service_types_1.LogicalOperation.Or : data_service_types_1.LogicalOperation.And, node.items.map((n) => this._node(n)));
|
|
100
|
+
}
|
|
101
|
+
/** Build the root `Filters` for a schema, or undefined when the tree is empty. */
|
|
102
|
+
translate(rootSchemaName, node) {
|
|
103
|
+
if (!node) {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
const filter = this._node(node);
|
|
107
|
+
if (!filter) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
return { ...filter, rootSchemaName };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.DataServiceFilterTranslator = DataServiceFilterTranslator;
|
|
114
|
+
//# sourceMappingURL=data-service-filter-translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-service-filter-translator.js","sourceRoot":"","sources":["../../../../src/creatio/services/dataservice/data-service-filter-translator.ts"],"names":[],"mappings":";;;AACA,gDAA8C;AAE9C,6DAS8B;AAC9B,uEAKmC;AAEnC,MAAM,UAAU,GAAoF;IACnG,EAAE,EAAE,yCAAoB,CAAC,KAAK;IAC9B,EAAE,EAAE,yCAAoB,CAAC,QAAQ;IACjC,EAAE,EAAE,yCAAoB,CAAC,OAAO;IAChC,EAAE,EAAE,yCAAoB,CAAC,cAAc;IACvC,EAAE,EAAE,yCAAoB,CAAC,IAAI;IAC7B,EAAE,EAAE,yCAAoB,CAAC,WAAW;IACpC,QAAQ,EAAE,yCAAoB,CAAC,OAAO;IACtC,UAAU,EAAE,yCAAoB,CAAC,SAAS;IAC1C,QAAQ,EAAE,yCAAoB,CAAC,OAAO;CACtC,CAAC;AAEF;;;;;;GAMG;AACH,MAAa,2BAA2B;IACtB,YAAY,CAAoB;IAEjD,YAAY,cAAiC,4CAAkB;QAC9D,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACK,WAAW,CAAC,KAAa,EAAE,KAAe;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvC,OAAO,IAAA,gCAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAY,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAEO,OAAO,CAAC,KAAa,EAAE,KAAe;QAC7C,OAAO,EAAE,cAAc,EAAE,mCAAc,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;IACpG,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,KAAc;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO;YACN,cAAc,EAAE,mCAAc,CAAC,SAAS;YACxC,SAAS,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,IAAA,8CAAoB,EAAC,aAAa,EAAE,KAAK,CAAC,EAAE;SAC/E,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,KAAa,EAAE,EAAoB,EAAE,KAAc;QACnE,OAAO;YACN,UAAU,EAAE,+BAAU,CAAC,aAAa;YACpC,cAAc,EAAE,UAAU,CAAC,EAAuD,CAAC;YACnF,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;YAC1C,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;SAC9C,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAqB;QACvC,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC;YACpC,OAAO;gBACN,UAAU,EAAE,+BAAU,CAAC,YAAY;gBACnC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,yCAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,yCAAoB,CAAC,SAAS;gBACrF,iFAAiF;gBACjF,8EAA8E;gBAC9E,MAAM;gBACN,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aACxC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAEO,MAAM,CACb,KAAuB,EACvB,QAA8C;QAE9C,MAAM,KAAK,GAAsC,EAAE,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,KAAK,EAAE,CAAC;gBACX,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;YAC7B,CAAC;QACF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,gCAAgC;QACrD,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,+BAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACzE,CAAC;IAEO,GAAG,CAAC,IAAuB;QAClC,OAAO,IAAI,CAAC,MAAM,CACjB,qCAAgB,CAAC,EAAE,EACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAC1D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAgB;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CACjB,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,qCAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,qCAAgB,CAAC,GAAG,EAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACpC,CAAC;IACH,CAAC;IAED,kFAAkF;IAC3E,SAAS,CACf,cAAsB,EACtB,IAA4B;QAE5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,CAAC;IACtC,CAAC;CACD;AA7GD,kEA6GC"}
|