@signstack/cli 0.1.1
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 +458 -0
- package/bin/run.js +12 -0
- package/dist/apps/signstack-cli/schemas/asset.schema.json +220 -0
- package/dist/apps/signstack-cli/schemas/blueprint.schema.json +485 -0
- package/dist/apps/signstack-cli/schemas/jsonata-function.schema.json +185 -0
- package/dist/apps/signstack-cli/schemas/schema.schema.json +97 -0
- package/dist/apps/signstack-cli/schemas/template.schema.json +295 -0
- package/dist/apps/signstack-cli/src/commands/auth/login.d.ts +25 -0
- package/dist/apps/signstack-cli/src/commands/auth/login.js +229 -0
- package/dist/apps/signstack-cli/src/commands/auth/login.js.map +1 -0
- package/dist/apps/signstack-cli/src/commands/auth/logout.d.ts +10 -0
- package/dist/apps/signstack-cli/src/commands/auth/logout.js +59 -0
- package/dist/apps/signstack-cli/src/commands/auth/logout.js.map +1 -0
- package/dist/apps/signstack-cli/src/commands/auth/whoami.d.ts +9 -0
- package/dist/apps/signstack-cli/src/commands/auth/whoami.js +85 -0
- package/dist/apps/signstack-cli/src/commands/auth/whoami.js.map +1 -0
- package/dist/apps/signstack-cli/src/commands/generate.d.ts +51 -0
- package/dist/apps/signstack-cli/src/commands/generate.js +479 -0
- package/dist/apps/signstack-cli/src/commands/generate.js.map +1 -0
- package/dist/apps/signstack-cli/src/commands/preview.d.ts +24 -0
- package/dist/apps/signstack-cli/src/commands/preview.js +162 -0
- package/dist/apps/signstack-cli/src/commands/preview.js.map +1 -0
- package/dist/apps/signstack-cli/src/commands/pull.d.ts +28 -0
- package/dist/apps/signstack-cli/src/commands/pull.js +244 -0
- package/dist/apps/signstack-cli/src/commands/pull.js.map +1 -0
- package/dist/apps/signstack-cli/src/commands/push.d.ts +46 -0
- package/dist/apps/signstack-cli/src/commands/push.js +460 -0
- package/dist/apps/signstack-cli/src/commands/push.js.map +1 -0
- package/dist/apps/signstack-cli/src/commands/run.d.ts +22 -0
- package/dist/apps/signstack-cli/src/commands/run.js +126 -0
- package/dist/apps/signstack-cli/src/commands/run.js.map +1 -0
- package/dist/apps/signstack-cli/src/commands/test.d.ts +6 -0
- package/dist/apps/signstack-cli/src/commands/test.js +25 -0
- package/dist/apps/signstack-cli/src/commands/test.js.map +1 -0
- package/dist/apps/signstack-cli/src/commands/validate.d.ts +59 -0
- package/dist/apps/signstack-cli/src/commands/validate.js +558 -0
- package/dist/apps/signstack-cli/src/commands/validate.js.map +1 -0
- package/dist/apps/signstack-cli/src/index.d.ts +1 -0
- package/dist/apps/signstack-cli/src/index.js +2 -0
- package/dist/apps/signstack-cli/src/index.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/api-client.d.ts +77 -0
- package/dist/apps/signstack-cli/src/lib/api-client.js +269 -0
- package/dist/apps/signstack-cli/src/lib/api-client.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/base-command.d.ts +38 -0
- package/dist/apps/signstack-cli/src/lib/base-command.js +135 -0
- package/dist/apps/signstack-cli/src/lib/base-command.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/config.d.ts +47 -0
- package/dist/apps/signstack-cli/src/lib/config.js +106 -0
- package/dist/apps/signstack-cli/src/lib/config.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/entity-data-resolver.d.ts +31 -0
- package/dist/apps/signstack-cli/src/lib/entity-data-resolver.js +107 -0
- package/dist/apps/signstack-cli/src/lib/entity-data-resolver.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/local-resource-loader.d.ts +72 -0
- package/dist/apps/signstack-cli/src/lib/local-resource-loader.js +238 -0
- package/dist/apps/signstack-cli/src/lib/local-resource-loader.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/path-utils.d.ts +4 -0
- package/dist/apps/signstack-cli/src/lib/path-utils.js +7 -0
- package/dist/apps/signstack-cli/src/lib/path-utils.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/payload-builder.d.ts +127 -0
- package/dist/apps/signstack-cli/src/lib/payload-builder.js +545 -0
- package/dist/apps/signstack-cli/src/lib/payload-builder.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/preview-handler.d.ts +95 -0
- package/dist/apps/signstack-cli/src/lib/preview-handler.js +611 -0
- package/dist/apps/signstack-cli/src/lib/preview-handler.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/preview-output-formatter.d.ts +63 -0
- package/dist/apps/signstack-cli/src/lib/preview-output-formatter.js +198 -0
- package/dist/apps/signstack-cli/src/lib/preview-output-formatter.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/public-api-client.d.ts +13 -0
- package/dist/apps/signstack-cli/src/lib/public-api-client.js +39 -0
- package/dist/apps/signstack-cli/src/lib/public-api-client.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/resource-puller.d.ts +131 -0
- package/dist/apps/signstack-cli/src/lib/resource-puller.js +800 -0
- package/dist/apps/signstack-cli/src/lib/resource-puller.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/resource-pusher.d.ts +87 -0
- package/dist/apps/signstack-cli/src/lib/resource-pusher.js +361 -0
- package/dist/apps/signstack-cli/src/lib/resource-pusher.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/resource-scanner.d.ts +29 -0
- package/dist/apps/signstack-cli/src/lib/resource-scanner.js +101 -0
- package/dist/apps/signstack-cli/src/lib/resource-scanner.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/resource-validator.d.ts +44 -0
- package/dist/apps/signstack-cli/src/lib/resource-validator.js +158 -0
- package/dist/apps/signstack-cli/src/lib/resource-validator.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/run-handler.d.ts +47 -0
- package/dist/apps/signstack-cli/src/lib/run-handler.js +266 -0
- package/dist/apps/signstack-cli/src/lib/run-handler.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/safe-path.d.ts +28 -0
- package/dist/apps/signstack-cli/src/lib/safe-path.js +44 -0
- package/dist/apps/signstack-cli/src/lib/safe-path.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/scenario-file.d.ts +35 -0
- package/dist/apps/signstack-cli/src/lib/scenario-file.js +80 -0
- package/dist/apps/signstack-cli/src/lib/scenario-file.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/schema-validator.d.ts +8 -0
- package/dist/apps/signstack-cli/src/lib/schema-validator.js +39 -0
- package/dist/apps/signstack-cli/src/lib/schema-validator.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/url-validator.d.ts +17 -0
- package/dist/apps/signstack-cli/src/lib/url-validator.js +61 -0
- package/dist/apps/signstack-cli/src/lib/url-validator.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/yaml-document-parser.d.ts +25 -0
- package/dist/apps/signstack-cli/src/lib/yaml-document-parser.js +133 -0
- package/dist/apps/signstack-cli/src/lib/yaml-document-parser.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/yaml-transforms.d.ts +3 -0
- package/dist/apps/signstack-cli/src/lib/yaml-transforms.js +32 -0
- package/dist/apps/signstack-cli/src/lib/yaml-transforms.js.map +1 -0
- package/dist/apps/signstack-cli/src/lib/yaml-writer.d.ts +47 -0
- package/dist/apps/signstack-cli/src/lib/yaml-writer.js +160 -0
- package/dist/apps/signstack-cli/src/lib/yaml-writer.js.map +1 -0
- package/dist/apps/signstack-cli/src/types/auth.types.d.ts +48 -0
- package/dist/apps/signstack-cli/src/types/auth.types.js +31 -0
- package/dist/apps/signstack-cli/src/types/auth.types.js.map +1 -0
- package/dist/apps/signstack-cli/src/types/schema.types.d.ts +14 -0
- package/dist/apps/signstack-cli/src/types/schema.types.js +16 -0
- package/dist/apps/signstack-cli/src/types/schema.types.js.map +1 -0
- package/dist/apps/signstack-cli/src/types/yaml.types.d.ts +144 -0
- package/dist/apps/signstack-cli/src/types/yaml.types.js +2 -0
- package/dist/apps/signstack-cli/src/types/yaml.types.js.map +1 -0
- package/dist/libs/common/base/src/index.d.ts +14 -0
- package/dist/libs/common/base/src/index.js +44 -0
- package/dist/libs/common/base/src/index.js.map +1 -0
- package/dist/libs/common/base/src/lib/address.util.d.ts +12 -0
- package/dist/libs/common/base/src/lib/address.util.js +55 -0
- package/dist/libs/common/base/src/lib/address.util.js.map +1 -0
- package/dist/libs/common/base/src/lib/country-code-data.d.ts +5 -0
- package/dist/libs/common/base/src/lib/country-code-data.js +1256 -0
- package/dist/libs/common/base/src/lib/country-code-data.js.map +1 -0
- package/dist/libs/common/base/src/lib/date.util.d.ts +13 -0
- package/dist/libs/common/base/src/lib/date.util.js +135 -0
- package/dist/libs/common/base/src/lib/date.util.js.map +1 -0
- package/dist/libs/common/base/src/lib/headers.d.ts +1 -0
- package/dist/libs/common/base/src/lib/headers.js +5 -0
- package/dist/libs/common/base/src/lib/headers.js.map +1 -0
- package/dist/libs/common/base/src/lib/jsonata.service.d.ts +32 -0
- package/dist/libs/common/base/src/lib/jsonata.service.js +207 -0
- package/dist/libs/common/base/src/lib/jsonata.service.js.map +1 -0
- package/dist/libs/common/base/src/lib/key-validation.constants.d.ts +37 -0
- package/dist/libs/common/base/src/lib/key-validation.constants.js +144 -0
- package/dist/libs/common/base/src/lib/key-validation.constants.js.map +1 -0
- package/dist/libs/common/base/src/lib/phone-util.d.ts +16 -0
- package/dist/libs/common/base/src/lib/phone-util.js +61 -0
- package/dist/libs/common/base/src/lib/phone-util.js.map +1 -0
- package/dist/libs/common/base/src/lib/schema-validation.util.d.ts +24 -0
- package/dist/libs/common/base/src/lib/schema-validation.util.js +155 -0
- package/dist/libs/common/base/src/lib/schema-validation.util.js.map +1 -0
- package/dist/libs/common/base/src/lib/string-builder.d.ts +48 -0
- package/dist/libs/common/base/src/lib/string-builder.js +90 -0
- package/dist/libs/common/base/src/lib/string-builder.js.map +1 -0
- package/dist/libs/common/base/src/lib/util.d.ts +20 -0
- package/dist/libs/common/base/src/lib/util.js +110 -0
- package/dist/libs/common/base/src/lib/util.js.map +1 -0
- package/dist/libs/signstack/base/schemas/asset.schema.json +220 -0
- package/dist/libs/signstack/base/schemas/blueprint.schema.json +485 -0
- package/dist/libs/signstack/base/schemas/jsonata-function.schema.json +185 -0
- package/dist/libs/signstack/base/schemas/schema.schema.json +97 -0
- package/dist/libs/signstack/base/schemas/template.schema.json +295 -0
- package/dist/libs/signstack/base/src/index.d.ts +28 -0
- package/dist/libs/signstack/base/src/index.js +32 -0
- package/dist/libs/signstack/base/src/index.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/constants.d.ts +123 -0
- package/dist/libs/signstack/base/src/lib/constants.js +131 -0
- package/dist/libs/signstack/base/src/lib/constants.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/hash.util.d.ts +58 -0
- package/dist/libs/signstack/base/src/lib/hash.util.js +90 -0
- package/dist/libs/signstack/base/src/lib/hash.util.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/is-schema-renderable.util.d.ts +29 -0
- package/dist/libs/signstack/base/src/lib/is-schema-renderable.util.js +93 -0
- package/dist/libs/signstack/base/src/lib/is-schema-renderable.util.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/ai-chat.d.ts +41 -0
- package/dist/libs/signstack/base/src/lib/models/ai-chat.js +3 -0
- package/dist/libs/signstack/base/src/lib/models/ai-chat.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/api-key.d.ts +54 -0
- package/dist/libs/signstack/base/src/lib/models/api-key.js +18 -0
- package/dist/libs/signstack/base/src/lib/models/api-key.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/asset.d.ts +101 -0
- package/dist/libs/signstack/base/src/lib/models/asset.js +11 -0
- package/dist/libs/signstack/base/src/lib/models/asset.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/auth.d.ts +142 -0
- package/dist/libs/signstack/base/src/lib/models/auth.js +35 -0
- package/dist/libs/signstack/base/src/lib/models/auth.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/base.d.ts +134 -0
- package/dist/libs/signstack/base/src/lib/models/base.js +71 -0
- package/dist/libs/signstack/base/src/lib/models/base.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/blueprint.d.ts +311 -0
- package/dist/libs/signstack/base/src/lib/models/blueprint.js +9 -0
- package/dist/libs/signstack/base/src/lib/models/blueprint.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/file.d.ts +75 -0
- package/dist/libs/signstack/base/src/lib/models/file.js +9 -0
- package/dist/libs/signstack/base/src/lib/models/file.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/jsonata-function.d.ts +111 -0
- package/dist/libs/signstack/base/src/lib/models/jsonata-function.js +19 -0
- package/dist/libs/signstack/base/src/lib/models/jsonata-function.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/marketplace-listing.d.ts +132 -0
- package/dist/libs/signstack/base/src/lib/models/marketplace-listing.js +22 -0
- package/dist/libs/signstack/base/src/lib/models/marketplace-listing.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/membership.d.ts +127 -0
- package/dist/libs/signstack/base/src/lib/models/membership.js +22 -0
- package/dist/libs/signstack/base/src/lib/models/membership.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/namespace.d.ts +87 -0
- package/dist/libs/signstack/base/src/lib/models/namespace.js +57 -0
- package/dist/libs/signstack/base/src/lib/models/namespace.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/organization.d.ts +79 -0
- package/dist/libs/signstack/base/src/lib/models/organization.js +41 -0
- package/dist/libs/signstack/base/src/lib/models/organization.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/render-job.d.ts +88 -0
- package/dist/libs/signstack/base/src/lib/models/render-job.js +3 -0
- package/dist/libs/signstack/base/src/lib/models/render-job.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/resource-edge.d.ts +60 -0
- package/dist/libs/signstack/base/src/lib/models/resource-edge.js +202 -0
- package/dist/libs/signstack/base/src/lib/models/resource-edge.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/scenario.d.ts +138 -0
- package/dist/libs/signstack/base/src/lib/models/scenario.js +14 -0
- package/dist/libs/signstack/base/src/lib/models/scenario.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/schema.d.ts +131 -0
- package/dist/libs/signstack/base/src/lib/models/schema.js +44 -0
- package/dist/libs/signstack/base/src/lib/models/schema.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/shareable-link.d.ts +215 -0
- package/dist/libs/signstack/base/src/lib/models/shareable-link.js +27 -0
- package/dist/libs/signstack/base/src/lib/models/shareable-link.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/subscription.d.ts +279 -0
- package/dist/libs/signstack/base/src/lib/models/subscription.js +105 -0
- package/dist/libs/signstack/base/src/lib/models/subscription.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/template.d.ts +248 -0
- package/dist/libs/signstack/base/src/lib/models/template.js +32 -0
- package/dist/libs/signstack/base/src/lib/models/template.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/user.d.ts +30 -0
- package/dist/libs/signstack/base/src/lib/models/user.js +3 -0
- package/dist/libs/signstack/base/src/lib/models/user.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/webhook.d.ts +223 -0
- package/dist/libs/signstack/base/src/lib/models/webhook.js +62 -0
- package/dist/libs/signstack/base/src/lib/models/webhook.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/models/workflow.d.ts +917 -0
- package/dist/libs/signstack/base/src/lib/models/workflow.js +152 -0
- package/dist/libs/signstack/base/src/lib/models/workflow.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/util.d.ts +92 -0
- package/dist/libs/signstack/base/src/lib/util.js +406 -0
- package/dist/libs/signstack/base/src/lib/util.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/dependency-graph.d.ts +94 -0
- package/dist/libs/signstack/base/src/lib/validation/dependency-graph.js +446 -0
- package/dist/libs/signstack/base/src/lib/validation/dependency-graph.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/graph.types.d.ts +57 -0
- package/dist/libs/signstack/base/src/lib/validation/graph.types.js +8 -0
- package/dist/libs/signstack/base/src/lib/validation/graph.types.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/index.d.ts +9 -0
- package/dist/libs/signstack/base/src/lib/validation/index.js +23 -0
- package/dist/libs/signstack/base/src/lib/validation/index.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/resource-schemas.d.ts +3 -0
- package/dist/libs/signstack/base/src/lib/validation/resource-schemas.js +27 -0
- package/dist/libs/signstack/base/src/lib/validation/resource-schemas.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/schema-validation.types.d.ts +57 -0
- package/dist/libs/signstack/base/src/lib/validation/schema-validation.types.js +57 -0
- package/dist/libs/signstack/base/src/lib/validation/schema-validation.types.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/schema-validator.d.ts +38 -0
- package/dist/libs/signstack/base/src/lib/validation/schema-validator.js +146 -0
- package/dist/libs/signstack/base/src/lib/validation/schema-validator.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/validate-dependencies.d.ts +22 -0
- package/dist/libs/signstack/base/src/lib/validation/validate-dependencies.js +69 -0
- package/dist/libs/signstack/base/src/lib/validation/validate-dependencies.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/validate-resource-tree.d.ts +37 -0
- package/dist/libs/signstack/base/src/lib/validation/validate-resource-tree.js +250 -0
- package/dist/libs/signstack/base/src/lib/validation/validate-resource-tree.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/validate-template-inputs.d.ts +24 -0
- package/dist/libs/signstack/base/src/lib/validation/validate-template-inputs.js +98 -0
- package/dist/libs/signstack/base/src/lib/validation/validate-template-inputs.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/validation/yaml-document-utils.d.ts +12 -0
- package/dist/libs/signstack/base/src/lib/validation/yaml-document-utils.js +50 -0
- package/dist/libs/signstack/base/src/lib/validation/yaml-document-utils.js.map +1 -0
- package/dist/libs/signstack/base/src/lib/yaml-spec-converter.d.ts +101 -0
- package/dist/libs/signstack/base/src/lib/yaml-spec-converter.js +998 -0
- package/dist/libs/signstack/base/src/lib/yaml-spec-converter.js.map +1 -0
- package/oclif.manifest.json +822 -0
- package/package.json +101 -0
|
@@ -0,0 +1,917 @@
|
|
|
1
|
+
import { FieldType, FieldWidgetInfo, Input, TemplateFieldInfo, TemplateRole } from './template';
|
|
2
|
+
import { ActorRef, ListResp, LiteralOrExpression } from './base';
|
|
3
|
+
import { NamespaceMode } from './namespace';
|
|
4
|
+
import type { BlueprintResource, BlueprintSpec } from './blueprint';
|
|
5
|
+
import type { TemplateResource } from './template';
|
|
6
|
+
import type { AssetResource } from './asset';
|
|
7
|
+
import type { JsonataFunctionResource } from './jsonata-function';
|
|
8
|
+
import type { SchemaResource } from './schema';
|
|
9
|
+
import { FunctionDependency } from './jsonata-function';
|
|
10
|
+
export declare enum WorkflowStepType {
|
|
11
|
+
Group = "group",
|
|
12
|
+
Participant = "participant"
|
|
13
|
+
}
|
|
14
|
+
export declare enum ParticipantActionType {
|
|
15
|
+
Sign = "sign"
|
|
16
|
+
}
|
|
17
|
+
export declare enum WorkflowStepStatus {
|
|
18
|
+
Pending = "pending",
|
|
19
|
+
InProgress = "in_progress",
|
|
20
|
+
Completed = "completed",
|
|
21
|
+
Skipped = "skipped",
|
|
22
|
+
Failed = "failed"
|
|
23
|
+
}
|
|
24
|
+
export declare enum WorkflowStepExecutionMode {
|
|
25
|
+
Sequential = "sequential",
|
|
26
|
+
Parallel = "parallel"
|
|
27
|
+
}
|
|
28
|
+
export declare enum WorkflowStepCompletionRule {
|
|
29
|
+
All = "all",
|
|
30
|
+
Any = "any",
|
|
31
|
+
Quorum = "quorum"
|
|
32
|
+
}
|
|
33
|
+
export declare enum ParticipantActionStatus {
|
|
34
|
+
Pending = "pending",
|
|
35
|
+
Notified = "notified",
|
|
36
|
+
/**
|
|
37
|
+
* The step is active and awaiting the participant, but SignStack did NOT send
|
|
38
|
+
* a notification (the workflow has `disableParticipantNotifications`). Same
|
|
39
|
+
* lifecycle position as `Notified` — the difference is who delivers the link.
|
|
40
|
+
* The caller is responsible for getting the link to the participant.
|
|
41
|
+
*/
|
|
42
|
+
Ready = "ready",
|
|
43
|
+
Viewed = "viewed",
|
|
44
|
+
Signed = "signed",
|
|
45
|
+
Declined = "declined"
|
|
46
|
+
}
|
|
47
|
+
export declare enum WorkflowEventType {
|
|
48
|
+
WorkflowCreated = "workflow_created",
|
|
49
|
+
WorkflowStarted = "workflow_started",
|
|
50
|
+
WorkflowCompleted = "workflow_completed",
|
|
51
|
+
WorkflowFailed = "workflow_failed",
|
|
52
|
+
WorkflowDeclined = "workflow_declined",
|
|
53
|
+
WorkflowVoided = "workflow_voided",
|
|
54
|
+
StepCreated = "step_created",
|
|
55
|
+
StepSkipped = "step_skipped",
|
|
56
|
+
StepStarted = "step_started",
|
|
57
|
+
StepCompleted = "step_completed",
|
|
58
|
+
StepFailed = "step_failed",
|
|
59
|
+
StepParticipantNotified = "step_participant_notified",
|
|
60
|
+
StepParticipantViewed = "step_participant_viewed",
|
|
61
|
+
StepParticipantSignatureAdopted = "step_participant_signature_adopted",
|
|
62
|
+
StepParticipantDeclined = "step_participant_declined",
|
|
63
|
+
StepParticipantSigned = "step_participant_signed",
|
|
64
|
+
EnvelopeCompleted = "envelope_completed",
|
|
65
|
+
EnvelopeFailed = "envelope_failed"
|
|
66
|
+
}
|
|
67
|
+
export declare enum ExecutionMode {
|
|
68
|
+
Prod = "Prod",
|
|
69
|
+
Test = "Test"
|
|
70
|
+
}
|
|
71
|
+
export interface WorkflowEventInfo {
|
|
72
|
+
eventType: WorkflowEventType;
|
|
73
|
+
eventAt: Date;
|
|
74
|
+
stepKey?: string;
|
|
75
|
+
details?: Record<string, unknown>;
|
|
76
|
+
}
|
|
77
|
+
export interface GetEntitySnapshotsResp {
|
|
78
|
+
entitySnapshots: {
|
|
79
|
+
/** Prefixed lowercase ULID, e.g. `es_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
80
|
+
id: string;
|
|
81
|
+
entityKey: string;
|
|
82
|
+
schemaKey?: string;
|
|
83
|
+
schemaVersion?: string;
|
|
84
|
+
/** Prefixed lowercase ULID, e.g. `wf_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
85
|
+
workflowId: string;
|
|
86
|
+
data: Record<string, any>;
|
|
87
|
+
createdAt: Date;
|
|
88
|
+
updatedAt: Date;
|
|
89
|
+
}[];
|
|
90
|
+
}
|
|
91
|
+
export interface AddEntitySnapshotsReq {
|
|
92
|
+
/** Prefixed lowercase ULID, e.g. `wf_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
93
|
+
workflowId: string;
|
|
94
|
+
entitySnapshots: {
|
|
95
|
+
schemaKey?: string;
|
|
96
|
+
schemaVersion?: string;
|
|
97
|
+
inlineSchemaDefinition?: Record<string, any>;
|
|
98
|
+
inlineSchemaDraft?: string;
|
|
99
|
+
entityKey: string;
|
|
100
|
+
data: Record<string, any>;
|
|
101
|
+
}[];
|
|
102
|
+
}
|
|
103
|
+
export interface AddEntitySnapshotsResp {
|
|
104
|
+
entitySnapshots: {
|
|
105
|
+
entityKey: string;
|
|
106
|
+
/** Prefixed lowercase ULID, e.g. `es_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
107
|
+
entitySnapshotId: string;
|
|
108
|
+
schemaKey?: string;
|
|
109
|
+
schemaVersion?: string;
|
|
110
|
+
}[];
|
|
111
|
+
}
|
|
112
|
+
export interface StepDataUpdate {
|
|
113
|
+
key: string;
|
|
114
|
+
transform: string;
|
|
115
|
+
}
|
|
116
|
+
export interface StepOnComplete {
|
|
117
|
+
validateExpression?: string;
|
|
118
|
+
updates?: StepDataUpdate[];
|
|
119
|
+
}
|
|
120
|
+
export interface WorkflowStepBase {
|
|
121
|
+
key: string;
|
|
122
|
+
type: WorkflowStepType;
|
|
123
|
+
name?: string;
|
|
124
|
+
status?: WorkflowStepStatus;
|
|
125
|
+
includeIf?: string;
|
|
126
|
+
onComplete?: StepOnComplete;
|
|
127
|
+
inputEntities?: AddEntitySnapshotsResp['entitySnapshots'];
|
|
128
|
+
outputEntities?: AddEntitySnapshotsResp['entitySnapshots'];
|
|
129
|
+
isCompletionClaimed?: boolean;
|
|
130
|
+
}
|
|
131
|
+
export interface WorkflowGroupStep extends WorkflowStepBase {
|
|
132
|
+
type: WorkflowStepType.Group;
|
|
133
|
+
executionMode: WorkflowStepExecutionMode;
|
|
134
|
+
completionRule: WorkflowStepCompletionRule;
|
|
135
|
+
quorumCount?: number;
|
|
136
|
+
childStepKeys?: string[];
|
|
137
|
+
children: WorkflowStep[];
|
|
138
|
+
}
|
|
139
|
+
export interface WorkflowParticipantStep extends WorkflowStepBase {
|
|
140
|
+
type: WorkflowStepType.Participant;
|
|
141
|
+
participantKey: string;
|
|
142
|
+
action?: {
|
|
143
|
+
type: ParticipantActionType;
|
|
144
|
+
envelopeKey: string;
|
|
145
|
+
status: ParticipantActionStatus;
|
|
146
|
+
signedAt?: Date;
|
|
147
|
+
initialsImageFileId?: string;
|
|
148
|
+
signatureImageFileId?: string;
|
|
149
|
+
signingToken?: string;
|
|
150
|
+
assignments: DocumentAssignment[];
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
export type WorkflowStep = WorkflowGroupStep | WorkflowParticipantStep;
|
|
154
|
+
export type WorkflowStepInfo = WorkflowStep;
|
|
155
|
+
export interface ParticipantInfo {
|
|
156
|
+
key: string;
|
|
157
|
+
name?: string;
|
|
158
|
+
email?: string;
|
|
159
|
+
}
|
|
160
|
+
export interface DocumentAssignment {
|
|
161
|
+
documentKey: string;
|
|
162
|
+
roleKey: string;
|
|
163
|
+
}
|
|
164
|
+
export interface CreateWorkflowStepBaseReq {
|
|
165
|
+
key: string;
|
|
166
|
+
name?: string;
|
|
167
|
+
includeIf?: string;
|
|
168
|
+
onComplete?: StepOnComplete;
|
|
169
|
+
inputEntities?: AddEntitySnapshotsResp['entitySnapshots'];
|
|
170
|
+
outputEntities?: AddEntitySnapshotsResp['entitySnapshots'];
|
|
171
|
+
}
|
|
172
|
+
export interface CreateWorkflowGroupStepReq extends CreateWorkflowStepBaseReq {
|
|
173
|
+
type: WorkflowStepType.Group;
|
|
174
|
+
executionMode?: WorkflowStepExecutionMode;
|
|
175
|
+
completionRule?: WorkflowStepCompletionRule;
|
|
176
|
+
quorumCount?: number;
|
|
177
|
+
children?: CreateWorkflowStepReq[];
|
|
178
|
+
}
|
|
179
|
+
export interface CreateWorkflowParticipantStepReq extends CreateWorkflowStepBaseReq {
|
|
180
|
+
type: WorkflowStepType.Participant;
|
|
181
|
+
participantKey: string;
|
|
182
|
+
action?: {
|
|
183
|
+
type: ParticipantActionType;
|
|
184
|
+
envelopeKey: string;
|
|
185
|
+
assignments: DocumentAssignment[];
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
export type CreateWorkflowStepReq = CreateWorkflowGroupStepReq | CreateWorkflowParticipantStepReq;
|
|
189
|
+
export interface SenderInfo {
|
|
190
|
+
name: string;
|
|
191
|
+
company: string;
|
|
192
|
+
email: string;
|
|
193
|
+
logoUrl: string;
|
|
194
|
+
senderEmail: string;
|
|
195
|
+
phone?: string;
|
|
196
|
+
address?: string;
|
|
197
|
+
}
|
|
198
|
+
export declare enum EnvelopeResolutionMode {
|
|
199
|
+
Immediate = "immediate",
|
|
200
|
+
JustInTime = "just_in_time"
|
|
201
|
+
}
|
|
202
|
+
export interface WorkflowEnvelope {
|
|
203
|
+
key: string;
|
|
204
|
+
subject: string;
|
|
205
|
+
documents: {
|
|
206
|
+
key: string;
|
|
207
|
+
templateKey?: string;
|
|
208
|
+
templateVersion?: string;
|
|
209
|
+
includeIf?: string;
|
|
210
|
+
fileId?: LiteralOrExpression<string>;
|
|
211
|
+
iterator?: string;
|
|
212
|
+
fieldOverrides?: FieldOverrideInfo[];
|
|
213
|
+
adhocFields?: AdHocFieldInfo[];
|
|
214
|
+
inputMap?: InputMapEntry[];
|
|
215
|
+
}[];
|
|
216
|
+
resolutionMode?: EnvelopeResolutionMode;
|
|
217
|
+
}
|
|
218
|
+
export interface CustomFieldConfig {
|
|
219
|
+
key: string;
|
|
220
|
+
name: string;
|
|
221
|
+
value?: LiteralOrExpression<string | number | boolean | Date>;
|
|
222
|
+
}
|
|
223
|
+
export interface ResolvedCustomField {
|
|
224
|
+
key: string;
|
|
225
|
+
value?: string | number | boolean | Date;
|
|
226
|
+
}
|
|
227
|
+
export type SenderInfoOverrides = Omit<SenderInfo, 'senderEmail'>;
|
|
228
|
+
export interface CreateWorkflowReq {
|
|
229
|
+
name?: string;
|
|
230
|
+
description?: string;
|
|
231
|
+
blueprintKey?: string;
|
|
232
|
+
blueprintVersion?: string;
|
|
233
|
+
inlineResources?: {
|
|
234
|
+
blueprint?: BlueprintResource;
|
|
235
|
+
templates?: TemplateResource[];
|
|
236
|
+
assets?: AssetResource[];
|
|
237
|
+
functions?: JsonataFunctionResource[];
|
|
238
|
+
schemas?: SchemaResource[];
|
|
239
|
+
};
|
|
240
|
+
listingKey?: string;
|
|
241
|
+
listingVersion?: string;
|
|
242
|
+
data?: Record<string, any>;
|
|
243
|
+
options?: {
|
|
244
|
+
inlineOnly?: boolean;
|
|
245
|
+
disableParticipantNotifications?: boolean;
|
|
246
|
+
/**
|
|
247
|
+
* @public-api-shape DO-NOT-DOCUMENT
|
|
248
|
+
* Per-participant override is intentionally excluded from `openapi.json`
|
|
249
|
+
* and public API references. Until the public surface is finalized, do
|
|
250
|
+
* NOT add this field to the spec or user-facing docs. Runtime behavior
|
|
251
|
+
* stays — internal callers depend on it.
|
|
252
|
+
*/
|
|
253
|
+
participantOverrides?: {
|
|
254
|
+
key: string;
|
|
255
|
+
name: string;
|
|
256
|
+
email: string;
|
|
257
|
+
}[];
|
|
258
|
+
/**
|
|
259
|
+
* @public-api-shape DO-NOT-DOCUMENT
|
|
260
|
+
* Test-only override that sends every participant's signing email to a
|
|
261
|
+
* single address. Excluded from `openapi.json` and public API references
|
|
262
|
+
* to prevent accidental production use. Do NOT add this field to the
|
|
263
|
+
* spec or user-facing docs. Runtime behavior stays — internal callers
|
|
264
|
+
* depend on it.
|
|
265
|
+
*/
|
|
266
|
+
overrideAllParticipantEmails?: string;
|
|
267
|
+
senderInfoOverrides?: SenderInfoOverrides;
|
|
268
|
+
mode?: CreateWorkflowMode;
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
export declare enum CreateWorkflowMode {
|
|
272
|
+
Run = "Run",
|
|
273
|
+
Review = "Review"
|
|
274
|
+
}
|
|
275
|
+
export interface FieldOverrideInfo {
|
|
276
|
+
fieldKey: string;
|
|
277
|
+
overriddenValue?: string | number | boolean | Date;
|
|
278
|
+
overriddenIsHidden?: boolean;
|
|
279
|
+
overriddenWidgets?: FieldWidgetInfo[];
|
|
280
|
+
}
|
|
281
|
+
export interface UpdateWorkflowReq {
|
|
282
|
+
name?: string;
|
|
283
|
+
description?: string;
|
|
284
|
+
envelopes?: WorkflowEnvelope[];
|
|
285
|
+
participants?: ParticipantInfo[];
|
|
286
|
+
rootStep?: CreateWorkflowStepReq;
|
|
287
|
+
}
|
|
288
|
+
export type UpdateWorkflowResp = GetWorkflowInfoResp;
|
|
289
|
+
export type CreateWorkflowResp = GetWorkflowInfoResp;
|
|
290
|
+
export interface UpdateWorkflowEntitiesReq {
|
|
291
|
+
/**
|
|
292
|
+
* Entity payload, keyed by the blueprint's input keys. Same shape as
|
|
293
|
+
* `CreateWorkflowReq.data`. Schema for each entity is derived from the
|
|
294
|
+
* blueprint's input declarations — callers don't supply `schemaKey`.
|
|
295
|
+
* Must include every entity key the workflow declares.
|
|
296
|
+
*/
|
|
297
|
+
data: Record<string, any>;
|
|
298
|
+
}
|
|
299
|
+
export type UpdateWorkflowEntitiesResp = GetWorkflowInfoResp;
|
|
300
|
+
export declare enum SignatureType {
|
|
301
|
+
Signature = "Signature",
|
|
302
|
+
Initials = "Initials"
|
|
303
|
+
}
|
|
304
|
+
export declare enum SignatureMethod {
|
|
305
|
+
Typed = "typed",
|
|
306
|
+
Drawn = "drawn"
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Supported hash algorithm identifiers for tamper-evidence.
|
|
310
|
+
* Stored alongside all hashes for future algorithm migration support.
|
|
311
|
+
*/
|
|
312
|
+
export declare const HASH_ALGORITHM: {
|
|
313
|
+
readonly SHA256: "SHA-256";
|
|
314
|
+
};
|
|
315
|
+
export interface SignatureImageInfo {
|
|
316
|
+
fileId: string;
|
|
317
|
+
fileHash: string;
|
|
318
|
+
hashAlgorithm: string;
|
|
319
|
+
method: SignatureMethod;
|
|
320
|
+
adoptedAt?: Date;
|
|
321
|
+
}
|
|
322
|
+
export interface FinishParticipantTaskReq {
|
|
323
|
+
fieldUpdates: {
|
|
324
|
+
documentKey: string;
|
|
325
|
+
fields: {
|
|
326
|
+
key: string;
|
|
327
|
+
value: string | number | boolean | Date;
|
|
328
|
+
}[];
|
|
329
|
+
}[];
|
|
330
|
+
}
|
|
331
|
+
export interface FinishParticipantTaskResp {
|
|
332
|
+
}
|
|
333
|
+
export interface UploadWorkflowSignatureReq {
|
|
334
|
+
signatureImage?: {
|
|
335
|
+
fileId: string;
|
|
336
|
+
fileHash: string;
|
|
337
|
+
hashAlgorithm: string;
|
|
338
|
+
method: SignatureMethod;
|
|
339
|
+
};
|
|
340
|
+
initialsImage?: {
|
|
341
|
+
fileId: string;
|
|
342
|
+
fileHash: string;
|
|
343
|
+
hashAlgorithm: string;
|
|
344
|
+
method: SignatureMethod;
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
export interface UploadWorkflowSignatureResp {
|
|
348
|
+
}
|
|
349
|
+
export interface GetWorkflowStepInfoReq {
|
|
350
|
+
/** Prefixed lowercase ULID, e.g. `wf_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
351
|
+
workflowId: string;
|
|
352
|
+
signingToken: string;
|
|
353
|
+
}
|
|
354
|
+
export type GetWorkflowStepInfoResp = WorkflowStep & {
|
|
355
|
+
senderInfo?: SenderInfo;
|
|
356
|
+
subject?: string;
|
|
357
|
+
participant?: ParticipantInfo;
|
|
358
|
+
};
|
|
359
|
+
/**
|
|
360
|
+
* Consumer consent disclosure information for ESIGN Act compliance.
|
|
361
|
+
* Captures the specific version and hash of the disclosure text shown to the participant.
|
|
362
|
+
*/
|
|
363
|
+
export interface ConsentDisclosureInfo {
|
|
364
|
+
/** Version identifier for the consent disclosure (e.g., "1.0.0") */
|
|
365
|
+
version: string;
|
|
366
|
+
/** SHA-256 hash of the full disclosure text for tamper-evidence */
|
|
367
|
+
textHash: string;
|
|
368
|
+
/** Algorithm used for hashing (e.g., "SHA-256") */
|
|
369
|
+
hashAlgorithm: string;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Standard ESIGN consent disclosure configuration.
|
|
373
|
+
* Increment version when the text changes.
|
|
374
|
+
*/
|
|
375
|
+
export declare const CONSENT_DISCLOSURE: {
|
|
376
|
+
readonly VERSION: "1.0.0";
|
|
377
|
+
readonly TEXT: "I acknowledge that I have reviewed the terms and agree to use electronic records and signatures for this transaction.\n\nELECTRONIC SIGNATURE DISCLOSURES:\n\nScope of Consent: Your consent applies to this transaction only.\n\nWithdrawing Consent: You may withdraw your consent at any time by declining to sign and contacting the sender.\n\nUpdating Your Information: To update your contact information, please contact the sender directly.\n\nSystem Requirements: To access and retain electronic records, you need: a device with internet access, a current web browser with JavaScript and cookies enabled, and the ability to view PDF documents.\n\nPaper Copies: You may request a paper copy of any document signed electronically by contacting the sender. The sender may charge a reasonable fee for the preparation and mailing of paper copies.";
|
|
378
|
+
};
|
|
379
|
+
export interface UpdateStepParticipantTaskStatusReq {
|
|
380
|
+
status: ParticipantActionStatus;
|
|
381
|
+
/** Consent disclosure info when transitioning to Viewed status (ESIGN compliance) */
|
|
382
|
+
consentDisclosure?: ConsentDisclosureInfo;
|
|
383
|
+
}
|
|
384
|
+
export interface UpdateStepParticipantTaskStatusResp {
|
|
385
|
+
}
|
|
386
|
+
export interface WorkflowCancellationReq {
|
|
387
|
+
reason: string;
|
|
388
|
+
}
|
|
389
|
+
export interface WorkflowCancellationResp {
|
|
390
|
+
success: boolean;
|
|
391
|
+
}
|
|
392
|
+
export interface GetWorkflowSignatureReq extends GetWorkflowStepInfoReq {
|
|
393
|
+
}
|
|
394
|
+
export interface GetWorkflowSignatureResp {
|
|
395
|
+
signatureImageFileId?: string;
|
|
396
|
+
initialsImageFileId?: string;
|
|
397
|
+
}
|
|
398
|
+
export interface DocumentInfo {
|
|
399
|
+
filePath: string;
|
|
400
|
+
fileExtension: string;
|
|
401
|
+
name: string;
|
|
402
|
+
id: string;
|
|
403
|
+
sequence: number;
|
|
404
|
+
templateFields?: TemplateFieldInfo[];
|
|
405
|
+
fieldOverrides?: FieldOverrideInfo[];
|
|
406
|
+
adhocFields?: AdHocFieldInfo[];
|
|
407
|
+
roles?: TemplateRole[];
|
|
408
|
+
}
|
|
409
|
+
export declare enum WorkflowStatus {
|
|
410
|
+
Pending = "pending",
|
|
411
|
+
InProgress = "in_progress",
|
|
412
|
+
Completed = "completed",
|
|
413
|
+
Failed = "failed",
|
|
414
|
+
Declined = "declined",
|
|
415
|
+
Voided = "voided"
|
|
416
|
+
}
|
|
417
|
+
export declare enum WorkflowSourceType {
|
|
418
|
+
/** Workflow was instantiated from a stored, named blueprint in this namespace. */
|
|
419
|
+
Blueprint = "blueprint",
|
|
420
|
+
/** Workflow was instantiated from a marketplace listing published by another org. */
|
|
421
|
+
Listing = "listing",
|
|
422
|
+
/** Workflow was created from inline resources — caller supplied the blueprint blob directly (CLI preview, ad-hoc flows). The blueprint is not a stored resource and its key/version may not be resolvable. */
|
|
423
|
+
Inline = "inline"
|
|
424
|
+
}
|
|
425
|
+
export declare enum EnvelopeStatus {
|
|
426
|
+
Pending = "pending",
|
|
427
|
+
InProgress = "in_progress",
|
|
428
|
+
Completed = "completed",
|
|
429
|
+
Voided = "voided",
|
|
430
|
+
Failed = "failed"
|
|
431
|
+
}
|
|
432
|
+
export interface AddDocumentToWorkflowReq {
|
|
433
|
+
envelopeKey: string;
|
|
434
|
+
templateKey?: string;
|
|
435
|
+
templateVersion?: string;
|
|
436
|
+
fileId?: string;
|
|
437
|
+
inputMap?: InputMapEntry[];
|
|
438
|
+
}
|
|
439
|
+
export interface AddDocumentToWorkflowResp {
|
|
440
|
+
addedDoc: {
|
|
441
|
+
templateKey?: string;
|
|
442
|
+
templateVersion?: string;
|
|
443
|
+
key: string;
|
|
444
|
+
fileId: string;
|
|
445
|
+
fileName: string;
|
|
446
|
+
templateFields: TemplateFieldInfo[];
|
|
447
|
+
fieldOverrides: FieldOverrideInfo[];
|
|
448
|
+
adhocFields: AdHocFieldInfo[];
|
|
449
|
+
inputMap?: InputMapEntry[];
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
export interface RenderWorkflowResp {
|
|
453
|
+
documents: {
|
|
454
|
+
/**
|
|
455
|
+
* Pre-signed download URL for the rendered PDF. The render output is
|
|
456
|
+
* ephemeral — bytes live in tmp/ and are regenerated on each /render
|
|
457
|
+
* call — so it's served inline rather than via a fileId handle.
|
|
458
|
+
*/
|
|
459
|
+
signedUrl: string;
|
|
460
|
+
fileName: string;
|
|
461
|
+
templateKey: string;
|
|
462
|
+
key: string;
|
|
463
|
+
signerOverlayFields: RenderSignerFieldInfo[];
|
|
464
|
+
}[];
|
|
465
|
+
participants: ParticipantInfo[];
|
|
466
|
+
rootStep: WorkflowStep;
|
|
467
|
+
}
|
|
468
|
+
export interface RenderSignerFieldInfo {
|
|
469
|
+
key: string;
|
|
470
|
+
type: FieldType;
|
|
471
|
+
widgets: FieldWidgetInfo[];
|
|
472
|
+
assignment: {
|
|
473
|
+
assignedToStepKey: string;
|
|
474
|
+
};
|
|
475
|
+
value?: string;
|
|
476
|
+
}
|
|
477
|
+
export interface WorkflowEnvelopeInfo {
|
|
478
|
+
key: string;
|
|
479
|
+
status: EnvelopeStatus;
|
|
480
|
+
resolvedDocuments: ResolvedWorkflowDocumentInfo[];
|
|
481
|
+
signedDocumentFileId?: string;
|
|
482
|
+
certificateFileId?: string;
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
* Internal-only variant of `WorkflowEnvelopeInfo` that carries fields stripped
|
|
486
|
+
* from the public `GET /workflows/{id}` response: the Mongo `envelopeId`,
|
|
487
|
+
* the pre-sign `initialCombinedDocumentFileId` (used by the BE document
|
|
488
|
+
* download flow as a fallback before a signed PDF exists), and the rich
|
|
489
|
+
* per-document shape. Public consumers target envelopes by `key` and only
|
|
490
|
+
* see the final signed PDF + certificate.
|
|
491
|
+
*/
|
|
492
|
+
export interface WorkflowEnvelopeInfoInternal extends Omit<WorkflowEnvelopeInfo, 'resolvedDocuments'> {
|
|
493
|
+
envelopeId: string;
|
|
494
|
+
initialCombinedDocumentFileId?: string;
|
|
495
|
+
resolvedDocuments: ResolvedWorkflowDocumentInfoInternal[];
|
|
496
|
+
}
|
|
497
|
+
export interface StepRunInfo {
|
|
498
|
+
key: string;
|
|
499
|
+
status: WorkflowStepStatus;
|
|
500
|
+
resolvedCustomFields?: ResolvedCustomField[];
|
|
501
|
+
participantAction?: {
|
|
502
|
+
status: ParticipantActionStatus;
|
|
503
|
+
signedAt?: Date;
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* Internal-only variant of `StepRunInfo` that carries per-step entity
|
|
508
|
+
* snapshot references and the signing-flow internals (signingToken, raw
|
|
509
|
+
* signature/initials image file IDs, and the per-participant signed PDF
|
|
510
|
+
* pointer used by the BE document-download flow). Used inside
|
|
511
|
+
* `GetWorkflowInternalResp` for in-process BE callers (renderer, expression
|
|
512
|
+
* evaluator, signing controller). Public consumers fetch entity data via the
|
|
513
|
+
* dedicated `GET /workflows/{id}/entities` endpoint; signing tokens,
|
|
514
|
+
* signature artifacts, and per-participant signed PDFs are never exposed on
|
|
515
|
+
* the public response (the envelope-level `signedDocumentFileId` is the
|
|
516
|
+
* public final-PDF signal).
|
|
517
|
+
*/
|
|
518
|
+
export interface StepRunInfoInternal extends Omit<StepRunInfo, 'participantAction'> {
|
|
519
|
+
participantAction?: StepRunInfo['participantAction'] & {
|
|
520
|
+
signingToken?: string;
|
|
521
|
+
signatureImageFileId?: string;
|
|
522
|
+
initialsImageFileId?: string;
|
|
523
|
+
signedDocumentFileId?: string;
|
|
524
|
+
};
|
|
525
|
+
inputEntities?: AddEntitySnapshotsResp['entitySnapshots'];
|
|
526
|
+
outputEntities?: AddEntitySnapshotsResp['entitySnapshots'];
|
|
527
|
+
}
|
|
528
|
+
export interface GetWorkflowInfoResp {
|
|
529
|
+
/** Prefixed lowercase ULID, e.g. `wf_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
530
|
+
id: string;
|
|
531
|
+
mode: NamespaceMode;
|
|
532
|
+
name?: string;
|
|
533
|
+
description?: string;
|
|
534
|
+
source: WorkflowSourceInfo;
|
|
535
|
+
idempotencyKey?: string;
|
|
536
|
+
/**
|
|
537
|
+
* @public-api-shape DO-NOT-DOCUMENT
|
|
538
|
+
* The blueprint structure is intentionally excluded from `openapi.json`
|
|
539
|
+
* and public API references. It's redundant with `source.blueprint.{key,version}` —
|
|
540
|
+
* public consumers should fetch the source blueprint directly via
|
|
541
|
+
* `GET /blueprints/{key}?version={version}` (or the equivalent listing
|
|
542
|
+
* endpoint for listing-sourced workflows). Inline-workflow consumers
|
|
543
|
+
* already have the blueprint they supplied at create time. Runtime
|
|
544
|
+
* behavior stays — Studio and internal callers depend on this field.
|
|
545
|
+
*
|
|
546
|
+
* Note: `inlineResources` (full template / asset / function / schema bodies)
|
|
547
|
+
* is excluded from this public shape because it is heavy and may contain
|
|
548
|
+
* sensitive data. Internal callers that need inline resources receive them
|
|
549
|
+
* via `GetWorkflowInternalResp` (defined below).
|
|
550
|
+
*/
|
|
551
|
+
blueprint: {
|
|
552
|
+
metadata?: {
|
|
553
|
+
key: string;
|
|
554
|
+
version: string;
|
|
555
|
+
};
|
|
556
|
+
spec: BlueprintSpec;
|
|
557
|
+
};
|
|
558
|
+
participants: ParticipantInfo[];
|
|
559
|
+
status: WorkflowStatus;
|
|
560
|
+
/**
|
|
561
|
+
* Lightweight summary of the entities supplied at workflow create time —
|
|
562
|
+
* matches the shape used in `WorkflowListItem.entities`. Only carries
|
|
563
|
+
* identity + schema reference, not the entity values themselves; for the
|
|
564
|
+
* full entity payload (including step-transitioned snapshots), call the
|
|
565
|
+
* dedicated `GET /workflows/{id}/entities` endpoint.
|
|
566
|
+
*/
|
|
567
|
+
inputEntities?: {
|
|
568
|
+
entityKey: string;
|
|
569
|
+
schemaKey?: string;
|
|
570
|
+
schemaVersion?: string;
|
|
571
|
+
}[];
|
|
572
|
+
envelopes: WorkflowEnvelopeInfo[];
|
|
573
|
+
stepRuns: StepRunInfo[];
|
|
574
|
+
senderInfo: SenderInfo;
|
|
575
|
+
completedAt?: Date;
|
|
576
|
+
voidedAt?: Date;
|
|
577
|
+
voidReason?: string;
|
|
578
|
+
declinedAt?: Date;
|
|
579
|
+
declineReason?: string;
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* Internal-only variant of `GetWorkflowInfoResp` for in-process BE callers
|
|
583
|
+
* (renderer, resource resolver, conversion service, expression evaluator).
|
|
584
|
+
* Carries the heavy / sensitive fields that are stripped from the public
|
|
585
|
+
* response: blueprint inline resources, top-level entity snapshots, the
|
|
586
|
+
* append-only event log, per-step input/output entity references, and the
|
|
587
|
+
* `updatedAt` timestamp the controller reads to set the response `ETag`
|
|
588
|
+
* header (public consumers get the ETag in the header — the timestamp on
|
|
589
|
+
* the body is redundant noise).
|
|
590
|
+
*
|
|
591
|
+
* The public `GET /workflows/{id}` controller strips this back down to
|
|
592
|
+
* `GetWorkflowInfoResp` at the response boundary. Public consumers that need
|
|
593
|
+
* entity data fetch it via `GET /workflows/{id}/entities`; event history via
|
|
594
|
+
* `GET /workflows/{id}/events`.
|
|
595
|
+
*/
|
|
596
|
+
export interface GetWorkflowInternalResp extends Omit<GetWorkflowInfoResp, 'blueprint' | 'stepRuns' | 'envelopes'> {
|
|
597
|
+
blueprint: GetWorkflowInfoResp['blueprint'] & {
|
|
598
|
+
inlineResources?: {
|
|
599
|
+
templates?: TemplateResource[];
|
|
600
|
+
assets?: AssetResource[];
|
|
601
|
+
functions?: JsonataFunctionResource[];
|
|
602
|
+
schemas?: SchemaResource[];
|
|
603
|
+
};
|
|
604
|
+
};
|
|
605
|
+
stepRuns: StepRunInfoInternal[];
|
|
606
|
+
envelopes: WorkflowEnvelopeInfoInternal[];
|
|
607
|
+
entitySnapshots: GetEntitySnapshotsResp['entitySnapshots'];
|
|
608
|
+
eventLog?: WorkflowEventInfo[];
|
|
609
|
+
updatedAt?: Date;
|
|
610
|
+
}
|
|
611
|
+
/**
|
|
612
|
+
* Response shape for `GET /workflows/{id}/entities` — an internal-only
|
|
613
|
+
* (DO-NOT-DOCUMENT) endpoint that returns the workflow's entity data.
|
|
614
|
+
*
|
|
615
|
+
* `entitySnapshots` carries the full snapshot rows (id, schema, data, ...).
|
|
616
|
+
* `stepEntities` carries per-step references into `entitySnapshots` by ID;
|
|
617
|
+
* only includes steps that have at least one of `inputEntities` /
|
|
618
|
+
* `outputEntities` populated.
|
|
619
|
+
*/
|
|
620
|
+
export interface GetWorkflowEntitiesResp {
|
|
621
|
+
entitySnapshots: GetEntitySnapshotsResp['entitySnapshots'];
|
|
622
|
+
stepEntities: {
|
|
623
|
+
stepKey: string;
|
|
624
|
+
inputEntities?: AddEntitySnapshotsResp['entitySnapshots'];
|
|
625
|
+
outputEntities?: AddEntitySnapshotsResp['entitySnapshots'];
|
|
626
|
+
}[];
|
|
627
|
+
}
|
|
628
|
+
/**
|
|
629
|
+
* Response shape for `GET /workflows/{id}/templates` — an internal-only
|
|
630
|
+
* (DO-NOT-DOCUMENT) endpoint that returns the resolved template-derived
|
|
631
|
+
* data per document slot in the workflow. Pairs with the lean public
|
|
632
|
+
* `GET /workflows/{id}` to give Studio (and any caller) the template echo
|
|
633
|
+
* (templateKey, templateFields, inputs, roles, name, fileName, fileId)
|
|
634
|
+
* without making them chain N template fetches by hand.
|
|
635
|
+
*
|
|
636
|
+
* Flat array keyed by `documentKey`. The parent `envelopeKey` is omitted —
|
|
637
|
+
* consumers join against the workflow Get's `envelopes[].resolvedDocuments[].key`
|
|
638
|
+
* when they need to associate documents back to envelopes.
|
|
639
|
+
*/
|
|
640
|
+
export interface GetWorkflowTemplatesResp {
|
|
641
|
+
templates: {
|
|
642
|
+
documentKey: string;
|
|
643
|
+
templateKey?: string;
|
|
644
|
+
templateVersion?: string;
|
|
645
|
+
name?: string;
|
|
646
|
+
fileName?: string;
|
|
647
|
+
fileId?: string;
|
|
648
|
+
templateFields?: TemplateFieldInfo[];
|
|
649
|
+
inputs?: Input[];
|
|
650
|
+
roles?: TemplateRole[];
|
|
651
|
+
}[];
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* Query parameters for `GET /workflows/{id}/events`. All optional. `since`
|
|
655
|
+
* filters events to those that occurred after a given timestamp — pair with
|
|
656
|
+
* the most recent `eventAt` you've already processed to incrementally
|
|
657
|
+
* consume new events without re-fetching history.
|
|
658
|
+
*/
|
|
659
|
+
export interface ListWorkflowEventsReq {
|
|
660
|
+
offset?: number;
|
|
661
|
+
limit?: number;
|
|
662
|
+
since?: Date;
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Response shape for `GET /workflows/{id}/events`. Pairs with webhooks: the
|
|
666
|
+
* push channel for real-time delivery, this endpoint for the persistent
|
|
667
|
+
* historical record. Returns the workflow's append-only event log
|
|
668
|
+
* (created, started, step transitions, participant actions, completed /
|
|
669
|
+
* failed / voided / declined) ordered by `eventAt` descending — newest first.
|
|
670
|
+
*/
|
|
671
|
+
export type GetWorkflowEventsResp = ListResp<WorkflowEventInfo>;
|
|
672
|
+
export interface GetWorkflowStatusResp {
|
|
673
|
+
status: WorkflowStatus;
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* One participant's action URL plus their current status. The URL embeds a
|
|
677
|
+
* token that is the sole credential required to complete the action (e.g.
|
|
678
|
+
* sign) — anyone holding it can act on this participant's behalf. Returned
|
|
679
|
+
* only from the dedicated, privileged `GET /workflows/{id}/action-urls`
|
|
680
|
+
* endpoint (scope `workflow:action-urls`), never from the default workflow
|
|
681
|
+
* read responses.
|
|
682
|
+
*/
|
|
683
|
+
export interface ParticipantActionUrlInfo {
|
|
684
|
+
participantKey: string;
|
|
685
|
+
name?: string;
|
|
686
|
+
email?: string;
|
|
687
|
+
/** The participant step this URL is for. */
|
|
688
|
+
stepKey: string;
|
|
689
|
+
/** What the participant does at this step (e.g. `sign`; more types later). */
|
|
690
|
+
actionType: ParticipantActionType;
|
|
691
|
+
/**
|
|
692
|
+
* Lifecycle state. With notifications disabled, `ready` means the step is
|
|
693
|
+
* active and SignStack did not email the participant — send the link now.
|
|
694
|
+
* `pending` = not their turn yet; `viewed`/`signed`/`declined` = already
|
|
695
|
+
* engaged/done. (With notifications enabled, an active step is `notified`.)
|
|
696
|
+
*/
|
|
697
|
+
status: ParticipantActionStatus;
|
|
698
|
+
/**
|
|
699
|
+
* Token-bearing link to the participant's task surface. Bearer-style: holding
|
|
700
|
+
* it grants the ability to complete the action on the participant's behalf.
|
|
701
|
+
*/
|
|
702
|
+
url: string;
|
|
703
|
+
}
|
|
704
|
+
export interface GetParticipantActionUrlsResp {
|
|
705
|
+
actionUrls: ParticipantActionUrlInfo[];
|
|
706
|
+
}
|
|
707
|
+
export interface ListWorkflowsReq {
|
|
708
|
+
status?: WorkflowStatus;
|
|
709
|
+
limit?: number;
|
|
710
|
+
offset?: number;
|
|
711
|
+
search?: string;
|
|
712
|
+
labels?: Record<string, string>;
|
|
713
|
+
}
|
|
714
|
+
export type WorkflowSourceInfo = {
|
|
715
|
+
type: WorkflowSourceType.Blueprint;
|
|
716
|
+
blueprint: {
|
|
717
|
+
key: string;
|
|
718
|
+
version: string;
|
|
719
|
+
name?: string;
|
|
720
|
+
};
|
|
721
|
+
} | {
|
|
722
|
+
type: WorkflowSourceType.Listing;
|
|
723
|
+
listing: {
|
|
724
|
+
key: string;
|
|
725
|
+
version: string;
|
|
726
|
+
name?: string;
|
|
727
|
+
};
|
|
728
|
+
} | {
|
|
729
|
+
type: WorkflowSourceType.Inline;
|
|
730
|
+
};
|
|
731
|
+
export interface WorkflowListItem {
|
|
732
|
+
/** Prefixed lowercase ULID, e.g. `wf_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
733
|
+
id: string;
|
|
734
|
+
name?: string;
|
|
735
|
+
description?: string;
|
|
736
|
+
status: WorkflowStatus;
|
|
737
|
+
source: WorkflowSourceInfo;
|
|
738
|
+
idempotencyKey?: string;
|
|
739
|
+
createdBy: ActorRef;
|
|
740
|
+
createdAt: Date;
|
|
741
|
+
completedAt?: Date;
|
|
742
|
+
voidedAt?: Date;
|
|
743
|
+
voidReason?: string;
|
|
744
|
+
declinedAt?: Date;
|
|
745
|
+
declineReason?: string;
|
|
746
|
+
/**
|
|
747
|
+
* Lightweight summary of the entities supplied at workflow create time.
|
|
748
|
+
* Carries identity + schema reference only — entity values are not
|
|
749
|
+
* included. For the full entity payload (including step-transitioned
|
|
750
|
+
* snapshots), call `GET /workflows/{id}/entities` on the individual
|
|
751
|
+
* workflow.
|
|
752
|
+
*/
|
|
753
|
+
inputEntities?: {
|
|
754
|
+
entityKey: string;
|
|
755
|
+
schemaKey?: string;
|
|
756
|
+
schemaVersion?: string;
|
|
757
|
+
}[];
|
|
758
|
+
participants?: ParticipantInfo[];
|
|
759
|
+
envelopes?: {
|
|
760
|
+
key: string;
|
|
761
|
+
status: EnvelopeStatus;
|
|
762
|
+
}[];
|
|
763
|
+
progress?: {
|
|
764
|
+
totalSteps: number;
|
|
765
|
+
completedSteps: number;
|
|
766
|
+
};
|
|
767
|
+
}
|
|
768
|
+
export type ListWorkflowsResp = ListResp<WorkflowListItem>;
|
|
769
|
+
export interface WorkflowDocInfoForStep {
|
|
770
|
+
documentKey: string;
|
|
771
|
+
docName: string;
|
|
772
|
+
roleKey: string;
|
|
773
|
+
name?: string;
|
|
774
|
+
}
|
|
775
|
+
export interface AdHocFieldInfo {
|
|
776
|
+
key: string;
|
|
777
|
+
type: FieldType;
|
|
778
|
+
value?: string | number | boolean | Date;
|
|
779
|
+
widgets: FieldWidgetInfo[];
|
|
780
|
+
isHidden?: boolean;
|
|
781
|
+
assignment?: {
|
|
782
|
+
assignedToStepKey: string;
|
|
783
|
+
};
|
|
784
|
+
}
|
|
785
|
+
export interface WorkflowDocumentInfo {
|
|
786
|
+
templateKey?: string;
|
|
787
|
+
templateVersion?: string;
|
|
788
|
+
key: string;
|
|
789
|
+
envelopeKey: string;
|
|
790
|
+
templateFields: TemplateFieldInfo[];
|
|
791
|
+
fieldOverrides: FieldOverrideInfo[];
|
|
792
|
+
adhocFields: AdHocFieldInfo[];
|
|
793
|
+
inputMap: InputMapEntry[];
|
|
794
|
+
inputs?: Input[];
|
|
795
|
+
roles?: TemplateRole[];
|
|
796
|
+
functions?: FunctionDependency[];
|
|
797
|
+
templateFileId?: string;
|
|
798
|
+
fileId?: LiteralOrExpression<string>;
|
|
799
|
+
fileName?: string;
|
|
800
|
+
name?: string;
|
|
801
|
+
includeIf?: string;
|
|
802
|
+
iterator?: string;
|
|
803
|
+
}
|
|
804
|
+
/**
|
|
805
|
+
* Public shape returned for each entry in `envelopes[].resolvedDocuments[]`
|
|
806
|
+
* on `GET /workflows/{id}`. Carries only workflow-runtime state per
|
|
807
|
+
* document — the slot key plus the caller-supplied / Review-editable
|
|
808
|
+
* payload (adhocFields, fieldOverrides, inputMap).
|
|
809
|
+
*
|
|
810
|
+
* Template-derived data (templateKey/Version, templateFields, inputs, roles,
|
|
811
|
+
* name, fileName, fileId) lives on the dedicated
|
|
812
|
+
* `GET /workflows/{id}/templates` endpoint — see `GetWorkflowTemplatesResp`.
|
|
813
|
+
* The `envelopeKey` back-ref is omitted since the document is already nested
|
|
814
|
+
* under its parent envelope; consumers that flatten the array synthesize it
|
|
815
|
+
* locally from the parent's `key`.
|
|
816
|
+
*/
|
|
817
|
+
export interface ResolvedWorkflowDocumentInfo {
|
|
818
|
+
key: string;
|
|
819
|
+
adhocFields: AdHocFieldInfo[];
|
|
820
|
+
fieldOverrides: FieldOverrideInfo[];
|
|
821
|
+
inputMap: InputMapEntry[];
|
|
822
|
+
}
|
|
823
|
+
/**
|
|
824
|
+
* Internal-only variant of `ResolvedWorkflowDocumentInfo` for in-process BE
|
|
825
|
+
* callers (renderer, signing flow, conversion service). Carries the heavy
|
|
826
|
+
* template echo + source-PDF pointer + back-ref fields stripped from the
|
|
827
|
+
* public shape.
|
|
828
|
+
*/
|
|
829
|
+
export interface ResolvedWorkflowDocumentInfoInternal extends ResolvedWorkflowDocumentInfo {
|
|
830
|
+
envelopeKey: string;
|
|
831
|
+
templateKey?: string;
|
|
832
|
+
templateVersion?: string;
|
|
833
|
+
templateFields?: TemplateFieldInfo[];
|
|
834
|
+
inputs?: Input[];
|
|
835
|
+
roles?: TemplateRole[];
|
|
836
|
+
functions?: FunctionDependency[];
|
|
837
|
+
templateFileId?: string;
|
|
838
|
+
fileId?: string;
|
|
839
|
+
fileName?: string;
|
|
840
|
+
name?: string;
|
|
841
|
+
includeIf?: string;
|
|
842
|
+
iterator?: string;
|
|
843
|
+
}
|
|
844
|
+
export interface InputMapEntry {
|
|
845
|
+
templateInputKey: string;
|
|
846
|
+
blueprintInputKey: string;
|
|
847
|
+
}
|
|
848
|
+
export interface SignerInfo {
|
|
849
|
+
name?: string;
|
|
850
|
+
email?: string;
|
|
851
|
+
signerId?: string;
|
|
852
|
+
signerRoleKey?: string;
|
|
853
|
+
stepKey: string;
|
|
854
|
+
routingOrder: number;
|
|
855
|
+
}
|
|
856
|
+
export interface AnnotatorSignerInfo {
|
|
857
|
+
id: string;
|
|
858
|
+
name?: string;
|
|
859
|
+
roleKey?: string;
|
|
860
|
+
stepKey?: string;
|
|
861
|
+
}
|
|
862
|
+
export declare enum WorkflowActorType {
|
|
863
|
+
Sender = "sender",
|
|
864
|
+
ParticipantTask = "participant_task"
|
|
865
|
+
}
|
|
866
|
+
export interface GetStepEntityDataReq {
|
|
867
|
+
/** Prefixed lowercase ULID, e.g. `wf_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
868
|
+
workflowId: string;
|
|
869
|
+
stepKey: string;
|
|
870
|
+
}
|
|
871
|
+
export interface GetStepEntityDataResp {
|
|
872
|
+
inputEntities: StepEntityData[];
|
|
873
|
+
outputEntities: StepEntityData[];
|
|
874
|
+
}
|
|
875
|
+
export interface StepEntityData {
|
|
876
|
+
entityKey: string;
|
|
877
|
+
name: string;
|
|
878
|
+
entityType: string;
|
|
879
|
+
version: string;
|
|
880
|
+
data: Record<string, any>;
|
|
881
|
+
}
|
|
882
|
+
export interface WorkflowNodeFormValue {
|
|
883
|
+
key: string;
|
|
884
|
+
type: WorkflowStepType;
|
|
885
|
+
name?: string;
|
|
886
|
+
status?: WorkflowStepStatus;
|
|
887
|
+
executionMode?: WorkflowStepExecutionMode;
|
|
888
|
+
completionRule?: WorkflowStepCompletionRule;
|
|
889
|
+
quorumCount?: number;
|
|
890
|
+
includeIf?: string;
|
|
891
|
+
onComplete?: StepOnComplete;
|
|
892
|
+
participantKey?: string;
|
|
893
|
+
action?: {
|
|
894
|
+
type: ParticipantActionType;
|
|
895
|
+
status: ParticipantActionStatus;
|
|
896
|
+
envelopeKey: string;
|
|
897
|
+
assignments: DocumentAssignment[];
|
|
898
|
+
} | null;
|
|
899
|
+
}
|
|
900
|
+
export interface EmbedSigningContextResp {
|
|
901
|
+
signingToken: string;
|
|
902
|
+
workflow: {
|
|
903
|
+
/** Prefixed lowercase ULID, e.g. `wf_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
904
|
+
id: string;
|
|
905
|
+
name: string;
|
|
906
|
+
};
|
|
907
|
+
step: {
|
|
908
|
+
key: string;
|
|
909
|
+
label: string;
|
|
910
|
+
status: ParticipantActionStatus;
|
|
911
|
+
};
|
|
912
|
+
participant?: {
|
|
913
|
+
key: string;
|
|
914
|
+
name: string;
|
|
915
|
+
email: string;
|
|
916
|
+
};
|
|
917
|
+
}
|