@xemahq/platform-common 0.1.3
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/LICENSE +201 -0
- package/README.md +64 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/advisory-lock.d.ts +9 -0
- package/dist/lib/advisory-lock.d.ts.map +1 -0
- package/dist/lib/advisory-lock.js +25 -0
- package/dist/lib/advisory-lock.js.map +1 -0
- package/dist/lib/agent-session.types.d.ts +171 -0
- package/dist/lib/agent-session.types.d.ts.map +1 -0
- package/dist/lib/agent-session.types.js +156 -0
- package/dist/lib/agent-session.types.js.map +1 -0
- package/dist/lib/approval-mode.d.ts +9 -0
- package/dist/lib/approval-mode.d.ts.map +1 -0
- package/dist/lib/approval-mode.js +27 -0
- package/dist/lib/approval-mode.js.map +1 -0
- package/dist/lib/briefcase/index.d.ts +18 -0
- package/dist/lib/briefcase/index.d.ts.map +1 -0
- package/dist/lib/briefcase/index.js +72 -0
- package/dist/lib/briefcase/index.js.map +1 -0
- package/dist/lib/deliverable-output-contract.d.ts +87 -0
- package/dist/lib/deliverable-output-contract.d.ts.map +1 -0
- package/dist/lib/deliverable-output-contract.js +119 -0
- package/dist/lib/deliverable-output-contract.js.map +1 -0
- package/dist/lib/derive-required-workspace-slots.d.ts +12 -0
- package/dist/lib/derive-required-workspace-slots.d.ts.map +1 -0
- package/dist/lib/derive-required-workspace-slots.js +51 -0
- package/dist/lib/derive-required-workspace-slots.js.map +1 -0
- package/dist/lib/encryption.d.ts +5 -0
- package/dist/lib/encryption.d.ts.map +1 -0
- package/dist/lib/encryption.js +40 -0
- package/dist/lib/encryption.js.map +1 -0
- package/dist/lib/enums/artifact-versioning-mode.d.ts +6 -0
- package/dist/lib/enums/artifact-versioning-mode.d.ts.map +1 -0
- package/dist/lib/enums/artifact-versioning-mode.js +10 -0
- package/dist/lib/enums/artifact-versioning-mode.js.map +1 -0
- package/dist/lib/enums/index.d.ts +5 -0
- package/dist/lib/enums/index.d.ts.map +1 -0
- package/dist/lib/enums/index.js +21 -0
- package/dist/lib/enums/index.js.map +1 -0
- package/dist/lib/enums/llm-gateway.d.ts +19 -0
- package/dist/lib/enums/llm-gateway.d.ts.map +1 -0
- package/dist/lib/enums/llm-gateway.js +51 -0
- package/dist/lib/enums/llm-gateway.js.map +1 -0
- package/dist/lib/enums/scope-source.d.ts +24 -0
- package/dist/lib/enums/scope-source.d.ts.map +1 -0
- package/dist/lib/enums/scope-source.js +73 -0
- package/dist/lib/enums/scope-source.js.map +1 -0
- package/dist/lib/enums/webapp-studio.d.ts +20 -0
- package/dist/lib/enums/webapp-studio.d.ts.map +1 -0
- package/dist/lib/enums/webapp-studio.js +27 -0
- package/dist/lib/enums/webapp-studio.js.map +1 -0
- package/dist/lib/errors/pipeline-errors.d.ts +182 -0
- package/dist/lib/errors/pipeline-errors.d.ts.map +1 -0
- package/dist/lib/errors/pipeline-errors.js +323 -0
- package/dist/lib/errors/pipeline-errors.js.map +1 -0
- package/dist/lib/escape-for-prompt.d.ts +3 -0
- package/dist/lib/escape-for-prompt.d.ts.map +1 -0
- package/dist/lib/escape-for-prompt.js +28 -0
- package/dist/lib/escape-for-prompt.js.map +1 -0
- package/dist/lib/file-share-token.d.ts +25 -0
- package/dist/lib/file-share-token.d.ts.map +1 -0
- package/dist/lib/file-share-token.js +90 -0
- package/dist/lib/file-share-token.js.map +1 -0
- package/dist/lib/integration-webhooks/adapter-key.enum.d.ts +8 -0
- package/dist/lib/integration-webhooks/adapter-key.enum.d.ts.map +1 -0
- package/dist/lib/integration-webhooks/adapter-key.enum.js +12 -0
- package/dist/lib/integration-webhooks/adapter-key.enum.js.map +1 -0
- package/dist/lib/integration-webhooks/index.d.ts +5 -0
- package/dist/lib/integration-webhooks/index.d.ts.map +1 -0
- package/dist/lib/integration-webhooks/index.js +21 -0
- package/dist/lib/integration-webhooks/index.js.map +1 -0
- package/dist/lib/integration-webhooks/integration-provider.enum.d.ts +26 -0
- package/dist/lib/integration-webhooks/integration-provider.enum.d.ts.map +1 -0
- package/dist/lib/integration-webhooks/integration-provider.enum.js +30 -0
- package/dist/lib/integration-webhooks/integration-provider.enum.js.map +1 -0
- package/dist/lib/integration-webhooks/routes.d.ts +3 -0
- package/dist/lib/integration-webhooks/routes.d.ts.map +1 -0
- package/dist/lib/integration-webhooks/routes.js +6 -0
- package/dist/lib/integration-webhooks/routes.js.map +1 -0
- package/dist/lib/integration-webhooks/webhook-entity-kind.enum.d.ts +12 -0
- package/dist/lib/integration-webhooks/webhook-entity-kind.enum.d.ts.map +1 -0
- package/dist/lib/integration-webhooks/webhook-entity-kind.enum.js +16 -0
- package/dist/lib/integration-webhooks/webhook-entity-kind.enum.js.map +1 -0
- package/dist/lib/interaction-widgets/factories.d.ts +83 -0
- package/dist/lib/interaction-widgets/factories.d.ts.map +1 -0
- package/dist/lib/interaction-widgets/factories.js +173 -0
- package/dist/lib/interaction-widgets/factories.js.map +1 -0
- package/dist/lib/interaction-widgets/index.d.ts +4 -0
- package/dist/lib/interaction-widgets/index.d.ts.map +1 -0
- package/dist/lib/interaction-widgets/index.js +20 -0
- package/dist/lib/interaction-widgets/index.js.map +1 -0
- package/dist/lib/interaction-widgets/validation.d.ts +10 -0
- package/dist/lib/interaction-widgets/validation.d.ts.map +1 -0
- package/dist/lib/interaction-widgets/validation.js +214 -0
- package/dist/lib/interaction-widgets/validation.js.map +1 -0
- package/dist/lib/interaction-widgets/widget-types.d.ts +163 -0
- package/dist/lib/interaction-widgets/widget-types.d.ts.map +1 -0
- package/dist/lib/interaction-widgets/widget-types.js +22 -0
- package/dist/lib/interaction-widgets/widget-types.js.map +1 -0
- package/dist/lib/interactive-workspace-layout.d.ts +25 -0
- package/dist/lib/interactive-workspace-layout.d.ts.map +1 -0
- package/dist/lib/interactive-workspace-layout.js +56 -0
- package/dist/lib/interactive-workspace-layout.js.map +1 -0
- package/dist/lib/json-extraction.d.ts +2 -0
- package/dist/lib/json-extraction.d.ts.map +1 -0
- package/dist/lib/json-extraction.js +81 -0
- package/dist/lib/json-extraction.js.map +1 -0
- package/dist/lib/llm-stream/anthropic-adapter.d.ts +25 -0
- package/dist/lib/llm-stream/anthropic-adapter.d.ts.map +1 -0
- package/dist/lib/llm-stream/anthropic-adapter.js +278 -0
- package/dist/lib/llm-stream/anthropic-adapter.js.map +1 -0
- package/dist/lib/llm-stream/compaction.d.ts +16 -0
- package/dist/lib/llm-stream/compaction.d.ts.map +1 -0
- package/dist/lib/llm-stream/compaction.js +82 -0
- package/dist/lib/llm-stream/compaction.js.map +1 -0
- package/dist/lib/llm-stream/consume-stream.d.ts +17 -0
- package/dist/lib/llm-stream/consume-stream.d.ts.map +1 -0
- package/dist/lib/llm-stream/consume-stream.js +138 -0
- package/dist/lib/llm-stream/consume-stream.js.map +1 -0
- package/dist/lib/llm-stream/index.d.ts +6 -0
- package/dist/lib/llm-stream/index.d.ts.map +1 -0
- package/dist/lib/llm-stream/index.js +22 -0
- package/dist/lib/llm-stream/index.js.map +1 -0
- package/dist/lib/llm-stream/progress.d.ts +17 -0
- package/dist/lib/llm-stream/progress.d.ts.map +1 -0
- package/dist/lib/llm-stream/progress.js +12 -0
- package/dist/lib/llm-stream/progress.js.map +1 -0
- package/dist/lib/llm-stream/types.d.ts +56 -0
- package/dist/lib/llm-stream/types.d.ts.map +1 -0
- package/dist/lib/llm-stream/types.js +3 -0
- package/dist/lib/llm-stream/types.js.map +1 -0
- package/dist/lib/llm-stream-observer.d.ts +27 -0
- package/dist/lib/llm-stream-observer.d.ts.map +1 -0
- package/dist/lib/llm-stream-observer.js +55 -0
- package/dist/lib/llm-stream-observer.js.map +1 -0
- package/dist/lib/manifest/index.d.ts +5 -0
- package/dist/lib/manifest/index.d.ts.map +1 -0
- package/dist/lib/manifest/index.js +21 -0
- package/dist/lib/manifest/index.js.map +1 -0
- package/dist/lib/manifest/manifest.enums.d.ts +55 -0
- package/dist/lib/manifest/manifest.enums.d.ts.map +1 -0
- package/dist/lib/manifest/manifest.enums.js +278 -0
- package/dist/lib/manifest/manifest.enums.js.map +1 -0
- package/dist/lib/manifest/manifest.schema.d.ts +433 -0
- package/dist/lib/manifest/manifest.schema.d.ts.map +1 -0
- package/dist/lib/manifest/manifest.schema.js +327 -0
- package/dist/lib/manifest/manifest.schema.js.map +1 -0
- package/dist/lib/manifest/manifest.types.d.ts +146 -0
- package/dist/lib/manifest/manifest.types.d.ts.map +1 -0
- package/dist/lib/manifest/manifest.types.js +54 -0
- package/dist/lib/manifest/manifest.types.js.map +1 -0
- package/dist/lib/manifest/manifest.validation.d.ts +17 -0
- package/dist/lib/manifest/manifest.validation.d.ts.map +1 -0
- package/dist/lib/manifest/manifest.validation.js +353 -0
- package/dist/lib/manifest/manifest.validation.js.map +1 -0
- package/dist/lib/mcp-bridge-token.d.ts +63 -0
- package/dist/lib/mcp-bridge-token.d.ts.map +1 -0
- package/dist/lib/mcp-bridge-token.js +255 -0
- package/dist/lib/mcp-bridge-token.js.map +1 -0
- package/dist/lib/mcp-response-projection.d.ts +9 -0
- package/dist/lib/mcp-response-projection.d.ts.map +1 -0
- package/dist/lib/mcp-response-projection.js +57 -0
- package/dist/lib/mcp-response-projection.js.map +1 -0
- package/dist/lib/omit-undefined.d.ts +2 -0
- package/dist/lib/omit-undefined.d.ts.map +1 -0
- package/dist/lib/omit-undefined.js +9 -0
- package/dist/lib/omit-undefined.js.map +1 -0
- package/dist/lib/orval-client-config.d.ts +29 -0
- package/dist/lib/orval-client-config.d.ts.map +1 -0
- package/dist/lib/orval-client-config.js +30 -0
- package/dist/lib/orval-client-config.js.map +1 -0
- package/dist/lib/preview-token.d.ts +16 -0
- package/dist/lib/preview-token.d.ts.map +1 -0
- package/dist/lib/preview-token.js +71 -0
- package/dist/lib/preview-token.js.map +1 -0
- package/dist/lib/redaction/default-rules.d.ts +3 -0
- package/dist/lib/redaction/default-rules.d.ts.map +1 -0
- package/dist/lib/redaction/default-rules.js +66 -0
- package/dist/lib/redaction/default-rules.js.map +1 -0
- package/dist/lib/redaction/index.d.ts +5 -0
- package/dist/lib/redaction/index.d.ts.map +1 -0
- package/dist/lib/redaction/index.js +12 -0
- package/dist/lib/redaction/index.js.map +1 -0
- package/dist/lib/redaction/redaction-rule.d.ts +8 -0
- package/dist/lib/redaction/redaction-rule.d.ts.map +1 -0
- package/dist/lib/redaction/redaction-rule.js +3 -0
- package/dist/lib/redaction/redaction-rule.js.map +1 -0
- package/dist/lib/redaction/redaction.interceptor.d.ts +11 -0
- package/dist/lib/redaction/redaction.interceptor.d.ts.map +1 -0
- package/dist/lib/redaction/redaction.interceptor.js +41 -0
- package/dist/lib/redaction/redaction.interceptor.js.map +1 -0
- package/dist/lib/redaction/redaction.service.d.ts +9 -0
- package/dist/lib/redaction/redaction.service.d.ts.map +1 -0
- package/dist/lib/redaction/redaction.service.js +110 -0
- package/dist/lib/redaction/redaction.service.js.map +1 -0
- package/dist/lib/request-context.d.ts +34 -0
- package/dist/lib/request-context.d.ts.map +1 -0
- package/dist/lib/request-context.js +10 -0
- package/dist/lib/request-context.js.map +1 -0
- package/dist/lib/run-events/action-types.d.ts +40 -0
- package/dist/lib/run-events/action-types.d.ts.map +1 -0
- package/dist/lib/run-events/action-types.js +40 -0
- package/dist/lib/run-events/action-types.js.map +1 -0
- package/dist/lib/run-events/event-families.d.ts +96 -0
- package/dist/lib/run-events/event-families.d.ts.map +1 -0
- package/dist/lib/run-events/event-families.js +282 -0
- package/dist/lib/run-events/event-families.js.map +1 -0
- package/dist/lib/run-events/index.d.ts +7 -0
- package/dist/lib/run-events/index.d.ts.map +1 -0
- package/dist/lib/run-events/index.js +23 -0
- package/dist/lib/run-events/index.js.map +1 -0
- package/dist/lib/run-events/run-event.types.d.ts +60 -0
- package/dist/lib/run-events/run-event.types.d.ts.map +1 -0
- package/dist/lib/run-events/run-event.types.js +57 -0
- package/dist/lib/run-events/run-event.types.js.map +1 -0
- package/dist/lib/run-events/run-live-snapshot.types.d.ts +69 -0
- package/dist/lib/run-events/run-live-snapshot.types.d.ts.map +1 -0
- package/dist/lib/run-events/run-live-snapshot.types.js +17 -0
- package/dist/lib/run-events/run-live-snapshot.types.js.map +1 -0
- package/dist/lib/run-events/snapshot-reducer.d.ts +4 -0
- package/dist/lib/run-events/snapshot-reducer.d.ts.map +1 -0
- package/dist/lib/run-events/snapshot-reducer.js +313 -0
- package/dist/lib/run-events/snapshot-reducer.js.map +1 -0
- package/dist/lib/run-events/stream-contracts.d.ts +79 -0
- package/dist/lib/run-events/stream-contracts.d.ts.map +1 -0
- package/dist/lib/run-events/stream-contracts.js +27 -0
- package/dist/lib/run-events/stream-contracts.js.map +1 -0
- package/dist/lib/tag-taxonomy/concern-tags.d.ts +3 -0
- package/dist/lib/tag-taxonomy/concern-tags.d.ts.map +1 -0
- package/dist/lib/tag-taxonomy/concern-tags.js +26 -0
- package/dist/lib/tag-taxonomy/concern-tags.js.map +1 -0
- package/dist/lib/tag-taxonomy/index.d.ts +14 -0
- package/dist/lib/tag-taxonomy/index.d.ts.map +1 -0
- package/dist/lib/tag-taxonomy/index.js +59 -0
- package/dist/lib/tag-taxonomy/index.js.map +1 -0
- package/dist/lib/tag-taxonomy/lifecycle-tags.d.ts +3 -0
- package/dist/lib/tag-taxonomy/lifecycle-tags.d.ts.map +1 -0
- package/dist/lib/tag-taxonomy/lifecycle-tags.js +57 -0
- package/dist/lib/tag-taxonomy/lifecycle-tags.js.map +1 -0
- package/dist/lib/tag-taxonomy/stack-tags.d.ts +3 -0
- package/dist/lib/tag-taxonomy/stack-tags.d.ts.map +1 -0
- package/dist/lib/tag-taxonomy/stack-tags.js +26 -0
- package/dist/lib/tag-taxonomy/stack-tags.js.map +1 -0
- package/dist/lib/tag-taxonomy/team-tags.d.ts +3 -0
- package/dist/lib/tag-taxonomy/team-tags.d.ts.map +1 -0
- package/dist/lib/tag-taxonomy/team-tags.js +84 -0
- package/dist/lib/tag-taxonomy/team-tags.js.map +1 -0
- package/dist/lib/tag-taxonomy/types.d.ts +14 -0
- package/dist/lib/tag-taxonomy/types.d.ts.map +1 -0
- package/dist/lib/tag-taxonomy/types.js +3 -0
- package/dist/lib/tag-taxonomy/types.js.map +1 -0
- package/dist/lib/to-prisma-json.d.ts +6 -0
- package/dist/lib/to-prisma-json.d.ts.map +1 -0
- package/dist/lib/to-prisma-json.js +12 -0
- package/dist/lib/to-prisma-json.js.map +1 -0
- package/dist/lib/tool-usage-counter.d.ts +20 -0
- package/dist/lib/tool-usage-counter.d.ts.map +1 -0
- package/dist/lib/tool-usage-counter.js +50 -0
- package/dist/lib/tool-usage-counter.js.map +1 -0
- package/dist/lib/vote-feedback.d.ts +60 -0
- package/dist/lib/vote-feedback.d.ts.map +1 -0
- package/dist/lib/vote-feedback.js +57 -0
- package/dist/lib/vote-feedback.js.map +1 -0
- package/dist/lib/write-policy.d.ts +30 -0
- package/dist/lib/write-policy.d.ts.map +1 -0
- package/dist/lib/write-policy.js +54 -0
- package/dist/lib/write-policy.js.map +1 -0
- package/dist/lib/xema-path-builder.d.ts +7 -0
- package/dist/lib/xema-path-builder.d.ts.map +1 -0
- package/dist/lib/xema-path-builder.js +67 -0
- package/dist/lib/xema-path-builder.js.map +1 -0
- package/dist/nestjs/auth/auth-module-options.d.ts +16 -0
- package/dist/nestjs/auth/auth-module-options.d.ts.map +1 -0
- package/dist/nestjs/auth/auth-module-options.js +5 -0
- package/dist/nestjs/auth/auth-module-options.js.map +1 -0
- package/dist/nestjs/auth/auth.module.d.ts +7 -0
- package/dist/nestjs/auth/auth.module.d.ts.map +1 -0
- package/dist/nestjs/auth/auth.module.js +69 -0
- package/dist/nestjs/auth/auth.module.js.map +1 -0
- package/dist/nestjs/auth/configure-auth-middleware.d.ts +7 -0
- package/dist/nestjs/auth/configure-auth-middleware.d.ts.map +1 -0
- package/dist/nestjs/auth/configure-auth-middleware.js +30 -0
- package/dist/nestjs/auth/configure-auth-middleware.js.map +1 -0
- package/dist/nestjs/auth/index.d.ts +11 -0
- package/dist/nestjs/auth/index.d.ts.map +1 -0
- package/dist/nestjs/auth/index.js +36 -0
- package/dist/nestjs/auth/index.js.map +1 -0
- package/dist/nestjs/auth/internal-caller.guard.d.ts +6 -0
- package/dist/nestjs/auth/internal-caller.guard.d.ts.map +1 -0
- package/dist/nestjs/auth/internal-caller.guard.js +38 -0
- package/dist/nestjs/auth/internal-caller.guard.js.map +1 -0
- package/dist/nestjs/auth/org-claim.d.ts +13 -0
- package/dist/nestjs/auth/org-claim.d.ts.map +1 -0
- package/dist/nestjs/auth/org-claim.js +26 -0
- package/dist/nestjs/auth/org-claim.js.map +1 -0
- package/dist/nestjs/auth/org-role.d.ts +13 -0
- package/dist/nestjs/auth/org-role.d.ts.map +1 -0
- package/dist/nestjs/auth/org-role.guard.d.ts +9 -0
- package/dist/nestjs/auth/org-role.guard.d.ts.map +1 -0
- package/dist/nestjs/auth/org-role.guard.js +59 -0
- package/dist/nestjs/auth/org-role.guard.js.map +1 -0
- package/dist/nestjs/auth/org-role.js +75 -0
- package/dist/nestjs/auth/org-role.js.map +1 -0
- package/dist/nestjs/auth/service-actor.guard.d.ts +6 -0
- package/dist/nestjs/auth/service-actor.guard.d.ts.map +1 -0
- package/dist/nestjs/auth/service-actor.guard.js +49 -0
- package/dist/nestjs/auth/service-actor.guard.js.map +1 -0
- package/dist/nestjs/auth/service-token.guard.d.ts +16 -0
- package/dist/nestjs/auth/service-token.guard.d.ts.map +1 -0
- package/dist/nestjs/auth/service-token.guard.js +209 -0
- package/dist/nestjs/auth/service-token.guard.js.map +1 -0
- package/dist/nestjs/auth/token-class.guard.d.ts +9 -0
- package/dist/nestjs/auth/token-class.guard.d.ts.map +1 -0
- package/dist/nestjs/auth/token-class.guard.js +57 -0
- package/dist/nestjs/auth/token-class.guard.js.map +1 -0
- package/dist/nestjs/body-parsers.d.ts +7 -0
- package/dist/nestjs/body-parsers.d.ts.map +1 -0
- package/dist/nestjs/body-parsers.js +14 -0
- package/dist/nestjs/body-parsers.js.map +1 -0
- package/dist/nestjs/cors.config.d.ts +4 -0
- package/dist/nestjs/cors.config.d.ts.map +1 -0
- package/dist/nestjs/cors.config.js +74 -0
- package/dist/nestjs/cors.config.js.map +1 -0
- package/dist/nestjs/ctx.decorator.d.ts +3 -0
- package/dist/nestjs/ctx.decorator.d.ts.map +1 -0
- package/dist/nestjs/ctx.decorator.js +14 -0
- package/dist/nestjs/ctx.decorator.js.map +1 -0
- package/dist/nestjs/decorator-metadata.d.ts +6 -0
- package/dist/nestjs/decorator-metadata.d.ts.map +1 -0
- package/dist/nestjs/decorator-metadata.js +18 -0
- package/dist/nestjs/decorator-metadata.js.map +1 -0
- package/dist/nestjs/error-response.dto.d.ts +10 -0
- package/dist/nestjs/error-response.dto.d.ts.map +1 -0
- package/dist/nestjs/error-response.dto.js +46 -0
- package/dist/nestjs/error-response.dto.js.map +1 -0
- package/dist/nestjs/fetch-envelope.d.ts +5 -0
- package/dist/nestjs/fetch-envelope.d.ts.map +1 -0
- package/dist/nestjs/fetch-envelope.js +38 -0
- package/dist/nestjs/fetch-envelope.js.map +1 -0
- package/dist/nestjs/fetch-with-retry.d.ts +11 -0
- package/dist/nestjs/fetch-with-retry.d.ts.map +1 -0
- package/dist/nestjs/fetch-with-retry.js +100 -0
- package/dist/nestjs/fetch-with-retry.js.map +1 -0
- package/dist/nestjs/get-env-or-throw.d.ts +2 -0
- package/dist/nestjs/get-env-or-throw.d.ts.map +1 -0
- package/dist/nestjs/get-env-or-throw.js +11 -0
- package/dist/nestjs/get-env-or-throw.js.map +1 -0
- package/dist/nestjs/global-exception.filter.d.ts +10 -0
- package/dist/nestjs/global-exception.filter.d.ts.map +1 -0
- package/dist/nestjs/global-exception.filter.js +139 -0
- package/dist/nestjs/global-exception.filter.js.map +1 -0
- package/dist/nestjs/idempotency/idempotency.service.d.ts +6 -0
- package/dist/nestjs/idempotency/idempotency.service.d.ts.map +1 -0
- package/dist/nestjs/idempotency/idempotency.service.js +5 -0
- package/dist/nestjs/idempotency/idempotency.service.js.map +1 -0
- package/dist/nestjs/idempotency/idempotency.tokens.d.ts +2 -0
- package/dist/nestjs/idempotency/idempotency.tokens.d.ts.map +1 -0
- package/dist/nestjs/idempotency/idempotency.tokens.js +5 -0
- package/dist/nestjs/idempotency/idempotency.tokens.js.map +1 -0
- package/dist/nestjs/idempotency/index.d.ts +4 -0
- package/dist/nestjs/idempotency/index.d.ts.map +1 -0
- package/dist/nestjs/idempotency/index.js +11 -0
- package/dist/nestjs/idempotency/index.js.map +1 -0
- package/dist/nestjs/idempotency/prisma-idempotency.service.d.ts +20 -0
- package/dist/nestjs/idempotency/prisma-idempotency.service.d.ts.map +1 -0
- package/dist/nestjs/idempotency/prisma-idempotency.service.js +58 -0
- package/dist/nestjs/idempotency/prisma-idempotency.service.js.map +1 -0
- package/dist/nestjs/index.d.ts +26 -0
- package/dist/nestjs/index.d.ts.map +1 -0
- package/dist/nestjs/index.js +96 -0
- package/dist/nestjs/index.js.map +1 -0
- package/dist/nestjs/integration-webhooks/api-integration-envelope.decorator.d.ts +7 -0
- package/dist/nestjs/integration-webhooks/api-integration-envelope.decorator.d.ts.map +1 -0
- package/dist/nestjs/integration-webhooks/api-integration-envelope.decorator.js +27 -0
- package/dist/nestjs/integration-webhooks/api-integration-envelope.decorator.js.map +1 -0
- package/dist/nestjs/integration-webhooks/index.d.ts +5 -0
- package/dist/nestjs/integration-webhooks/index.d.ts.map +1 -0
- package/dist/nestjs/integration-webhooks/index.js +10 -0
- package/dist/nestjs/integration-webhooks/index.js.map +1 -0
- package/dist/nestjs/integration-webhooks/integration-envelope.pipe.d.ts +9 -0
- package/dist/nestjs/integration-webhooks/integration-envelope.pipe.d.ts.map +1 -0
- package/dist/nestjs/integration-webhooks/integration-envelope.pipe.js +100 -0
- package/dist/nestjs/integration-webhooks/integration-envelope.pipe.js.map +1 -0
- package/dist/nestjs/integration-webhooks/integration-envelope.types.d.ts +7 -0
- package/dist/nestjs/integration-webhooks/integration-envelope.types.d.ts.map +1 -0
- package/dist/nestjs/integration-webhooks/integration-envelope.types.js +3 -0
- package/dist/nestjs/integration-webhooks/integration-envelope.types.js.map +1 -0
- package/dist/nestjs/integration-webhooks/integration-webhook-envelope.dto.d.ts +14 -0
- package/dist/nestjs/integration-webhooks/integration-webhook-envelope.dto.d.ts.map +1 -0
- package/dist/nestjs/integration-webhooks/integration-webhook-envelope.dto.js +97 -0
- package/dist/nestjs/integration-webhooks/integration-webhook-envelope.dto.js.map +1 -0
- package/dist/nestjs/jwks/jwks-verifier.d.ts +48 -0
- package/dist/nestjs/jwks/jwks-verifier.d.ts.map +1 -0
- package/dist/nestjs/jwks/jwks-verifier.js +177 -0
- package/dist/nestjs/jwks/jwks-verifier.js.map +1 -0
- package/dist/nestjs/jwt-verification.guard.d.ts +25 -0
- package/dist/nestjs/jwt-verification.guard.d.ts.map +1 -0
- package/dist/nestjs/jwt-verification.guard.js +232 -0
- package/dist/nestjs/jwt-verification.guard.js.map +1 -0
- package/dist/nestjs/openapi-docs.enricher.d.ts +6 -0
- package/dist/nestjs/openapi-docs.enricher.d.ts.map +1 -0
- package/dist/nestjs/openapi-docs.enricher.js +296 -0
- package/dist/nestjs/openapi-docs.enricher.js.map +1 -0
- package/dist/nestjs/pagination.d.ts +25 -0
- package/dist/nestjs/pagination.d.ts.map +1 -0
- package/dist/nestjs/pagination.js +73 -0
- package/dist/nestjs/pagination.js.map +1 -0
- package/dist/nestjs/public.decorator.d.ts +3 -0
- package/dist/nestjs/public.decorator.d.ts.map +1 -0
- package/dist/nestjs/public.decorator.js +8 -0
- package/dist/nestjs/public.decorator.js.map +1 -0
- package/dist/nestjs/raw-response.decorator.d.ts +3 -0
- package/dist/nestjs/raw-response.decorator.d.ts.map +1 -0
- package/dist/nestjs/raw-response.decorator.js +8 -0
- package/dist/nestjs/raw-response.decorator.js.map +1 -0
- package/dist/nestjs/request-context.middleware.d.ts +27 -0
- package/dist/nestjs/request-context.middleware.d.ts.map +1 -0
- package/dist/nestjs/request-context.middleware.js +252 -0
- package/dist/nestjs/request-context.middleware.js.map +1 -0
- package/dist/nestjs/require-pipeline-run-id.d.ts +3 -0
- package/dist/nestjs/require-pipeline-run-id.d.ts.map +1 -0
- package/dist/nestjs/require-pipeline-run-id.js +11 -0
- package/dist/nestjs/require-pipeline-run-id.js.map +1 -0
- package/dist/nestjs/require-project-id.d.ts +3 -0
- package/dist/nestjs/require-project-id.d.ts.map +1 -0
- package/dist/nestjs/require-project-id.js +11 -0
- package/dist/nestjs/require-project-id.js.map +1 -0
- package/dist/nestjs/response-envelope.interceptor.d.ts +6 -0
- package/dist/nestjs/response-envelope.interceptor.d.ts.map +1 -0
- package/dist/nestjs/response-envelope.interceptor.js +48 -0
- package/dist/nestjs/response-envelope.interceptor.js.map +1 -0
- package/dist/nestjs/roles.decorator.d.ts +3 -0
- package/dist/nestjs/roles.decorator.d.ts.map +1 -0
- package/dist/nestjs/roles.decorator.js +8 -0
- package/dist/nestjs/roles.decorator.js.map +1 -0
- package/dist/nestjs/roles.guard.d.ts +6 -0
- package/dist/nestjs/roles.guard.d.ts.map +1 -0
- package/dist/nestjs/roles.guard.js +41 -0
- package/dist/nestjs/roles.guard.js.map +1 -0
- package/dist/nestjs/swagger-keycloak.d.ts +30 -0
- package/dist/nestjs/swagger-keycloak.d.ts.map +1 -0
- package/dist/nestjs/swagger-keycloak.js +75 -0
- package/dist/nestjs/swagger-keycloak.js.map +1 -0
- package/dist/nestjs/swagger.decorators.d.ts +8 -0
- package/dist/nestjs/swagger.decorators.d.ts.map +1 -0
- package/dist/nestjs/swagger.decorators.js +117 -0
- package/dist/nestjs/swagger.decorators.js.map +1 -0
- package/dist/schemas/xema/analysis.json +51 -0
- package/dist/schemas/xema/clarification-contract.json +49 -0
- package/dist/schemas/xema/context.json +79 -0
- package/dist/schemas/xema/index.d.ts +8 -0
- package/dist/schemas/xema/index.d.ts.map +1 -0
- package/dist/schemas/xema/index.js +30 -0
- package/dist/schemas/xema/index.js.map +1 -0
- package/dist/schemas/xema/manifest.json +32 -0
- package/dist/schemas/xema/review-history.json +42 -0
- package/package.json +76 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WEBHOOK_INGESTION_CONTROLLER_PATH = exports.DOMAIN_WEBHOOK_INGESTION_ROUTE = void 0;
|
|
4
|
+
exports.DOMAIN_WEBHOOK_INGESTION_ROUTE = '/webhooks/provider-data';
|
|
5
|
+
exports.WEBHOOK_INGESTION_CONTROLLER_PATH = 'webhooks/provider-data';
|
|
6
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/lib/integration-webhooks/routes.ts"],"names":[],"mappings":";;;AAYa,QAAA,8BAA8B,GAAG,yBAAkC,CAAC;AAGpE,QAAA,iCAAiC,GAAG,wBAAiC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare enum WebhookEntityKind {
|
|
2
|
+
ISSUE = "issue",
|
|
3
|
+
CHANGE_REQUEST = "change_request",
|
|
4
|
+
PUSH = "push",
|
|
5
|
+
REPOSITORY = "repository",
|
|
6
|
+
INSTALLATION = "installation",
|
|
7
|
+
ITEM = "item",
|
|
8
|
+
COMMENT = "comment",
|
|
9
|
+
PAGE = "page",
|
|
10
|
+
SPACE = "space"
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=webhook-entity-kind.enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-entity-kind.enum.d.ts","sourceRoot":"","sources":["../../../src/lib/integration-webhooks/webhook-entity-kind.enum.ts"],"names":[],"mappings":"AAYA,oBAAY,iBAAiB;IAE3B,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAG7B,IAAI,SAAS;IACb,OAAO,YAAY;IAGnB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebhookEntityKind = void 0;
|
|
4
|
+
var WebhookEntityKind;
|
|
5
|
+
(function (WebhookEntityKind) {
|
|
6
|
+
WebhookEntityKind["ISSUE"] = "issue";
|
|
7
|
+
WebhookEntityKind["CHANGE_REQUEST"] = "change_request";
|
|
8
|
+
WebhookEntityKind["PUSH"] = "push";
|
|
9
|
+
WebhookEntityKind["REPOSITORY"] = "repository";
|
|
10
|
+
WebhookEntityKind["INSTALLATION"] = "installation";
|
|
11
|
+
WebhookEntityKind["ITEM"] = "item";
|
|
12
|
+
WebhookEntityKind["COMMENT"] = "comment";
|
|
13
|
+
WebhookEntityKind["PAGE"] = "page";
|
|
14
|
+
WebhookEntityKind["SPACE"] = "space";
|
|
15
|
+
})(WebhookEntityKind || (exports.WebhookEntityKind = WebhookEntityKind = {}));
|
|
16
|
+
//# sourceMappingURL=webhook-entity-kind.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-entity-kind.enum.js","sourceRoot":"","sources":["../../../src/lib/integration-webhooks/webhook-entity-kind.enum.ts"],"names":[],"mappings":";;;AAYA,IAAY,iBAeX;AAfD,WAAY,iBAAiB;IAE3B,oCAAe,CAAA;IACf,sDAAiC,CAAA;IACjC,kCAAa,CAAA;IACb,8CAAyB,CAAA;IACzB,kDAA6B,CAAA;IAG7B,kCAAa,CAAA;IACb,wCAAmB,CAAA;IAGnB,kCAAa,CAAA;IACb,oCAAe,CAAA;AACjB,CAAC,EAfW,iBAAiB,iCAAjB,iBAAiB,QAe5B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { type Widget, type WidgetOption, type InteractionPayload, type SingleSelectWidget, type MultiSelectWidget, type TextInputWidget, type TextAreaWidget, type BooleanWidget, type RatingWidget, type ConfirmWidget, type SliderWidget, type RankedListWidget, type ProsConsWidget, type ChecklistWidget, type ComparisonTableWidget, type TagInputWidget } from './widget-types';
|
|
2
|
+
interface WidgetDefaults {
|
|
3
|
+
id?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
required?: boolean;
|
|
6
|
+
allowAuto?: boolean;
|
|
7
|
+
allowFreeText?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function singleSelect(title: string, options: WidgetOption[], opts?: WidgetDefaults & {
|
|
10
|
+
defaultValue?: string;
|
|
11
|
+
}): SingleSelectWidget;
|
|
12
|
+
export declare function multiSelect(title: string, options: WidgetOption[], opts?: WidgetDefaults & {
|
|
13
|
+
defaultValues?: string[];
|
|
14
|
+
minSelections?: number;
|
|
15
|
+
maxSelections?: number;
|
|
16
|
+
}): MultiSelectWidget;
|
|
17
|
+
export declare function textInput(title: string, opts?: WidgetDefaults & {
|
|
18
|
+
placeholder?: string;
|
|
19
|
+
defaultValue?: string;
|
|
20
|
+
maxLength?: number;
|
|
21
|
+
}): TextInputWidget;
|
|
22
|
+
export declare function textArea(title: string, opts?: WidgetDefaults & {
|
|
23
|
+
placeholder?: string;
|
|
24
|
+
defaultValue?: string;
|
|
25
|
+
maxLength?: number;
|
|
26
|
+
rows?: number;
|
|
27
|
+
}): TextAreaWidget;
|
|
28
|
+
export declare function boolean(title: string, opts?: WidgetDefaults & {
|
|
29
|
+
trueLabel?: string;
|
|
30
|
+
falseLabel?: string;
|
|
31
|
+
defaultValue?: boolean;
|
|
32
|
+
}): BooleanWidget;
|
|
33
|
+
export declare function rating(title: string, min: number, max: number, opts?: WidgetDefaults & {
|
|
34
|
+
step?: number;
|
|
35
|
+
defaultValue?: number;
|
|
36
|
+
labels?: Record<number, string>;
|
|
37
|
+
}): RatingWidget;
|
|
38
|
+
export declare function confirm(title: string, opts?: WidgetDefaults & {
|
|
39
|
+
confirmLabel?: string;
|
|
40
|
+
declineLabel?: string;
|
|
41
|
+
defaultValue?: boolean;
|
|
42
|
+
}): ConfirmWidget;
|
|
43
|
+
export declare function slider(title: string, min: number, max: number, opts?: WidgetDefaults & {
|
|
44
|
+
step?: number;
|
|
45
|
+
defaultValue?: number;
|
|
46
|
+
labels?: Record<number, string>;
|
|
47
|
+
unit?: string;
|
|
48
|
+
}): SliderWidget;
|
|
49
|
+
export declare function rankedList(title: string, items: WidgetOption[], opts?: WidgetDefaults & {
|
|
50
|
+
defaultOrder?: string[];
|
|
51
|
+
maxRanked?: number;
|
|
52
|
+
}): RankedListWidget;
|
|
53
|
+
export declare function prosCons(title: string, subject: string, opts?: WidgetDefaults & {
|
|
54
|
+
defaultPros?: string[];
|
|
55
|
+
defaultCons?: string[];
|
|
56
|
+
allowUserEntries?: boolean;
|
|
57
|
+
}): ProsConsWidget;
|
|
58
|
+
export declare function checklist(title: string, items: (WidgetOption & {
|
|
59
|
+
checked?: boolean;
|
|
60
|
+
})[], opts?: WidgetDefaults & {
|
|
61
|
+
allowUserItems?: boolean;
|
|
62
|
+
}): ChecklistWidget;
|
|
63
|
+
export declare function comparisonTable(title: string, columns: {
|
|
64
|
+
key: string;
|
|
65
|
+
label: string;
|
|
66
|
+
}[], rows: {
|
|
67
|
+
key: string;
|
|
68
|
+
label: string;
|
|
69
|
+
description?: string;
|
|
70
|
+
}[], opts?: WidgetDefaults & {
|
|
71
|
+
defaultValues?: Record<string, string>;
|
|
72
|
+
editable?: boolean;
|
|
73
|
+
}): ComparisonTableWidget;
|
|
74
|
+
export declare function tagInput(title: string, opts?: WidgetDefaults & {
|
|
75
|
+
suggestions?: string[];
|
|
76
|
+
defaultTags?: string[];
|
|
77
|
+
maxTags?: number;
|
|
78
|
+
allowCustomTags?: boolean;
|
|
79
|
+
placeholder?: string;
|
|
80
|
+
}): TagInputWidget;
|
|
81
|
+
export declare function buildInteractionPayload(widgets: Widget[]): InteractionPayload;
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/lib/interaction-widgets/factories.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.singleSelect = singleSelect;
|
|
4
|
+
exports.multiSelect = multiSelect;
|
|
5
|
+
exports.textInput = textInput;
|
|
6
|
+
exports.textArea = textArea;
|
|
7
|
+
exports.boolean = boolean;
|
|
8
|
+
exports.rating = rating;
|
|
9
|
+
exports.confirm = confirm;
|
|
10
|
+
exports.slider = slider;
|
|
11
|
+
exports.rankedList = rankedList;
|
|
12
|
+
exports.prosCons = prosCons;
|
|
13
|
+
exports.checklist = checklist;
|
|
14
|
+
exports.comparisonTable = comparisonTable;
|
|
15
|
+
exports.tagInput = tagInput;
|
|
16
|
+
exports.buildInteractionPayload = buildInteractionPayload;
|
|
17
|
+
const node_crypto_1 = require("node:crypto");
|
|
18
|
+
const widget_types_1 = require("./widget-types");
|
|
19
|
+
function defaults(overrides) {
|
|
20
|
+
return {
|
|
21
|
+
id: overrides?.id ?? (0, node_crypto_1.randomUUID)(),
|
|
22
|
+
description: overrides?.description,
|
|
23
|
+
required: overrides?.required ?? false,
|
|
24
|
+
allowAuto: overrides?.allowAuto ?? true,
|
|
25
|
+
allowFreeText: overrides?.allowFreeText ?? true,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function singleSelect(title, options, opts) {
|
|
29
|
+
return {
|
|
30
|
+
...defaults(opts),
|
|
31
|
+
type: widget_types_1.WidgetType.SINGLE_SELECT,
|
|
32
|
+
title,
|
|
33
|
+
options,
|
|
34
|
+
defaultValue: opts?.defaultValue,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function multiSelect(title, options, opts) {
|
|
38
|
+
return {
|
|
39
|
+
...defaults(opts),
|
|
40
|
+
type: widget_types_1.WidgetType.MULTI_SELECT,
|
|
41
|
+
title,
|
|
42
|
+
options,
|
|
43
|
+
defaultValues: opts?.defaultValues,
|
|
44
|
+
minSelections: opts?.minSelections,
|
|
45
|
+
maxSelections: opts?.maxSelections,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function textInput(title, opts) {
|
|
49
|
+
return {
|
|
50
|
+
...defaults(opts),
|
|
51
|
+
type: widget_types_1.WidgetType.TEXT_INPUT,
|
|
52
|
+
title,
|
|
53
|
+
placeholder: opts?.placeholder,
|
|
54
|
+
defaultValue: opts?.defaultValue,
|
|
55
|
+
maxLength: opts?.maxLength,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function textArea(title, opts) {
|
|
59
|
+
return {
|
|
60
|
+
...defaults(opts),
|
|
61
|
+
type: widget_types_1.WidgetType.TEXT_AREA,
|
|
62
|
+
title,
|
|
63
|
+
placeholder: opts?.placeholder,
|
|
64
|
+
defaultValue: opts?.defaultValue,
|
|
65
|
+
maxLength: opts?.maxLength,
|
|
66
|
+
rows: opts?.rows,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function boolean(title, opts) {
|
|
70
|
+
return {
|
|
71
|
+
...defaults(opts),
|
|
72
|
+
type: widget_types_1.WidgetType.BOOLEAN,
|
|
73
|
+
title,
|
|
74
|
+
trueLabel: opts?.trueLabel,
|
|
75
|
+
falseLabel: opts?.falseLabel,
|
|
76
|
+
defaultValue: opts?.defaultValue,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function rating(title, min, max, opts) {
|
|
80
|
+
return {
|
|
81
|
+
...defaults(opts),
|
|
82
|
+
type: widget_types_1.WidgetType.RATING,
|
|
83
|
+
title,
|
|
84
|
+
min,
|
|
85
|
+
max,
|
|
86
|
+
step: opts?.step,
|
|
87
|
+
defaultValue: opts?.defaultValue,
|
|
88
|
+
labels: opts?.labels,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function confirm(title, opts) {
|
|
92
|
+
return {
|
|
93
|
+
...defaults(opts),
|
|
94
|
+
type: widget_types_1.WidgetType.CONFIRM,
|
|
95
|
+
title,
|
|
96
|
+
confirmLabel: opts?.confirmLabel,
|
|
97
|
+
declineLabel: opts?.declineLabel,
|
|
98
|
+
defaultValue: opts?.defaultValue,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function slider(title, min, max, opts) {
|
|
102
|
+
return {
|
|
103
|
+
...defaults(opts),
|
|
104
|
+
type: widget_types_1.WidgetType.SLIDER,
|
|
105
|
+
title,
|
|
106
|
+
min,
|
|
107
|
+
max,
|
|
108
|
+
step: opts?.step,
|
|
109
|
+
defaultValue: opts?.defaultValue,
|
|
110
|
+
labels: opts?.labels,
|
|
111
|
+
unit: opts?.unit,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function rankedList(title, items, opts) {
|
|
115
|
+
return {
|
|
116
|
+
...defaults(opts),
|
|
117
|
+
type: widget_types_1.WidgetType.RANKED_LIST,
|
|
118
|
+
title,
|
|
119
|
+
items,
|
|
120
|
+
defaultOrder: opts?.defaultOrder,
|
|
121
|
+
maxRanked: opts?.maxRanked,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function prosCons(title, subject, opts) {
|
|
125
|
+
return {
|
|
126
|
+
...defaults(opts),
|
|
127
|
+
type: widget_types_1.WidgetType.PROS_CONS,
|
|
128
|
+
title,
|
|
129
|
+
subject,
|
|
130
|
+
defaultPros: opts?.defaultPros,
|
|
131
|
+
defaultCons: opts?.defaultCons,
|
|
132
|
+
allowUserEntries: opts?.allowUserEntries ?? true,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function checklist(title, items, opts) {
|
|
136
|
+
return {
|
|
137
|
+
...defaults(opts),
|
|
138
|
+
type: widget_types_1.WidgetType.CHECKLIST,
|
|
139
|
+
title,
|
|
140
|
+
items,
|
|
141
|
+
allowUserItems: opts?.allowUserItems ?? true,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function comparisonTable(title, columns, rows, opts) {
|
|
145
|
+
return {
|
|
146
|
+
...defaults(opts),
|
|
147
|
+
type: widget_types_1.WidgetType.COMPARISON_TABLE,
|
|
148
|
+
title,
|
|
149
|
+
columns,
|
|
150
|
+
rows,
|
|
151
|
+
defaultValues: opts?.defaultValues,
|
|
152
|
+
editable: opts?.editable ?? true,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function tagInput(title, opts) {
|
|
156
|
+
return {
|
|
157
|
+
...defaults(opts),
|
|
158
|
+
type: widget_types_1.WidgetType.TAG_INPUT,
|
|
159
|
+
title,
|
|
160
|
+
suggestions: opts?.suggestions,
|
|
161
|
+
defaultTags: opts?.defaultTags,
|
|
162
|
+
maxTags: opts?.maxTags,
|
|
163
|
+
allowCustomTags: opts?.allowCustomTags ?? true,
|
|
164
|
+
placeholder: opts?.placeholder,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
function buildInteractionPayload(widgets) {
|
|
168
|
+
return {
|
|
169
|
+
schemaVersion: widget_types_1.WIDGET_SCHEMA_VERSION,
|
|
170
|
+
widgets,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=factories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../src/lib/interaction-widgets/factories.ts"],"names":[],"mappings":";;AAsDA,oCAYC;AAED,kCAkBC;AAED,8BAgBC;AAED,4BAkBC;AAED,0BAgBC;AAED,wBAoBC;AAED,0BAgBC;AAID,wBAsBC;AAED,gCAgBC;AAED,4BAkBC;AAED,8BAcC;AAED,0CAkBC;AAED,4BAoBC;AAID,0DAKC;AAnTD,6CAAyC;AACzC,iDAmBwB;AAYxB,SAAS,QAAQ,CACf,SAA0B;IAI1B,OAAO;QACL,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,IAAA,wBAAU,GAAE;QACjC,WAAW,EAAE,SAAS,EAAE,WAAW;QACnC,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,KAAK;QACtC,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI;QACvC,aAAa,EAAE,SAAS,EAAE,aAAa,IAAI,IAAI;KAChD,CAAC;AACJ,CAAC;AAID,SAAgB,YAAY,CAC1B,KAAa,EACb,OAAuB,EACvB,IAAiD;IAEjD,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,aAAa;QAC9B,KAAK;QACL,OAAO;QACP,YAAY,EAAE,IAAI,EAAE,YAAY;KACjC,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CACzB,KAAa,EACb,OAAuB,EACvB,IAIC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,YAAY;QAC7B,KAAK;QACL,OAAO;QACP,aAAa,EAAE,IAAI,EAAE,aAAa;QAClC,aAAa,EAAE,IAAI,EAAE,aAAa;QAClC,aAAa,EAAE,IAAI,EAAE,aAAa;KACnC,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CACvB,KAAa,EACb,IAIC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,UAAU;QAC3B,KAAK;QACL,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,SAAS,EAAE,IAAI,EAAE,SAAS;KAC3B,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CACtB,KAAa,EACb,IAKC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,SAAS;QAC1B,KAAK;QACL,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,IAAI,EAAE,IAAI,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO,CACrB,KAAa,EACb,IAIC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,OAAO;QACxB,KAAK;QACL,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,UAAU,EAAE,IAAI,EAAE,UAAU;QAC5B,YAAY,EAAE,IAAI,EAAE,YAAY;KACjC,CAAC;AACJ,CAAC;AAED,SAAgB,MAAM,CACpB,KAAa,EACb,GAAW,EACX,GAAW,EACX,IAIC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,MAAM;QACvB,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,MAAM,EAAE,IAAI,EAAE,MAAM;KACrB,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO,CACrB,KAAa,EACb,IAIC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,OAAO;QACxB,KAAK;QACL,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,YAAY,EAAE,IAAI,EAAE,YAAY;KACjC,CAAC;AACJ,CAAC;AAID,SAAgB,MAAM,CACpB,KAAa,EACb,GAAW,EACX,GAAW,EACX,IAKC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,MAAM;QACvB,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,MAAM,EAAE,IAAI,EAAE,MAAM;QACpB,IAAI,EAAE,IAAI,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CACxB,KAAa,EACb,KAAqB,EACrB,IAGC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,WAAW;QAC5B,KAAK;QACL,KAAK;QACL,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,SAAS,EAAE,IAAI,EAAE,SAAS;KAC3B,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CACtB,KAAa,EACb,OAAe,EACf,IAIC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,SAAS;QAC1B,KAAK;QACL,OAAO;QACP,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,IAAI;KACjD,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CACvB,KAAa,EACb,KAA+C,EAC/C,IAEC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,SAAS;QAC1B,KAAK;QACL,KAAK;QACL,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,IAAI;KAC7C,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAC7B,KAAa,EACb,OAAyC,EACzC,IAA4D,EAC5D,IAGC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,gBAAgB;QACjC,KAAK;QACL,OAAO;QACP,IAAI;QACJ,aAAa,EAAE,IAAI,EAAE,aAAa;QAClC,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;KACjC,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CACtB,KAAa,EACb,IAMC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,yBAAU,CAAC,SAAS;QAC1B,KAAK;QACL,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,OAAO,EAAE,IAAI,EAAE,OAAO;QACtB,eAAe,EAAE,IAAI,EAAE,eAAe,IAAI,IAAI;QAC9C,WAAW,EAAE,IAAI,EAAE,WAAW;KAC/B,CAAC;AACJ,CAAC;AAID,SAAgB,uBAAuB,CAAC,OAAiB;IACvD,OAAO;QACL,aAAa,EAAE,oCAAqB;QACpC,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/interaction-widgets/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
@@ -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("./widget-types"), exports);
|
|
18
|
+
__exportStar(require("./validation"), exports);
|
|
19
|
+
__exportStar(require("./factories"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/interaction-widgets/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B;AAC7B,8CAA4B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Widget } from './widget-types';
|
|
2
|
+
export interface ValidationError {
|
|
3
|
+
path: string;
|
|
4
|
+
message: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function validateWidget(widget: unknown, index: number): ValidationError[];
|
|
7
|
+
export declare function validateInteractionPayload(payload: unknown): ValidationError[];
|
|
8
|
+
export declare function validateWidgetAnswer(answer: unknown, widgets: Widget[], index: number): ValidationError[];
|
|
9
|
+
export declare function validateWidgetResponsePayload(response: unknown, widgets: Widget[]): ValidationError[];
|
|
10
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/lib/interaction-widgets/validation.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,MAAM,EAIZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,cAAc,CAC5B,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,GACZ,eAAe,EAAE,CA6HnB;AAID,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,GACf,eAAe,EAAE,CAqCnB;AAID,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,MAAM,GACZ,eAAe,EAAE,CAwCnB;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,eAAe,EAAE,CA2CnB"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateWidget = validateWidget;
|
|
4
|
+
exports.validateInteractionPayload = validateInteractionPayload;
|
|
5
|
+
exports.validateWidgetAnswer = validateWidgetAnswer;
|
|
6
|
+
exports.validateWidgetResponsePayload = validateWidgetResponsePayload;
|
|
7
|
+
const widget_types_1 = require("./widget-types");
|
|
8
|
+
function validateWidget(widget, index) {
|
|
9
|
+
const errors = [];
|
|
10
|
+
const prefix = `widgets[${index}]`;
|
|
11
|
+
if (!widget || typeof widget !== 'object') {
|
|
12
|
+
errors.push({ path: prefix, message: 'Widget must be an object' });
|
|
13
|
+
return errors;
|
|
14
|
+
}
|
|
15
|
+
const w = widget;
|
|
16
|
+
if (!w.id || typeof w.id !== 'string') {
|
|
17
|
+
errors.push({
|
|
18
|
+
path: `${prefix}.id`,
|
|
19
|
+
message: 'Widget id is required and must be a string',
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
if (!w.type || !widget_types_1.WIDGET_TYPES.includes(w.type)) {
|
|
23
|
+
errors.push({
|
|
24
|
+
path: `${prefix}.type`,
|
|
25
|
+
message: `Widget type must be one of: ${widget_types_1.WIDGET_TYPES.join(', ')}`,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (!w.title || typeof w.title !== 'string') {
|
|
29
|
+
errors.push({
|
|
30
|
+
path: `${prefix}.title`,
|
|
31
|
+
message: 'Widget title is required and must be a string',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (typeof w.required !== 'boolean') {
|
|
35
|
+
errors.push({
|
|
36
|
+
path: `${prefix}.required`,
|
|
37
|
+
message: 'Widget required must be a boolean',
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (typeof w.allowAuto !== 'boolean') {
|
|
41
|
+
errors.push({
|
|
42
|
+
path: `${prefix}.allowAuto`,
|
|
43
|
+
message: 'Widget allowAuto must be a boolean',
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (typeof w.allowFreeText !== 'boolean') {
|
|
47
|
+
errors.push({
|
|
48
|
+
path: `${prefix}.allowFreeText`,
|
|
49
|
+
message: 'Widget allowFreeText must be a boolean',
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const type = w.type;
|
|
53
|
+
if (type === widget_types_1.WidgetType.SINGLE_SELECT || type === widget_types_1.WidgetType.MULTI_SELECT) {
|
|
54
|
+
if (!Array.isArray(w.options) || w.options.length === 0) {
|
|
55
|
+
errors.push({
|
|
56
|
+
path: `${prefix}.options`,
|
|
57
|
+
message: 'Select widgets require a non-empty options array',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (type === widget_types_1.WidgetType.RATING) {
|
|
62
|
+
if (typeof w.min !== 'number' || typeof w.max !== 'number') {
|
|
63
|
+
errors.push({
|
|
64
|
+
path: `${prefix}.min/max`,
|
|
65
|
+
message: 'Rating widget requires numeric min and max',
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (type === widget_types_1.WidgetType.SLIDER) {
|
|
70
|
+
if (typeof w.min !== 'number' || typeof w.max !== 'number') {
|
|
71
|
+
errors.push({
|
|
72
|
+
path: `${prefix}.min/max`,
|
|
73
|
+
message: 'Slider widget requires numeric min and max',
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (type === widget_types_1.WidgetType.RANKED_LIST) {
|
|
78
|
+
if (!Array.isArray(w.items) || w.items.length === 0) {
|
|
79
|
+
errors.push({
|
|
80
|
+
path: `${prefix}.items`,
|
|
81
|
+
message: 'Ranked list widget requires a non-empty items array',
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (type === widget_types_1.WidgetType.PROS_CONS) {
|
|
86
|
+
if (!w.subject || typeof w.subject !== 'string') {
|
|
87
|
+
errors.push({
|
|
88
|
+
path: `${prefix}.subject`,
|
|
89
|
+
message: 'Pros/cons widget requires a subject string',
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (type === widget_types_1.WidgetType.CHECKLIST) {
|
|
94
|
+
if (!Array.isArray(w.items) || w.items.length === 0) {
|
|
95
|
+
errors.push({
|
|
96
|
+
path: `${prefix}.items`,
|
|
97
|
+
message: 'Checklist widget requires a non-empty items array',
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (type === widget_types_1.WidgetType.COMPARISON_TABLE) {
|
|
102
|
+
if (!Array.isArray(w.columns) || w.columns.length === 0) {
|
|
103
|
+
errors.push({
|
|
104
|
+
path: `${prefix}.columns`,
|
|
105
|
+
message: 'Comparison table requires a non-empty columns array',
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (!Array.isArray(w.rows) || w.rows.length === 0) {
|
|
109
|
+
errors.push({
|
|
110
|
+
path: `${prefix}.rows`,
|
|
111
|
+
message: 'Comparison table requires a non-empty rows array',
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return errors;
|
|
116
|
+
}
|
|
117
|
+
function validateInteractionPayload(payload) {
|
|
118
|
+
const errors = [];
|
|
119
|
+
if (!payload || typeof payload !== 'object') {
|
|
120
|
+
errors.push({ path: '', message: 'InteractionPayload must be an object' });
|
|
121
|
+
return errors;
|
|
122
|
+
}
|
|
123
|
+
const p = payload;
|
|
124
|
+
if (p.schemaVersion !== widget_types_1.WIDGET_SCHEMA_VERSION) {
|
|
125
|
+
errors.push({
|
|
126
|
+
path: 'schemaVersion',
|
|
127
|
+
message: `Expected schemaVersion "${widget_types_1.WIDGET_SCHEMA_VERSION}", got "${p.schemaVersion}"`,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
if (!Array.isArray(p.widgets)) {
|
|
131
|
+
errors.push({ path: 'widgets', message: 'widgets must be an array' });
|
|
132
|
+
return errors;
|
|
133
|
+
}
|
|
134
|
+
for (let i = 0; i < p.widgets.length; i++) {
|
|
135
|
+
errors.push(...validateWidget(p.widgets[i], i));
|
|
136
|
+
}
|
|
137
|
+
const ids = p.widgets.map((w) => w.id).filter(Boolean);
|
|
138
|
+
const dupes = ids.filter((id, i) => ids.indexOf(id) !== i);
|
|
139
|
+
if (dupes.length > 0) {
|
|
140
|
+
errors.push({
|
|
141
|
+
path: 'widgets',
|
|
142
|
+
message: `Duplicate widget IDs: ${[...new Set(dupes)].join(', ')}`,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return errors;
|
|
146
|
+
}
|
|
147
|
+
function validateWidgetAnswer(answer, widgets, index) {
|
|
148
|
+
const errors = [];
|
|
149
|
+
const prefix = `answers[${index}]`;
|
|
150
|
+
if (!answer || typeof answer !== 'object') {
|
|
151
|
+
errors.push({ path: prefix, message: 'Answer must be an object' });
|
|
152
|
+
return errors;
|
|
153
|
+
}
|
|
154
|
+
const a = answer;
|
|
155
|
+
if (!a.widgetId || typeof a.widgetId !== 'string') {
|
|
156
|
+
errors.push({
|
|
157
|
+
path: `${prefix}.widgetId`,
|
|
158
|
+
message: 'widgetId is required',
|
|
159
|
+
});
|
|
160
|
+
return errors;
|
|
161
|
+
}
|
|
162
|
+
const widget = widgets.find((w) => w.id === a.widgetId);
|
|
163
|
+
if (!widget) {
|
|
164
|
+
errors.push({
|
|
165
|
+
path: `${prefix}.widgetId`,
|
|
166
|
+
message: `No widget found with id "${a.widgetId}"`,
|
|
167
|
+
});
|
|
168
|
+
return errors;
|
|
169
|
+
}
|
|
170
|
+
if (a.auto === true)
|
|
171
|
+
return errors;
|
|
172
|
+
if (a.value === undefined && a.freeText === undefined) {
|
|
173
|
+
errors.push({
|
|
174
|
+
path: `${prefix}.value`,
|
|
175
|
+
message: 'value or freeText is required when auto is false',
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
return errors;
|
|
179
|
+
}
|
|
180
|
+
function validateWidgetResponsePayload(response, widgets) {
|
|
181
|
+
const errors = [];
|
|
182
|
+
if (!response || typeof response !== 'object') {
|
|
183
|
+
errors.push({
|
|
184
|
+
path: '',
|
|
185
|
+
message: 'WidgetResponsePayload must be an object',
|
|
186
|
+
});
|
|
187
|
+
return errors;
|
|
188
|
+
}
|
|
189
|
+
const r = response;
|
|
190
|
+
if (!r.interactionId || typeof r.interactionId !== 'string') {
|
|
191
|
+
errors.push({
|
|
192
|
+
path: 'interactionId',
|
|
193
|
+
message: 'interactionId is required',
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
if (!Array.isArray(r.answers)) {
|
|
197
|
+
errors.push({ path: 'answers', message: 'answers must be an array' });
|
|
198
|
+
return errors;
|
|
199
|
+
}
|
|
200
|
+
for (let i = 0; i < r.answers.length; i++) {
|
|
201
|
+
errors.push(...validateWidgetAnswer(r.answers[i], widgets, i));
|
|
202
|
+
}
|
|
203
|
+
const answeredIds = new Set(r.answers.map((a) => a.widgetId));
|
|
204
|
+
for (const widget of widgets) {
|
|
205
|
+
if (widget.required && !answeredIds.has(widget.id)) {
|
|
206
|
+
errors.push({
|
|
207
|
+
path: `answers`,
|
|
208
|
+
message: `Required widget "${widget.id}" has no answer`,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return errors;
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/lib/interaction-widgets/validation.ts"],"names":[],"mappings":"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"}
|