@lssm/lib.contracts 1.11.0 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/_virtual/rolldown_runtime.js +1 -0
- package/dist/app-config/app-config.feature.js +1 -0
- package/dist/app-config/contracts.js +1 -2
- package/dist/app-config/docs/app-config.docblock.js +220 -0
- package/dist/app-config/events.js +1 -2
- package/dist/app-config/index.js +1 -1
- package/dist/app-config/lifecycle-contracts.js +1 -2
- package/dist/app-config/runtime.js +1 -2
- package/dist/app-config/spec.js +1 -2
- package/dist/app-config/validation.js +1 -2
- package/dist/capabilities/docs/capabilities.docblock.js +1 -0
- package/dist/capabilities/openbanking.js +1 -2
- package/dist/capabilities.js +1 -2
- package/dist/client/react/drivers/rn-reusables.js +1 -2
- package/dist/client/react/drivers/shadcn.js +1 -2
- package/dist/client/react/feature-render.js +1 -2
- package/dist/client/react/form-render.js +1 -2
- package/dist/contract-registry/index.js +1 -0
- package/dist/contract-registry/schemas.js +1 -0
- package/dist/contract-registry/types.js +0 -0
- package/dist/contracts-adapter-hydration.js +1 -2
- package/dist/contracts-adapter-input.js +1 -2
- package/dist/data-views/docs/data-views.docblock.js +1 -0
- package/dist/data-views/query-generator.js +1 -2
- package/dist/data-views/runtime.js +1 -2
- package/dist/data-views.js +1 -2
- package/dist/docs/PUBLISHING.docblock.js +76 -0
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +350 -0
- package/dist/docs/index.js +1 -0
- package/dist/docs/meta.docs.js +13 -0
- package/dist/docs/presentations.js +1 -0
- package/dist/docs/registry.js +1 -0
- package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +383 -0
- package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +68 -0
- package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +140 -0
- package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +86 -0
- package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +1 -0
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +58 -0
- package/dist/docs/tech/contracts/README.docblock.js +1 -0
- package/dist/docs/tech/contracts/create-subscription.docblock.js +1 -0
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js +180 -0
- package/dist/docs/tech/contracts/migrations.docblock.js +1 -0
- package/dist/docs/tech/contracts/openapi-export.docblock.js +38 -0
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +62 -0
- package/dist/docs/tech/contracts/overlays.docblock.js +68 -0
- package/dist/docs/tech/contracts/tests.docblock.js +132 -0
- package/dist/docs/tech/contracts/themes.docblock.js +1 -0
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +106 -0
- package/dist/docs/tech/lifecycle-stage-system.docblock.js +213 -0
- package/dist/docs/tech/llm/llm-integration.docblock.js +289 -0
- package/dist/docs/tech/mcp-endpoints.docblock.js +1 -0
- package/dist/docs/tech/presentation-runtime.docblock.js +1 -0
- package/dist/docs/tech/schema/README.docblock.js +262 -0
- package/dist/docs/tech/studio/learning-events.docblock.js +1 -0
- package/dist/docs/tech/studio/learning-journeys.docblock.js +57 -0
- package/dist/docs/tech/studio/platform-admin-panel.docblock.js +63 -0
- package/dist/docs/tech/studio/project-access-teams.docblock.js +36 -0
- package/dist/docs/tech/studio/project-routing.docblock.js +1 -0
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +20 -0
- package/dist/docs/tech/studio/team-invitations.docblock.js +65 -0
- package/dist/docs/tech/studio/workspace-ops.docblock.js +1 -0
- package/dist/docs/tech/studio/workspaces.docblock.js +41 -0
- package/dist/docs/tech/telemetry-ingest.docblock.js +122 -0
- package/dist/docs/tech/templates/runtime.docblock.js +1 -0
- package/dist/docs/tech/vscode-extension.docblock.js +68 -0
- package/dist/docs/tech/workflows/overview.docblock.js +1 -0
- package/dist/docs/tech-contracts.docs.js +76 -0
- package/dist/docs/types.js +0 -0
- package/dist/events.js +1 -2
- package/dist/experiments/docs/experiments.docblock.js +128 -0
- package/dist/experiments/evaluator.js +1 -2
- package/dist/experiments/spec.js +1 -2
- package/dist/features.js +1 -2
- package/dist/forms/docs/forms.docblock.js +1 -0
- package/dist/forms.js +1 -2
- package/dist/index.js +1 -1
- package/dist/install.js +1 -2
- package/dist/integrations/contracts.js +1 -2
- package/dist/integrations/docs/integrations.docblock.js +1 -0
- package/dist/integrations/health.js +1 -2
- package/dist/integrations/index.js +1 -1
- package/dist/integrations/openbanking/contracts/accounts.js +1 -2
- package/dist/integrations/openbanking/contracts/balances.js +1 -2
- package/dist/integrations/openbanking/contracts/index.js +1 -2
- package/dist/integrations/openbanking/contracts/transactions.js +1 -2
- package/dist/integrations/openbanking/guards.js +1 -2
- package/dist/integrations/openbanking/models.js +1 -2
- package/dist/integrations/openbanking/openbanking.feature.js +1 -0
- package/dist/integrations/openbanking/telemetry.js +1 -2
- package/dist/integrations/providers/elevenlabs.js +1 -2
- package/dist/integrations/providers/gcs-storage.js +1 -2
- package/dist/integrations/providers/gmail.js +1 -2
- package/dist/integrations/providers/google-calendar.js +1 -2
- package/dist/integrations/providers/impls/elevenlabs-voice.js +1 -2
- package/dist/integrations/providers/impls/gcs-storage.js +1 -2
- package/dist/integrations/providers/impls/gmail-inbound.js +1 -2
- package/dist/integrations/providers/impls/gmail-outbound.js +1 -2
- package/dist/integrations/providers/impls/google-calendar.js +1 -2
- package/dist/integrations/providers/impls/index.js +1 -1
- package/dist/integrations/providers/impls/mistral-embedding.js +1 -2
- package/dist/integrations/providers/impls/mistral-llm.js +1 -2
- package/dist/integrations/providers/impls/postmark-email.js +1 -2
- package/dist/integrations/providers/impls/powens-client.js +1 -2
- package/dist/integrations/providers/impls/powens-openbanking.js +1 -2
- package/dist/integrations/providers/impls/provider-factory.js +1 -2
- package/dist/integrations/providers/impls/qdrant-vector.js +1 -2
- package/dist/integrations/providers/impls/stripe-payments.js +1 -2
- package/dist/integrations/providers/impls/twilio-sms.js +1 -2
- package/dist/integrations/providers/index.js +1 -1
- package/dist/integrations/providers/mistral.js +1 -2
- package/dist/integrations/providers/postmark.js +1 -2
- package/dist/integrations/providers/powens.js +1 -2
- package/dist/integrations/providers/qdrant.js +1 -2
- package/dist/integrations/providers/registry.js +1 -0
- package/dist/integrations/providers/stripe.js +1 -2
- package/dist/integrations/providers/twilio-sms.js +1 -2
- package/dist/integrations/runtime.js +1 -2
- package/dist/integrations/secrets/aws-secret-manager.js +1 -0
- package/dist/integrations/secrets/env-secret-provider.js +1 -2
- package/dist/integrations/secrets/gcp-secret-manager.js +1 -2
- package/dist/integrations/secrets/index.js +1 -1
- package/dist/integrations/secrets/manager.js +1 -2
- package/dist/integrations/secrets/provider.js +1 -2
- package/dist/integrations/secrets/scaleway-secret-manager.js +1 -0
- package/dist/integrations/spec.js +1 -2
- package/dist/jobs/define-job.js +1 -0
- package/dist/jobs/gcp-cloud-tasks.js +1 -2
- package/dist/jobs/gcp-pubsub.js +1 -2
- package/dist/jobs/handlers/gmail-sync-handler.js +1 -2
- package/dist/jobs/handlers/index.js +1 -1
- package/dist/jobs/handlers/ping-handler.js +1 -0
- package/dist/jobs/handlers/storage-document-handler.js +1 -2
- package/dist/jobs/index.js +1 -1
- package/dist/jobs/memory-queue.js +1 -2
- package/dist/jobs/queue.js +1 -0
- package/dist/jobs/scaleway-sqs-queue.js +1 -0
- package/dist/jsonschema.js +1 -2
- package/dist/knowledge/contracts.js +1 -2
- package/dist/knowledge/docs/knowledge.docblock.js +138 -0
- package/dist/knowledge/ingestion/document-processor.js +1 -2
- package/dist/knowledge/ingestion/embedding-service.js +1 -2
- package/dist/knowledge/ingestion/gmail-adapter.js +1 -2
- package/dist/knowledge/ingestion/storage-adapter.js +1 -2
- package/dist/knowledge/ingestion/vector-indexer.js +1 -2
- package/dist/knowledge/query/service.js +1 -2
- package/dist/knowledge/runtime.js +1 -2
- package/dist/knowledge/spaces/email-threads.js +1 -2
- package/dist/knowledge/spaces/financial-docs.js +1 -2
- package/dist/knowledge/spaces/financial-overview.js +1 -2
- package/dist/knowledge/spaces/product-canon.js +1 -2
- package/dist/knowledge/spaces/support-faq.js +1 -2
- package/dist/knowledge/spaces/uploaded-docs.js +1 -2
- package/dist/knowledge/spec.js +1 -2
- package/dist/llm/exporters.js +8 -0
- package/dist/llm/index.js +1 -0
- package/dist/llm/prompts.js +220 -0
- package/dist/llm/types.js +0 -0
- package/dist/markdown.js +1 -2
- package/dist/migrations.js +1 -2
- package/dist/node_modules/@pothos/plugin-complexity/esm/calculate-complexity.js +1 -0
- package/dist/node_modules/@pothos/plugin-complexity/esm/defaults.js +1 -0
- package/dist/node_modules/@pothos/plugin-complexity/esm/index.js +1 -0
- package/dist/node_modules/@pothos/plugin-complexity/esm/types.js +1 -0
- package/dist/node_modules/@pothos/plugin-complexity/esm/util.js +1 -0
- package/dist/node_modules/@pothos/plugin-complexity/esm/validator.js +1 -0
- package/dist/node_modules/@pothos/plugin-dataloader/esm/field-builder.js +1 -0
- package/dist/node_modules/@pothos/plugin-dataloader/esm/index.js +1 -0
- package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/index.js +1 -0
- package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/interface.js +1 -0
- package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/node.js +1 -0
- package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/object.js +1 -0
- package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/union.js +1 -0
- package/dist/node_modules/@pothos/plugin-dataloader/esm/schema-builder.js +1 -0
- package/dist/node_modules/@pothos/plugin-dataloader/esm/util.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/connection-helpers.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/field-builder.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/index.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/interface-ref.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/model-loader.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/node-ref.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/object-ref.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/prisma-field-builder.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/schema-builder.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/types.js +0 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/cursors.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/datamodel.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/deep-equal.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/description.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/get-client.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/loader-map.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/map-query.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/relation-map.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/selections.js +1 -0
- package/dist/node_modules/@pothos/plugin-prisma/esm/util/usage.js +1 -0
- package/dist/node_modules/@pothos/plugin-tracing/esm/index.js +1 -0
- package/dist/node_modules/@pothos/plugin-tracing/esm/util.js +1 -0
- package/dist/node_modules/dataloader/index.js +7 -0
- package/dist/node_modules/graphql/error/GraphQLError.js +5 -0
- package/dist/node_modules/graphql/error/index.js +1 -0
- package/dist/node_modules/graphql/error/locatedError.js +1 -0
- package/dist/node_modules/graphql/error/syntaxError.js +1 -0
- package/dist/node_modules/graphql/execution/collectFields.js +1 -0
- package/dist/node_modules/graphql/execution/execute.js +1 -0
- package/dist/node_modules/graphql/execution/index.js +1 -0
- package/dist/node_modules/graphql/execution/mapAsyncIterator.js +1 -0
- package/dist/node_modules/graphql/execution/subscribe.js +1 -0
- package/dist/node_modules/graphql/execution/values.js +1 -0
- package/dist/node_modules/graphql/graphql.js +1 -0
- package/dist/node_modules/graphql/index.js +1 -0
- package/dist/node_modules/graphql/jsutils/Path.js +1 -0
- package/dist/node_modules/graphql/jsutils/devAssert.js +1 -0
- package/dist/node_modules/graphql/jsutils/didYouMean.js +1 -0
- package/dist/node_modules/graphql/jsutils/groupBy.js +1 -0
- package/dist/node_modules/graphql/jsutils/identityFunc.js +1 -0
- package/dist/node_modules/graphql/jsutils/inspect.js +1 -0
- package/dist/node_modules/graphql/jsutils/instanceOf.js +12 -0
- package/dist/node_modules/graphql/jsutils/invariant.js +1 -0
- package/dist/node_modules/graphql/jsutils/isAsyncIterable.js +1 -0
- package/dist/node_modules/graphql/jsutils/isIterableObject.js +1 -0
- package/dist/node_modules/graphql/jsutils/isObjectLike.js +1 -0
- package/dist/node_modules/graphql/jsutils/isPromise.js +1 -0
- package/dist/node_modules/graphql/jsutils/keyMap.js +1 -0
- package/dist/node_modules/graphql/jsutils/keyValMap.js +1 -0
- package/dist/node_modules/graphql/jsutils/mapValue.js +1 -0
- package/dist/node_modules/graphql/jsutils/memoize3.js +1 -0
- package/dist/node_modules/graphql/jsutils/naturalCompare.js +1 -0
- package/dist/node_modules/graphql/jsutils/printPathArray.js +1 -0
- package/dist/node_modules/graphql/jsutils/promiseForObject.js +1 -0
- package/dist/node_modules/graphql/jsutils/promiseReduce.js +1 -0
- package/dist/node_modules/graphql/jsutils/suggestionList.js +1 -0
- package/dist/node_modules/graphql/jsutils/toError.js +1 -0
- package/dist/node_modules/graphql/jsutils/toObjMap.js +1 -0
- package/dist/node_modules/graphql/language/ast.js +1 -0
- package/dist/node_modules/graphql/language/blockString.js +3 -0
- package/dist/node_modules/graphql/language/characterClasses.js +1 -0
- package/dist/node_modules/graphql/language/directiveLocation.js +1 -0
- package/dist/node_modules/graphql/language/index.js +1 -0
- package/dist/node_modules/graphql/language/kinds.js +1 -0
- package/dist/node_modules/graphql/language/lexer.js +3 -0
- package/dist/node_modules/graphql/language/location.js +1 -0
- package/dist/node_modules/graphql/language/parser.js +1 -0
- package/dist/node_modules/graphql/language/predicates.js +1 -0
- package/dist/node_modules/graphql/language/printLocation.js +2 -0
- package/dist/node_modules/graphql/language/printString.js +1 -0
- package/dist/node_modules/graphql/language/printer.js +34 -0
- package/dist/node_modules/graphql/language/schemaCoordinateLexer.js +1 -0
- package/dist/node_modules/graphql/language/source.js +1 -0
- package/dist/node_modules/graphql/language/tokenKind.js +1 -0
- package/dist/node_modules/graphql/language/visitor.js +1 -0
- package/dist/node_modules/graphql/type/assertName.js +1 -0
- package/dist/node_modules/graphql/type/definition.js +1 -0
- package/dist/node_modules/graphql/type/directives.js +1 -0
- package/dist/node_modules/graphql/type/index.js +1 -0
- package/dist/node_modules/graphql/type/introspection.js +3 -0
- package/dist/node_modules/graphql/type/scalars.js +1 -0
- package/dist/node_modules/graphql/type/schema.js +1 -0
- package/dist/node_modules/graphql/type/validate.js +3 -0
- package/dist/node_modules/graphql/utilities/TypeInfo.js +1 -0
- package/dist/node_modules/graphql/utilities/assertValidName.js +1 -0
- package/dist/node_modules/graphql/utilities/astFromValue.js +1 -0
- package/dist/node_modules/graphql/utilities/buildASTSchema.js +1 -0
- package/dist/node_modules/graphql/utilities/buildClientSchema.js +1 -0
- package/dist/node_modules/graphql/utilities/coerceInputValue.js +1 -0
- package/dist/node_modules/graphql/utilities/concatAST.js +1 -0
- package/dist/node_modules/graphql/utilities/extendSchema.js +1 -0
- package/dist/node_modules/graphql/utilities/findBreakingChanges.js +1 -0
- package/dist/node_modules/graphql/utilities/getIntrospectionQuery.js +107 -0
- package/dist/node_modules/graphql/utilities/getOperationAST.js +1 -0
- package/dist/node_modules/graphql/utilities/getOperationRootType.js +1 -0
- package/dist/node_modules/graphql/utilities/index.js +1 -0
- package/dist/node_modules/graphql/utilities/introspectionFromSchema.js +1 -0
- package/dist/node_modules/graphql/utilities/lexicographicSortSchema.js +1 -0
- package/dist/node_modules/graphql/utilities/printSchema.js +13 -0
- package/dist/node_modules/graphql/utilities/resolveSchemaCoordinate.js +1 -0
- package/dist/node_modules/graphql/utilities/separateOperations.js +1 -0
- package/dist/node_modules/graphql/utilities/sortValueNode.js +1 -0
- package/dist/node_modules/graphql/utilities/stripIgnoredCharacters.js +1 -0
- package/dist/node_modules/graphql/utilities/typeComparators.js +1 -0
- package/dist/node_modules/graphql/utilities/typeFromAST.js +1 -0
- package/dist/node_modules/graphql/utilities/valueFromAST.js +1 -0
- package/dist/node_modules/graphql/utilities/valueFromASTUntyped.js +1 -0
- package/dist/node_modules/graphql/validation/ValidationContext.js +1 -0
- package/dist/node_modules/graphql/validation/index.js +1 -0
- package/dist/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/KnownDirectivesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/KnownTypeNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/MaxIntrospectionDepthRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/ScalarLeafsRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueArgumentDefinitionNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js +1 -0
- package/dist/node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +1 -0
- package/dist/node_modules/graphql/validation/specifiedRules.js +1 -0
- package/dist/node_modules/graphql/validation/validate.js +5 -0
- package/dist/node_modules/graphql/version.js +1 -0
- package/dist/onboarding-base.js +1 -2
- package/dist/openapi.js +1 -0
- package/dist/openbanking/docs/openbanking.docblock.js +109 -0
- package/dist/ownership.js +1 -2
- package/dist/policy/docs/policy.docblock.js +1 -0
- package/dist/policy/engine.js +1 -2
- package/dist/policy/opa-adapter.js +1 -2
- package/dist/policy/spec.js +1 -2
- package/dist/presentations/docs/presentations-conventions.docblock.js +8 -0
- package/dist/presentations.backcompat.js +1 -2
- package/dist/presentations.js +1 -2
- package/dist/presentations.v2.js +7 -2
- package/dist/prompt.js +1 -2
- package/dist/promptRegistry.js +1 -2
- package/dist/regenerator/docs/regenerator.docblock.js +184 -0
- package/dist/regenerator/executor.js +1 -2
- package/dist/regenerator/service.js +1 -2
- package/dist/regenerator/sinks.js +1 -2
- package/dist/regenerator/utils.js +1 -2
- package/dist/registry.js +1 -2
- package/dist/resources.js +1 -2
- package/dist/schema-to-markdown.js +10 -0
- package/dist/server/graphql-pothos.js +1 -2
- package/dist/server/index.js +1 -1
- package/dist/server/mcp/createMcpServer.js +1 -0
- package/dist/server/mcp/mcpTypes.js +0 -0
- package/dist/server/mcp/registerPresentations.js +1 -0
- package/dist/server/mcp/registerPrompts.js +3 -0
- package/dist/server/mcp/registerResources.js +1 -0
- package/dist/server/mcp/registerTools.js +1 -0
- package/dist/server/provider-mcp.js +1 -2
- package/dist/server/rest-elysia.js +1 -2
- package/dist/server/rest-express.js +1 -2
- package/dist/server/rest-generic.js +1 -2
- package/dist/server/rest-next-app.js +1 -2
- package/dist/server/rest-next-mcp.js +1 -2
- package/dist/server/rest-next-pages.js +1 -2
- package/dist/spec.js +1 -2
- package/dist/telemetry/anomaly.js +1 -2
- package/dist/telemetry/docs/telemetry.docblock.js +139 -0
- package/dist/telemetry/spec.js +1 -2
- package/dist/telemetry/tracker.js +1 -2
- package/dist/tests/runner.js +1 -2
- package/dist/tests/spec.js +1 -2
- package/dist/themes.js +1 -2
- package/dist/workflow/adapters/db-adapter.js +1 -2
- package/dist/workflow/adapters/file-adapter.js +1 -2
- package/dist/workflow/adapters/memory-store.js +1 -2
- package/dist/workflow/expression.js +1 -2
- package/dist/workflow/runner.js +1 -2
- package/dist/workflow/sla-monitor.js +1 -2
- package/dist/workflow/spec.js +1 -2
- package/dist/workflow/validation.js +1 -2
- package/package.json +353 -193
- package/dist/app-config/branding.d.ts +0 -56
- package/dist/app-config/branding.d.ts.map +0 -1
- package/dist/app-config/contracts.d.ts +0 -245
- package/dist/app-config/contracts.d.ts.map +0 -1
- package/dist/app-config/contracts.js.map +0 -1
- package/dist/app-config/events.d.ts +0 -123
- package/dist/app-config/events.d.ts.map +0 -1
- package/dist/app-config/events.js.map +0 -1
- package/dist/app-config/index.d.ts +0 -8
- package/dist/app-config/lifecycle-contracts.d.ts +0 -383
- package/dist/app-config/lifecycle-contracts.d.ts.map +0 -1
- package/dist/app-config/lifecycle-contracts.js.map +0 -1
- package/dist/app-config/lifecycle.d.ts +0 -28
- package/dist/app-config/lifecycle.d.ts.map +0 -1
- package/dist/app-config/runtime.d.ts +0 -115
- package/dist/app-config/runtime.d.ts.map +0 -1
- package/dist/app-config/runtime.js.map +0 -1
- package/dist/app-config/spec.d.ts +0 -176
- package/dist/app-config/spec.d.ts.map +0 -1
- package/dist/app-config/spec.js.map +0 -1
- package/dist/app-config/validation.d.ts +0 -48
- package/dist/app-config/validation.d.ts.map +0 -1
- package/dist/app-config/validation.js.map +0 -1
- package/dist/capabilities/openbanking.d.ts +0 -10
- package/dist/capabilities/openbanking.d.ts.map +0 -1
- package/dist/capabilities/openbanking.js.map +0 -1
- package/dist/capabilities.d.ts +0 -46
- package/dist/capabilities.d.ts.map +0 -1
- package/dist/capabilities.js.map +0 -1
- package/dist/client/index.d.ts +0 -6
- package/dist/client/react/drivers/rn-reusables.d.ts +0 -23
- package/dist/client/react/drivers/rn-reusables.d.ts.map +0 -1
- package/dist/client/react/drivers/rn-reusables.js.map +0 -1
- package/dist/client/react/drivers/shadcn.d.ts +0 -13
- package/dist/client/react/drivers/shadcn.d.ts.map +0 -1
- package/dist/client/react/drivers/shadcn.js.map +0 -1
- package/dist/client/react/feature-render.d.ts +0 -21
- package/dist/client/react/feature-render.d.ts.map +0 -1
- package/dist/client/react/feature-render.js.map +0 -1
- package/dist/client/react/form-render.d.ts +0 -92
- package/dist/client/react/form-render.d.ts.map +0 -1
- package/dist/client/react/form-render.js.map +0 -1
- package/dist/client/react/index.d.ts +0 -5
- package/dist/contracts-adapter-hydration.d.ts +0 -16
- package/dist/contracts-adapter-hydration.d.ts.map +0 -1
- package/dist/contracts-adapter-hydration.js.map +0 -1
- package/dist/contracts-adapter-input.d.ts +0 -11
- package/dist/contracts-adapter-input.d.ts.map +0 -1
- package/dist/contracts-adapter-input.js.map +0 -1
- package/dist/data-views/query-generator.d.ts +0 -40
- package/dist/data-views/query-generator.d.ts.map +0 -1
- package/dist/data-views/query-generator.js.map +0 -1
- package/dist/data-views/runtime.d.ts +0 -27
- package/dist/data-views/runtime.d.ts.map +0 -1
- package/dist/data-views/runtime.js.map +0 -1
- package/dist/data-views.d.ts +0 -132
- package/dist/data-views.d.ts.map +0 -1
- package/dist/data-views.js.map +0 -1
- package/dist/events.d.ts +0 -45
- package/dist/events.d.ts.map +0 -1
- package/dist/events.js.map +0 -1
- package/dist/experiments/evaluator.d.ts +0 -38
- package/dist/experiments/evaluator.d.ts.map +0 -1
- package/dist/experiments/evaluator.js.map +0 -1
- package/dist/experiments/spec-resolver.d.ts +0 -17
- package/dist/experiments/spec-resolver.d.ts.map +0 -1
- package/dist/experiments/spec.d.ts +0 -90
- package/dist/experiments/spec.d.ts.map +0 -1
- package/dist/experiments/spec.js.map +0 -1
- package/dist/features.d.ts +0 -88
- package/dist/features.d.ts.map +0 -1
- package/dist/features.js.map +0 -1
- package/dist/forms.d.ts +0 -259
- package/dist/forms.d.ts.map +0 -1
- package/dist/forms.js.map +0 -1
- package/dist/graphql-federation/dist/index.js +0 -2
- package/dist/graphql-federation/dist/index.js.map +0 -1
- package/dist/index.d.ts +0 -130
- package/dist/install.d.ts +0 -77
- package/dist/install.d.ts.map +0 -1
- package/dist/install.js.map +0 -1
- package/dist/integrations/binding.d.ts +0 -18
- package/dist/integrations/binding.d.ts.map +0 -1
- package/dist/integrations/connection.d.ts +0 -52
- package/dist/integrations/connection.d.ts.map +0 -1
- package/dist/integrations/contracts.d.ts +0 -436
- package/dist/integrations/contracts.d.ts.map +0 -1
- package/dist/integrations/contracts.js.map +0 -1
- package/dist/integrations/health.d.ts +0 -22
- package/dist/integrations/health.d.ts.map +0 -1
- package/dist/integrations/health.js.map +0 -1
- package/dist/integrations/index.d.ts +0 -53
- package/dist/integrations/openbanking/contracts/accounts.d.ts +0 -288
- package/dist/integrations/openbanking/contracts/accounts.d.ts.map +0 -1
- package/dist/integrations/openbanking/contracts/accounts.js.map +0 -1
- package/dist/integrations/openbanking/contracts/balances.d.ts +0 -164
- package/dist/integrations/openbanking/contracts/balances.d.ts.map +0 -1
- package/dist/integrations/openbanking/contracts/balances.js.map +0 -1
- package/dist/integrations/openbanking/contracts/index.d.ts +0 -10
- package/dist/integrations/openbanking/contracts/index.d.ts.map +0 -1
- package/dist/integrations/openbanking/contracts/index.js.map +0 -1
- package/dist/integrations/openbanking/contracts/transactions.d.ts +0 -212
- package/dist/integrations/openbanking/contracts/transactions.d.ts.map +0 -1
- package/dist/integrations/openbanking/contracts/transactions.js.map +0 -1
- package/dist/integrations/openbanking/guards.d.ts +0 -13
- package/dist/integrations/openbanking/guards.d.ts.map +0 -1
- package/dist/integrations/openbanking/guards.js.map +0 -1
- package/dist/integrations/openbanking/models.d.ts +0 -229
- package/dist/integrations/openbanking/models.d.ts.map +0 -1
- package/dist/integrations/openbanking/models.js.map +0 -1
- package/dist/integrations/openbanking/telemetry.d.ts +0 -16
- package/dist/integrations/openbanking/telemetry.d.ts.map +0 -1
- package/dist/integrations/openbanking/telemetry.js.map +0 -1
- package/dist/integrations/providers/calendar.d.ts +0 -79
- package/dist/integrations/providers/calendar.d.ts.map +0 -1
- package/dist/integrations/providers/elevenlabs.d.ts +0 -8
- package/dist/integrations/providers/elevenlabs.d.ts.map +0 -1
- package/dist/integrations/providers/elevenlabs.js.map +0 -1
- package/dist/integrations/providers/email.d.ts +0 -87
- package/dist/integrations/providers/email.d.ts.map +0 -1
- package/dist/integrations/providers/embedding.d.ts +0 -25
- package/dist/integrations/providers/embedding.d.ts.map +0 -1
- package/dist/integrations/providers/gcs-storage.d.ts +0 -8
- package/dist/integrations/providers/gcs-storage.d.ts.map +0 -1
- package/dist/integrations/providers/gcs-storage.js.map +0 -1
- package/dist/integrations/providers/gmail.d.ts +0 -8
- package/dist/integrations/providers/gmail.d.ts.map +0 -1
- package/dist/integrations/providers/gmail.js.map +0 -1
- package/dist/integrations/providers/google-calendar.d.ts +0 -8
- package/dist/integrations/providers/google-calendar.d.ts.map +0 -1
- package/dist/integrations/providers/google-calendar.js.map +0 -1
- package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +0 -21
- package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +0 -1
- package/dist/integrations/providers/impls/elevenlabs-voice.js.map +0 -1
- package/dist/integrations/providers/impls/gcs-storage.d.ts +0 -25
- package/dist/integrations/providers/impls/gcs-storage.d.ts.map +0 -1
- package/dist/integrations/providers/impls/gcs-storage.js.map +0 -1
- package/dist/integrations/providers/impls/gmail-inbound.d.ts +0 -27
- package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +0 -1
- package/dist/integrations/providers/impls/gmail-inbound.js.map +0 -1
- package/dist/integrations/providers/impls/gmail-outbound.d.ts +0 -19
- package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +0 -1
- package/dist/integrations/providers/impls/gmail-outbound.js.map +0 -1
- package/dist/integrations/providers/impls/google-calendar.d.ts +0 -24
- package/dist/integrations/providers/impls/google-calendar.d.ts.map +0 -1
- package/dist/integrations/providers/impls/google-calendar.js.map +0 -1
- package/dist/integrations/providers/impls/index.d.ts +0 -15
- package/dist/integrations/providers/impls/mistral-embedding.d.ts +0 -24
- package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +0 -1
- package/dist/integrations/providers/impls/mistral-embedding.js.map +0 -1
- package/dist/integrations/providers/impls/mistral-llm.d.ts +0 -32
- package/dist/integrations/providers/impls/mistral-llm.d.ts.map +0 -1
- package/dist/integrations/providers/impls/mistral-llm.js.map +0 -1
- package/dist/integrations/providers/impls/postmark-email.d.ts +0 -20
- package/dist/integrations/providers/impls/postmark-email.d.ts.map +0 -1
- package/dist/integrations/providers/impls/postmark-email.js.map +0 -1
- package/dist/integrations/providers/impls/powens-client.d.ts +0 -125
- package/dist/integrations/providers/impls/powens-client.d.ts.map +0 -1
- package/dist/integrations/providers/impls/powens-client.js.map +0 -1
- package/dist/integrations/providers/impls/powens-openbanking.d.ts +0 -28
- package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +0 -1
- package/dist/integrations/providers/impls/powens-openbanking.js.map +0 -1
- package/dist/integrations/providers/impls/provider-factory.d.ts +0 -27
- package/dist/integrations/providers/impls/provider-factory.d.ts.map +0 -1
- package/dist/integrations/providers/impls/provider-factory.js.map +0 -1
- package/dist/integrations/providers/impls/qdrant-vector.d.ts +0 -25
- package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +0 -1
- package/dist/integrations/providers/impls/qdrant-vector.js.map +0 -1
- package/dist/integrations/providers/impls/stripe-payments.d.ts +0 -29
- package/dist/integrations/providers/impls/stripe-payments.d.ts.map +0 -1
- package/dist/integrations/providers/impls/stripe-payments.js.map +0 -1
- package/dist/integrations/providers/impls/twilio-sms.d.ts +0 -21
- package/dist/integrations/providers/impls/twilio-sms.d.ts.map +0 -1
- package/dist/integrations/providers/impls/twilio-sms.js.map +0 -1
- package/dist/integrations/providers/index.d.ts +0 -36
- package/dist/integrations/providers/llm.d.ts +0 -83
- package/dist/integrations/providers/llm.d.ts.map +0 -1
- package/dist/integrations/providers/mistral.d.ts +0 -8
- package/dist/integrations/providers/mistral.d.ts.map +0 -1
- package/dist/integrations/providers/mistral.js.map +0 -1
- package/dist/integrations/providers/openbanking.d.ts +0 -129
- package/dist/integrations/providers/openbanking.d.ts.map +0 -1
- package/dist/integrations/providers/payments.d.ts +0 -110
- package/dist/integrations/providers/payments.d.ts.map +0 -1
- package/dist/integrations/providers/postmark.d.ts +0 -8
- package/dist/integrations/providers/postmark.d.ts.map +0 -1
- package/dist/integrations/providers/postmark.js.map +0 -1
- package/dist/integrations/providers/powens.d.ts +0 -8
- package/dist/integrations/providers/powens.d.ts.map +0 -1
- package/dist/integrations/providers/powens.js.map +0 -1
- package/dist/integrations/providers/qdrant.d.ts +0 -8
- package/dist/integrations/providers/qdrant.d.ts.map +0 -1
- package/dist/integrations/providers/qdrant.js.map +0 -1
- package/dist/integrations/providers/sms.d.ts +0 -35
- package/dist/integrations/providers/sms.d.ts.map +0 -1
- package/dist/integrations/providers/storage.d.ts +0 -61
- package/dist/integrations/providers/storage.d.ts.map +0 -1
- package/dist/integrations/providers/stripe.d.ts +0 -8
- package/dist/integrations/providers/stripe.d.ts.map +0 -1
- package/dist/integrations/providers/stripe.js.map +0 -1
- package/dist/integrations/providers/twilio-sms.d.ts +0 -8
- package/dist/integrations/providers/twilio-sms.d.ts.map +0 -1
- package/dist/integrations/providers/twilio-sms.js.map +0 -1
- package/dist/integrations/providers/vector-store.d.ts +0 -44
- package/dist/integrations/providers/vector-store.d.ts.map +0 -1
- package/dist/integrations/providers/voice.d.ts +0 -35
- package/dist/integrations/providers/voice.d.ts.map +0 -1
- package/dist/integrations/runtime.d.ts +0 -100
- package/dist/integrations/runtime.d.ts.map +0 -1
- package/dist/integrations/runtime.js.map +0 -1
- package/dist/integrations/secrets/env-secret-provider.d.ts +0 -32
- package/dist/integrations/secrets/env-secret-provider.d.ts.map +0 -1
- package/dist/integrations/secrets/env-secret-provider.js.map +0 -1
- package/dist/integrations/secrets/gcp-secret-manager.d.ts +0 -33
- package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +0 -1
- package/dist/integrations/secrets/gcp-secret-manager.js.map +0 -1
- package/dist/integrations/secrets/index.d.ts +0 -5
- package/dist/integrations/secrets/manager.d.ts +0 -48
- package/dist/integrations/secrets/manager.d.ts.map +0 -1
- package/dist/integrations/secrets/manager.js.map +0 -1
- package/dist/integrations/secrets/provider.d.ts +0 -53
- package/dist/integrations/secrets/provider.d.ts.map +0 -1
- package/dist/integrations/secrets/provider.js.map +0 -1
- package/dist/integrations/spec.d.ts +0 -80
- package/dist/integrations/spec.d.ts.map +0 -1
- package/dist/integrations/spec.js.map +0 -1
- package/dist/jobs/gcp-cloud-tasks.d.ts +0 -42
- package/dist/jobs/gcp-cloud-tasks.d.ts.map +0 -1
- package/dist/jobs/gcp-cloud-tasks.js.map +0 -1
- package/dist/jobs/gcp-pubsub.d.ts +0 -26
- package/dist/jobs/gcp-pubsub.d.ts.map +0 -1
- package/dist/jobs/gcp-pubsub.js.map +0 -1
- package/dist/jobs/handlers/gmail-sync-handler.d.ts +0 -10
- package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +0 -1
- package/dist/jobs/handlers/gmail-sync-handler.js.map +0 -1
- package/dist/jobs/handlers/index.d.ts +0 -3
- package/dist/jobs/handlers/storage-document-handler.d.ts +0 -13
- package/dist/jobs/handlers/storage-document-handler.d.ts.map +0 -1
- package/dist/jobs/handlers/storage-document-handler.js.map +0 -1
- package/dist/jobs/index.d.ts +0 -7
- package/dist/jobs/memory-queue.d.ts +0 -19
- package/dist/jobs/memory-queue.d.ts.map +0 -1
- package/dist/jobs/memory-queue.js.map +0 -1
- package/dist/jobs/queue.d.ts +0 -27
- package/dist/jobs/queue.d.ts.map +0 -1
- package/dist/jsonschema.d.ts +0 -27
- package/dist/jsonschema.d.ts.map +0 -1
- package/dist/jsonschema.js.map +0 -1
- package/dist/knowledge/binding.d.ts +0 -26
- package/dist/knowledge/binding.d.ts.map +0 -1
- package/dist/knowledge/contracts.d.ts +0 -317
- package/dist/knowledge/contracts.d.ts.map +0 -1
- package/dist/knowledge/contracts.js.map +0 -1
- package/dist/knowledge/index.d.ts +0 -10
- package/dist/knowledge/ingestion/document-processor.d.ts +0 -25
- package/dist/knowledge/ingestion/document-processor.d.ts.map +0 -1
- package/dist/knowledge/ingestion/document-processor.js.map +0 -1
- package/dist/knowledge/ingestion/embedding-service.d.ts +0 -13
- package/dist/knowledge/ingestion/embedding-service.d.ts.map +0 -1
- package/dist/knowledge/ingestion/embedding-service.js.map +0 -1
- package/dist/knowledge/ingestion/gmail-adapter.d.ts +0 -19
- package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +0 -1
- package/dist/knowledge/ingestion/gmail-adapter.js.map +0 -1
- package/dist/knowledge/ingestion/index.d.ts +0 -6
- package/dist/knowledge/ingestion/storage-adapter.d.ts +0 -16
- package/dist/knowledge/ingestion/storage-adapter.d.ts.map +0 -1
- package/dist/knowledge/ingestion/storage-adapter.js.map +0 -1
- package/dist/knowledge/ingestion/vector-indexer.d.ts +0 -19
- package/dist/knowledge/ingestion/vector-indexer.d.ts.map +0 -1
- package/dist/knowledge/ingestion/vector-indexer.js.map +0 -1
- package/dist/knowledge/query/index.d.ts +0 -2
- package/dist/knowledge/query/service.d.ts +0 -30
- package/dist/knowledge/query/service.d.ts.map +0 -1
- package/dist/knowledge/query/service.js.map +0 -1
- package/dist/knowledge/runtime.d.ts +0 -33
- package/dist/knowledge/runtime.d.ts.map +0 -1
- package/dist/knowledge/runtime.js.map +0 -1
- package/dist/knowledge/source.d.ts +0 -33
- package/dist/knowledge/source.d.ts.map +0 -1
- package/dist/knowledge/spaces/email-threads.d.ts +0 -8
- package/dist/knowledge/spaces/email-threads.d.ts.map +0 -1
- package/dist/knowledge/spaces/email-threads.js.map +0 -1
- package/dist/knowledge/spaces/financial-docs.d.ts +0 -8
- package/dist/knowledge/spaces/financial-docs.d.ts.map +0 -1
- package/dist/knowledge/spaces/financial-docs.js.map +0 -1
- package/dist/knowledge/spaces/financial-overview.d.ts +0 -8
- package/dist/knowledge/spaces/financial-overview.d.ts.map +0 -1
- package/dist/knowledge/spaces/financial-overview.js.map +0 -1
- package/dist/knowledge/spaces/index.d.ts +0 -7
- package/dist/knowledge/spaces/product-canon.d.ts +0 -8
- package/dist/knowledge/spaces/product-canon.d.ts.map +0 -1
- package/dist/knowledge/spaces/product-canon.js.map +0 -1
- package/dist/knowledge/spaces/support-faq.d.ts +0 -8
- package/dist/knowledge/spaces/support-faq.d.ts.map +0 -1
- package/dist/knowledge/spaces/support-faq.js.map +0 -1
- package/dist/knowledge/spaces/uploaded-docs.d.ts +0 -8
- package/dist/knowledge/spaces/uploaded-docs.d.ts.map +0 -1
- package/dist/knowledge/spaces/uploaded-docs.js.map +0 -1
- package/dist/knowledge/spec.d.ts +0 -53
- package/dist/knowledge/spec.d.ts.map +0 -1
- package/dist/knowledge/spec.js.map +0 -1
- package/dist/markdown.d.ts +0 -22
- package/dist/markdown.d.ts.map +0 -1
- package/dist/markdown.js.map +0 -1
- package/dist/migrations.d.ts +0 -53
- package/dist/migrations.d.ts.map +0 -1
- package/dist/migrations.js.map +0 -1
- package/dist/onboarding-base.d.ts +0 -138
- package/dist/onboarding-base.d.ts.map +0 -1
- package/dist/onboarding-base.js.map +0 -1
- package/dist/ownership.d.ts +0 -76
- package/dist/ownership.d.ts.map +0 -1
- package/dist/ownership.js.map +0 -1
- package/dist/policy/engine.d.ts +0 -40
- package/dist/policy/engine.d.ts.map +0 -1
- package/dist/policy/engine.js.map +0 -1
- package/dist/policy/opa-adapter.d.ts +0 -46
- package/dist/policy/opa-adapter.d.ts.map +0 -1
- package/dist/policy/opa-adapter.js.map +0 -1
- package/dist/policy/spec.d.ts +0 -115
- package/dist/policy/spec.d.ts.map +0 -1
- package/dist/policy/spec.js.map +0 -1
- package/dist/presentations.backcompat.d.ts +0 -8
- package/dist/presentations.backcompat.d.ts.map +0 -1
- package/dist/presentations.backcompat.js.map +0 -1
- package/dist/presentations.d.ts +0 -97
- package/dist/presentations.d.ts.map +0 -1
- package/dist/presentations.js.map +0 -1
- package/dist/presentations.v2.d.ts +0 -96
- package/dist/presentations.v2.d.ts.map +0 -1
- package/dist/presentations.v2.js.map +0 -1
- package/dist/prompt.d.ts +0 -61
- package/dist/prompt.d.ts.map +0 -1
- package/dist/prompt.js.map +0 -1
- package/dist/promptRegistry.d.ts +0 -16
- package/dist/promptRegistry.d.ts.map +0 -1
- package/dist/promptRegistry.js.map +0 -1
- package/dist/regenerator/adapters.d.ts +0 -20
- package/dist/regenerator/adapters.d.ts.map +0 -1
- package/dist/regenerator/executor.d.ts +0 -71
- package/dist/regenerator/executor.d.ts.map +0 -1
- package/dist/regenerator/executor.js.map +0 -1
- package/dist/regenerator/index.d.ts +0 -7
- package/dist/regenerator/service.d.ts +0 -34
- package/dist/regenerator/service.d.ts.map +0 -1
- package/dist/regenerator/service.js.map +0 -1
- package/dist/regenerator/sinks.d.ts +0 -27
- package/dist/regenerator/sinks.d.ts.map +0 -1
- package/dist/regenerator/sinks.js.map +0 -1
- package/dist/regenerator/types.d.ts +0 -108
- package/dist/regenerator/types.d.ts.map +0 -1
- package/dist/regenerator/utils.d.ts +0 -10
- package/dist/regenerator/utils.d.ts.map +0 -1
- package/dist/regenerator/utils.js.map +0 -1
- package/dist/registry.d.ts +0 -73
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js.map +0 -1
- package/dist/resources.d.ts +0 -65
- package/dist/resources.d.ts.map +0 -1
- package/dist/resources.js.map +0 -1
- package/dist/schema/dist/EnumType.js +0 -1
- package/dist/schema/dist/FieldType.js +0 -2
- package/dist/schema/dist/FieldType.js.map +0 -1
- package/dist/schema/dist/ScalarTypeEnum.js +0 -2
- package/dist/schema/dist/ScalarTypeEnum.js.map +0 -1
- package/dist/schema/dist/SchemaModel.js +0 -2
- package/dist/schema/dist/SchemaModel.js.map +0 -1
- package/dist/schema/dist/index.js +0 -1
- package/dist/server/graphql-pothos.d.ts +0 -32
- package/dist/server/graphql-pothos.d.ts.map +0 -1
- package/dist/server/graphql-pothos.js.map +0 -1
- package/dist/server/graphql-schema-export.d.ts +0 -7
- package/dist/server/graphql-schema-export.d.ts.map +0 -1
- package/dist/server/graphql-schema-export.js +0 -2
- package/dist/server/graphql-schema-export.js.map +0 -1
- package/dist/server/index.d.ts +0 -9
- package/dist/server/provider-mcp.d.ts +0 -52
- package/dist/server/provider-mcp.d.ts.map +0 -1
- package/dist/server/provider-mcp.js.map +0 -1
- package/dist/server/rest-elysia.d.ts +0 -41
- package/dist/server/rest-elysia.d.ts.map +0 -1
- package/dist/server/rest-elysia.js.map +0 -1
- package/dist/server/rest-express.d.ts +0 -17
- package/dist/server/rest-express.d.ts.map +0 -1
- package/dist/server/rest-express.js.map +0 -1
- package/dist/server/rest-generic.d.ts +0 -33
- package/dist/server/rest-generic.d.ts.map +0 -1
- package/dist/server/rest-generic.js.map +0 -1
- package/dist/server/rest-next-app.d.ts +0 -36
- package/dist/server/rest-next-app.d.ts.map +0 -1
- package/dist/server/rest-next-app.js.map +0 -1
- package/dist/server/rest-next-mcp.d.ts +0 -12
- package/dist/server/rest-next-mcp.d.ts.map +0 -1
- package/dist/server/rest-next-mcp.js.map +0 -1
- package/dist/server/rest-next-pages.d.ts +0 -10
- package/dist/server/rest-next-pages.d.ts.map +0 -1
- package/dist/server/rest-next-pages.js.map +0 -1
- package/dist/spec.d.ts +0 -172
- package/dist/spec.d.ts.map +0 -1
- package/dist/spec.js.map +0 -1
- package/dist/telemetry/anomaly.d.ts +0 -28
- package/dist/telemetry/anomaly.d.ts.map +0 -1
- package/dist/telemetry/anomaly.js.map +0 -1
- package/dist/telemetry/index.d.ts +0 -4
- package/dist/telemetry/spec.d.ts +0 -99
- package/dist/telemetry/spec.d.ts.map +0 -1
- package/dist/telemetry/spec.js.map +0 -1
- package/dist/telemetry/tracker.d.ts +0 -52
- package/dist/telemetry/tracker.d.ts.map +0 -1
- package/dist/telemetry/tracker.js.map +0 -1
- package/dist/tests/index.d.ts +0 -3
- package/dist/tests/runner.d.ts +0 -44
- package/dist/tests/runner.d.ts.map +0 -1
- package/dist/tests/runner.js.map +0 -1
- package/dist/tests/spec.d.ts +0 -90
- package/dist/tests/spec.d.ts.map +0 -1
- package/dist/tests/spec.js.map +0 -1
- package/dist/themes.d.ts +0 -56
- package/dist/themes.d.ts.map +0 -1
- package/dist/themes.js.map +0 -1
- package/dist/translations/catalog.d.ts +0 -29
- package/dist/translations/catalog.d.ts.map +0 -1
- package/dist/translations/tenant.d.ts +0 -16
- package/dist/translations/tenant.d.ts.map +0 -1
- package/dist/types/all.d.ts +0 -60
- package/dist/types.d.ts +0 -89
- package/dist/types.d.ts.map +0 -1
- package/dist/workflow/adapters/db-adapter.d.ts +0 -35
- package/dist/workflow/adapters/db-adapter.d.ts.map +0 -1
- package/dist/workflow/adapters/db-adapter.js.map +0 -1
- package/dist/workflow/adapters/file-adapter.d.ts +0 -15
- package/dist/workflow/adapters/file-adapter.d.ts.map +0 -1
- package/dist/workflow/adapters/file-adapter.js.map +0 -1
- package/dist/workflow/adapters/index.d.ts +0 -4
- package/dist/workflow/adapters/memory-store.d.ts +0 -19
- package/dist/workflow/adapters/memory-store.d.ts.map +0 -1
- package/dist/workflow/adapters/memory-store.js.map +0 -1
- package/dist/workflow/expression.d.ts +0 -10
- package/dist/workflow/expression.d.ts.map +0 -1
- package/dist/workflow/expression.js.map +0 -1
- package/dist/workflow/index.d.ts +0 -10
- package/dist/workflow/runner.d.ts +0 -75
- package/dist/workflow/runner.d.ts.map +0 -1
- package/dist/workflow/runner.js.map +0 -1
- package/dist/workflow/sla-monitor.d.ts +0 -21
- package/dist/workflow/sla-monitor.d.ts.map +0 -1
- package/dist/workflow/sla-monitor.js.map +0 -1
- package/dist/workflow/spec.d.ts +0 -100
- package/dist/workflow/spec.d.ts.map +0 -1
- package/dist/workflow/spec.js.map +0 -1
- package/dist/workflow/state.d.ts +0 -36
- package/dist/workflow/state.d.ts.map +0 -1
- package/dist/workflow/validation.d.ts +0 -29
- package/dist/workflow/validation.d.ts.map +0 -1
- package/dist/workflow/validation.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","names":[],"sources":["../../src/experiments/evaluator.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport type { PolicyRef } from '../policy/spec';\nimport type {\n ExperimentRegistry,\n ExperimentSpec,\n ExperimentVariant,\n TargetingRule,\n} from './spec';\n\nexport interface ExperimentContext {\n experiment: string;\n version?: number;\n userId?: string | null;\n organizationId?: string | null;\n sessionId?: string | null;\n attributes?: Record<string, unknown>;\n flags?: string[];\n}\n\nexport interface ExperimentEvaluation {\n variant: ExperimentVariant;\n reason: 'control' | 'random' | 'sticky' | 'targeted';\n}\n\nexport interface ExperimentEvaluatorConfig {\n registry: ExperimentRegistry;\n policyChecker?: (\n policy: PolicyRef,\n context: ExperimentContext\n ) => Promise<boolean> | boolean;\n expressionEvaluator?: (\n expression: string,\n context: ExperimentContext\n ) => boolean;\n}\n\nexport class ExperimentEvaluator {\n private readonly registry: ExperimentRegistry;\n private readonly policyChecker?: ExperimentEvaluatorConfig['policyChecker'];\n private readonly expressionEvaluator?: ExperimentEvaluatorConfig['expressionEvaluator'];\n\n constructor(config: ExperimentEvaluatorConfig) {\n this.registry = config.registry;\n this.policyChecker = config.policyChecker;\n this.expressionEvaluator = config.expressionEvaluator;\n }\n\n async chooseVariant(\n context: ExperimentContext\n ): Promise<ExperimentEvaluation | null> {\n const experiment = this.registry.get(context.experiment, context.version);\n if (!experiment) return null;\n\n const control = experiment.variants.find(\n (variant) => variant.id === experiment.controlVariant\n );\n if (!control)\n throw new Error(\n `Experiment ${experiment.meta.name} missing control variant ${experiment.controlVariant}`\n );\n\n switch (experiment.allocation.type) {\n case 'random':\n return {\n variant: this.pickByWeight(\n experiment,\n this.randomSeed(context, experiment.allocation.salt)\n ),\n reason: 'random',\n };\n case 'sticky':\n return {\n variant: this.pickByWeight(\n experiment,\n this.stickySeed(\n context,\n experiment.allocation.attribute,\n experiment.allocation.salt\n )\n ),\n reason: 'sticky',\n };\n case 'targeted': {\n const targeted = await this.evaluateTargeting(\n experiment,\n context,\n experiment.allocation.rules\n );\n if (targeted) {\n return {\n variant: targeted,\n reason: 'targeted',\n };\n }\n if (experiment.allocation.fallback === 'random') {\n return {\n variant: this.pickByWeight(experiment, this.randomSeed(context)),\n reason: 'random',\n };\n }\n return {\n variant: control,\n reason: 'control',\n };\n }\n default:\n return {\n variant: control,\n reason: 'control',\n };\n }\n }\n\n private pickByWeight(\n experiment: ExperimentSpec,\n seed: number\n ): ExperimentVariant {\n const variants = experiment.variants;\n const totalWeight = variants.reduce(\n (sum, variant) => sum + (variant.weight ?? 1),\n 0\n );\n const target = seed * totalWeight;\n let cumulative = 0;\n for (const variant of variants) {\n cumulative += variant.weight ?? 1;\n if (target <= cumulative) {\n return variant;\n }\n }\n return variants[variants.length - 1]!;\n }\n\n private randomSeed(context: ExperimentContext, salt = ''): number {\n const base =\n context.sessionId ??\n context.userId ??\n context.organizationId ??\n `${Date.now()}-${Math.random()}`;\n return this.hashToUnitInterval(base + salt);\n }\n\n private stickySeed(\n context: ExperimentContext,\n attribute: 'userId' | 'organizationId' | 'sessionId',\n salt = ''\n ): number {\n const value = context[attribute];\n if (!value) return this.randomSeed(context, salt);\n return this.hashToUnitInterval(`${value}-${salt}`);\n }\n\n private hashToUnitInterval(value: string): number {\n const hash = createHash('sha256').update(value).digest('hex').slice(0, 15);\n const intValue = parseInt(hash, 16);\n return (intValue % 1_000_000) / 1_000_000;\n }\n\n private async evaluateTargeting(\n experiment: ExperimentSpec,\n context: ExperimentContext,\n rules: TargetingRule[]\n ): Promise<ExperimentVariant | null> {\n for (const rule of rules) {\n if (!(await this.matchesRule(rule, context))) continue;\n const variant = experiment.variants.find((v) => v.id === rule.variantId);\n if (!variant) continue;\n if (typeof rule.percentage === 'number') {\n const seed = this.randomSeed(context, `rule-${rule.variantId}`);\n if (seed > rule.percentage) {\n continue;\n }\n }\n return variant;\n }\n return null;\n }\n\n private async matchesRule(\n rule: TargetingRule,\n context: ExperimentContext\n ): Promise<boolean> {\n if (rule.policy && this.policyChecker) {\n const allowed = await this.policyChecker(rule.policy, context);\n if (!allowed) return false;\n }\n if (rule.expression) {\n if (this.expressionEvaluator) {\n return Boolean(this.expressionEvaluator(rule.expression, context));\n }\n try {\n const fn = new Function('context', `return (${rule.expression});`);\n return Boolean(fn(context));\n } catch (_error) {\n return false;\n }\n }\n return true;\n }\n}\n"],"mappings":"yCAoCA,IAAa,EAAb,KAAiC,CAC/B,SACA,cACA,oBAEA,YAAY,EAAmC,CAC7C,KAAK,SAAW,EAAO,SACvB,KAAK,cAAgB,EAAO,cAC5B,KAAK,oBAAsB,EAAO,oBAGpC,MAAM,cACJ,EACsC,CACtC,IAAM,EAAa,KAAK,SAAS,IAAI,EAAQ,WAAY,EAAQ,QAAQ,CACzE,GAAI,CAAC,EAAY,OAAO,KAExB,IAAM,EAAU,EAAW,SAAS,KACjC,GAAY,EAAQ,KAAO,EAAW,eACxC,CACD,GAAI,CAAC,EACH,MAAU,MACR,cAAc,EAAW,KAAK,KAAK,2BAA2B,EAAW,iBAC1E,CAEH,OAAQ,EAAW,WAAW,KAA9B,CACE,IAAK,SACH,MAAO,CACL,QAAS,KAAK,aACZ,EACA,KAAK,WAAW,EAAS,EAAW,WAAW,KAAK,CACrD,CACD,OAAQ,SACT,CACH,IAAK,SACH,MAAO,CACL,QAAS,KAAK,aACZ,EACA,KAAK,WACH,EACA,EAAW,WAAW,UACtB,EAAW,WAAW,KACvB,CACF,CACD,OAAQ,SACT,CACH,IAAK,WAAY,CACf,IAAM,EAAW,MAAM,KAAK,kBAC1B,EACA,EACA,EAAW,WAAW,MACvB,CAaD,OAZI,EACK,CACL,QAAS,EACT,OAAQ,WACT,CAEC,EAAW,WAAW,WAAa,SAC9B,CACL,QAAS,KAAK,aAAa,EAAY,KAAK,WAAW,EAAQ,CAAC,CAChE,OAAQ,SACT,CAEI,CACL,QAAS,EACT,OAAQ,UACT,CAEH,QACE,MAAO,CACL,QAAS,EACT,OAAQ,UACT,EAIP,aACE,EACA,EACmB,CACnB,IAAM,EAAW,EAAW,SAKtB,EAAS,EAJK,EAAS,QAC1B,EAAK,IAAY,GAAO,EAAQ,QAAU,GAC3C,EACD,CAEG,EAAa,EACjB,IAAK,IAAM,KAAW,EAEpB,GADA,GAAc,EAAQ,QAAU,EAC5B,GAAU,EACZ,OAAO,EAGX,OAAO,EAAS,EAAS,OAAS,GAGpC,WAAmB,EAA4B,EAAO,GAAY,CAChE,IAAM,EACJ,EAAQ,WACR,EAAQ,QACR,EAAQ,gBACR,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,GAChC,OAAO,KAAK,mBAAmB,EAAO,EAAK,CAG7C,WACE,EACA,EACA,EAAO,GACC,CACR,IAAM,EAAQ,EAAQ,GAEtB,OADK,EACE,KAAK,mBAAmB,GAAG,EAAM,GAAG,IAAO,CAD/B,KAAK,WAAW,EAAS,EAAK,CAInD,mBAA2B,EAAuB,CAChD,IAAM,EAAO,EAAW,SAAS,CAAC,OAAO,EAAM,CAAC,OAAO,MAAM,CAAC,MAAM,EAAG,GAAG,CAE1E,OADiB,SAAS,EAAM,GAAG,CAChB,IAAa,IAGlC,MAAc,kBACZ,EACA,EACA,EACmC,CACnC,IAAK,IAAM,KAAQ,EAAO,CACxB,GAAI,CAAE,MAAM,KAAK,YAAY,EAAM,EAAQ,CAAG,SAC9C,IAAM,EAAU,EAAW,SAAS,KAAM,GAAM,EAAE,KAAO,EAAK,UAAU,CACnE,QACD,OAAO,EAAK,YAAe,UAChB,KAAK,WAAW,EAAS,QAAQ,EAAK,YAAY,CACpD,EAAK,YAIlB,OAAO,EAET,OAAO,KAGT,MAAc,YACZ,EACA,EACkB,CAClB,GAAI,EAAK,QAAU,KAAK,eAElB,CADY,MAAM,KAAK,cAAc,EAAK,OAAQ,EAAQ,CAChD,MAAO,GAEvB,GAAI,EAAK,WAAY,CACnB,GAAI,KAAK,oBACP,MAAO,EAAQ,KAAK,oBAAoB,EAAK,WAAY,EAAQ,CAEnE,GAAI,CAEF,MAAO,EADQ,SAAS,UAAW,WAAW,EAAK,WAAW,IAAI,CAChD,EAAQ,MACX,CACf,MAAO,IAGX,MAAO"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ResourceRefDescriptor } from "../resources.js";
|
|
2
|
-
import { ContractSpec, OpKind } from "../spec.js";
|
|
3
|
-
import { HandlerCtx } from "../types.js";
|
|
4
|
-
import { AnySchemaModel } from "@lssm/lib.schema";
|
|
5
|
-
|
|
6
|
-
//#region src/experiments/spec-resolver.d.ts
|
|
7
|
-
type RuntimeContract = ContractSpec<AnySchemaModel, AnySchemaModel | ResourceRefDescriptor<boolean>>;
|
|
8
|
-
interface SpecVariantResolver {
|
|
9
|
-
resolve(operation: {
|
|
10
|
-
name: string;
|
|
11
|
-
version: number;
|
|
12
|
-
kind: OpKind;
|
|
13
|
-
}, ctx: HandlerCtx): Promise<RuntimeContract | undefined> | RuntimeContract | undefined;
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { RuntimeContract, SpecVariantResolver };
|
|
17
|
-
//# sourceMappingURL=spec-resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spec-resolver.d.ts","names":[],"sources":["../../src/experiments/spec-resolver.ts"],"sourcesContent":[],"mappings":";;;;;;KAKY,eAAA,GAAkB,aAC5B,gBACA,iBAAiB;UAGF,mBAAA;EALL,OAAA,CAAA,SAAA,EAAe;IACzB,IAAA,EAAA,MAAA;IACA,OAAA,EAAA,MAAA;IAAiB,IAAA,EAKmC,MALnC;EAFW,CAAA,EAAA,GAAA,EAQrB,UARqB,CAAA,EASzB,OATyB,CASjB,eATiB,GAAA,SAAA,CAAA,GASc,eATd,GAAA,SAAA"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { OwnerShipMeta } from "../ownership.js";
|
|
2
|
-
import { PolicyRef } from "../policy/spec.js";
|
|
3
|
-
import { TelemetryEventDef } from "../telemetry/spec.js";
|
|
4
|
-
|
|
5
|
-
//#region src/experiments/spec.d.ts
|
|
6
|
-
interface ExperimentMeta extends OwnerShipMeta {
|
|
7
|
-
/** Fully-qualified experiment name (e.g., "sigil.onboarding.variant"). */
|
|
8
|
-
name: string;
|
|
9
|
-
/** Version of the experiment; bump when allocation or variants change materially. */
|
|
10
|
-
version: number;
|
|
11
|
-
/** Domain/bounded context (e.g., "onboarding"). */
|
|
12
|
-
domain: string;
|
|
13
|
-
}
|
|
14
|
-
interface ExperimentRef {
|
|
15
|
-
name: string;
|
|
16
|
-
version?: number;
|
|
17
|
-
}
|
|
18
|
-
type ExperimentOverrideType = 'dataView' | 'workflow' | 'theme' | 'policy' | 'presentation';
|
|
19
|
-
interface ExperimentOverride {
|
|
20
|
-
type: ExperimentOverrideType;
|
|
21
|
-
/** Target spec meta name (e.g., DataViewSpec.meta.name). */
|
|
22
|
-
target: string;
|
|
23
|
-
/** Target version. Optional; evaluator may choose latest when omitted. */
|
|
24
|
-
version?: number;
|
|
25
|
-
/** Optional configuration applied when this variant is active. */
|
|
26
|
-
config?: Record<string, unknown>;
|
|
27
|
-
}
|
|
28
|
-
interface ExperimentVariant {
|
|
29
|
-
id: string;
|
|
30
|
-
name: string;
|
|
31
|
-
description?: string;
|
|
32
|
-
/** Relative weight for random allocation (defaults to 1). */
|
|
33
|
-
weight?: number;
|
|
34
|
-
overrides?: ExperimentOverride[];
|
|
35
|
-
/** Optional metadata for downstream analytics/UI. */
|
|
36
|
-
metadata?: Record<string, unknown>;
|
|
37
|
-
}
|
|
38
|
-
interface TargetingRule {
|
|
39
|
-
/** Variant to assign when rule matches. */
|
|
40
|
-
variantId: string;
|
|
41
|
-
/** Optional percentage of matching traffic (0-1). If omitted, 100%. */
|
|
42
|
-
percentage?: number;
|
|
43
|
-
/** Policies that must allow the assignment. */
|
|
44
|
-
policy?: PolicyRef;
|
|
45
|
-
/** Expression evaluated against context (see evaluator for details). */
|
|
46
|
-
expression?: string;
|
|
47
|
-
}
|
|
48
|
-
type AllocationStrategy = {
|
|
49
|
-
type: 'random';
|
|
50
|
-
/** Optional salt for deterministic hashing. */
|
|
51
|
-
salt?: string;
|
|
52
|
-
} | {
|
|
53
|
-
type: 'sticky';
|
|
54
|
-
/** Which attribute to hash for sticky assignment. */
|
|
55
|
-
attribute: 'userId' | 'organizationId' | 'sessionId';
|
|
56
|
-
salt?: string;
|
|
57
|
-
} | {
|
|
58
|
-
type: 'targeted';
|
|
59
|
-
rules: TargetingRule[];
|
|
60
|
-
fallback?: 'control' | 'random';
|
|
61
|
-
};
|
|
62
|
-
type MetricAggregation = 'count' | 'avg' | 'p75' | 'p90' | 'p95' | 'p99';
|
|
63
|
-
interface SuccessMetric {
|
|
64
|
-
name: string;
|
|
65
|
-
telemetryEvent: {
|
|
66
|
-
name: TelemetryEventDef['name'];
|
|
67
|
-
version: number;
|
|
68
|
-
};
|
|
69
|
-
aggregation: MetricAggregation;
|
|
70
|
-
target?: number;
|
|
71
|
-
}
|
|
72
|
-
interface ExperimentSpec {
|
|
73
|
-
meta: ExperimentMeta;
|
|
74
|
-
/** Identifier of the control variant (must exist in variants array). */
|
|
75
|
-
controlVariant: string;
|
|
76
|
-
variants: ExperimentVariant[];
|
|
77
|
-
allocation: AllocationStrategy;
|
|
78
|
-
successMetrics?: SuccessMetric[];
|
|
79
|
-
tags?: string[];
|
|
80
|
-
}
|
|
81
|
-
declare class ExperimentRegistry {
|
|
82
|
-
private readonly items;
|
|
83
|
-
register(spec: ExperimentSpec): this;
|
|
84
|
-
list(): ExperimentSpec[];
|
|
85
|
-
get(name: string, version?: number): ExperimentSpec | undefined;
|
|
86
|
-
}
|
|
87
|
-
declare function makeExperimentKey(meta: ExperimentMeta): string;
|
|
88
|
-
//#endregion
|
|
89
|
-
export { AllocationStrategy, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, MetricAggregation, SuccessMetric, TargetingRule, makeExperimentKey };
|
|
90
|
-
//# sourceMappingURL=spec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","names":[],"sources":["../../src/experiments/spec.ts"],"sourcesContent":[],"mappings":";;;;;UAIiB,cAAA,SAAuB;;EAAvB,IAAA,EAAA,MAAA;EASA;EAKL,OAAA,EAAA,MAAA;EAOK;EAUA,MAAA,EAAA,MAAA;AAWjB;AAWY,UA5CK,aAAA,CA4Ca;EAkBlB,IAAA,EAAA,MAAA;EAEK,OAAA,CAAA,EAAA,MAAa;AAO9B;AACQ,KAnEI,sBAAA,GAmEJ,UAAA,GAAA,UAAA,GAAA,OAAA,GAAA,QAAA,GAAA,cAAA;AAGI,UA/DK,kBAAA,CA+DL;EACE,IAAA,EA/DN,sBA+DM;EACK;EAAa,MAAA,EAAA,MAAA;EAMnB;EAGI,OAAA,CAAA,EAAA,MAAA;EASP;EAI6B,MAAA,CAAA,EAhF5B,MAgF4B,CAAA,MAAA,EAAA,OAAA,CAAA;;AAiBvB,UA9FC,iBAAA,CA8FgB;;;;;;cAxFnB;;aAED;;UAGI,aAAA;;;;;;WAMN;;;;KAKC,kBAAA;;;;;;;;;;;SAcC;;;KAID,iBAAA;UAEK,aAAA;;;UAES;;;eACX;;;UAIE,cAAA;QACT;;;YAGI;cACE;mBACK;;;cAMN,kBAAA;;iBAGI;UASP;uCAI6B;;iBAiBvB,iBAAA,OAAwB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spec.js","names":["latest: ExperimentSpec | undefined"],"sources":["../../src/experiments/spec.ts"],"sourcesContent":["import type { OwnerShipMeta } from '../ownership';\nimport type { PolicyRef } from '../policy/spec';\nimport type { TelemetryEventDef } from '../telemetry/spec';\n\nexport interface ExperimentMeta extends OwnerShipMeta {\n /** Fully-qualified experiment name (e.g., \"sigil.onboarding.variant\"). */\n name: string;\n /** Version of the experiment; bump when allocation or variants change materially. */\n version: number;\n /** Domain/bounded context (e.g., \"onboarding\"). */\n domain: string;\n}\n\nexport interface ExperimentRef {\n name: string;\n version?: number;\n}\n\nexport type ExperimentOverrideType =\n | 'dataView'\n | 'workflow'\n | 'theme'\n | 'policy'\n | 'presentation';\n\nexport interface ExperimentOverride {\n type: ExperimentOverrideType;\n /** Target spec meta name (e.g., DataViewSpec.meta.name). */\n target: string;\n /** Target version. Optional; evaluator may choose latest when omitted. */\n version?: number;\n /** Optional configuration applied when this variant is active. */\n config?: Record<string, unknown>;\n}\n\nexport interface ExperimentVariant {\n id: string;\n name: string;\n description?: string;\n /** Relative weight for random allocation (defaults to 1). */\n weight?: number;\n overrides?: ExperimentOverride[];\n /** Optional metadata for downstream analytics/UI. */\n metadata?: Record<string, unknown>;\n}\n\nexport interface TargetingRule {\n /** Variant to assign when rule matches. */\n variantId: string;\n /** Optional percentage of matching traffic (0-1). If omitted, 100%. */\n percentage?: number;\n /** Policies that must allow the assignment. */\n policy?: PolicyRef;\n /** Expression evaluated against context (see evaluator for details). */\n expression?: string;\n}\n\nexport type AllocationStrategy =\n | {\n type: 'random';\n /** Optional salt for deterministic hashing. */\n salt?: string;\n }\n | {\n type: 'sticky';\n /** Which attribute to hash for sticky assignment. */\n attribute: 'userId' | 'organizationId' | 'sessionId';\n salt?: string;\n }\n | {\n type: 'targeted';\n rules: TargetingRule[];\n fallback?: 'control' | 'random';\n };\n\nexport type MetricAggregation = 'count' | 'avg' | 'p75' | 'p90' | 'p95' | 'p99';\n\nexport interface SuccessMetric {\n name: string;\n telemetryEvent: { name: TelemetryEventDef['name']; version: number };\n aggregation: MetricAggregation;\n target?: number;\n}\n\nexport interface ExperimentSpec {\n meta: ExperimentMeta;\n /** Identifier of the control variant (must exist in variants array). */\n controlVariant: string;\n variants: ExperimentVariant[];\n allocation: AllocationStrategy;\n successMetrics?: SuccessMetric[];\n tags?: string[];\n}\n\nconst experimentKey = (meta: ExperimentMeta) => `${meta.name}.v${meta.version}`;\n\nexport class ExperimentRegistry {\n private readonly items = new Map<string, ExperimentSpec>();\n\n register(spec: ExperimentSpec): this {\n const key = experimentKey(spec.meta);\n if (this.items.has(key)) {\n throw new Error(`Duplicate experiment ${key}`);\n }\n this.items.set(key, spec);\n return this;\n }\n\n list(): ExperimentSpec[] {\n return [...this.items.values()];\n }\n\n get(name: string, version?: number): ExperimentSpec | undefined {\n if (version != null) {\n return this.items.get(`${name}.v${version}`);\n }\n let latest: ExperimentSpec | undefined;\n let maxVersion = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.name !== name) continue;\n if (spec.meta.version > maxVersion) {\n maxVersion = spec.meta.version;\n latest = spec;\n }\n }\n return latest;\n }\n}\n\nexport function makeExperimentKey(meta: ExperimentMeta) {\n return experimentKey(meta);\n}\n"],"mappings":"AA8FA,MAAM,EAAiB,GAAyB,GAAG,EAAK,KAAK,IAAI,EAAK,UAEtE,IAAa,EAAb,KAAgC,CAC9B,MAAyB,IAAI,IAE7B,SAAS,EAA4B,CACnC,IAAM,EAAM,EAAc,EAAK,KAAK,CACpC,GAAI,KAAK,MAAM,IAAI,EAAI,CACrB,MAAU,MAAM,wBAAwB,IAAM,CAGhD,OADA,KAAK,MAAM,IAAI,EAAK,EAAK,CAClB,KAGT,MAAyB,CACvB,MAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAGjC,IAAI,EAAc,EAA8C,CAC9D,GAAI,GAAW,KACb,OAAO,KAAK,MAAM,IAAI,GAAG,EAAK,IAAI,IAAU,CAE9C,IAAIA,EACA,EAAa,KACjB,IAAK,IAAM,KAAQ,KAAK,MAAM,QAAQ,CAChC,EAAK,KAAK,OAAS,GACnB,EAAK,KAAK,QAAU,IACtB,EAAa,EAAK,KAAK,QACvB,EAAS,GAGb,OAAO,IAIX,SAAgB,EAAkB,EAAsB,CACtD,OAAO,EAAc,EAAK"}
|
package/dist/features.d.ts
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { OwnerShipMeta } from "./ownership.js";
|
|
2
|
-
import { CapabilityRef, CapabilityRegistry, CapabilityRequirement } from "./capabilities.js";
|
|
3
|
-
import { PresentationRegistry } from "./presentations.js";
|
|
4
|
-
import { PresentationDescriptorV2, PresentationTarget } from "./presentations.v2.js";
|
|
5
|
-
import { ExperimentRef } from "./experiments/spec.js";
|
|
6
|
-
import { SpecRegistry } from "./registry.js";
|
|
7
|
-
|
|
8
|
-
//#region src/features.d.ts
|
|
9
|
-
/** Minimal metadata to identify and categorize a feature module. */
|
|
10
|
-
interface FeatureModuleMeta extends OwnerShipMeta {
|
|
11
|
-
/** Stable slug key used to identify this feature (e.g., "weekly_pulse"). */
|
|
12
|
-
key: string;
|
|
13
|
-
}
|
|
14
|
-
interface OpRef {
|
|
15
|
-
/** Operation name (ContractSpec.meta.name). */
|
|
16
|
-
name: string;
|
|
17
|
-
/** Operation version (ContractSpec.meta.version). */
|
|
18
|
-
version: number;
|
|
19
|
-
}
|
|
20
|
-
interface EventRef {
|
|
21
|
-
/** Event name. */
|
|
22
|
-
name: string;
|
|
23
|
-
/** Event version. */
|
|
24
|
-
version: number;
|
|
25
|
-
}
|
|
26
|
-
interface PresentationRef {
|
|
27
|
-
/** Presentation name. */
|
|
28
|
-
name: string;
|
|
29
|
-
/** Presentation version. */
|
|
30
|
-
version: number;
|
|
31
|
-
}
|
|
32
|
-
/** Group operations/events/presentations into an installable feature. */
|
|
33
|
-
interface FeatureModuleSpec {
|
|
34
|
-
meta: FeatureModuleMeta;
|
|
35
|
-
/** Contract operations included in this feature. */
|
|
36
|
-
operations?: OpRef[];
|
|
37
|
-
/** Events declared/emitted by this feature. */
|
|
38
|
-
events?: EventRef[];
|
|
39
|
-
/** Presentations associated to this feature. */
|
|
40
|
-
presentations?: PresentationRef[];
|
|
41
|
-
/** Experiments related to this feature. */
|
|
42
|
-
experiments?: ExperimentRef[];
|
|
43
|
-
/** Capability bindings exposed/required by this feature. */
|
|
44
|
-
capabilities?: {
|
|
45
|
-
provides?: CapabilityRef[];
|
|
46
|
-
requires?: CapabilityRequirement[];
|
|
47
|
-
};
|
|
48
|
-
/** Optional: link ops to presentations for traceability (e.g., ui for op) */
|
|
49
|
-
opToPresentation?: {
|
|
50
|
-
op: OpRef;
|
|
51
|
-
pres: PresentationRef;
|
|
52
|
-
}[];
|
|
53
|
-
/** Optional: declare per-presentation target requirements (V2 descriptors) */
|
|
54
|
-
presentationsTargets?: {
|
|
55
|
-
/** Presentation name. */
|
|
56
|
-
name: string;
|
|
57
|
-
/** Presentation version. */
|
|
58
|
-
version: number;
|
|
59
|
-
/** Required targets that must be supported by the descriptor. */
|
|
60
|
-
targets: PresentationTarget[];
|
|
61
|
-
}[];
|
|
62
|
-
}
|
|
63
|
-
interface FeatureRef {
|
|
64
|
-
key: string;
|
|
65
|
-
}
|
|
66
|
-
/** In-memory registry for FeatureModuleSpec. */
|
|
67
|
-
declare class FeatureRegistry {
|
|
68
|
-
private items;
|
|
69
|
-
/** Register a feature module. Throws when the key already exists. */
|
|
70
|
-
register(f: FeatureModuleSpec): this;
|
|
71
|
-
/** List all registered feature modules. */
|
|
72
|
-
list(): FeatureModuleSpec[];
|
|
73
|
-
/** Get a feature by its key (slug). */
|
|
74
|
-
get(key: string): FeatureModuleSpec | undefined;
|
|
75
|
-
}
|
|
76
|
-
/** Validate and register a feature against optional registries/descriptors. */
|
|
77
|
-
declare function installFeature(feature: FeatureModuleSpec, deps: {
|
|
78
|
-
features: FeatureRegistry;
|
|
79
|
-
ops?: SpecRegistry;
|
|
80
|
-
presentations?: PresentationRegistry;
|
|
81
|
-
descriptorsV2?: PresentationDescriptorV2[];
|
|
82
|
-
capabilities?: CapabilityRegistry;
|
|
83
|
-
}): FeatureRegistry;
|
|
84
|
-
/** Ensure declared target requirements exist on the provided descriptors. */
|
|
85
|
-
declare function validateFeatureTargetsV2(feature: FeatureModuleSpec, descriptors: PresentationDescriptorV2[]): boolean;
|
|
86
|
-
//#endregion
|
|
87
|
-
export { EventRef, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, OpRef, PresentationRef, installFeature, validateFeatureTargetsV2 };
|
|
88
|
-
//# sourceMappingURL=features.d.ts.map
|
package/dist/features.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"features.d.ts","names":[],"sources":["../src/features.ts"],"sourcesContent":[],"mappings":";;;;;;;;;UAaiB,iBAAA,SAA0B;;;AAA3C;AAKiB,UAAA,KAAA,CAAK;EAOL;EAOA,IAAA,EAAA,MAAA;EAQA;EACT,OAAA,EAAA,MAAA;;AAIG,UApBM,QAAA,CAoBN;EAEO;EAEF,IAAA,EAAA,MAAA;EAGD;EACA,OAAA,EAAA,MAAA;;AAGyB,UAxBvB,eAAA,CAwBuB;EAQ3B;EAAkB,IAAA,EAAA,MAAA;EAId;EASJ,OAAA,EAAA,MAAA;;;AAiBO,UAtDH,iBAAA,CAsDG;EAAiB,IAAA,EArD7B,iBAqD6B;EAMrB;EACL,UAAA,CAAA,EA1DI,KA0DJ,EAAA;EAEG;EAAe,MAAA,CAAA,EA1DlB,QA0DkB,EAAA;EACc;EAEvB,aAAA,CAAA,EA3DF,eA2DE,EAAA;EACD;EAChB,WAAA,CAAA,EA3Da,aA2Db,EAAA;EAAA;EAwFa,YAAA,CAAA,EAAA;eAhJD;eACA;;;;QAGY;UAAa;;;;;;;;;aAQ3B;;;UAII,UAAA;;;;cASJ,eAAA;;;cAIC;;UAQJ;;oBAKU;;;iBAMJ,cAAA,UACL;YAEG;QAAe;kBACc;kBAEvB;iBACD;IAChB;;iBAwFa,wBAAA,UACL,gCACI"}
|
package/dist/features.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"features.js","names":[],"sources":["../src/features.ts"],"sourcesContent":["import type {\n PresentationTarget,\n PresentationDescriptorV2,\n} from './presentations.v2';\nimport type { OwnerShipMeta } from './ownership';\nimport type {\n CapabilityRef,\n CapabilityRequirement,\n CapabilityRegistry,\n} from './capabilities';\nimport type { ExperimentRef } from './experiments/spec';\n\n/** Minimal metadata to identify and categorize a feature module. */\nexport interface FeatureModuleMeta extends OwnerShipMeta {\n /** Stable slug key used to identify this feature (e.g., \"weekly_pulse\"). */\n key: string;\n}\n\nexport interface OpRef {\n /** Operation name (ContractSpec.meta.name). */\n name: string;\n /** Operation version (ContractSpec.meta.version). */\n version: number;\n}\n\nexport interface EventRef {\n /** Event name. */\n name: string;\n /** Event version. */\n version: number;\n}\n\nexport interface PresentationRef {\n /** Presentation name. */\n name: string;\n /** Presentation version. */\n version: number;\n}\n\n/** Group operations/events/presentations into an installable feature. */\nexport interface FeatureModuleSpec {\n meta: FeatureModuleMeta;\n /** Contract operations included in this feature. */\n operations?: OpRef[];\n /** Events declared/emitted by this feature. */\n events?: EventRef[];\n /** Presentations associated to this feature. */\n presentations?: PresentationRef[];\n /** Experiments related to this feature. */\n experiments?: ExperimentRef[];\n /** Capability bindings exposed/required by this feature. */\n capabilities?: {\n provides?: CapabilityRef[];\n requires?: CapabilityRequirement[];\n };\n /** Optional: link ops to presentations for traceability (e.g., ui for op) */\n opToPresentation?: { op: OpRef; pres: PresentationRef }[];\n /** Optional: declare per-presentation target requirements (V2 descriptors) */\n presentationsTargets?: {\n /** Presentation name. */\n name: string;\n /** Presentation version. */\n version: number;\n /** Required targets that must be supported by the descriptor. */\n targets: PresentationTarget[];\n }[];\n}\n\nexport interface FeatureRef {\n key: string;\n}\n\nfunction keyOf(f: FeatureModuleSpec) {\n return f.meta.key;\n}\n\n/** In-memory registry for FeatureModuleSpec. */\nexport class FeatureRegistry {\n private items = new Map<string, FeatureModuleSpec>();\n\n /** Register a feature module. Throws when the key already exists. */\n register(f: FeatureModuleSpec): this {\n const key = keyOf(f);\n if (this.items.has(key)) throw new Error(`Duplicate feature ${key}`);\n this.items.set(key, f);\n return this;\n }\n\n /** List all registered feature modules. */\n list(): FeatureModuleSpec[] {\n return [...this.items.values()];\n }\n\n /** Get a feature by its key (slug). */\n get(key: string): FeatureModuleSpec | undefined {\n return this.items.get(key);\n }\n}\n\n/** Validate and register a feature against optional registries/descriptors. */\nexport function installFeature(\n feature: FeatureModuleSpec,\n deps: {\n features: FeatureRegistry;\n ops?: import('./registry').SpecRegistry;\n presentations?: import('./presentations').PresentationRegistry;\n descriptorsV2?: PresentationDescriptorV2[];\n capabilities?: CapabilityRegistry;\n }\n) {\n // Validate referenced ops exist if registry provided\n if (deps.ops && feature.operations) {\n for (const o of feature.operations) {\n const s = deps.ops.getSpec(o.name, o.version);\n if (!s)\n throw new Error(\n `installFeature: operation not found ${o.name}.v${o.version}`\n );\n }\n }\n // Validate referenced presentations exist if registry provided\n if (deps.presentations && feature.presentations) {\n for (const p of feature.presentations) {\n const pres = deps.presentations.get(p.name, p.version);\n if (!pres)\n throw new Error(\n `installFeature: presentation not found ${p.name}.v${p.version}`\n );\n }\n }\n // Validate V2 target requirements if provided\n if (feature.presentationsTargets && deps.descriptorsV2) {\n for (const req of feature.presentationsTargets) {\n const d = deps.descriptorsV2.find(\n (x) => x.meta.name === req.name && x.meta.version === req.version\n );\n if (!d)\n throw new Error(\n `installFeature: V2 descriptor not found ${req.name}.v${req.version}`\n );\n for (const t of req.targets) {\n if (!d.targets.includes(t))\n throw new Error(\n `installFeature: descriptor ${req.name}.v${req.version} missing target ${t}`\n );\n }\n }\n }\n // Validate op→presentation links\n if (feature.opToPresentation && feature.opToPresentation.length > 0) {\n for (const link of feature.opToPresentation) {\n if (deps.ops) {\n const s = deps.ops.getSpec(link.op.name, link.op.version);\n if (!s)\n throw new Error(\n `installFeature: linked op not found ${link.op.name}.v${link.op.version}`\n );\n }\n if (deps.presentations) {\n const pres = deps.presentations.get(link.pres.name, link.pres.version);\n if (!pres)\n throw new Error(\n `installFeature: linked presentation not found ${link.pres.name}.v${link.pres.version}`\n );\n }\n }\n }\n // Validate capability bindings when registry provided\n if (deps.capabilities && feature.capabilities?.provides) {\n for (const cap of feature.capabilities.provides) {\n const spec = deps.capabilities.get(cap.key, cap.version);\n if (!spec)\n throw new Error(\n `installFeature: capability not registered ${cap.key}.v${cap.version}`\n );\n }\n }\n if (feature.capabilities?.requires?.length) {\n if (!deps.capabilities)\n throw new Error(\n `installFeature: capability registry required to validate capability requirements for ${feature.meta.key}`\n );\n const provided = feature.capabilities.provides ?? [];\n for (const req of feature.capabilities.requires) {\n const satisfied = deps.capabilities.satisfies(req, provided);\n if (!satisfied)\n throw new Error(\n `installFeature: capability requirement not satisfied ${req.key}${req.version ? `.v${req.version}` : ''}`\n );\n }\n }\n deps.features.register(feature);\n return deps.features;\n}\n\n/** Ensure declared target requirements exist on the provided descriptors. */\nexport function validateFeatureTargetsV2(\n feature: FeatureModuleSpec,\n descriptors: PresentationDescriptorV2[]\n) {\n if (\n !feature.presentationsTargets ||\n feature.presentationsTargets.length === 0\n )\n return true;\n for (const req of feature.presentationsTargets) {\n const d = descriptors.find(\n (x) => x.meta.name === req.name && x.meta.version === req.version\n );\n if (!d)\n throw new Error(`V2 descriptor not found ${req.name}.v${req.version}`);\n for (const t of req.targets)\n if (!d.targets.includes(t))\n throw new Error(\n `Descriptor ${req.name}.v${req.version} missing target ${t}`\n );\n }\n return true;\n}\n"],"mappings":"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"}
|
package/dist/forms.d.ts
DELETED
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
import { OwnerShipMeta } from "./ownership.js";
|
|
2
|
-
import { AnySchemaModel, ZodSchemaModel } from "@lssm/lib.schema";
|
|
3
|
-
|
|
4
|
-
//#region src/forms.d.ts
|
|
5
|
-
type PredicateOp = 'equals' | 'notEquals' | 'in' | 'notIn' | 'gt' | 'gte' | 'lt' | 'lte' | 'truthy' | 'empty' | 'lengthGt' | 'lengthGte' | 'lengthLt' | 'lengthLte';
|
|
6
|
-
interface WhenClause {
|
|
7
|
-
/** Dot path in form values; arrays may use `$index` within array context. */
|
|
8
|
-
path: string;
|
|
9
|
-
op?: PredicateOp;
|
|
10
|
-
value?: unknown;
|
|
11
|
-
}
|
|
12
|
-
interface Predicate {
|
|
13
|
-
when?: WhenClause;
|
|
14
|
-
all?: Predicate[];
|
|
15
|
-
any?: Predicate[];
|
|
16
|
-
not?: Predicate;
|
|
17
|
-
}
|
|
18
|
-
interface FormOption {
|
|
19
|
-
labelI18n: string;
|
|
20
|
-
value: string | number | boolean;
|
|
21
|
-
descriptionI18n?: string;
|
|
22
|
-
disabled?: boolean;
|
|
23
|
-
}
|
|
24
|
-
type OptionsSource = {
|
|
25
|
-
kind: 'static';
|
|
26
|
-
options: readonly FormOption[];
|
|
27
|
-
} | {
|
|
28
|
-
kind: 'resolver';
|
|
29
|
-
resolverKey: string;
|
|
30
|
-
/** Dot paths in form values to watch */
|
|
31
|
-
deps: string[];
|
|
32
|
-
args?: Record<string, unknown>;
|
|
33
|
-
};
|
|
34
|
-
interface BaseFieldSpec {
|
|
35
|
-
/** Field kind discriminator. */
|
|
36
|
-
kind: 'text' | 'textarea' | 'select' | 'checkbox' | 'radio' | 'switch' | 'group' | 'array';
|
|
37
|
-
/** Field name (dot path relative to the form root or parent context). */
|
|
38
|
-
name?: string;
|
|
39
|
-
labelI18n?: string;
|
|
40
|
-
descriptionI18n?: string;
|
|
41
|
-
placeholderI18n?: string;
|
|
42
|
-
required?: boolean;
|
|
43
|
-
/** Conditional UI behavior */
|
|
44
|
-
visibleWhen?: Predicate;
|
|
45
|
-
enabledWhen?: Predicate;
|
|
46
|
-
requiredWhen?: Predicate;
|
|
47
|
-
/** UI hints */
|
|
48
|
-
uiKey?: string;
|
|
49
|
-
uiProps?: Record<string, unknown>;
|
|
50
|
-
wrapper?: {
|
|
51
|
-
orientation?: 'horizontal' | 'vertical';
|
|
52
|
-
};
|
|
53
|
-
/** HTML/Native autofill token (supports custom tokens) */
|
|
54
|
-
autoComplete?: string;
|
|
55
|
-
/** Keyboard/adaptation hints (web/native). Shape mirrors design-system KeyboardOptions but stays decoupled. */
|
|
56
|
-
keyboard?: {
|
|
57
|
-
kind?: string;
|
|
58
|
-
autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';
|
|
59
|
-
autoComplete?: string;
|
|
60
|
-
autoCorrect?: boolean;
|
|
61
|
-
enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'search' | 'send';
|
|
62
|
-
};
|
|
63
|
-
/** Optional computed value hook, provided by host computations map */
|
|
64
|
-
computeFrom?: {
|
|
65
|
-
computeKey: string;
|
|
66
|
-
deps: string[];
|
|
67
|
-
mode?: 'change' | 'blur-xs' | 'submit';
|
|
68
|
-
readOnly?: boolean;
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
interface TextFieldSpec extends BaseFieldSpec {
|
|
72
|
-
kind: 'text';
|
|
73
|
-
name: string;
|
|
74
|
-
inputMode?: 'text' | 'email' | 'tel' | 'url' | 'numeric' | 'decimal' | 'search';
|
|
75
|
-
autoComplete?: string;
|
|
76
|
-
maxLength?: number;
|
|
77
|
-
minLength?: number;
|
|
78
|
-
}
|
|
79
|
-
interface TextareaFieldSpec extends BaseFieldSpec {
|
|
80
|
-
kind: 'textarea';
|
|
81
|
-
name: string;
|
|
82
|
-
rows?: number;
|
|
83
|
-
maxLength?: number;
|
|
84
|
-
minLength?: number;
|
|
85
|
-
}
|
|
86
|
-
interface SelectFieldSpec extends BaseFieldSpec {
|
|
87
|
-
kind: 'select';
|
|
88
|
-
name: string;
|
|
89
|
-
options: OptionsSource | readonly FormOption[];
|
|
90
|
-
}
|
|
91
|
-
interface CheckboxFieldSpec extends BaseFieldSpec {
|
|
92
|
-
kind: 'checkbox';
|
|
93
|
-
name: string;
|
|
94
|
-
}
|
|
95
|
-
interface RadioFieldSpec extends BaseFieldSpec {
|
|
96
|
-
kind: 'radio';
|
|
97
|
-
name: string;
|
|
98
|
-
options: OptionsSource | readonly FormOption[];
|
|
99
|
-
}
|
|
100
|
-
interface SwitchFieldSpec extends BaseFieldSpec {
|
|
101
|
-
kind: 'switch';
|
|
102
|
-
name: string;
|
|
103
|
-
}
|
|
104
|
-
interface GroupFieldSpec extends BaseFieldSpec {
|
|
105
|
-
kind: 'group';
|
|
106
|
-
/** Optional legend/label at group level */
|
|
107
|
-
labelI18n?: string;
|
|
108
|
-
fields: FieldSpec[];
|
|
109
|
-
}
|
|
110
|
-
interface ArrayFieldSpec extends BaseFieldSpec {
|
|
111
|
-
kind: 'array';
|
|
112
|
-
/** Root-level field that is an array in the model (e.g., "emails") */
|
|
113
|
-
name: string;
|
|
114
|
-
/** Child field spec for each item (e.g., address inside emails[i].address). */
|
|
115
|
-
of: Exclude<FieldSpec, ArrayFieldSpec | GroupFieldSpec>;
|
|
116
|
-
min?: number;
|
|
117
|
-
max?: number;
|
|
118
|
-
}
|
|
119
|
-
type FieldSpec = TextFieldSpec | TextareaFieldSpec | SelectFieldSpec | CheckboxFieldSpec | RadioFieldSpec | SwitchFieldSpec | GroupFieldSpec | ArrayFieldSpec;
|
|
120
|
-
interface FormAction {
|
|
121
|
-
key: string;
|
|
122
|
-
labelI18n: string;
|
|
123
|
-
op?: {
|
|
124
|
-
name: string;
|
|
125
|
-
version: number;
|
|
126
|
-
};
|
|
127
|
-
success?: {
|
|
128
|
-
navigateTo?: string;
|
|
129
|
-
toastI18n?: string;
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
interface ConstraintDecl {
|
|
133
|
-
key: string;
|
|
134
|
-
messageI18n: string;
|
|
135
|
-
paths: string[];
|
|
136
|
-
args?: Record<string, unknown>;
|
|
137
|
-
}
|
|
138
|
-
type FormValuesFor<M extends AnySchemaModel> = ZodSchemaModel<M>;
|
|
139
|
-
interface FormSpec<M extends AnySchemaModel = AnySchemaModel> {
|
|
140
|
-
meta: OwnerShipMeta & {
|
|
141
|
-
key: string;
|
|
142
|
-
version: number;
|
|
143
|
-
};
|
|
144
|
-
/** Canonical form data shape */
|
|
145
|
-
model: M;
|
|
146
|
-
/** Flat list or tree using groups/arrays */
|
|
147
|
-
fields: FieldSpec[];
|
|
148
|
-
policy?: {
|
|
149
|
-
flags?: string[];
|
|
150
|
-
pii?: string[];
|
|
151
|
-
};
|
|
152
|
-
actions?: FormAction[];
|
|
153
|
-
renderHints?: {
|
|
154
|
-
ui: 'shadcn' | 'custom';
|
|
155
|
-
form: 'react-hook-form';
|
|
156
|
-
};
|
|
157
|
-
constraints?: ConstraintDecl[];
|
|
158
|
-
}
|
|
159
|
-
declare class FormRegistry {
|
|
160
|
-
private items;
|
|
161
|
-
register(spec: FormSpec): this;
|
|
162
|
-
list(): FormSpec[];
|
|
163
|
-
get(key: string, version?: number): FormSpec<AnySchemaModel> | undefined;
|
|
164
|
-
}
|
|
165
|
-
declare function evalPredicate(values: unknown, pred?: Predicate): boolean;
|
|
166
|
-
type ConstraintHandler = (values: Record<string, unknown>, paths: string[], args?: Record<string, unknown>) => {
|
|
167
|
-
ok: true;
|
|
168
|
-
} | {
|
|
169
|
-
ok: false;
|
|
170
|
-
message?: string;
|
|
171
|
-
path?: string;
|
|
172
|
-
};
|
|
173
|
-
/**
|
|
174
|
-
* Wrap the base zod schema with relation-driven refinements (requiredWhen, array min/max)
|
|
175
|
-
* and optional custom constraints. Call this when wiring RHF resolver.
|
|
176
|
-
*/
|
|
177
|
-
declare function buildZodWithRelations(spec: FormSpec, handlers?: Record<string, ConstraintHandler>): any;
|
|
178
|
-
interface AnyFieldLike {
|
|
179
|
-
kind: string;
|
|
180
|
-
name?: string;
|
|
181
|
-
fields?: readonly AnyFieldLike[];
|
|
182
|
-
of?: AnyFieldLike;
|
|
183
|
-
}
|
|
184
|
-
type TopLevelNames<F extends readonly AnyFieldLike[]> = F[number] extends {
|
|
185
|
-
name: infer N extends string;
|
|
186
|
-
} ? N : never;
|
|
187
|
-
type ArrayChildren<F extends readonly AnyFieldLike[]> = F[number] extends {
|
|
188
|
-
kind: 'array';
|
|
189
|
-
name: infer N extends string;
|
|
190
|
-
of: infer C;
|
|
191
|
-
} ? C extends {
|
|
192
|
-
name: infer CN extends string;
|
|
193
|
-
} ? `${N}.$index.${CN}` : never : never;
|
|
194
|
-
type GroupTopLevelNames<F extends readonly AnyFieldLike[]> = F[number] extends {
|
|
195
|
-
kind: 'group';
|
|
196
|
-
fields: infer G extends readonly AnyFieldLike[];
|
|
197
|
-
} ? TopLevelNames<G> : never;
|
|
198
|
-
type GroupArrayChildren<F extends readonly AnyFieldLike[]> = F[number] extends {
|
|
199
|
-
kind: 'group';
|
|
200
|
-
fields: infer G extends readonly AnyFieldLike[];
|
|
201
|
-
} ? ArrayChildren<G> : never;
|
|
202
|
-
type PathOfFields<F extends readonly AnyFieldLike[]> = TopLevelNames<F> | ArrayChildren<F> | GroupTopLevelNames<F> | GroupArrayChildren<F>;
|
|
203
|
-
interface TypedWhenClause<P extends string> {
|
|
204
|
-
path: P;
|
|
205
|
-
op?: PredicateOp;
|
|
206
|
-
value?: unknown;
|
|
207
|
-
}
|
|
208
|
-
interface TypedPredicate<P extends string> {
|
|
209
|
-
when?: TypedWhenClause<P>;
|
|
210
|
-
all?: TypedPredicate<P>[];
|
|
211
|
-
any?: TypedPredicate<P>[];
|
|
212
|
-
not?: TypedPredicate<P>;
|
|
213
|
-
}
|
|
214
|
-
type TypedOptionsSource<P extends string> = {
|
|
215
|
-
kind: 'static';
|
|
216
|
-
options: readonly FormOption[];
|
|
217
|
-
} | {
|
|
218
|
-
kind: 'resolver';
|
|
219
|
-
resolverKey: string;
|
|
220
|
-
deps: P[];
|
|
221
|
-
args?: Record<string, unknown>;
|
|
222
|
-
};
|
|
223
|
-
type EnhanceFields<F extends readonly AnyFieldLike[], P extends string> = { [K in keyof F]: F[K] & {
|
|
224
|
-
visibleWhen?: TypedPredicate<P>;
|
|
225
|
-
enabledWhen?: TypedPredicate<P>;
|
|
226
|
-
requiredWhen?: TypedPredicate<P>;
|
|
227
|
-
} & (F[K] extends {
|
|
228
|
-
kind: 'select';
|
|
229
|
-
} ? {
|
|
230
|
-
options: TypedOptionsSource<P> | readonly FormOption[];
|
|
231
|
-
} : {}) & (F[K] extends {
|
|
232
|
-
kind: 'radio';
|
|
233
|
-
} ? {
|
|
234
|
-
options: TypedOptionsSource<P> | readonly FormOption[];
|
|
235
|
-
} : {}) & {
|
|
236
|
-
computeFrom?: {
|
|
237
|
-
computeKey: string;
|
|
238
|
-
deps: P[];
|
|
239
|
-
mode?: 'change' | 'blur-xs' | 'submit';
|
|
240
|
-
readOnly?: boolean;
|
|
241
|
-
};
|
|
242
|
-
} };
|
|
243
|
-
declare function defineFormSpec<M extends AnySchemaModel, F extends readonly AnyFieldLike[]>(spec: {
|
|
244
|
-
meta: FormSpec<M>['meta'];
|
|
245
|
-
model: M;
|
|
246
|
-
fields: EnhanceFields<F, PathOfFields<F>>;
|
|
247
|
-
policy?: FormSpec<M>['policy'];
|
|
248
|
-
actions?: FormSpec<M>['actions'];
|
|
249
|
-
renderHints?: FormSpec<M>['renderHints'];
|
|
250
|
-
constraints?: {
|
|
251
|
-
key: string;
|
|
252
|
-
messageI18n: string;
|
|
253
|
-
paths: PathOfFields<F>[];
|
|
254
|
-
args?: Record<string, unknown>;
|
|
255
|
-
}[];
|
|
256
|
-
}): FormSpec<M>;
|
|
257
|
-
//#endregion
|
|
258
|
-
export { ArrayFieldSpec, BaseFieldSpec, CheckboxFieldSpec, ConstraintDecl, ConstraintHandler, EnhanceFields, FieldSpec, FormAction, FormOption, FormRegistry, FormSpec, FormValuesFor, GroupFieldSpec, OptionsSource, Predicate, PredicateOp, RadioFieldSpec, SelectFieldSpec, SwitchFieldSpec, TextFieldSpec, TextareaFieldSpec, TypedOptionsSource, TypedPredicate, TypedWhenClause, WhenClause, buildZodWithRelations, defineFormSpec, evalPredicate };
|
|
259
|
-
//# sourceMappingURL=forms.d.ts.map
|
package/dist/forms.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"forms.d.ts","names":[],"sources":["../src/forms.ts"],"sourcesContent":[],"mappings":";;;;KAKY,WAAA;UAiBK,UAAA;EAjBL;EAiBK,IAAA,EAAA,MAAA;EAOA,EAAA,CAAA,EAJV,WAImB;EACjB,KAAA,CAAA,EAAA,OAAA;;AAED,UAHS,SAAA,CAGT;EACA,IAAA,CAAA,EAHC,UAGD;EAAS,GAAA,CAAA,EAFT,SAES,EAAA;EAGA,GAAA,CAAA,EAJT,SAImB,EAAA;EAOf,GAAA,CAAA,EAVJ,SAUI;AAUZ;AAkBgB,UAnCC,UAAA,CAmCD;EACA,SAAA,EAAA,MAAA;EACC,KAAA,EAAA,MAAA,GAAA,MAAA,GAAA,OAAA;EAGL,eAAA,CAAA,EAAA,MAAA;EAAM,QAAA,CAAA,EAAA,OAAA;AAqBlB;AAgBiB,KAtEL,aAAA,GAsEuB;EAQlB,IAAA,EAAA,QAAA;EAGN,OAAA,EAAA,SAhF6B,UAgF7B,EAAA;CAAyB,GAAA;EAHK,IAAA,EAAA,UAAA;EAAa,WAAA,EAAA,MAAA;EAMrC;EAKA,IAAA,EAAA,MAAA,EAAA;EAGN,IAAA,CAAA,EArFE,MAqFF,CAAA,MAAA,EAAA,OAAA,CAAA;CAAyB;AAHI,UA/EvB,aAAA,CA+EuB;EAAa;EAMpC,IAAA,EAAA,MAAA,GAAA,UAAgB,GAAA,QAAQ,GAAA,UAAa,GAAA,OAAA,GAAA,QAAA,GAAA,OAAA,GAAA,OAAA;EAKrC;EAOA,IAAA,CAAA,EAAA,MAAA;EAKH,SAAA,CAAA,EAAA,MAAA;EAAW,eAAA,CAAA,EAAA,MAAA;EAAiB,eAAA,CAAA,EAAA,MAAA;EAApC,QAAA,CAAA,EAAA,OAAA;EALkC;EAAa,WAAA,CAAA,EA/ErC,SA+EqC;EAUzC,WAAA,CAAS,EAxFL,SAwFK;EACjB,YAAA,CAAA,EAxFa,SAwFb;EACA;EACA,KAAA,CAAA,EAAA,MAAA;EACA,OAAA,CAAA,EAxFQ,MAwFR,CAAA,MAAA,EAAA,OAAA,CAAA;EACA,OAAA,CAAA,EAAA;IACA,WAAA,CAAA,EAAA,YAAA,GAAA,UAAA;EACA,CAAA;EACA;EAAc,YAAA,CAAA,EAAA,MAAA;EAED;EAOA,QAAA,CAAA,EAAA;IAOL,IAAA,CAAA,EAAA,MAAa;IAAW,cAAA,CAAA,EAAA,MAAA,GAAA,WAAA,GAAA,OAAA,GAAA,YAAA;IAAiC,YAAA,CAAA,EAAA,MAAA;IAAf,WAAA,CAAA,EAAA,OAAA;IAAc,YAAA,CAAA,EAAA,OAAA,GAAA,MAAA,GAAA,IAAA,GAAA,MAAA,GAAA,QAAA,GAAA,MAAA;EAEnD,CAAA;EAAmB;EAAiB,WAAA,CAAA,EAAA;IAC7C,UAAA,EAAA,MAAA;IAEC,IAAA,EAAA,MAAA,EAAA;IAEC,IAAA,CAAA,EAAA,QAAA,GAAA,SAAA,GAAA,QAAA;IAEE,QAAA,CAAA,EAAA,OAAA;EAEI,CAAA;;AASH,UA3GI,aAAA,SAAsB,aA2Gd,CAAA;EAGR,IAAA,EAAA,MAAA;EAOP,IAAA,EAAA,MAAA;EAIyB,SAAA,CAAA,EAAA,MAAA,GAAA,OAAA,GAAA,KAAA,GAAA,KAAA,GAAA,SAAA,GAAA,SAAA,GAAA,QAAA;EAAA,YAAA,CAAA,EAAA,MAAA;EAAA,SAAA,CAAA,EAAA,MAAA;EA+BnB,SAAA,CAAA,EAAA,MAAa;AA4D7B;AAUgB,UA9MC,iBAAA,SAA0B,aA8MN,CAAA;EAC7B,IAAA,EAAA,UAAA;EACoB,IAAA,EAAA,MAAA;EAAf,IAAA,CAAA,EAAA,MAAA;EAAM,SAAA,CAAA,EAAA,MAAA;EAsFT,SAAA,CAAA,EAAA,MAAY;AAIH;AAGmB,UArSrB,eAAA,SAAwB,aAqSH,CAAA;EAAkB,IAAA,EAAA,QAAA;EAGpD,IAAA,EAAA,MAAA;EAAC,OAAA,EArSM,aAqSN,GAAA,SArS+B,UAqS/B,EAAA;AAAA;AAGiC,UArSrB,iBAAA,SAA0B,aAqSL,CAAA;EAAkB,IAAA,EAAA,UAAA;EAKpD,IAAA,EAAA,MAAA;;AACiB,UAtSJ,cAAA,SAAuB,aAsSnB,CAAA;EAAE,IAAA,EAAA,OAAA;EAIlB,IAAA,EAAA,MAAA;EAAsC,OAAA,EAvShC,aAuSgC,GAAA,SAvSP,UAuSO,EAAA;;AAER,UAtSlB,eAAA,SAAwB,aAsSN,CAAA;EAEjB,IAAA,EAAA,QAAA;EAAd,IAAA,EAAA,MAAA;;AAGC,UAtSY,cAAA,SAAuB,aAsSjB,CAAA;EAAoB,IAAA,EAAA,OAAA;EAAkB;EAE1B,SAAA,CAAA,EAAA,MAAA;EAEjB,MAAA,EAtSR,SAsSQ,EAAA;;AAAD,UAnSA,cAAA,SAAuB,aAmSvB,CAAA;EAGZ,IAAA,EAAA,OAAA;EAAgC;EACnB,IAAA,EAAA,MAAA;EAAd;EACc,EAAA,EAnSZ,OAmSY,CAnSJ,SAmSI,EAnSO,cAmSP,GAnSwB,cAmSxB,CAAA;EAAd,GAAA,CAAA,EAAA,MAAA;EACmB,GAAA,CAAA,EAAA,MAAA;;AACA,KAhSX,SAAA,GACR,aA+RmB,GA9RnB,iBA8RmB,GA7RnB,eA6RmB,GA5RnB,iBA4RmB,GA3RnB,cA2RmB,GA1RnB,eA0RmB,GAzRnB,cAyRmB,GAxRnB,cAwRmB;AAAnB,UAtRa,UAAA,CAsRb;EAAkB,GAAA,EAAA,MAAA;EAEL,SAAA,EAAA,MAAA;EAKA,EAAA,CAAA,EAAA;IACQ,IAAA,EAAA,MAAA;IAAhB,OAAA,EAAA,MAAA;EACc,CAAA;EAAf,OAAA,CAAA,EAAA;IACe,UAAA,CAAA,EAAA,MAAA;IAAf,SAAA,CAAA,EAAA,MAAA;EACe,CAAA;;AAAD,UA1RL,cAAA,CA0RK;EAEV,GAAA,EAAA,MAAA;EAC4B,WAAA,EAAA,MAAA;EAI5B,KAAA,EAAA,MAAA,EAAA;EACC,IAAA,CAAA,EA9RJ,MA8RI,CAAA,MAAA,EAAA,OAAA,CAAA;;AAGD,KA9RA,aA8Ra,CAAA,UA9RW,cA8RX,CAAA,GA9R6B,cA8R7B,CA9R4C,CA8R5C,CAAA;AACJ,UA7RJ,QA6RI,CAAA,UA7Re,cA6Rf,GA7RgC,cA6RhC,CAAA,CAAA;EAGP,IAAA,EA/RN,aA+RM,GAAA;IAAI,GAAA,EAAA,MAAA;IAAE,OAAA,EAAA,MAAA;EACa,CAAA;EAAf;EACe,KAAA,EA/RxB,CA+RwB;EAAf;EACgB,MAAA,EA9RxB,SA8RwB,EAAA;EAAf,MAAA,CAAA,EAAA;IACZ,KAAA,CAAA,EAAA,MAAA,EAAA;IAAE,GAAA,CAAA,EAAA,MAAA,EAAA;EAC6B,CAAA;EAAnB,OAAA,CAAA,EA9RP,UA8RO,EAAA;EAAiC,WAAA,CAAA,EAAA;IAE/C,EAAA,EAAA,QAAA,GAAA,QAAA;IAAE,IAAA,EAAA,iBAAA;EAC+B,CAAA;EAAnB,WAAA,CAAA,EA/RH,cA+RG,EAAA;;AAIL,cA1RD,YAAA,CA0RC;EAAC,QAAA,KAAA;EAOC,QAAA,CAAA,IAAA,EA9RC,QA8Ra,CAAA,EAAA,IAAA;EAClB,IAAA,CAAA,CAAA,EAxRF,QAwRE,EAAA;EACS,GAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EArRc,QAqRd,CArRc,cAqRd,CAAA,GAAA,SAAA;;AAEb,iBAxPQ,aAAA,CAwPR,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAxP8C,SAwP9C,CAAA,EAAA,OAAA;AACC,KA7LG,iBAAA,GA6LH,CAAA,MAAA,EA5LC,MA4LD,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,IAAA,CAAA,EA1LA,MA0LA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA;EACe,EAAA,EAAA,IAAA;CAAgB,GAAA;EAAb,EAAA,EAAA,KAAA;EAAjB,OAAA,CAAA,EAAA,MAAA;EACU,IAAA,CAAA,EAAA,MAAA;CAAT;;;;;AAMa,iBA3LR,qBAAA,CA2LQ,IAAA,EA1LhB,QA0LgB,EAAA,QAAA,CAAA,EAzLX,MAyLW,CAAA,MAAA,EAzLI,iBAyLJ,CAAA,CAAA,EAAA,GAAA;UAnGd,YAAA,CAmGC;EACA,IAAA,EAAA,MAAA;EAEE,IAAA,CAAA,EAAA,MAAA;EAAT,MAAA,CAAA,EAAA,SAnGgB,YAmGhB,EAAA;EAAQ,EAAA,CAAA,EAlGL,YAkGK;;KA/FP,iCAAiC,kBAAkB;;IAGpD;KAGC,iCAAiC,kBAAkB;;;;IAKpD;;OACK,YAAY;KAIhB,sCAAsC,kBAAkB;;mCAE1B;IAE/B,cAAc;KAGb,sCAAsC,kBAAkB;;mCAE1B;IAE/B,cAAc;KAGb,gCAAgC,kBACjC,cAAc,KACd,cAAc,KACd,mBAAmB,KACnB,mBAAmB;UAEN;QACT;OACD;;;UAGU;SACR,gBAAgB;QACjB,eAAe;QACf,eAAe;QACf,eAAe;;KAEX;;oBAC4B;;;;QAI5B;SACC;;KAGD,iCACS,kDAGP,IAAI,EAAE;gBACF,eAAe;gBACf,eAAe;iBACd,eAAe;KAC3B,EAAE;;;WACU,mBAAmB,cAAc;WAE/C,EAAE;;;WACY,mBAAmB,cAAc;;;;UAItC;;;;;iBAOE,yBACJ,mCACS;QAEb,SAAS;SACR;UACC,cAAc,GAAG,aAAa;WAC7B,SAAS;YACR,SAAS;gBACL,SAAS;;;;WAId,aAAa;WACb;;IAEP,SAAS"}
|
package/dist/forms.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"forms.js","names":["candidate: FormSpec | undefined","cur: any"],"sources":["../src/forms.ts"],"sourcesContent":["import type { AnySchemaModel, ZodSchemaModel } from '@lssm/lib.schema';\nimport type { OwnerShipMeta } from './ownership';\n\n// ---- Core types\n\nexport type PredicateOp =\n | 'equals'\n | 'notEquals'\n | 'in'\n | 'notIn'\n | 'gt'\n | 'gte'\n | 'lt'\n | 'lte'\n | 'truthy'\n | 'empty'\n | 'lengthGt'\n | 'lengthGte'\n | 'lengthLt'\n | 'lengthLte';\n\n// Author-time generic path helpers (computed from provided fields shape)\nexport interface WhenClause {\n /** Dot path in form values; arrays may use `$index` within array context. */\n path: string;\n op?: PredicateOp;\n value?: unknown;\n}\n\nexport interface Predicate {\n when?: WhenClause;\n all?: Predicate[];\n any?: Predicate[];\n not?: Predicate;\n}\n\nexport interface FormOption {\n labelI18n: string;\n value: string | number | boolean;\n descriptionI18n?: string;\n disabled?: boolean;\n}\n\nexport type OptionsSource =\n | { kind: 'static'; options: readonly FormOption[] }\n | {\n kind: 'resolver';\n resolverKey: string;\n /** Dot paths in form values to watch */\n deps: string[];\n args?: Record<string, unknown>;\n };\n\nexport interface BaseFieldSpec {\n /** Field kind discriminator. */\n kind:\n | 'text'\n | 'textarea'\n | 'select'\n | 'checkbox'\n | 'radio'\n | 'switch'\n | 'group'\n | 'array';\n /** Field name (dot path relative to the form root or parent context). */\n name?: string;\n labelI18n?: string;\n descriptionI18n?: string;\n placeholderI18n?: string;\n required?: boolean;\n /** Conditional UI behavior */\n visibleWhen?: Predicate;\n enabledWhen?: Predicate;\n requiredWhen?: Predicate;\n /** UI hints */\n uiKey?: string;\n uiProps?: Record<string, unknown>;\n wrapper?: { orientation?: 'horizontal' | 'vertical' };\n /** HTML/Native autofill token (supports custom tokens) */\n autoComplete?: string;\n /** Keyboard/adaptation hints (web/native). Shape mirrors design-system KeyboardOptions but stays decoupled. */\n keyboard?: {\n kind?: string;\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n autoComplete?: string;\n autoCorrect?: boolean;\n enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'search' | 'send';\n };\n /** Optional computed value hook, provided by host computations map */\n computeFrom?: {\n computeKey: string;\n deps: string[];\n mode?: 'change' | 'blur-xs' | 'submit';\n readOnly?: boolean;\n };\n}\n\nexport interface TextFieldSpec extends BaseFieldSpec {\n kind: 'text';\n name: string;\n inputMode?:\n | 'text'\n | 'email'\n | 'tel'\n | 'url'\n | 'numeric'\n | 'decimal'\n | 'search';\n autoComplete?: string;\n maxLength?: number;\n minLength?: number;\n}\n\nexport interface TextareaFieldSpec extends BaseFieldSpec {\n kind: 'textarea';\n name: string;\n rows?: number;\n maxLength?: number;\n minLength?: number;\n}\n\nexport interface SelectFieldSpec extends BaseFieldSpec {\n kind: 'select';\n name: string;\n options: OptionsSource | readonly FormOption[]; // allow shorthand array\n}\n\nexport interface CheckboxFieldSpec extends BaseFieldSpec {\n kind: 'checkbox';\n name: string;\n}\n\nexport interface RadioFieldSpec extends BaseFieldSpec {\n kind: 'radio';\n name: string;\n options: OptionsSource | readonly FormOption[];\n}\n\nexport interface SwitchFieldSpec extends BaseFieldSpec {\n kind: 'switch';\n name: string;\n}\n\nexport interface GroupFieldSpec extends BaseFieldSpec {\n kind: 'group';\n /** Optional legend/label at group level */\n labelI18n?: string;\n fields: FieldSpec[];\n}\n\nexport interface ArrayFieldSpec extends BaseFieldSpec {\n kind: 'array';\n /** Root-level field that is an array in the model (e.g., \"emails\") */\n name: string;\n /** Child field spec for each item (e.g., address inside emails[i].address). */\n of: Exclude<FieldSpec, ArrayFieldSpec | GroupFieldSpec>;\n min?: number;\n max?: number;\n}\n\nexport type FieldSpec =\n | TextFieldSpec\n | TextareaFieldSpec\n | SelectFieldSpec\n | CheckboxFieldSpec\n | RadioFieldSpec\n | SwitchFieldSpec\n | GroupFieldSpec\n | ArrayFieldSpec;\n\nexport interface FormAction {\n key: string;\n labelI18n: string;\n op?: { name: string; version: number };\n success?: { navigateTo?: string; toastI18n?: string };\n}\n\nexport interface ConstraintDecl {\n key: string; // host maps this to a function\n messageI18n: string;\n paths: string[]; // inputs for the constraint function\n args?: Record<string, unknown>;\n}\n\nexport type FormValuesFor<M extends AnySchemaModel> = ZodSchemaModel<M>;\n\nexport interface FormSpec<M extends AnySchemaModel = AnySchemaModel> {\n meta: OwnerShipMeta & { key: string; version: number };\n /** Canonical form data shape */\n model: M;\n /** Flat list or tree using groups/arrays */\n fields: FieldSpec[];\n policy?: { flags?: string[]; pii?: string[] };\n actions?: FormAction[];\n renderHints?: { ui: 'shadcn' | 'custom'; form: 'react-hook-form' };\n constraints?: ConstraintDecl[];\n}\n\n// ---- Registry\n\nfunction formKey(meta: FormSpec['meta']) {\n return `${meta.key}.v${meta.version}`;\n}\n\nexport class FormRegistry {\n private items = new Map<string, FormSpec>();\n\n register(spec: FormSpec): this {\n const key = formKey(spec.meta);\n if (this.items.has(key)) throw new Error(`Duplicate form ${key}`);\n this.items.set(key, spec);\n return this;\n }\n\n list(): FormSpec[] {\n return [...this.items.values()];\n }\n\n get(key: string, version?: number) {\n if (version != null) return this.items.get(`${key}.v${version}`);\n let candidate: FormSpec | undefined;\n let max = -Infinity;\n for (const [k, v] of this.items.entries()) {\n if (!k.startsWith(`${key}.v`)) continue;\n if (v.meta.version > max) {\n max = v.meta.version;\n candidate = v;\n }\n }\n return candidate;\n }\n}\n\n// ---- Relations helpers (runtime)\n\nfunction getAtPath(values: unknown, path: string): unknown {\n if (!path) return undefined;\n const segs = path\n .replace(/\\[(\\d+)\\]/g, '.$1')\n .split('.')\n .filter(Boolean);\n let cur: any = values as any;\n for (const s of segs) {\n if (cur == null) return undefined;\n cur = cur[s as keyof typeof cur];\n }\n return cur;\n}\n\nexport function evalPredicate(values: unknown, pred?: Predicate): boolean {\n if (!pred) return true;\n if (pred.not) return !evalPredicate(values, pred.not);\n if (pred.all && pred.all.length)\n return pred.all.every((p) => evalPredicate(values, p));\n if (pred.any && pred.any.length)\n return pred.any.some((p) => evalPredicate(values, p));\n if (pred.when) {\n const { path, op = 'truthy', value } = pred.when;\n const v = getAtPath(values, path);\n switch (op) {\n case 'equals':\n return v === value;\n case 'notEquals':\n return v !== value;\n case 'in':\n return Array.isArray(value) && value.includes(v as never);\n case 'notIn':\n return Array.isArray(value) && !value.includes(v as never);\n case 'gt':\n return Number(v) > Number(value);\n case 'gte':\n return Number(v) >= Number(value);\n case 'lt':\n return Number(v) < Number(value);\n case 'lte':\n return Number(v) <= Number(value);\n case 'empty':\n return (\n v == null ||\n (Array.isArray(v) ? v.length === 0 : String(v).length === 0)\n );\n case 'lengthGt':\n return (\n (Array.isArray(v) || typeof v === 'string') &&\n (v as any).length > Number(value ?? 0)\n );\n case 'lengthGte':\n return (\n (Array.isArray(v) || typeof v === 'string') &&\n (v as any).length >= Number(value ?? 0)\n );\n case 'lengthLt':\n return (\n (Array.isArray(v) || typeof v === 'string') &&\n (v as any).length < Number(value ?? 0)\n );\n case 'lengthLte':\n return (\n (Array.isArray(v) || typeof v === 'string') &&\n (v as any).length <= Number(value ?? 0)\n );\n case 'truthy':\n default:\n return Boolean(v);\n }\n }\n return true;\n}\n\nexport type ConstraintHandler = (\n values: Record<string, unknown>,\n paths: string[],\n args?: Record<string, unknown>\n) => { ok: true } | { ok: false; message?: string; path?: string };\n\n/**\n * Wrap the base zod schema with relation-driven refinements (requiredWhen, array min/max)\n * and optional custom constraints. Call this when wiring RHF resolver.\n */\nexport function buildZodWithRelations(\n spec: FormSpec,\n handlers?: Record<string, ConstraintHandler>\n) {\n const base = spec.model.getZod();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (base as any).superRefine(\n (values: Record<string, unknown>, ctx: any) => {\n const visit = (field: FieldSpec, parentPath?: string) => {\n const path = field.name\n ? parentPath\n ? `${parentPath}.${field.name}`\n : field.name\n : (parentPath ?? '');\n\n // requiredWhen enforcement (UI also shows required)\n if (field.requiredWhen) {\n const should = evalPredicate(values, field.requiredWhen);\n if (should) {\n const v = getAtPath(values, path);\n const empty =\n v == null ||\n (typeof v === 'string' && v.trim().length === 0) ||\n (Array.isArray(v) && v.length === 0);\n if (empty)\n ctx.addIssue({\n code: 'custom',\n path: path.split('.'),\n message: 'required',\n });\n }\n }\n\n // arrays min/max\n if (field.kind === 'array') {\n const arr = getAtPath(values, path) as unknown[] | undefined;\n if (\n field.min != null &&\n Array.isArray(arr) &&\n arr.length < field.min\n ) {\n ctx.addIssue({\n code: 'custom',\n path: path.split('.'),\n message: `min:${field.min}`,\n });\n }\n if (\n field.max != null &&\n Array.isArray(arr) &&\n arr.length > field.max\n ) {\n ctx.addIssue({\n code: 'custom',\n path: path.split('.'),\n message: `max:${field.max}`,\n });\n }\n // child\n visit(field.of, path);\n } else if (field.kind === 'group') {\n for (const child of field.fields) visit(child, path);\n }\n };\n\n for (const f of spec.fields) visit(f);\n\n // custom constraints\n if (spec.constraints && handlers) {\n for (const c of spec.constraints) {\n const fn = handlers[c.key];\n if (!fn) continue;\n const res = fn(values, c.paths, c.args);\n if (!res.ok) {\n ctx.addIssue({\n code: 'custom',\n path: (res.path ?? c.paths[0] ?? '').split('.').filter(Boolean),\n message: res.message ?? c.messageI18n,\n });\n }\n }\n }\n }\n );\n}\n\n// ---- Authoring-time helper: enforce typed paths from fields (best-effort bounded)\n\ninterface AnyFieldLike {\n kind: string;\n name?: string;\n fields?: readonly AnyFieldLike[];\n of?: AnyFieldLike;\n}\n\ntype TopLevelNames<F extends readonly AnyFieldLike[]> = F[number] extends {\n name: infer N extends string;\n}\n ? N\n : never;\n\ntype ArrayChildren<F extends readonly AnyFieldLike[]> = F[number] extends {\n kind: 'array';\n name: infer N extends string;\n of: infer C;\n}\n ? C extends { name: infer CN extends string }\n ? `${N}.$index.${CN}`\n : never\n : never;\n\ntype GroupTopLevelNames<F extends readonly AnyFieldLike[]> = F[number] extends {\n kind: 'group';\n fields: infer G extends readonly AnyFieldLike[];\n}\n ? TopLevelNames<G>\n : never;\n\ntype GroupArrayChildren<F extends readonly AnyFieldLike[]> = F[number] extends {\n kind: 'group';\n fields: infer G extends readonly AnyFieldLike[];\n}\n ? ArrayChildren<G>\n : never;\n\ntype PathOfFields<F extends readonly AnyFieldLike[]> =\n | TopLevelNames<F>\n | ArrayChildren<F>\n | GroupTopLevelNames<F>\n | GroupArrayChildren<F>;\n\nexport interface TypedWhenClause<P extends string> {\n path: P;\n op?: PredicateOp;\n value?: unknown;\n}\nexport interface TypedPredicate<P extends string> {\n when?: TypedWhenClause<P>;\n all?: TypedPredicate<P>[];\n any?: TypedPredicate<P>[];\n not?: TypedPredicate<P>;\n}\nexport type TypedOptionsSource<P extends string> =\n | { kind: 'static'; options: readonly FormOption[] }\n | {\n kind: 'resolver';\n resolverKey: string;\n deps: P[];\n args?: Record<string, unknown>;\n };\n\nexport type EnhanceFields<\n F extends readonly AnyFieldLike[],\n P extends string,\n> = {\n [K in keyof F]: F[K] & {\n visibleWhen?: TypedPredicate<P>;\n enabledWhen?: TypedPredicate<P>;\n requiredWhen?: TypedPredicate<P>;\n } & (F[K] extends { kind: 'select' }\n ? { options: TypedOptionsSource<P> | readonly FormOption[] }\n : {}) &\n (F[K] extends { kind: 'radio' }\n ? { options: TypedOptionsSource<P> | readonly FormOption[] }\n : {}) & {\n computeFrom?: {\n computeKey: string;\n deps: P[];\n mode?: 'change' | 'blur-xs' | 'submit';\n readOnly?: boolean;\n };\n };\n};\n\nexport function defineFormSpec<\n M extends AnySchemaModel,\n F extends readonly AnyFieldLike[],\n>(spec: {\n meta: FormSpec<M>['meta'];\n model: M;\n fields: EnhanceFields<F, PathOfFields<F>>;\n policy?: FormSpec<M>['policy'];\n actions?: FormSpec<M>['actions'];\n renderHints?: FormSpec<M>['renderHints'];\n constraints?: {\n key: string;\n messageI18n: string;\n paths: PathOfFields<F>[];\n args?: Record<string, unknown>;\n }[];\n}): FormSpec<M> {\n return spec as unknown as FormSpec<M>;\n}\n"],"mappings":"AAwMA,SAAS,EAAQ,EAAwB,CACvC,MAAO,GAAG,EAAK,IAAI,IAAI,EAAK,UAG9B,IAAa,EAAb,KAA0B,CACxB,MAAgB,IAAI,IAEpB,SAAS,EAAsB,CAC7B,IAAM,EAAM,EAAQ,EAAK,KAAK,CAC9B,GAAI,KAAK,MAAM,IAAI,EAAI,CAAE,MAAU,MAAM,kBAAkB,IAAM,CAEjE,OADA,KAAK,MAAM,IAAI,EAAK,EAAK,CAClB,KAGT,MAAmB,CACjB,MAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAGjC,IAAI,EAAa,EAAkB,CACjC,GAAI,GAAW,KAAM,OAAO,KAAK,MAAM,IAAI,GAAG,EAAI,IAAI,IAAU,CAChE,IAAIA,EACA,EAAM,KACV,IAAK,GAAM,CAAC,EAAG,KAAM,KAAK,MAAM,SAAS,CAClC,EAAE,WAAW,GAAG,EAAI,IAAI,EACzB,EAAE,KAAK,QAAU,IACnB,EAAM,EAAE,KAAK,QACb,EAAY,GAGhB,OAAO,IAMX,SAAS,EAAU,EAAiB,EAAuB,CACzD,GAAI,CAAC,EAAM,OACX,IAAM,EAAO,EACV,QAAQ,aAAc,MAAM,CAC5B,MAAM,IAAI,CACV,OAAO,QAAQ,CACdC,EAAW,EACf,IAAK,IAAM,KAAK,EAAM,CACpB,GAAI,GAAO,KAAM,OACjB,EAAM,EAAI,GAEZ,OAAO,EAGT,SAAgB,EAAc,EAAiB,EAA2B,CACxE,GAAI,CAAC,EAAM,MAAO,GAClB,GAAI,EAAK,IAAK,MAAO,CAAC,EAAc,EAAQ,EAAK,IAAI,CACrD,GAAI,EAAK,KAAO,EAAK,IAAI,OACvB,OAAO,EAAK,IAAI,MAAO,GAAM,EAAc,EAAQ,EAAE,CAAC,CACxD,GAAI,EAAK,KAAO,EAAK,IAAI,OACvB,OAAO,EAAK,IAAI,KAAM,GAAM,EAAc,EAAQ,EAAE,CAAC,CACvD,GAAI,EAAK,KAAM,CACb,GAAM,CAAE,OAAM,KAAK,SAAU,SAAU,EAAK,KACtC,EAAI,EAAU,EAAQ,EAAK,CACjC,OAAQ,EAAR,CACE,IAAK,SACH,OAAO,IAAM,EACf,IAAK,YACH,OAAO,IAAM,EACf,IAAK,KACH,OAAO,MAAM,QAAQ,EAAM,EAAI,EAAM,SAAS,EAAW,CAC3D,IAAK,QACH,OAAO,MAAM,QAAQ,EAAM,EAAI,CAAC,EAAM,SAAS,EAAW,CAC5D,IAAK,KACH,OAAO,OAAO,EAAE,CAAG,OAAO,EAAM,CAClC,IAAK,MACH,OAAO,OAAO,EAAE,EAAI,OAAO,EAAM,CACnC,IAAK,KACH,OAAO,OAAO,EAAE,CAAG,OAAO,EAAM,CAClC,IAAK,MACH,OAAO,OAAO,EAAE,EAAI,OAAO,EAAM,CACnC,IAAK,QACH,OACE,GAAK,OACJ,MAAM,QAAQ,EAAE,CAAG,EAAE,SAAW,EAAI,OAAO,EAAE,CAAC,SAAW,GAE9D,IAAK,WACH,OACG,MAAM,QAAQ,EAAE,EAAI,OAAO,GAAM,WACjC,EAAU,OAAS,OAAO,GAAS,EAAE,CAE1C,IAAK,YACH,OACG,MAAM,QAAQ,EAAE,EAAI,OAAO,GAAM,WACjC,EAAU,QAAU,OAAO,GAAS,EAAE,CAE3C,IAAK,WACH,OACG,MAAM,QAAQ,EAAE,EAAI,OAAO,GAAM,WACjC,EAAU,OAAS,OAAO,GAAS,EAAE,CAE1C,IAAK,YACH,OACG,MAAM,QAAQ,EAAE,EAAI,OAAO,GAAM,WACjC,EAAU,QAAU,OAAO,GAAS,EAAE,CAE3C,IAAK,SACL,QACE,MAAO,EAAQ,GAGrB,MAAO,GAaT,SAAgB,EACd,EACA,EACA,CAGA,OAFa,EAAK,MAAM,QAAQ,CAEX,aAClB,EAAiC,IAAa,CAC7C,IAAM,GAAS,EAAkB,IAAwB,CACvD,IAAM,EAAO,EAAM,KACf,EACE,GAAG,EAAW,GAAG,EAAM,OACvB,EAAM,KACP,GAAc,GAGnB,GAAI,EAAM,cACO,EAAc,EAAQ,EAAM,aAAa,CAC5C,CACV,IAAM,EAAI,EAAU,EAAQ,EAAK,EAE/B,GAAK,MACJ,OAAO,GAAM,UAAY,EAAE,MAAM,CAAC,SAAW,GAC7C,MAAM,QAAQ,EAAE,EAAI,EAAE,SAAW,IAElC,EAAI,SAAS,CACX,KAAM,SACN,KAAM,EAAK,MAAM,IAAI,CACrB,QAAS,WACV,CAAC,CAKR,GAAI,EAAM,OAAS,QAAS,CAC1B,IAAM,EAAM,EAAU,EAAQ,EAAK,CAEjC,EAAM,KAAO,MACb,MAAM,QAAQ,EAAI,EAClB,EAAI,OAAS,EAAM,KAEnB,EAAI,SAAS,CACX,KAAM,SACN,KAAM,EAAK,MAAM,IAAI,CACrB,QAAS,OAAO,EAAM,MACvB,CAAC,CAGF,EAAM,KAAO,MACb,MAAM,QAAQ,EAAI,EAClB,EAAI,OAAS,EAAM,KAEnB,EAAI,SAAS,CACX,KAAM,SACN,KAAM,EAAK,MAAM,IAAI,CACrB,QAAS,OAAO,EAAM,MACvB,CAAC,CAGJ,EAAM,EAAM,GAAI,EAAK,SACZ,EAAM,OAAS,QACxB,IAAK,IAAM,KAAS,EAAM,OAAQ,EAAM,EAAO,EAAK,EAIxD,IAAK,IAAM,KAAK,EAAK,OAAQ,EAAM,EAAE,CAGrC,GAAI,EAAK,aAAe,EACtB,IAAK,IAAM,KAAK,EAAK,YAAa,CAChC,IAAM,EAAK,EAAS,EAAE,KACtB,GAAI,CAAC,EAAI,SACT,IAAM,EAAM,EAAG,EAAQ,EAAE,MAAO,EAAE,KAAK,CAClC,EAAI,IACP,EAAI,SAAS,CACX,KAAM,SACN,MAAO,EAAI,MAAQ,EAAE,MAAM,IAAM,IAAI,MAAM,IAAI,CAAC,OAAO,QAAQ,CAC/D,QAAS,EAAI,SAAW,EAAE,YAC3B,CAAC,GAKX,CA2FH,SAAgB,EAGd,EAac,CACd,OAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["e","t"],"sources":["../../../../graphql-federation/dist/index.js"],"sourcesContent":["import\"@pothos/core\";import\"@pothos/plugin-federation\";import{printSubgraphSchema as e}from\"@apollo/subgraph\";function t(t){return e(t)}function n(e,t,n,r,i){let a=e.objectRef(t);return a.implement({fields:r}),e.entity(t,{key:n.join(` `),resolveReference:i}),a}export{t as toSubgraphSDL,n as withEntityObject};\n//# sourceMappingURL=index.js.map"],"mappings":"yFAA8G,SAAS,EAAE,EAAE,CAAC,OAAOA,EAAEC,EAAE"}
|