@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,248 @@
|
|
|
1
|
+
import { ActorRef, ListResp, LiteralOrExpression, ResourceListItemBase, ResourceMetadata, VersionType } from './base';
|
|
2
|
+
import type { AssetResource } from './asset';
|
|
3
|
+
import type { JsonataFunctionResource } from './jsonata-function';
|
|
4
|
+
import type { SchemaResource } from './schema';
|
|
5
|
+
import { FunctionDependency } from './jsonata-function';
|
|
6
|
+
export interface TemplateResource {
|
|
7
|
+
metadata: ResourceMetadata;
|
|
8
|
+
spec: TemplateSpec;
|
|
9
|
+
}
|
|
10
|
+
export interface TemplateSpec {
|
|
11
|
+
type: TemplateType;
|
|
12
|
+
contentKey?: string;
|
|
13
|
+
contentVersion?: string;
|
|
14
|
+
data?: HtmlDataConfig;
|
|
15
|
+
fields?: TemplateFieldInfo[];
|
|
16
|
+
inputs?: Input[];
|
|
17
|
+
roles?: TemplateRole[];
|
|
18
|
+
functions?: FunctionDependency[];
|
|
19
|
+
}
|
|
20
|
+
export interface Input {
|
|
21
|
+
key: string;
|
|
22
|
+
name?: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
schemaKey: string;
|
|
25
|
+
schemaVersion: string;
|
|
26
|
+
required: LiteralOrExpression<boolean>;
|
|
27
|
+
}
|
|
28
|
+
export interface TemplateFieldInfo {
|
|
29
|
+
key: string;
|
|
30
|
+
type: FieldType;
|
|
31
|
+
value?: LiteralOrExpression<string | number | boolean | Date>;
|
|
32
|
+
includeIf?: string;
|
|
33
|
+
widgets: FieldWidgetInfo[];
|
|
34
|
+
role?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface HtmlDataConfig {
|
|
37
|
+
transform: string;
|
|
38
|
+
}
|
|
39
|
+
export interface OverlayField {
|
|
40
|
+
key: string;
|
|
41
|
+
type: FieldType;
|
|
42
|
+
widgets?: FieldWidgetInfo[];
|
|
43
|
+
includeIf?: string;
|
|
44
|
+
value?: LiteralOrExpression<string | number | boolean | Date>;
|
|
45
|
+
assignment?: {
|
|
46
|
+
roleKey?: string;
|
|
47
|
+
assignedToStepKey?: string;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export interface FieldWidgetInfo {
|
|
51
|
+
position?: FieldPosition;
|
|
52
|
+
dimensions?: {
|
|
53
|
+
width: number;
|
|
54
|
+
height: number;
|
|
55
|
+
};
|
|
56
|
+
style?: {
|
|
57
|
+
fontSizePx?: number;
|
|
58
|
+
fontColor?: string;
|
|
59
|
+
fontFamily?: string;
|
|
60
|
+
strokeWidth?: number;
|
|
61
|
+
strokeColor?: string;
|
|
62
|
+
};
|
|
63
|
+
rotationDegree?: number;
|
|
64
|
+
}
|
|
65
|
+
export interface FieldValue {
|
|
66
|
+
text?: string;
|
|
67
|
+
checked?: boolean;
|
|
68
|
+
selections?: string[];
|
|
69
|
+
fileId?: string;
|
|
70
|
+
localImagePath?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface FieldPosition {
|
|
73
|
+
pageNumber: number;
|
|
74
|
+
x: number;
|
|
75
|
+
y: number;
|
|
76
|
+
}
|
|
77
|
+
export declare enum PDFFormFieldType {
|
|
78
|
+
PDFTextField = "PDFTextField",
|
|
79
|
+
PDFCheckBox = "PDFCheckBox",
|
|
80
|
+
PDFImage = "PDFImage",
|
|
81
|
+
PDFLine = "PDFLine"
|
|
82
|
+
}
|
|
83
|
+
export declare enum TabType {
|
|
84
|
+
SignHere = "SignHere",
|
|
85
|
+
InitialHere = "InitialHere",
|
|
86
|
+
DateSigned = "DateSigned"
|
|
87
|
+
}
|
|
88
|
+
export declare enum FieldType {
|
|
89
|
+
TextField = "text_field",
|
|
90
|
+
CheckBox = "check_box",
|
|
91
|
+
Image = "image",
|
|
92
|
+
Line = "line",
|
|
93
|
+
Signature = "signature",
|
|
94
|
+
Initial = "initial",
|
|
95
|
+
SignedDate = "signed_date"
|
|
96
|
+
}
|
|
97
|
+
export declare enum TemplateType {
|
|
98
|
+
PDF = "pdf",
|
|
99
|
+
HTML = "html"
|
|
100
|
+
}
|
|
101
|
+
export interface RoleOutput {
|
|
102
|
+
schemaKey: string;
|
|
103
|
+
schemaVersion: string;
|
|
104
|
+
transform: string;
|
|
105
|
+
}
|
|
106
|
+
export interface TemplateRole {
|
|
107
|
+
key: string;
|
|
108
|
+
name?: string;
|
|
109
|
+
roleCategory?: string;
|
|
110
|
+
output?: RoleOutput;
|
|
111
|
+
}
|
|
112
|
+
export interface AssetReference {
|
|
113
|
+
key: string;
|
|
114
|
+
version: string;
|
|
115
|
+
}
|
|
116
|
+
export interface PartialReference extends AssetReference {
|
|
117
|
+
content?: string;
|
|
118
|
+
}
|
|
119
|
+
export interface StyleReference extends AssetReference {
|
|
120
|
+
content?: string;
|
|
121
|
+
}
|
|
122
|
+
export interface ListTemplatesReq {
|
|
123
|
+
search?: string;
|
|
124
|
+
limit?: number;
|
|
125
|
+
offset?: number;
|
|
126
|
+
skipDraft?: boolean;
|
|
127
|
+
labels?: Record<string, string>;
|
|
128
|
+
}
|
|
129
|
+
export type ListTemplatesResp = ListResp<TemplateListItem>;
|
|
130
|
+
export type ListTemplateVersionsResp = ListResp<TemplateListItem>;
|
|
131
|
+
export interface TemplateListItem extends ResourceListItemBase {
|
|
132
|
+
spec: {
|
|
133
|
+
inputs?: Input[];
|
|
134
|
+
roles?: {
|
|
135
|
+
key: string;
|
|
136
|
+
name?: string;
|
|
137
|
+
roleCategory?: string;
|
|
138
|
+
output?: {
|
|
139
|
+
schemaKey: string;
|
|
140
|
+
schemaVersion: string;
|
|
141
|
+
};
|
|
142
|
+
}[];
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Full template — returned by `GET /templates/{key}`, `POST /templates`,
|
|
147
|
+
* `PUT .../versions/draft`, and `POST .../versions/draft/publish`. The
|
|
148
|
+
* optimistic-locking handle is returned in the HTTP `ETag` response header
|
|
149
|
+
* (RFC 7232) — pass it back as `If-Match` on the next `PUT` / `DELETE`.
|
|
150
|
+
*/
|
|
151
|
+
export interface TemplateResp extends TemplateResource {
|
|
152
|
+
createdAt: Date;
|
|
153
|
+
updatedAt: Date;
|
|
154
|
+
createdBy: ActorRef;
|
|
155
|
+
publishedAt?: Date;
|
|
156
|
+
publishedBy?: ActorRef;
|
|
157
|
+
contentHash?: string;
|
|
158
|
+
}
|
|
159
|
+
export interface BatchGetTemplatesReq {
|
|
160
|
+
identifiers: {
|
|
161
|
+
key: string;
|
|
162
|
+
version?: string;
|
|
163
|
+
}[];
|
|
164
|
+
}
|
|
165
|
+
export interface BatchGetTemplateItem extends TemplateResp {
|
|
166
|
+
_eTag?: string;
|
|
167
|
+
}
|
|
168
|
+
export interface BatchGetTemplatesResp {
|
|
169
|
+
data: BatchGetTemplateItem[];
|
|
170
|
+
}
|
|
171
|
+
export interface CreateTemplateReq {
|
|
172
|
+
apiVersion?: string;
|
|
173
|
+
metadata: ResourceMetadata;
|
|
174
|
+
spec: TemplateSpec;
|
|
175
|
+
}
|
|
176
|
+
export interface UpdateTemplateReq {
|
|
177
|
+
metadata: ResourceMetadata;
|
|
178
|
+
spec: TemplateSpec;
|
|
179
|
+
}
|
|
180
|
+
export interface PublishTemplateReq {
|
|
181
|
+
versionType?: VersionType;
|
|
182
|
+
version?: string;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Unified request for template rendering: POST /templates/render
|
|
186
|
+
*
|
|
187
|
+
* @public-api-shape
|
|
188
|
+
* The PUBLIC API surface for this endpoint exposes ONLY the body-based
|
|
189
|
+
* reference flow: `{ templateKey, templateVersion?, entities, options }`.
|
|
190
|
+
* The `inlineResources` and `options.inlineOnly` fields are for internal
|
|
191
|
+
* surfaces only (CLI preview from local YAML, Studio scratch renders before
|
|
192
|
+
* push). DO NOT document them in `openapi.json`, public API references,
|
|
193
|
+
* user guides, SDK examples, or LLM-generated content.
|
|
194
|
+
*
|
|
195
|
+
* If you need to expose inline rendering publicly in the future, that should
|
|
196
|
+
* be a deliberate product decision, not an incidental documentation update.
|
|
197
|
+
*/
|
|
198
|
+
export interface RenderTemplateReq {
|
|
199
|
+
/** Reference an existing template by key. Required when not using `inlineResources.template`. */
|
|
200
|
+
templateKey?: string;
|
|
201
|
+
/** Specific version of the referenced template. Defaults to latest published. */
|
|
202
|
+
templateVersion?: string;
|
|
203
|
+
inlineResources?: {
|
|
204
|
+
template?: TemplateResource;
|
|
205
|
+
assets?: AssetResource[];
|
|
206
|
+
functions?: JsonataFunctionResource[];
|
|
207
|
+
schemas?: SchemaResource[];
|
|
208
|
+
inlineOnly?: boolean;
|
|
209
|
+
};
|
|
210
|
+
entities?: {
|
|
211
|
+
inputKey: string;
|
|
212
|
+
data: Record<string, any>;
|
|
213
|
+
}[];
|
|
214
|
+
options?: {
|
|
215
|
+
skipSignatureFields?: boolean;
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
export interface RenderTemplateResp {
|
|
219
|
+
/**
|
|
220
|
+
* Short-lived URL to download the rendered PDF directly.
|
|
221
|
+
* The render output is a temporary preview, not a persisted resource —
|
|
222
|
+
* download via this URL or re-render. Do not store as a long-lived reference.
|
|
223
|
+
*/
|
|
224
|
+
signedUrl: string;
|
|
225
|
+
detectedFields?: TemplateFieldInfo[];
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Immediate response of `POST /templates/render` under the async contract:
|
|
229
|
+
* the job is accepted and runs in the background. Callers poll
|
|
230
|
+
* `GET …/render-jobs/:jobId` until terminal, then read the
|
|
231
|
+
* `RenderTemplateResp` off `GetRenderJobResp.result`. FE/CLI clients do
|
|
232
|
+
* this transparently and still resolve `RenderTemplateResp` to app code.
|
|
233
|
+
*/
|
|
234
|
+
export interface RenderTemplateAcceptedResp {
|
|
235
|
+
jobId: string;
|
|
236
|
+
}
|
|
237
|
+
export interface AutoGeneratedFieldByAi {
|
|
238
|
+
key: string;
|
|
239
|
+
type: FieldType;
|
|
240
|
+
pageNumber: number;
|
|
241
|
+
}
|
|
242
|
+
export interface AutoGenerateFieldsReq {
|
|
243
|
+
fileId: string;
|
|
244
|
+
}
|
|
245
|
+
export interface AutoGenerateFieldsResp {
|
|
246
|
+
source: 'ai' | 'pdf';
|
|
247
|
+
extractedFields: TemplateFieldInfo[] | AutoGeneratedFieldByAi[];
|
|
248
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TemplateType = exports.FieldType = exports.TabType = exports.PDFFormFieldType = void 0;
|
|
4
|
+
var PDFFormFieldType;
|
|
5
|
+
(function (PDFFormFieldType) {
|
|
6
|
+
PDFFormFieldType["PDFTextField"] = "PDFTextField";
|
|
7
|
+
PDFFormFieldType["PDFCheckBox"] = "PDFCheckBox";
|
|
8
|
+
PDFFormFieldType["PDFImage"] = "PDFImage";
|
|
9
|
+
PDFFormFieldType["PDFLine"] = "PDFLine";
|
|
10
|
+
})(PDFFormFieldType || (exports.PDFFormFieldType = PDFFormFieldType = {}));
|
|
11
|
+
var TabType;
|
|
12
|
+
(function (TabType) {
|
|
13
|
+
TabType["SignHere"] = "SignHere";
|
|
14
|
+
TabType["InitialHere"] = "InitialHere";
|
|
15
|
+
TabType["DateSigned"] = "DateSigned";
|
|
16
|
+
})(TabType || (exports.TabType = TabType = {}));
|
|
17
|
+
var FieldType;
|
|
18
|
+
(function (FieldType) {
|
|
19
|
+
FieldType["TextField"] = "text_field";
|
|
20
|
+
FieldType["CheckBox"] = "check_box";
|
|
21
|
+
FieldType["Image"] = "image";
|
|
22
|
+
FieldType["Line"] = "line";
|
|
23
|
+
FieldType["Signature"] = "signature";
|
|
24
|
+
FieldType["Initial"] = "initial";
|
|
25
|
+
FieldType["SignedDate"] = "signed_date";
|
|
26
|
+
})(FieldType || (exports.FieldType = FieldType = {}));
|
|
27
|
+
var TemplateType;
|
|
28
|
+
(function (TemplateType) {
|
|
29
|
+
TemplateType["PDF"] = "pdf";
|
|
30
|
+
TemplateType["HTML"] = "html";
|
|
31
|
+
})(TemplateType || (exports.TemplateType = TemplateType = {}));
|
|
32
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../../../../../libs/signstack/base/src/lib/models/template.ts"],"names":[],"mappings":";;;AA8FA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,+CAA2B,CAAA;IAC3B,yCAAqB,CAAA;IACrB,uCAAmB,CAAA;AACrB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,gCAAqB,CAAA;IACrB,sCAA2B,CAAA;IAC3B,oCAAyB,CAAA;AAC3B,CAAC,EAJW,OAAO,uBAAP,OAAO,QAIlB;AAED,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,qCAAwB,CAAA;IACxB,mCAAsB,CAAA;IACtB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,oCAAuB,CAAA;IACvB,gCAAmB,CAAA;IACnB,uCAA0B,CAAA;AAC5B,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,6BAAa,CAAA;AACf,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { OrganizationRole } from '@signstack/base';
|
|
2
|
+
export interface AddNewSignstackUserReq {
|
|
3
|
+
firebaseToken: string;
|
|
4
|
+
firstName: string;
|
|
5
|
+
lastName: string;
|
|
6
|
+
}
|
|
7
|
+
export interface AddNewSignstackUserResp {
|
|
8
|
+
uid: string;
|
|
9
|
+
orgId: string;
|
|
10
|
+
}
|
|
11
|
+
export interface GetSignstackUserInfoResp {
|
|
12
|
+
uid: string;
|
|
13
|
+
firstName: string;
|
|
14
|
+
lastName: string;
|
|
15
|
+
email: string;
|
|
16
|
+
isEmailVerified: boolean;
|
|
17
|
+
orgs: {
|
|
18
|
+
orgId: string;
|
|
19
|
+
roles: OrganizationRole[];
|
|
20
|
+
}[];
|
|
21
|
+
}
|
|
22
|
+
export interface SignstackUserExistsResp {
|
|
23
|
+
uidExists: boolean;
|
|
24
|
+
emailExists: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface UpdateUserReq {
|
|
27
|
+
firstName?: string;
|
|
28
|
+
lastName?: string;
|
|
29
|
+
}
|
|
30
|
+
export type UpdateUserResp = GetSignstackUserInfoResp;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../../../../../libs/signstack/base/src/lib/models/user.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import type { ListResp } from './base';
|
|
2
|
+
/**
|
|
3
|
+
* Per-namespace cap on **active** webhook endpoints. Paused endpoints
|
|
4
|
+
* (`isActive: false`) and soft-deleted endpoints do NOT count — only
|
|
5
|
+
* endpoints that would actually fire events do. Pausing is therefore a
|
|
6
|
+
* legitimate way to free up a slot without losing the endpoint. Backend
|
|
7
|
+
* enforces this at create time and returns `409 Conflict` if breached.
|
|
8
|
+
* Studio uses it to disable the "Add webhook" button when at the cap.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MAX_WEBHOOKS_PER_NAMESPACE = 4;
|
|
11
|
+
export declare enum WebhookEventType {
|
|
12
|
+
WorkflowStarted = "workflow.started",
|
|
13
|
+
WorkflowFailed = "workflow.failed",
|
|
14
|
+
WorkflowCompleted = "workflow.completed",
|
|
15
|
+
WorkflowDeclined = "workflow.declined",
|
|
16
|
+
WorkflowVoided = "workflow.voided",
|
|
17
|
+
StepStarted = "step.started",
|
|
18
|
+
StepFailed = "step.failed",
|
|
19
|
+
StepCompleted = "step.completed",
|
|
20
|
+
ParticipantTaskAssigned = "participant.task_assigned",
|
|
21
|
+
ParticipantEmailSent = "participant.email_sent",
|
|
22
|
+
ParticipantTaskViewed = "participant.task_viewed",
|
|
23
|
+
ParticipantSigningCompleted = "participant.signing_completed",
|
|
24
|
+
ParticipantSigningDeclined = "participant.signing_declined",
|
|
25
|
+
EnvelopeSent = "envelope.sent",
|
|
26
|
+
EnvelopeCompleted = "envelope.completed",
|
|
27
|
+
EnvelopeVoided = "envelope.voided"
|
|
28
|
+
}
|
|
29
|
+
export declare enum WebhookDeliveryStatus {
|
|
30
|
+
Pending = "pending",
|
|
31
|
+
Success = "success",
|
|
32
|
+
Failed = "failed"
|
|
33
|
+
}
|
|
34
|
+
export interface WebhookRetryConfig {
|
|
35
|
+
maxAttempts: number;
|
|
36
|
+
maxRetryDuration: number;
|
|
37
|
+
minBackoff: number;
|
|
38
|
+
maxBackoff: number;
|
|
39
|
+
maxDoublings: number;
|
|
40
|
+
backoffStrategy: 'exponential' | 'linear' | 'constant';
|
|
41
|
+
jitter: 'full' | 'none';
|
|
42
|
+
}
|
|
43
|
+
export interface CreateWebhookEndpointReq {
|
|
44
|
+
url: string;
|
|
45
|
+
eventTypes: WebhookEventType[];
|
|
46
|
+
description?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface UpdateWebhookEndpointReq {
|
|
49
|
+
url?: string;
|
|
50
|
+
eventTypes?: WebhookEventType[];
|
|
51
|
+
description?: string;
|
|
52
|
+
isActive?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export interface WebhookEndpointResp {
|
|
55
|
+
/** Prefixed lowercase ULID, e.g. `we_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
56
|
+
id: string;
|
|
57
|
+
url: string;
|
|
58
|
+
eventTypes: WebhookEventType[];
|
|
59
|
+
isActive: boolean;
|
|
60
|
+
description?: string;
|
|
61
|
+
retryConfig: WebhookRetryConfig;
|
|
62
|
+
createdAt: Date;
|
|
63
|
+
updatedAt: Date;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Webhook endpoint list item — carries `_eTag` per item since list responses
|
|
67
|
+
* cannot multiplex `ETag` headers across items. Pass back as `If-Match` on a
|
|
68
|
+
* subsequent `PATCH /webhook-endpoints/{id}` to enable optimistic concurrency.
|
|
69
|
+
*/
|
|
70
|
+
export interface WebhookEndpointListItem extends WebhookEndpointResp {
|
|
71
|
+
_eTag: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Returned only by `POST /webhook-endpoints`. The signing `secret` is shown
|
|
75
|
+
* once at create time and never again — store it immediately. To rotate
|
|
76
|
+
* (e.g. on suspected leak) call `POST /webhook-endpoints/{id}/rotate-secret`,
|
|
77
|
+
* which keeps the previous secret valid alongside the new one for a
|
|
78
|
+
* configurable grace window so consumers can roll their verification code
|
|
79
|
+
* forward without dropped events.
|
|
80
|
+
*/
|
|
81
|
+
export interface CreateWebhookEndpointResp extends WebhookEndpointResp {
|
|
82
|
+
secret: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Grace period during which the previous signing secret stays valid for
|
|
86
|
+
* verification alongside the newly issued one. Outbound webhook deliveries
|
|
87
|
+
* are signed with **both** secrets during the grace window — customers can
|
|
88
|
+
* keep verifying with their old stored secret while they redeploy with the
|
|
89
|
+
* new one. After the grace expires, only the new secret is valid.
|
|
90
|
+
*
|
|
91
|
+
* Use `immediate` only for compromised secrets where the old one must be
|
|
92
|
+
* killed at once — accept that any deliveries in flight that the customer's
|
|
93
|
+
* server hasn't yet verified will fail.
|
|
94
|
+
*/
|
|
95
|
+
export declare enum WebhookSecretGracePeriod {
|
|
96
|
+
Immediate = "immediate",
|
|
97
|
+
H24 = "24h",
|
|
98
|
+
H48 = "48h",
|
|
99
|
+
D7 = "7d",
|
|
100
|
+
D14 = "14d",
|
|
101
|
+
D30 = "30d"
|
|
102
|
+
}
|
|
103
|
+
export interface RotateWebhookSecretReq {
|
|
104
|
+
/** Defaults to `'24h'`. */
|
|
105
|
+
gracePeriod?: WebhookSecretGracePeriod;
|
|
106
|
+
}
|
|
107
|
+
export interface RotateWebhookSecretResp {
|
|
108
|
+
/**
|
|
109
|
+
* The newly generated signing secret. Returned ONCE — store it
|
|
110
|
+
* immediately. Outbound deliveries are signed with this secret going
|
|
111
|
+
* forward (and additionally with the previous secret until the grace
|
|
112
|
+
* period expires).
|
|
113
|
+
*/
|
|
114
|
+
secret: string;
|
|
115
|
+
/**
|
|
116
|
+
* When the previous secret stops being valid. Absent when
|
|
117
|
+
* `gracePeriod: 'immediate'` was supplied (the previous secret is dead
|
|
118
|
+
* the moment this response is returned). During the grace window,
|
|
119
|
+
* webhook delivery headers carry signatures from both the old and new
|
|
120
|
+
* secrets — verification with either passes.
|
|
121
|
+
*/
|
|
122
|
+
previousSecretExpiresAt?: Date;
|
|
123
|
+
}
|
|
124
|
+
export interface WebhookDeliveryAttemptResp {
|
|
125
|
+
attemptNumber: number;
|
|
126
|
+
attemptedAt: Date;
|
|
127
|
+
responseStatus?: number;
|
|
128
|
+
responseBody?: string;
|
|
129
|
+
errorMessage?: string;
|
|
130
|
+
duration?: number;
|
|
131
|
+
}
|
|
132
|
+
export interface WebhookDeliveryResp {
|
|
133
|
+
/** Prefixed lowercase ULID, e.g. `wd_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
134
|
+
id: string;
|
|
135
|
+
/** Prefixed lowercase ULID, e.g. `we_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
136
|
+
webhookEndpointId: string;
|
|
137
|
+
eventType: WebhookEventType;
|
|
138
|
+
/** Prefixed lowercase ULID, e.g. `evt_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
139
|
+
eventId: string;
|
|
140
|
+
payload: any;
|
|
141
|
+
status: string;
|
|
142
|
+
attempts: WebhookDeliveryAttemptResp[];
|
|
143
|
+
nextRetryAt?: Date;
|
|
144
|
+
/** Prefixed lowercase ULID, e.g. `wf_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
145
|
+
workflowId?: string;
|
|
146
|
+
stepKey?: string;
|
|
147
|
+
envelopeKey?: string;
|
|
148
|
+
participantEmail?: string;
|
|
149
|
+
createdAt: Date;
|
|
150
|
+
updatedAt: Date;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Trimmed delivery shape returned by `GET /webhook-deliveries` and other list
|
|
154
|
+
* endpoints. Drops the full `payload` envelope and the per-attempt detail
|
|
155
|
+
* (response body, error message). Fetch `GET /webhook-deliveries/{id}` for
|
|
156
|
+
* the full `WebhookDeliveryResp` when you need to drill in.
|
|
157
|
+
*/
|
|
158
|
+
export interface WebhookDeliveryListItem {
|
|
159
|
+
/** Prefixed lowercase ULID, e.g. `wd_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
160
|
+
id: string;
|
|
161
|
+
/** Prefixed lowercase ULID, e.g. `we_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
162
|
+
webhookEndpointId: string;
|
|
163
|
+
eventType: WebhookEventType;
|
|
164
|
+
/** Prefixed lowercase ULID, e.g. `evt_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
165
|
+
eventId: string;
|
|
166
|
+
status: string;
|
|
167
|
+
/** Number of attempts made so far (length of the underlying `attempts` array). */
|
|
168
|
+
attemptCount: number;
|
|
169
|
+
/** Summary of the most recent attempt — absent when no attempt has run yet. */
|
|
170
|
+
lastAttempt?: {
|
|
171
|
+
attemptedAt: Date;
|
|
172
|
+
responseStatus?: number;
|
|
173
|
+
errorMessage?: string;
|
|
174
|
+
};
|
|
175
|
+
nextRetryAt?: Date;
|
|
176
|
+
/** Prefixed lowercase ULID, e.g. `wf_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
177
|
+
workflowId?: string;
|
|
178
|
+
stepKey?: string;
|
|
179
|
+
envelopeKey?: string;
|
|
180
|
+
participantEmail?: string;
|
|
181
|
+
createdAt: Date;
|
|
182
|
+
updatedAt: Date;
|
|
183
|
+
}
|
|
184
|
+
export type ListWebhookEndpointsResp = ListResp<WebhookEndpointListItem>;
|
|
185
|
+
export type ListWebhookDeliveriesResp = ListResp<WebhookDeliveryListItem>;
|
|
186
|
+
/**
|
|
187
|
+
* Stable identifier for the webhook payload schema. Bumped when the shape of
|
|
188
|
+
* `data` for any event type, or the envelope itself, changes in a
|
|
189
|
+
* backwards-incompatible way. Consumers should branch on this field when
|
|
190
|
+
* parsing — never rely on field presence alone. Today's value is `'1'`; new
|
|
191
|
+
* versions will be added as needed and old payloads will keep flowing under
|
|
192
|
+
* their original version.
|
|
193
|
+
*/
|
|
194
|
+
export type WebhookPayloadVersion = '1';
|
|
195
|
+
export interface WebhookPayload {
|
|
196
|
+
/**
|
|
197
|
+
* Schema version of this payload. See `WebhookPayloadVersion`. Always
|
|
198
|
+
* present, always a literal string — branch on this in your handler
|
|
199
|
+
* before reading `data` so future schema changes don't silently break
|
|
200
|
+
* you.
|
|
201
|
+
*/
|
|
202
|
+
apiVersion: WebhookPayloadVersion;
|
|
203
|
+
eventType: WebhookEventType;
|
|
204
|
+
/** Prefixed lowercase ULID, e.g. `evt_01jv8m7qfj6xj9gkz7a4s2h8e`. */
|
|
205
|
+
eventId: string;
|
|
206
|
+
timestamp: string;
|
|
207
|
+
/**
|
|
208
|
+
* Org / namespace scope of the event. The webhook endpoint that fired
|
|
209
|
+
* this delivery was registered in this `(orgId, namespaceKey)`. Use for
|
|
210
|
+
* routing on the consumer side when a single handler URL receives events
|
|
211
|
+
* from multiple namespaces.
|
|
212
|
+
*
|
|
213
|
+
* Prefixed lowercase ULID, e.g. `org_01jv8m7qfj6xj9gkz7a4s2h8e`.
|
|
214
|
+
*/
|
|
215
|
+
orgId: string;
|
|
216
|
+
namespaceKey: string;
|
|
217
|
+
/**
|
|
218
|
+
* Namespace mode. Critical safety signal — branch on this to make sure
|
|
219
|
+
* test workflows never write to your production systems.
|
|
220
|
+
*/
|
|
221
|
+
mode: 'test' | 'live';
|
|
222
|
+
data: Record<string, any>;
|
|
223
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebhookSecretGracePeriod = exports.WebhookDeliveryStatus = exports.WebhookEventType = exports.MAX_WEBHOOKS_PER_NAMESPACE = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Per-namespace cap on **active** webhook endpoints. Paused endpoints
|
|
6
|
+
* (`isActive: false`) and soft-deleted endpoints do NOT count — only
|
|
7
|
+
* endpoints that would actually fire events do. Pausing is therefore a
|
|
8
|
+
* legitimate way to free up a slot without losing the endpoint. Backend
|
|
9
|
+
* enforces this at create time and returns `409 Conflict` if breached.
|
|
10
|
+
* Studio uses it to disable the "Add webhook" button when at the cap.
|
|
11
|
+
*/
|
|
12
|
+
exports.MAX_WEBHOOKS_PER_NAMESPACE = 4;
|
|
13
|
+
var WebhookEventType;
|
|
14
|
+
(function (WebhookEventType) {
|
|
15
|
+
// Workflow events
|
|
16
|
+
WebhookEventType["WorkflowStarted"] = "workflow.started";
|
|
17
|
+
WebhookEventType["WorkflowFailed"] = "workflow.failed";
|
|
18
|
+
WebhookEventType["WorkflowCompleted"] = "workflow.completed";
|
|
19
|
+
WebhookEventType["WorkflowDeclined"] = "workflow.declined";
|
|
20
|
+
WebhookEventType["WorkflowVoided"] = "workflow.voided";
|
|
21
|
+
// Step events
|
|
22
|
+
WebhookEventType["StepStarted"] = "step.started";
|
|
23
|
+
WebhookEventType["StepFailed"] = "step.failed";
|
|
24
|
+
WebhookEventType["StepCompleted"] = "step.completed";
|
|
25
|
+
// Participant events
|
|
26
|
+
WebhookEventType["ParticipantTaskAssigned"] = "participant.task_assigned";
|
|
27
|
+
WebhookEventType["ParticipantEmailSent"] = "participant.email_sent";
|
|
28
|
+
WebhookEventType["ParticipantTaskViewed"] = "participant.task_viewed";
|
|
29
|
+
WebhookEventType["ParticipantSigningCompleted"] = "participant.signing_completed";
|
|
30
|
+
WebhookEventType["ParticipantSigningDeclined"] = "participant.signing_declined";
|
|
31
|
+
// Envelope events
|
|
32
|
+
WebhookEventType["EnvelopeSent"] = "envelope.sent";
|
|
33
|
+
WebhookEventType["EnvelopeCompleted"] = "envelope.completed";
|
|
34
|
+
WebhookEventType["EnvelopeVoided"] = "envelope.voided";
|
|
35
|
+
})(WebhookEventType || (exports.WebhookEventType = WebhookEventType = {}));
|
|
36
|
+
var WebhookDeliveryStatus;
|
|
37
|
+
(function (WebhookDeliveryStatus) {
|
|
38
|
+
WebhookDeliveryStatus["Pending"] = "pending";
|
|
39
|
+
WebhookDeliveryStatus["Success"] = "success";
|
|
40
|
+
WebhookDeliveryStatus["Failed"] = "failed";
|
|
41
|
+
})(WebhookDeliveryStatus || (exports.WebhookDeliveryStatus = WebhookDeliveryStatus = {}));
|
|
42
|
+
/**
|
|
43
|
+
* Grace period during which the previous signing secret stays valid for
|
|
44
|
+
* verification alongside the newly issued one. Outbound webhook deliveries
|
|
45
|
+
* are signed with **both** secrets during the grace window — customers can
|
|
46
|
+
* keep verifying with their old stored secret while they redeploy with the
|
|
47
|
+
* new one. After the grace expires, only the new secret is valid.
|
|
48
|
+
*
|
|
49
|
+
* Use `immediate` only for compromised secrets where the old one must be
|
|
50
|
+
* killed at once — accept that any deliveries in flight that the customer's
|
|
51
|
+
* server hasn't yet verified will fail.
|
|
52
|
+
*/
|
|
53
|
+
var WebhookSecretGracePeriod;
|
|
54
|
+
(function (WebhookSecretGracePeriod) {
|
|
55
|
+
WebhookSecretGracePeriod["Immediate"] = "immediate";
|
|
56
|
+
WebhookSecretGracePeriod["H24"] = "24h";
|
|
57
|
+
WebhookSecretGracePeriod["H48"] = "48h";
|
|
58
|
+
WebhookSecretGracePeriod["D7"] = "7d";
|
|
59
|
+
WebhookSecretGracePeriod["D14"] = "14d";
|
|
60
|
+
WebhookSecretGracePeriod["D30"] = "30d";
|
|
61
|
+
})(WebhookSecretGracePeriod || (exports.WebhookSecretGracePeriod = WebhookSecretGracePeriod = {}));
|
|
62
|
+
//# sourceMappingURL=webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../../../../../../../libs/signstack/base/src/lib/models/webhook.ts"],"names":[],"mappings":";;;AAEA;;;;;;;GAOG;AACU,QAAA,0BAA0B,GAAG,CAAC,CAAC;AAE5C,IAAY,gBAwBX;AAxBD,WAAY,gBAAgB;IAC1B,kBAAkB;IAClB,wDAAoC,CAAA;IACpC,sDAAkC,CAAA;IAClC,4DAAwC,CAAA;IACxC,0DAAsC,CAAA;IACtC,sDAAkC,CAAA;IAElC,cAAc;IACd,gDAA4B,CAAA;IAC5B,8CAA0B,CAAA;IAC1B,oDAAgC,CAAA;IAEhC,qBAAqB;IACrB,yEAAqD,CAAA;IACrD,mEAA+C,CAAA;IAC/C,qEAAiD,CAAA;IACjD,iFAA6D,CAAA;IAC7D,+EAA2D,CAAA;IAE3D,kBAAkB;IAClB,kDAA8B,CAAA;IAC9B,4DAAwC,CAAA;IACxC,sDAAkC,CAAA;AACpC,CAAC,EAxBW,gBAAgB,gCAAhB,gBAAgB,QAwB3B;AAED,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;AACnB,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AA4DD;;;;;;;;;;GAUG;AACH,IAAY,wBAOX;AAPD,WAAY,wBAAwB;IAClC,mDAAuB,CAAA;IACvB,uCAAW,CAAA;IACX,uCAAW,CAAA;IACX,qCAAS,CAAA;IACT,uCAAW,CAAA;IACX,uCAAW,CAAA;AACb,CAAC,EAPW,wBAAwB,wCAAxB,wBAAwB,QAOnC"}
|