@etohq/utils 1.5.1-alpha.3 → 1.5.1-alpha.5
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/access-link/case-sensitivity.d.ts +14 -0
- package/dist/access-link/case-sensitivity.d.ts.map +1 -0
- package/dist/access-link/case-sensitivity.js +57 -0
- package/dist/access-link/case-sensitivity.js.map +1 -0
- package/dist/access-link/check-if-key-exists.d.ts +7 -0
- package/dist/access-link/check-if-key-exists.d.ts.map +1 -0
- package/dist/access-link/check-if-key-exists.js +36 -0
- package/dist/access-link/check-if-key-exists.js.map +1 -0
- package/dist/access-link/index.d.ts +11 -0
- package/dist/access-link/index.d.ts.map +1 -0
- package/dist/access-link/index.js +27 -0
- package/dist/access-link/index.js.map +1 -0
- package/dist/access-link/key-checks.d.ts +12 -0
- package/dist/access-link/key-checks.d.ts.map +1 -0
- package/dist/access-link/key-checks.js +78 -0
- package/dist/access-link/key-checks.js.map +1 -0
- package/dist/access-link/link-resolution.d.ts +26 -0
- package/dist/access-link/link-resolution.d.ts.map +1 -0
- package/dist/access-link/link-resolution.js +111 -0
- package/dist/access-link/link-resolution.js.map +1 -0
- package/dist/access-link/link-utils.d.ts +23 -0
- package/dist/access-link/link-utils.d.ts.map +1 -0
- package/dist/access-link/link-utils.js +61 -0
- package/dist/access-link/link-utils.js.map +1 -0
- package/dist/access-link/process-key.d.ts +5 -0
- package/dist/access-link/process-key.d.ts.map +1 -0
- package/dist/access-link/process-key.js +58 -0
- package/dist/access-link/process-key.js.map +1 -0
- package/dist/access-link/process-utils.d.ts +19 -0
- package/dist/access-link/process-utils.d.ts.map +1 -0
- package/dist/access-link/process-utils.js +52 -0
- package/dist/access-link/process-utils.js.map +1 -0
- package/dist/access-link/transform-link.d.ts +47 -0
- package/dist/access-link/transform-link.d.ts.map +1 -0
- package/dist/access-link/transform-link.js +25 -0
- package/dist/access-link/transform-link.js.map +1 -0
- package/dist/access-link/url-detection.d.ts +10 -0
- package/dist/access-link/url-detection.d.ts.map +1 -0
- package/dist/access-link/url-detection.js +63 -0
- package/dist/access-link/url-detection.js.map +1 -0
- package/dist/access-link/validation-utils.d.ts +23 -0
- package/dist/access-link/validation-utils.d.ts.map +1 -0
- package/dist/access-link/validation-utils.js +57 -0
- package/dist/access-link/validation-utils.js.map +1 -0
- package/dist/analytics/detect-bot.d.ts +2 -0
- package/dist/analytics/detect-bot.d.ts.map +1 -0
- package/dist/analytics/detect-bot.js +21 -0
- package/dist/analytics/detect-bot.js.map +1 -0
- package/dist/analytics/detect-qr.d.ts +2 -0
- package/dist/analytics/detect-qr.d.ts.map +1 -0
- package/dist/analytics/detect-qr.js +10 -0
- package/dist/analytics/detect-qr.js.map +1 -0
- package/dist/analytics/get-click-event.d.ts +8 -0
- package/dist/analytics/get-click-event.d.ts.map +1 -0
- package/dist/analytics/get-click-event.js +24 -0
- package/dist/analytics/get-click-event.js.map +1 -0
- package/dist/analytics/get-geolocation.d.ts +12 -0
- package/dist/analytics/get-geolocation.d.ts.map +1 -0
- package/dist/analytics/get-geolocation.js +51 -0
- package/dist/analytics/get-geolocation.js.map +1 -0
- package/dist/analytics/get-grant-event.d.ts +8 -0
- package/dist/analytics/get-grant-event.d.ts.map +1 -0
- package/dist/analytics/get-grant-event.js +24 -0
- package/dist/analytics/get-grant-event.js.map +1 -0
- package/dist/analytics/get-import-error-logs.d.ts +17 -0
- package/dist/analytics/get-import-error-logs.d.ts.map +1 -0
- package/dist/analytics/get-import-error-logs.js +23 -0
- package/dist/analytics/get-import-error-logs.js.map +1 -0
- package/dist/analytics/get-lead-events.d.ts +17 -0
- package/dist/analytics/get-lead-events.d.ts.map +1 -0
- package/dist/analytics/get-lead-events.js +17 -0
- package/dist/analytics/get-lead-events.js.map +1 -0
- package/dist/analytics/get-webhook-events.d.ts +17 -0
- package/dist/analytics/get-webhook-events.d.ts.map +1 -0
- package/dist/analytics/get-webhook-events.js +22 -0
- package/dist/analytics/get-webhook-events.js.map +1 -0
- package/dist/analytics/index.d.ts +18 -0
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +18 -0
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/log-conversion-events.d.ts +6 -0
- package/dist/analytics/log-conversion-events.d.ts.map +1 -0
- package/dist/analytics/log-conversion-events.js +20 -0
- package/dist/analytics/log-conversion-events.js.map +1 -0
- package/dist/analytics/log-import-error.d.ts +6 -0
- package/dist/analytics/log-import-error.d.ts.map +1 -0
- package/dist/analytics/log-import-error.js +18 -0
- package/dist/analytics/log-import-error.js.map +1 -0
- package/dist/analytics/parse-user-agent.d.ts +13 -0
- package/dist/analytics/parse-user-agent.d.ts.map +1 -0
- package/dist/analytics/parse-user-agent.js +174 -0
- package/dist/analytics/parse-user-agent.js.map +1 -0
- package/dist/analytics/record-approval.d.ts +56 -0
- package/dist/analytics/record-approval.d.ts.map +1 -0
- package/dist/analytics/record-approval.js +32 -0
- package/dist/analytics/record-approval.js.map +1 -0
- package/dist/analytics/record-click.d.ts +32 -0
- package/dist/analytics/record-click.d.ts.map +1 -0
- package/dist/analytics/record-click.js +136 -0
- package/dist/analytics/record-click.js.map +1 -0
- package/dist/analytics/record-lead.d.ts +24 -0
- package/dist/analytics/record-lead.d.ts.map +1 -0
- package/dist/analytics/record-lead.js +72 -0
- package/dist/analytics/record-lead.js.map +1 -0
- package/dist/analytics/record-link.d.ts +106 -0
- package/dist/analytics/record-link.d.ts.map +1 -0
- package/dist/analytics/record-link.js +78 -0
- package/dist/analytics/record-link.js.map +1 -0
- package/dist/analytics/record-sale.d.ts +10 -0
- package/dist/analytics/record-sale.d.ts.map +1 -0
- package/dist/analytics/record-sale.js +35 -0
- package/dist/analytics/record-sale.js.map +1 -0
- package/dist/analytics/record-webhook-event.d.ts +26 -0
- package/dist/analytics/record-webhook-event.d.ts.map +1 -0
- package/dist/analytics/record-webhook-event.js +22 -0
- package/dist/analytics/record-webhook-event.js.map +1 -0
- package/dist/analytics/schemas.d.ts +257 -0
- package/dist/analytics/schemas.d.ts.map +1 -0
- package/dist/analytics/schemas.js +99 -0
- package/dist/analytics/schemas.js.map +1 -0
- package/dist/analytics/tinybird-client.d.ts +6 -0
- package/dist/analytics/tinybird-client.d.ts.map +1 -0
- package/dist/analytics/tinybird-client.js +11 -0
- package/dist/analytics/tinybird-client.js.map +1 -0
- package/dist/caching/index.d.ts +27 -0
- package/dist/caching/index.d.ts.map +1 -0
- package/dist/caching/index.js +157 -0
- package/dist/caching/index.js.map +1 -0
- package/dist/common/constants.d.ts +24 -0
- package/dist/common/constants.d.ts.map +1 -0
- package/dist/common/constants.js +196 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/define-file-config.d.ts +8 -0
- package/dist/common/define-file-config.d.ts.map +1 -0
- package/dist/common/define-file-config.js +34 -0
- package/dist/common/define-file-config.js.map +1 -0
- package/dist/common/domains.d.ts +8 -0
- package/dist/common/domains.d.ts.map +1 -0
- package/dist/common/domains.js +88 -0
- package/dist/common/domains.js.map +1 -0
- package/dist/common/dynamic-import.d.ts.map +1 -1
- package/dist/common/dynamic-import.js +24 -1
- package/dist/common/dynamic-import.js.map +1 -1
- package/dist/common/errors.d.ts +2 -0
- package/dist/common/errors.d.ts.map +1 -1
- package/dist/common/errors.js +2 -0
- package/dist/common/errors.js.map +1 -1
- package/dist/common/execute-with-concurrency.d.ts +5 -0
- package/dist/common/execute-with-concurrency.d.ts.map +1 -0
- package/dist/common/execute-with-concurrency.js +26 -0
- package/dist/common/execute-with-concurrency.js.map +1 -0
- package/dist/common/fetch-with-retry.d.ts +6 -0
- package/dist/common/fetch-with-retry.d.ts.map +1 -0
- package/dist/common/fetch-with-retry.js +63 -0
- package/dist/common/fetch-with-retry.js.map +1 -0
- package/dist/common/get-identity-hash.d.ts +2 -0
- package/dist/common/get-identity-hash.d.ts.map +1 -0
- package/dist/common/get-identity-hash.js +19 -0
- package/dist/common/get-identity-hash.js.map +1 -0
- package/dist/common/index.d.ts +6 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +6 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/is-valid-url.d.ts +2 -0
- package/dist/common/is-valid-url.d.ts.map +1 -0
- package/dist/common/is-valid-url.js +14 -0
- package/dist/common/is-valid-url.js.map +1 -0
- package/dist/common/parse-stringify-if-necessary.d.ts +5 -0
- package/dist/common/parse-stringify-if-necessary.d.ts.map +1 -0
- package/dist/common/parse-stringify-if-necessary.js +38 -0
- package/dist/common/parse-stringify-if-necessary.js.map +1 -0
- package/dist/common/reserved-slugs.d.ts +7 -0
- package/dist/common/reserved-slugs.d.ts.map +1 -0
- package/dist/common/reserved-slugs.js +64 -0
- package/dist/common/reserved-slugs.js.map +1 -0
- package/dist/common/to-snake-case.d.ts +5 -0
- package/dist/common/to-snake-case.d.ts.map +1 -0
- package/dist/common/to-snake-case.js +14 -0
- package/dist/common/to-snake-case.js.map +1 -0
- package/dist/dev-server/handlers/job-handler.d.ts +9 -0
- package/dist/dev-server/handlers/job-handler.d.ts.map +1 -0
- package/dist/dev-server/handlers/job-handler.js +33 -0
- package/dist/dev-server/handlers/job-handler.js.map +1 -0
- package/dist/dev-server/handlers/step-handler.d.ts +11 -0
- package/dist/dev-server/handlers/step-handler.d.ts.map +1 -0
- package/dist/dev-server/handlers/step-handler.js +39 -0
- package/dist/dev-server/handlers/step-handler.js.map +1 -0
- package/dist/dev-server/handlers/subscriber-handler.d.ts +9 -0
- package/dist/dev-server/handlers/subscriber-handler.d.ts.map +1 -0
- package/dist/dev-server/handlers/subscriber-handler.js +40 -0
- package/dist/dev-server/handlers/subscriber-handler.js.map +1 -0
- package/dist/dev-server/handlers/workflow-handler.d.ts +9 -0
- package/dist/dev-server/handlers/workflow-handler.d.ts.map +1 -0
- package/dist/dev-server/handlers/workflow-handler.js +30 -0
- package/dist/dev-server/handlers/workflow-handler.js.map +1 -0
- package/dist/dev-server/index.d.ts +8 -0
- package/dist/dev-server/index.d.ts.map +1 -0
- package/dist/dev-server/index.js +50 -0
- package/dist/dev-server/index.js.map +1 -0
- package/dist/dev-server/registry-helpers.d.ts +5 -0
- package/dist/dev-server/registry-helpers.d.ts.map +1 -0
- package/dist/dev-server/registry-helpers.js +23 -0
- package/dist/dev-server/registry-helpers.js.map +1 -0
- package/dist/dev-server/types.d.ts +44 -0
- package/dist/dev-server/types.d.ts.map +1 -0
- package/dist/dev-server/types.js +3 -0
- package/dist/dev-server/types.js.map +1 -0
- package/dist/dml/entity-builder.d.ts +68 -0
- package/dist/dml/entity-builder.d.ts.map +1 -1
- package/dist/dml/entity-builder.js +76 -0
- package/dist/dml/entity-builder.js.map +1 -1
- package/dist/dml/helpers/entity-builder/define-property.d.ts.map +1 -1
- package/dist/dml/helpers/entity-builder/define-property.js +77 -0
- package/dist/dml/helpers/entity-builder/define-property.js.map +1 -1
- package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.d.ts +10 -0
- package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.d.ts.map +1 -0
- package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.js +31 -0
- package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.js.map +1 -0
- package/dist/dml/properties/enum.d.ts.map +1 -1
- package/dist/dml/properties/enum.js +0 -1
- package/dist/dml/properties/enum.js.map +1 -1
- package/dist/dml/properties/geometry.d.ts +8 -0
- package/dist/dml/properties/geometry.d.ts.map +1 -0
- package/dist/dml/properties/geometry.js +14 -0
- package/dist/dml/properties/geometry.js.map +1 -0
- package/dist/dml/properties/index.d.ts +4 -0
- package/dist/dml/properties/index.d.ts.map +1 -1
- package/dist/dml/properties/index.js +4 -0
- package/dist/dml/properties/index.js.map +1 -1
- package/dist/dml/properties/multipolygon.d.ts +8 -0
- package/dist/dml/properties/multipolygon.d.ts.map +1 -0
- package/dist/dml/properties/multipolygon.js +14 -0
- package/dist/dml/properties/multipolygon.js.map +1 -0
- package/dist/dml/properties/point.d.ts +8 -0
- package/dist/dml/properties/point.d.ts.map +1 -0
- package/dist/dml/properties/point.js +14 -0
- package/dist/dml/properties/point.js.map +1 -0
- package/dist/dml/properties/polygon.d.ts +8 -0
- package/dist/dml/properties/polygon.d.ts.map +1 -0
- package/dist/dml/properties/polygon.js +14 -0
- package/dist/dml/properties/polygon.js.map +1 -0
- package/dist/event-bus/index.d.ts +11 -2
- package/dist/event-bus/index.d.ts.map +1 -1
- package/dist/event-bus/index.js +19 -0
- package/dist/event-bus/index.js.map +1 -1
- package/dist/feature-flags/discover-and-register-feature-flags.d.ts +15 -0
- package/dist/feature-flags/discover-and-register-feature-flags.d.ts.map +1 -0
- package/dist/feature-flags/discover-and-register-feature-flags.js +23 -0
- package/dist/feature-flags/discover-and-register-feature-flags.js.map +1 -0
- package/dist/feature-flags/discover-feature-flags.d.ts +6 -0
- package/dist/feature-flags/discover-feature-flags.d.ts.map +1 -0
- package/dist/feature-flags/discover-feature-flags.js +53 -0
- package/dist/feature-flags/discover-feature-flags.js.map +1 -0
- package/dist/feature-flags/flag-router.d.ts +33 -0
- package/dist/feature-flags/flag-router.d.ts.map +1 -0
- package/dist/feature-flags/flag-router.js +68 -0
- package/dist/feature-flags/flag-router.js.map +1 -0
- package/dist/feature-flags/index.d.ts +2 -0
- package/dist/feature-flags/index.d.ts.map +1 -1
- package/dist/feature-flags/index.js +3 -0
- package/dist/feature-flags/index.js.map +1 -1
- package/dist/feature-flags/register-flag.d.ts +18 -0
- package/dist/feature-flags/register-flag.d.ts.map +1 -0
- package/dist/feature-flags/register-flag.js +41 -0
- package/dist/feature-flags/register-flag.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/modules-sdk/build-query.d.ts.map +1 -1
- package/dist/modules-sdk/build-query.js +3 -1
- package/dist/modules-sdk/build-query.js.map +1 -1
- package/dist/modules-sdk/definition.d.ts +18 -0
- package/dist/modules-sdk/definition.d.ts.map +1 -1
- package/dist/modules-sdk/definition.js +13 -1
- package/dist/modules-sdk/definition.js.map +1 -1
- package/dist/modules-sdk/spatial-query-processor.d.ts +2 -0
- package/dist/modules-sdk/spatial-query-processor.d.ts.map +1 -0
- package/dist/modules-sdk/spatial-query-processor.js +105 -0
- package/dist/modules-sdk/spatial-query-processor.js.map +1 -0
- package/dist/permissions/ability.d.ts +39 -0
- package/dist/permissions/ability.d.ts.map +1 -0
- package/dist/permissions/ability.js +51 -0
- package/dist/permissions/ability.js.map +1 -0
- package/dist/permissions/context-builder.d.ts +24 -0
- package/dist/permissions/context-builder.d.ts.map +1 -0
- package/dist/permissions/context-builder.js +30 -0
- package/dist/permissions/context-builder.js.map +1 -0
- package/dist/permissions/index.d.ts +4 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +20 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/permissions/permission-service.d.ts +8 -0
- package/dist/permissions/permission-service.d.ts.map +1 -0
- package/dist/permissions/permission-service.js +20 -0
- package/dist/permissions/permission-service.js.map +1 -0
- package/dist/permissions/types.d.ts +17 -0
- package/dist/permissions/types.d.ts.map +1 -0
- package/dist/permissions/types.js +11 -0
- package/dist/permissions/types.js.map +1 -0
- package/dist/translations/apply-translations-to-tax-lines.d.ts +17 -0
- package/dist/translations/apply-translations-to-tax-lines.d.ts.map +1 -0
- package/dist/translations/apply-translations-to-tax-lines.js +38 -0
- package/dist/translations/apply-translations-to-tax-lines.js.map +1 -0
- package/dist/translations/apply-translations.d.ts +7 -0
- package/dist/translations/apply-translations.d.ts.map +1 -0
- package/dist/translations/apply-translations.js +104 -0
- package/dist/translations/apply-translations.js.map +1 -0
- package/dist/translations/index.d.ts +3 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +19 -0
- package/dist/translations/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/zod/schemas/approvals.d.ts +91 -0
- package/dist/zod/schemas/approvals.d.ts.map +1 -0
- package/dist/zod/schemas/approvals.js +38 -0
- package/dist/zod/schemas/approvals.js.map +1 -0
- package/dist/zod/schemas/clicks.d.ts +394 -0
- package/dist/zod/schemas/clicks.d.ts.map +1 -0
- package/dist/zod/schemas/clicks.js +85 -0
- package/dist/zod/schemas/clicks.js.map +1 -0
- package/dist/zod/schemas/leads.d.ts +423 -0
- package/dist/zod/schemas/leads.d.ts.map +1 -0
- package/dist/zod/schemas/leads.js +58 -0
- package/dist/zod/schemas/leads.js.map +1 -0
- package/package.json +8 -2
- package/dist/feature-flags/eto-v2.d.ts +0 -3
- package/dist/feature-flags/eto-v2.d.ts.map +0 -1
- package/dist/feature-flags/eto-v2.js +0 -10
- package/dist/feature-flags/eto-v2.js.map +0 -1
- package/dist/feature-flags/order-editing.d.ts +0 -3
- package/dist/feature-flags/order-editing.d.ts.map +0 -1
- package/dist/feature-flags/order-editing.js +0 -10
- package/dist/feature-flags/order-editing.js.map +0 -1
- package/dist/feature-flags/product-categories.d.ts +0 -3
- package/dist/feature-flags/product-categories.d.ts.map +0 -1
- package/dist/feature-flags/product-categories.js +0 -10
- package/dist/feature-flags/product-categories.js.map +0 -1
- package/dist/feature-flags/sales-channels.d.ts +0 -3
- package/dist/feature-flags/sales-channels.d.ts.map +0 -1
- package/dist/feature-flags/sales-channels.js +0 -10
- package/dist/feature-flags/sales-channels.js.map +0 -1
- package/dist/feature-flags/tax-inclusive-pricing.d.ts +0 -3
- package/dist/feature-flags/tax-inclusive-pricing.d.ts.map +0 -1
- package/dist/feature-flags/tax-inclusive-pricing.js +0 -10
- package/dist/feature-flags/tax-inclusive-pricing.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const Modules: {
|
|
2
2
|
readonly ANALYTICS: "analytics";
|
|
3
3
|
readonly AUTH: "auth";
|
|
4
|
+
readonly RBAC: "rbac";
|
|
4
5
|
readonly CACHE: "cache";
|
|
5
6
|
readonly EVENT_BUS: "event_bus";
|
|
6
7
|
readonly LINK: "link_modules";
|
|
@@ -15,10 +16,16 @@ export declare const Modules: {
|
|
|
15
16
|
readonly NOTIFICATION: "notification";
|
|
16
17
|
readonly INDEX: "index";
|
|
17
18
|
readonly LOCKING: "locking";
|
|
19
|
+
readonly AUDIT_LOG: "audit_log";
|
|
20
|
+
readonly AMBASSADOR: "ambassador";
|
|
21
|
+
readonly MEMBERSHIP: "membership";
|
|
22
|
+
readonly SPACE: "space";
|
|
23
|
+
readonly ACCESS_LINK: "access_link";
|
|
18
24
|
};
|
|
19
25
|
export declare const MODULE_PACKAGE_NAMES: {
|
|
20
26
|
analytics: string;
|
|
21
27
|
auth: string;
|
|
28
|
+
rbac: string;
|
|
22
29
|
cache: string;
|
|
23
30
|
event_bus: string;
|
|
24
31
|
link_modules: string;
|
|
@@ -30,6 +37,11 @@ export declare const MODULE_PACKAGE_NAMES: {
|
|
|
30
37
|
notification: string;
|
|
31
38
|
index: string;
|
|
32
39
|
locking: string;
|
|
40
|
+
audit_log: string;
|
|
41
|
+
ambassador: string;
|
|
42
|
+
membership: string;
|
|
43
|
+
space: string;
|
|
44
|
+
access_link: string;
|
|
33
45
|
};
|
|
34
46
|
export declare const REVERSED_MODULE_PACKAGE_NAMES: {};
|
|
35
47
|
/**
|
|
@@ -39,6 +51,7 @@ export type Modules = (typeof Modules)[keyof typeof Modules];
|
|
|
39
51
|
export declare const ModuleRegistrationName: {
|
|
40
52
|
readonly ANALYTICS: "analytics";
|
|
41
53
|
readonly AUTH: "auth";
|
|
54
|
+
readonly RBAC: "rbac";
|
|
42
55
|
readonly CACHE: "cache";
|
|
43
56
|
readonly EVENT_BUS: "event_bus";
|
|
44
57
|
readonly LINK: "link_modules";
|
|
@@ -53,5 +66,10 @@ export declare const ModuleRegistrationName: {
|
|
|
53
66
|
readonly NOTIFICATION: "notification";
|
|
54
67
|
readonly INDEX: "index";
|
|
55
68
|
readonly LOCKING: "locking";
|
|
69
|
+
readonly AUDIT_LOG: "audit_log";
|
|
70
|
+
readonly AMBASSADOR: "ambassador";
|
|
71
|
+
readonly MEMBERSHIP: "membership";
|
|
72
|
+
readonly SPACE: "space";
|
|
73
|
+
readonly ACCESS_LINK: "access_link";
|
|
56
74
|
};
|
|
57
75
|
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/modules-sdk/definition.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/modules-sdk/definition.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;CAuBV,CAAA;AAEV,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;CAoBhC,CAAA;AAED,eAAO,MAAM,6BAA6B,IAKpC,CAAA;AAEN;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAA;AAC5D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;CAAU,CAAA"}
|
|
@@ -4,6 +4,7 @@ exports.ModuleRegistrationName = exports.REVERSED_MODULE_PACKAGE_NAMES = exports
|
|
|
4
4
|
exports.Modules = {
|
|
5
5
|
ANALYTICS: "analytics",
|
|
6
6
|
AUTH: "auth",
|
|
7
|
+
RBAC: "rbac",
|
|
7
8
|
CACHE: "cache",
|
|
8
9
|
EVENT_BUS: "event_bus",
|
|
9
10
|
LINK: "link_modules",
|
|
@@ -18,13 +19,19 @@ exports.Modules = {
|
|
|
18
19
|
NOTIFICATION: "notification",
|
|
19
20
|
INDEX: "index",
|
|
20
21
|
LOCKING: "locking",
|
|
22
|
+
AUDIT_LOG: "audit_log",
|
|
23
|
+
AMBASSADOR: "ambassador",
|
|
24
|
+
MEMBERSHIP: "membership",
|
|
25
|
+
SPACE: "space",
|
|
26
|
+
ACCESS_LINK: "access_link",
|
|
21
27
|
};
|
|
22
28
|
exports.MODULE_PACKAGE_NAMES = {
|
|
23
29
|
[exports.Modules.ANALYTICS]: "@etohq/eto/analytics",
|
|
24
30
|
[exports.Modules.AUTH]: "@etohq/eto/auth",
|
|
31
|
+
[exports.Modules.RBAC]: "@etohq/eto/rbac",
|
|
25
32
|
[exports.Modules.CACHE]: "@etohq/eto/cache-inmemory",
|
|
26
33
|
[exports.Modules.EVENT_BUS]: "@etohq/eto/event-bus-local",
|
|
27
|
-
[exports.Modules.LINK]: "@etohq/
|
|
34
|
+
[exports.Modules.LINK]: "@etohq/link-modules-sdk",
|
|
28
35
|
[exports.Modules.PAYMENT]: "@etohq/eto/payment",
|
|
29
36
|
[exports.Modules.USER]: "@etohq/eto/user",
|
|
30
37
|
[exports.Modules.WORKFLOW_ENGINE]: "@etohq/eto/workflow-engine-inmemory",
|
|
@@ -33,6 +40,11 @@ exports.MODULE_PACKAGE_NAMES = {
|
|
|
33
40
|
[exports.Modules.NOTIFICATION]: "@etohq/eto/notification",
|
|
34
41
|
[exports.Modules.INDEX]: "@etohq/eto/index-module",
|
|
35
42
|
[exports.Modules.LOCKING]: "@etohq/eto/locking",
|
|
43
|
+
[exports.Modules.AUDIT_LOG]: "@etohq/eto/audit-log",
|
|
44
|
+
[exports.Modules.AMBASSADOR]: "@etohq/eto/ambassador",
|
|
45
|
+
[exports.Modules.MEMBERSHIP]: "@etohq/eto/membership",
|
|
46
|
+
[exports.Modules.SPACE]: "@etohq/eto/space",
|
|
47
|
+
[exports.Modules.ACCESS_LINK]: "@etohq/eto/access-link",
|
|
36
48
|
};
|
|
37
49
|
exports.REVERSED_MODULE_PACKAGE_NAMES = Object.entries(exports.MODULE_PACKAGE_NAMES).reduce((acc, [key, value]) => {
|
|
38
50
|
acc[value] = key;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/modules-sdk/definition.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG;IACrB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,WAAW;IAC5B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/modules-sdk/definition.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG;IACrB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,WAAW;IAC5B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;CAClB,CAAA;AAEG,QAAA,oBAAoB,GAAG;IAClC,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,sBAAsB;IAC3C,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE,2BAA2B;IAC5C,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,4BAA4B;IACjD,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,yBAAyB;IACzC,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE,oBAAoB;IACvC,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,eAAe,CAAC,EAAE,qCAAqC;IAChE,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE,oBAAoB;IACvC,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,YAAY,CAAC,EAAE,yBAAyB;IACjD,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE,yBAAyB;IAC1C,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE,oBAAoB;IACvC,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,sBAAsB;IAC3C,CAAC,eAAO,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7C,CAAC,eAAO,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7C,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE,kBAAkB;IACnC,CAAC,eAAO,CAAC,WAAW,CAAC,EAAE,wBAAwB;CAChD,CAAA;AAEY,QAAA,6BAA6B,GAAG,MAAM,CAAC,OAAO,CACzD,4BAAoB,CACrB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;IAC7B,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IAChB,OAAO,GAAG,CAAA;AACZ,CAAC,EAAE,EAAE,CAAC,CAAA;AAMO,QAAA,sBAAsB,GAAG,eAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spatial-query-processor.d.ts","sourceRoot":"","sources":["../../src/modules-sdk/spatial-query-processor.ts"],"names":[],"mappings":"AAkEA,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAmErB"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processSpatialQueries = processSpatialQueries;
|
|
4
|
+
const core_1 = require("@mikro-orm/core");
|
|
5
|
+
const common_1 = require("../common");
|
|
6
|
+
const SPATIAL_OPERATORS = {
|
|
7
|
+
// Relationship operators
|
|
8
|
+
$contains: "ST_Contains",
|
|
9
|
+
$within: "ST_Within",
|
|
10
|
+
$intersects: "ST_Intersects",
|
|
11
|
+
$touches: "ST_Touches",
|
|
12
|
+
$crosses: "ST_Crosses",
|
|
13
|
+
$overlaps: "ST_Overlaps",
|
|
14
|
+
$disjoint: "ST_Disjoint",
|
|
15
|
+
$equals: "ST_Equals",
|
|
16
|
+
// Distance operators
|
|
17
|
+
$distance: "ST_DWithin",
|
|
18
|
+
$distance_sphere: "ST_DistanceSphere",
|
|
19
|
+
// Negated operators
|
|
20
|
+
$not_contains: "ST_Contains",
|
|
21
|
+
$not_within: "ST_Within",
|
|
22
|
+
$not_intersects: "ST_Intersects",
|
|
23
|
+
$not_touches: "ST_Touches",
|
|
24
|
+
$not_crosses: "ST_Crosses",
|
|
25
|
+
$not_overlaps: "ST_Overlaps",
|
|
26
|
+
$not_disjoint: "ST_Disjoint",
|
|
27
|
+
$not_equals: "ST_Equals"
|
|
28
|
+
};
|
|
29
|
+
// Fields that should be treated as spatial
|
|
30
|
+
const SPATIAL_FIELDS = new Set([
|
|
31
|
+
"geometry",
|
|
32
|
+
"point",
|
|
33
|
+
"polygon",
|
|
34
|
+
"multipolygon",
|
|
35
|
+
"location",
|
|
36
|
+
"boundary",
|
|
37
|
+
]);
|
|
38
|
+
function isSpatialField(fieldName) {
|
|
39
|
+
return (SPATIAL_FIELDS.has(fieldName) ||
|
|
40
|
+
fieldName.includes("geo") ||
|
|
41
|
+
fieldName.includes("spatial"));
|
|
42
|
+
}
|
|
43
|
+
function isGeoJSON(value) {
|
|
44
|
+
return ((0, common_1.isObject)(value) &&
|
|
45
|
+
// @ts-ignore
|
|
46
|
+
typeof value.type === "string" &&
|
|
47
|
+
[
|
|
48
|
+
"Point",
|
|
49
|
+
"LineString",
|
|
50
|
+
"Polygon",
|
|
51
|
+
"MultiPoint",
|
|
52
|
+
"MultiLineString",
|
|
53
|
+
"MultiPolygon",
|
|
54
|
+
"GeometryCollection",
|
|
55
|
+
]
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
.includes(value.type));
|
|
58
|
+
}
|
|
59
|
+
function processSpatialQueries(filters) {
|
|
60
|
+
const processed = { ...filters };
|
|
61
|
+
for (const [field, value] of Object.entries(processed)) {
|
|
62
|
+
if (field === "$and" || field === "$or") {
|
|
63
|
+
if (Array.isArray(value)) {
|
|
64
|
+
processed[field] = value.map((item) => processSpatialQueries(item));
|
|
65
|
+
}
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if ((0, common_1.isObject)(value)) {
|
|
69
|
+
for (const [operator, operand] of Object.entries(value)) {
|
|
70
|
+
if (operator in SPATIAL_OPERATORS) {
|
|
71
|
+
// Only process as spatial if field name suggests spatial data OR operand is GeoJSON
|
|
72
|
+
const isSpatial = isSpatialField(field) ||
|
|
73
|
+
(operator === "$contains" && isGeoJSON(operand)) ||
|
|
74
|
+
(operator === "$distance" &&
|
|
75
|
+
(0, common_1.isObject)(operand) &&
|
|
76
|
+
"point" in operand);
|
|
77
|
+
if (isSpatial) {
|
|
78
|
+
const postgisFunc = SPATIAL_OPERATORS[operator];
|
|
79
|
+
if (operator === "$distance") {
|
|
80
|
+
const { point, meters } = operand;
|
|
81
|
+
const geoJson = JSON.stringify(point).replace(/'/g, "''");
|
|
82
|
+
processed[field] = (0, core_1.raw)(`${postgisFunc}(??, ST_GeomFromGeoJSON(?), ?)`, [field, geoJson, meters]);
|
|
83
|
+
}
|
|
84
|
+
else if (operator === "$distance_sphere") {
|
|
85
|
+
const { point, meters } = operand;
|
|
86
|
+
const geoJson = JSON.stringify(point).replace(/'/g, "''");
|
|
87
|
+
processed[field] = (0, core_1.raw)(`${postgisFunc}(??, ST_GeomFromGeoJSON(?)) <= ?`, [field, geoJson, meters]);
|
|
88
|
+
}
|
|
89
|
+
else if (operator.startsWith("$not_")) {
|
|
90
|
+
const geoJson = JSON.stringify(operand).replace(/'/g, "''");
|
|
91
|
+
processed[field] = (0, core_1.raw)(`NOT ${postgisFunc}(??, ST_GeomFromGeoJSON(?))`, [field, geoJson]);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
const geoJson = JSON.stringify(operand).replace(/'/g, "''");
|
|
95
|
+
processed[field] = (0, core_1.raw)(`${postgisFunc}(??, ST_GeomFromGeoJSON(?))`, [field, geoJson]);
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return processed;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=spatial-query-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spatial-query-processor.js","sourceRoot":"","sources":["../../src/modules-sdk/spatial-query-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PureAbility } from '@casl/ability';
|
|
2
|
+
import { PermissionContext } from './types';
|
|
3
|
+
export type Action = 'manage' | 'create' | 'read' | 'update' | 'delete' | 'invite' | 'remove' | 'promote';
|
|
4
|
+
export type Subjects = 'all' | 'Store' | 'Product' | 'Membership' | 'Community' | 'CommunityMember' | 'Group' | 'GroupMember' | 'User';
|
|
5
|
+
export type SubjectConditions = {
|
|
6
|
+
Store: {
|
|
7
|
+
spaceId: string;
|
|
8
|
+
};
|
|
9
|
+
Product: {
|
|
10
|
+
spaceId: string;
|
|
11
|
+
};
|
|
12
|
+
Membership: {
|
|
13
|
+
spaceId: string;
|
|
14
|
+
};
|
|
15
|
+
Community: {
|
|
16
|
+
id: string;
|
|
17
|
+
};
|
|
18
|
+
CommunityMember: {
|
|
19
|
+
communityId: string;
|
|
20
|
+
};
|
|
21
|
+
Group: {
|
|
22
|
+
id: string;
|
|
23
|
+
};
|
|
24
|
+
GroupMember: {
|
|
25
|
+
groupId: string;
|
|
26
|
+
};
|
|
27
|
+
User: {
|
|
28
|
+
id: string;
|
|
29
|
+
};
|
|
30
|
+
all: {
|
|
31
|
+
spaceId: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export type AppAbility = PureAbility<[
|
|
35
|
+
Action,
|
|
36
|
+
Subjects
|
|
37
|
+
], any>;
|
|
38
|
+
export declare const createAbility: (context: PermissionContext) => AppAbility;
|
|
39
|
+
//# sourceMappingURL=ability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ability.d.ts","sourceRoot":"","sources":["../../src/permissions/ability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAgB,MAAM,eAAe,CAAA;AACzE,OAAO,EAAkB,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG3D,MAAM,MAAM,MAAM,GACd,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,CAAA;AAGb,MAAM,MAAM,QAAQ,GAChB,KAAK,GACL,OAAO,GACP,SAAS,GACT,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,aAAa,GACb,MAAM,CAAA;AAGV,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1B,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/B,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACzB,eAAe,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACrB,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAChC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACpB,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CACzB,CAAA;AAGD,MAAM,MAAM,UAAU,GAAG,WAAW,CAClC;IAAC,MAAM;IAAE,QAAQ;CAAC,EAClB,GAAG,CACJ,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,iBAAiB,KAAG,UA2C1D,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAbility = void 0;
|
|
4
|
+
const ability_1 = require("@casl/ability");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
const createAbility = (context) => {
|
|
7
|
+
const builder = new ability_1.AbilityBuilder(ability_1.PureAbility);
|
|
8
|
+
const { can, build } = builder;
|
|
9
|
+
// Space permissions
|
|
10
|
+
context.spaceMemberships?.forEach(membership => {
|
|
11
|
+
if (membership.role === types_1.MembershipRole.OWNER) {
|
|
12
|
+
can('manage', 'all', { spaceId: membership.resourceId });
|
|
13
|
+
}
|
|
14
|
+
else if (membership.role === types_1.MembershipRole.ADMIN) {
|
|
15
|
+
can(['create', 'read', 'update'], 'Store', { spaceId: membership.resourceId });
|
|
16
|
+
can(['read', 'invite', 'remove'], 'Membership', { spaceId: membership.resourceId });
|
|
17
|
+
}
|
|
18
|
+
else if (membership.role === types_1.MembershipRole.MEMBER) {
|
|
19
|
+
can('read', 'Store', { spaceId: membership.resourceId });
|
|
20
|
+
can('read', 'Product', { spaceId: membership.resourceId });
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
// Community permissions
|
|
24
|
+
context.communityMemberships?.forEach(membership => {
|
|
25
|
+
if (membership.role === types_1.MembershipRole.ADMIN) {
|
|
26
|
+
can('update', 'Community', { id: membership.resourceId });
|
|
27
|
+
can(['invite', 'remove', 'promote'], 'CommunityMember', { communityId: membership.resourceId });
|
|
28
|
+
}
|
|
29
|
+
else if (membership.role === types_1.MembershipRole.MODERATOR) {
|
|
30
|
+
can(['invite', 'remove'], 'CommunityMember', { communityId: membership.resourceId });
|
|
31
|
+
}
|
|
32
|
+
else if (membership.role === types_1.MembershipRole.MEMBER) {
|
|
33
|
+
can('read', 'Community', { id: membership.resourceId });
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
// Group permissions
|
|
37
|
+
context.groupMemberships?.forEach(membership => {
|
|
38
|
+
if (membership.role === types_1.MembershipRole.ADMIN) {
|
|
39
|
+
can(['update', 'delete'], 'Group', { id: membership.resourceId });
|
|
40
|
+
can(['invite', 'remove'], 'GroupMember', { groupId: membership.resourceId });
|
|
41
|
+
}
|
|
42
|
+
else if (membership.role === types_1.MembershipRole.MEMBER) {
|
|
43
|
+
can('read', 'Group', { id: membership.resourceId });
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
// User can always update their own profile
|
|
47
|
+
can('update', 'User', { id: context.userId });
|
|
48
|
+
return build();
|
|
49
|
+
};
|
|
50
|
+
exports.createAbility = createAbility;
|
|
51
|
+
//# sourceMappingURL=ability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ability.js","sourceRoot":"","sources":["../../src/permissions/ability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PermissionContext, MembershipRole } from './types';
|
|
2
|
+
export interface PermissionContextDependencies {
|
|
3
|
+
membershipService: {
|
|
4
|
+
getUserSpaceMemberships(userId: string): Promise<Array<{
|
|
5
|
+
resourceId: string;
|
|
6
|
+
role: MembershipRole;
|
|
7
|
+
}>>;
|
|
8
|
+
getUserCommunityMemberships(userId: string): Promise<Array<{
|
|
9
|
+
resourceId: string;
|
|
10
|
+
role: MembershipRole;
|
|
11
|
+
}>>;
|
|
12
|
+
getUserGroupMemberships(userId: string): Promise<Array<{
|
|
13
|
+
resourceId: string;
|
|
14
|
+
role: MembershipRole;
|
|
15
|
+
}>>;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export declare class PermissionContextBuilder {
|
|
19
|
+
private dependencies;
|
|
20
|
+
constructor(dependencies: PermissionContextDependencies);
|
|
21
|
+
buildContext(userId: string): Promise<PermissionContext>;
|
|
22
|
+
buildSpaceContext(userId: string, spaceId: string): Promise<PermissionContext>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=context-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../src/permissions/context-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE3D,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB,EAAE;QACjB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,cAAc,CAAA;SAAC,CAAC,CAAC,CAAA;QACnG,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,cAAc,CAAA;SAAC,CAAC,CAAC,CAAA;QACvG,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,cAAc,CAAA;SAAC,CAAC,CAAC,CAAA;KACpG,CAAA;CACF;AAED,qBAAa,wBAAwB;IACvB,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,6BAA6B;IAEzD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAexD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAQrF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermissionContextBuilder = void 0;
|
|
4
|
+
class PermissionContextBuilder {
|
|
5
|
+
constructor(dependencies) {
|
|
6
|
+
this.dependencies = dependencies;
|
|
7
|
+
}
|
|
8
|
+
async buildContext(userId) {
|
|
9
|
+
const [spaceMemberships, communityMemberships, groupMemberships] = await Promise.all([
|
|
10
|
+
this.dependencies.membershipService.getUserSpaceMemberships(userId),
|
|
11
|
+
this.dependencies.membershipService.getUserCommunityMemberships(userId),
|
|
12
|
+
this.dependencies.membershipService.getUserGroupMemberships(userId)
|
|
13
|
+
]);
|
|
14
|
+
return {
|
|
15
|
+
userId,
|
|
16
|
+
spaceMemberships,
|
|
17
|
+
communityMemberships,
|
|
18
|
+
groupMemberships
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async buildSpaceContext(userId, spaceId) {
|
|
22
|
+
const spaceMemberships = await this.dependencies.membershipService.getUserSpaceMemberships(userId);
|
|
23
|
+
return {
|
|
24
|
+
userId,
|
|
25
|
+
spaceMemberships: spaceMemberships.filter(m => m.resourceId === spaceId)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.PermissionContextBuilder = PermissionContextBuilder;
|
|
30
|
+
//# sourceMappingURL=context-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../src/permissions/context-builder.ts"],"names":[],"mappings":";;;AAUA,MAAa,wBAAwB;IACnC,YAAoB,YAA2C;QAA3C,iBAAY,GAAZ,YAAY,CAA+B;IAAG,CAAC;IAEnE,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnF,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACnE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,MAAM,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC;SACpE,CAAC,CAAA;QAEF,OAAO;YACL,MAAM;YACN,gBAAgB;YAChB,oBAAoB;YACpB,gBAAgB;SACjB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,OAAe;QACrD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAA;QAElG,OAAO;YACL,MAAM;YACN,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC;SACzE,CAAA;IACH,CAAC;CACF;AA1BD,4DA0BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/permissions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./ability"), exports);
|
|
19
|
+
__exportStar(require("./permission-service"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/permissions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,4CAAyB;AACzB,uDAAoC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PermissionContext } from "./types";
|
|
2
|
+
import { Action, Subjects } from "./ability";
|
|
3
|
+
export declare class PermissionService {
|
|
4
|
+
static can(context: PermissionContext, action: Action, subject: Subjects, resource?: any): boolean;
|
|
5
|
+
static cannot(context: PermissionContext, action: Action, subject: Subjects, resource?: any): boolean;
|
|
6
|
+
static require(context: PermissionContext, action: Action, subject: Subjects, resource?: any): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=permission-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-service.d.ts","sourceRoot":"","sources":["../../src/permissions/permission-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAiB,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE3D,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,GAAG,CACR,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO;IAKV,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO;IAIV,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI;CAKR"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermissionService = void 0;
|
|
4
|
+
const ability_1 = require("./ability");
|
|
5
|
+
class PermissionService {
|
|
6
|
+
static can(context, action, subject, resource) {
|
|
7
|
+
const ability = (0, ability_1.createAbility)(context);
|
|
8
|
+
return ability.can(action, subject, resource);
|
|
9
|
+
}
|
|
10
|
+
static cannot(context, action, subject, resource) {
|
|
11
|
+
return !this.can(context, action, subject, resource);
|
|
12
|
+
}
|
|
13
|
+
static require(context, action, subject, resource) {
|
|
14
|
+
if (this.cannot(context, action, subject, resource)) {
|
|
15
|
+
throw new Error(`Permission denied: ${action} ${subject}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.PermissionService = PermissionService;
|
|
20
|
+
//# sourceMappingURL=permission-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-service.js","sourceRoot":"","sources":["../../src/permissions/permission-service.ts"],"names":[],"mappings":";;;AACA,uCAA2D;AAE3D,MAAa,iBAAiB;IAC5B,MAAM,CAAC,GAAG,CACR,OAA0B,EAC1B,MAAc,EACd,OAAiB,EACjB,QAAc;QAEd,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,OAAO,CAAC,CAAA;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,MAAM,CACX,OAA0B,EAC1B,MAAc,EACd,OAAiB,EACjB,QAAc;QAEd,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,OAA0B,EAC1B,MAAc,EACd,OAAiB,EACjB,QAAc;QAEd,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,IAAI,OAAO,EAAE,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;CACF;AA9BD,8CA8BC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare enum MembershipRole {
|
|
2
|
+
OWNER = "OWNER",
|
|
3
|
+
ADMIN = "ADMIN",
|
|
4
|
+
MEMBER = "MEMBER",
|
|
5
|
+
MODERATOR = "MODERATOR"
|
|
6
|
+
}
|
|
7
|
+
export interface Membership {
|
|
8
|
+
resourceId: string;
|
|
9
|
+
role: MembershipRole;
|
|
10
|
+
}
|
|
11
|
+
export interface PermissionContext {
|
|
12
|
+
userId: string;
|
|
13
|
+
spaceMemberships?: Membership[];
|
|
14
|
+
communityMemberships?: Membership[];
|
|
15
|
+
groupMemberships?: Membership[];
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/permissions/types.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,cAAc,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IAEd,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAA;IAC/B,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAA;IACnC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAA;CAEhC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MembershipRole = void 0;
|
|
4
|
+
var MembershipRole;
|
|
5
|
+
(function (MembershipRole) {
|
|
6
|
+
MembershipRole["OWNER"] = "OWNER";
|
|
7
|
+
MembershipRole["ADMIN"] = "ADMIN";
|
|
8
|
+
MembershipRole["MEMBER"] = "MEMBER";
|
|
9
|
+
MembershipRole["MODERATOR"] = "MODERATOR";
|
|
10
|
+
})(MembershipRole || (exports.MembershipRole = MembershipRole = {}));
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/permissions/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,yCAAuB,CAAA;AACzB,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EtoContainer } from "@etohq/types";
|
|
2
|
+
type TaxLineLike = {
|
|
3
|
+
rate_id?: string | null;
|
|
4
|
+
name: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Applies translations to tax lines. If you are using a tax provider that doesn't have TaxRates defined in the database,
|
|
8
|
+
* you should apply the translations inside of your tax provider's `getTaxLines` method, using the `locale` provided in the context.
|
|
9
|
+
*
|
|
10
|
+
* @param taxLines - The tax lines to apply translations to.
|
|
11
|
+
* @param locale - The locale to apply translations to.
|
|
12
|
+
* @param container - The container to use for the translations.
|
|
13
|
+
* @returns The tax lines with translations applied.
|
|
14
|
+
*/
|
|
15
|
+
export declare const applyTranslationsToTaxLines: (taxLines: TaxLineLike[], locale: string | undefined, container: EtoContainer) => Promise<TaxLineLike[]>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=apply-translations-to-tax-lines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-translations-to-tax-lines.d.ts","sourceRoot":"","sources":["../../src/translations/apply-translations-to-tax-lines.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,GACtC,UAAU,WAAW,EAAE,EACvB,QAAQ,MAAM,GAAG,SAAS,EAC1B,WAAW,YAAY,2BA6BxB,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyTranslationsToTaxLines = void 0;
|
|
4
|
+
const apply_translations_1 = require("./apply-translations");
|
|
5
|
+
/**
|
|
6
|
+
* Applies translations to tax lines. If you are using a tax provider that doesn't have TaxRates defined in the database,
|
|
7
|
+
* you should apply the translations inside of your tax provider's `getTaxLines` method, using the `locale` provided in the context.
|
|
8
|
+
*
|
|
9
|
+
* @param taxLines - The tax lines to apply translations to.
|
|
10
|
+
* @param locale - The locale to apply translations to.
|
|
11
|
+
* @param container - The container to use for the translations.
|
|
12
|
+
* @returns The tax lines with translations applied.
|
|
13
|
+
*/
|
|
14
|
+
const applyTranslationsToTaxLines = async (taxLines, locale, container) => {
|
|
15
|
+
const translatedTaxRates = taxLines.map((taxLine) => ({
|
|
16
|
+
id: taxLine.rate_id,
|
|
17
|
+
name: taxLine.name,
|
|
18
|
+
}));
|
|
19
|
+
await (0, apply_translations_1.applyTranslations)({
|
|
20
|
+
localeCode: locale,
|
|
21
|
+
objects: translatedTaxRates,
|
|
22
|
+
container,
|
|
23
|
+
});
|
|
24
|
+
const rateTranslationMap = new Map();
|
|
25
|
+
for (const translatedRate of translatedTaxRates) {
|
|
26
|
+
if (!!translatedRate.id) {
|
|
27
|
+
rateTranslationMap.set(translatedRate.id, translatedRate.name);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
for (const taxLine of taxLines) {
|
|
31
|
+
if (taxLine.rate_id) {
|
|
32
|
+
taxLine.name = rateTranslationMap.get(taxLine.rate_id);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return taxLines;
|
|
36
|
+
};
|
|
37
|
+
exports.applyTranslationsToTaxLines = applyTranslationsToTaxLines;
|
|
38
|
+
//# sourceMappingURL=apply-translations-to-tax-lines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-translations-to-tax-lines.js","sourceRoot":"","sources":["../../src/translations/apply-translations-to-tax-lines.ts"],"names":[],"mappings":";;;AAAA,6DAAwD;AAQxD;;;;;;;;GAQG;AACI,MAAM,2BAA2B,GAAG,KAAK,EAC9C,QAAuB,EACvB,MAA0B,EAC1B,SAAuB,EACvB,EAAE;IACF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CACrC,CAAC,OAAoB,EAAE,EAAE,CAAC,CAAC;QACzB,EAAE,EAAE,OAAO,CAAC,OAAO;QACnB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CACH,CAAA;IAED,MAAM,IAAA,sCAAiB,EAAC;QACtB,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,kBAAkB;QAC3B,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAA;IACpD,KAAK,MAAM,cAAc,IAAI,kBAAkB,EAAE,CAAC;QAChD,IAAI,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACxB,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAE,CAAA;QACzD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAhCY,QAAA,2BAA2B,+BAgCvC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EtoContainer } from "@etohq/types";
|
|
2
|
+
export declare function applyTranslations({ localeCode, objects, container, }: {
|
|
3
|
+
localeCode: string | undefined;
|
|
4
|
+
objects: Record<string, any>[];
|
|
5
|
+
container: EtoContainer;
|
|
6
|
+
}): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=apply-translations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-translations.d.ts","sourceRoot":"","sources":["../../src/translations/apply-translations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,cAAc,CAAA;AAsEhE,wBAAsB,iBAAiB,CAAC,EACtC,UAAU,EACV,OAAO,EACP,SAAS,GACV,EAAE;IACD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;IAC9B,SAAS,EAAE,YAAY,CAAA;CACxB,iBAmEA"}
|