@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,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a phone number string to a number string. This function removes all non-digit characters from the phone number string.
|
|
3
|
+
*
|
|
4
|
+
* @param phoneNumber The phone number string to convert.
|
|
5
|
+
*
|
|
6
|
+
* @returns The converted phone number string.
|
|
7
|
+
*/
|
|
8
|
+
export declare const convertToNumberString: (phoneNumber: string) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Format a phone number string to a standard format '+1 (XXX) XXX-XXXX'.
|
|
11
|
+
*
|
|
12
|
+
* @param phoneNumber The phone number string to format.
|
|
13
|
+
*
|
|
14
|
+
* @returns The formatted phone number string.
|
|
15
|
+
*/
|
|
16
|
+
export declare const formatPhoneNumber: (phoneNumber: string, addCountryCode?: boolean) => string;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatPhoneNumber = exports.convertToNumberString = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Convert a phone number string to a number string. This function removes all non-digit characters from the phone number string.
|
|
6
|
+
*
|
|
7
|
+
* @param phoneNumber The phone number string to convert.
|
|
8
|
+
*
|
|
9
|
+
* @returns The converted phone number string.
|
|
10
|
+
*/
|
|
11
|
+
const convertToNumberString = (phoneNumber) => {
|
|
12
|
+
if (!phoneNumber) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
// Remove all non-digit characters from the phone number string
|
|
16
|
+
const cleanedNumber = phoneNumber.replace(/\D/g, '');
|
|
17
|
+
// Remove the country code (assuming it starts with '1')
|
|
18
|
+
const numberWithoutCountryCode = cleanedNumber.startsWith('1') && cleanedNumber.length > 10
|
|
19
|
+
? cleanedNumber.slice(1)
|
|
20
|
+
: cleanedNumber;
|
|
21
|
+
return numberWithoutCountryCode;
|
|
22
|
+
};
|
|
23
|
+
exports.convertToNumberString = convertToNumberString;
|
|
24
|
+
/**
|
|
25
|
+
* Format a phone number string to a standard format '+1 (XXX) XXX-XXXX'.
|
|
26
|
+
*
|
|
27
|
+
* @param phoneNumber The phone number string to format.
|
|
28
|
+
*
|
|
29
|
+
* @returns The formatted phone number string.
|
|
30
|
+
*/
|
|
31
|
+
const formatPhoneNumber = (phoneNumber, addCountryCode = false) => {
|
|
32
|
+
// Handle cases where input is just the country code or country code with space
|
|
33
|
+
if (phoneNumber.trim() === '+1') {
|
|
34
|
+
return '';
|
|
35
|
+
}
|
|
36
|
+
// Step 1: Normalize input by removing all non-digit characters
|
|
37
|
+
const digitsOnly = phoneNumber.replace(/\D/g, '');
|
|
38
|
+
// If after normalization, there are no digits, return an empty string
|
|
39
|
+
if (digitsOnly.length === 0) {
|
|
40
|
+
return '';
|
|
41
|
+
}
|
|
42
|
+
// Step 2: Limit to first 10 digits after country code
|
|
43
|
+
const localNumber = digitsOnly.substring(0, addCountryCode ? 11 : 10);
|
|
44
|
+
let formattedNumber = addCountryCode ? '+1 ' : '';
|
|
45
|
+
// Apply formatting
|
|
46
|
+
for (let i = 0; i < localNumber.length; i++) {
|
|
47
|
+
if (i === 0) {
|
|
48
|
+
formattedNumber += '(';
|
|
49
|
+
}
|
|
50
|
+
else if (i === 3) {
|
|
51
|
+
formattedNumber += ') ';
|
|
52
|
+
}
|
|
53
|
+
else if (i === 6) {
|
|
54
|
+
formattedNumber += '-';
|
|
55
|
+
}
|
|
56
|
+
formattedNumber += localNumber[i];
|
|
57
|
+
}
|
|
58
|
+
return formattedNumber;
|
|
59
|
+
};
|
|
60
|
+
exports.formatPhoneNumber = formatPhoneNumber;
|
|
61
|
+
//# sourceMappingURL=phone-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-util.js","sourceRoot":"","sources":["../../../../../../../../libs/common/base/src/lib/phone-util.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACI,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAU,EAAE;IACnE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+DAA+D;IAC/D,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAErD,wDAAwD;IACxD,MAAM,wBAAwB,GAC5B,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE;QACxD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,aAAa,CAAC;IAEpB,OAAO,wBAAwB,CAAC;AAClC,CAAC,CAAC;AAfW,QAAA,qBAAqB,yBAehC;AAEF;;;;;;GAMG;AACI,MAAM,iBAAiB,GAAG,CAC/B,WAAmB,EACnB,iBAA0B,KAAK,EAC/B,EAAE;IACF,+EAA+E;IAC/E,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+DAA+D;IAC/D,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAElD,sEAAsE;IACtE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,sDAAsD;IACtD,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,IAAI,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAElD,mBAAmB;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,eAAe,IAAI,GAAG,CAAC;QACzB,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,eAAe,IAAI,IAAI,CAAC;QAC1B,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,eAAe,IAAI,GAAG,CAAC;QACzB,CAAC;QACD,eAAe,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAlCW,QAAA,iBAAiB,qBAkC5B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import Ajv from 'ajv';
|
|
2
|
+
export declare enum JsonSchemaDraft {
|
|
3
|
+
DRAFT_2020_12 = "2020-12",
|
|
4
|
+
DRAFT_2019_09 = "2019-09",
|
|
5
|
+
DRAFT_07 = "draft-07",
|
|
6
|
+
DRAFT_06 = "draft-06",
|
|
7
|
+
DRAFT_04 = "draft-04"
|
|
8
|
+
}
|
|
9
|
+
export interface SchemaValidationResult {
|
|
10
|
+
isValid: boolean;
|
|
11
|
+
errors?: any[];
|
|
12
|
+
errorMessage?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface SchemaValidationOptions {
|
|
15
|
+
allErrors?: boolean;
|
|
16
|
+
verbose?: boolean;
|
|
17
|
+
strict?: boolean;
|
|
18
|
+
validateSchema?: boolean;
|
|
19
|
+
addFormats?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function validateSchema(schema: object, draft: JsonSchemaDraft, options?: SchemaValidationOptions): SchemaValidationResult;
|
|
22
|
+
export declare function validateDataAgainstSchema(draft: JsonSchemaDraft, schema: object, data: any, options?: SchemaValidationOptions): SchemaValidationResult;
|
|
23
|
+
export declare function createAjvInstance(draft: JsonSchemaDraft, options?: SchemaValidationOptions): Ajv;
|
|
24
|
+
export declare function getDraftFromSchemaUrl(schemaUrl: string): JsonSchemaDraft | null;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonSchemaDraft = void 0;
|
|
4
|
+
exports.validateSchema = validateSchema;
|
|
5
|
+
exports.validateDataAgainstSchema = validateDataAgainstSchema;
|
|
6
|
+
exports.createAjvInstance = createAjvInstance;
|
|
7
|
+
exports.getDraftFromSchemaUrl = getDraftFromSchemaUrl;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
const ajv_1 = tslib_1.__importDefault(require("ajv"));
|
|
10
|
+
const _2020_1 = tslib_1.__importDefault(require("ajv/dist/2020"));
|
|
11
|
+
const _2019_1 = tslib_1.__importDefault(require("ajv/dist/2019"));
|
|
12
|
+
const ajv_draft_04_1 = tslib_1.__importDefault(require("ajv-draft-04"));
|
|
13
|
+
const ajv_formats_1 = tslib_1.__importDefault(require("ajv-formats"));
|
|
14
|
+
var JsonSchemaDraft;
|
|
15
|
+
(function (JsonSchemaDraft) {
|
|
16
|
+
JsonSchemaDraft["DRAFT_2020_12"] = "2020-12";
|
|
17
|
+
JsonSchemaDraft["DRAFT_2019_09"] = "2019-09";
|
|
18
|
+
JsonSchemaDraft["DRAFT_07"] = "draft-07";
|
|
19
|
+
JsonSchemaDraft["DRAFT_06"] = "draft-06";
|
|
20
|
+
JsonSchemaDraft["DRAFT_04"] = "draft-04";
|
|
21
|
+
})(JsonSchemaDraft || (exports.JsonSchemaDraft = JsonSchemaDraft = {}));
|
|
22
|
+
function validateSchema(schema, draft, options = {}) {
|
|
23
|
+
try {
|
|
24
|
+
const ajv = createAjvInstance(draft, options);
|
|
25
|
+
const isValid = ajv.validateSchema(schema);
|
|
26
|
+
if (!isValid) {
|
|
27
|
+
const errors = ajv.errors || [];
|
|
28
|
+
const errorMessages = errors
|
|
29
|
+
.map((error) => {
|
|
30
|
+
const path = error.instancePath || 'root';
|
|
31
|
+
return `${path}: ${error.message}`;
|
|
32
|
+
})
|
|
33
|
+
.join(', ');
|
|
34
|
+
return {
|
|
35
|
+
isValid: false,
|
|
36
|
+
errors,
|
|
37
|
+
errorMessage: `Invalid JSON Schema for ${draft}: ${errorMessages}`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
isValid: true,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
46
|
+
return {
|
|
47
|
+
isValid: false,
|
|
48
|
+
errorMessage: `Schema validation error: ${errorMessage}`,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function validateDataAgainstSchema(draft, schema, data, options = {}) {
|
|
53
|
+
try {
|
|
54
|
+
const ajv = createAjvInstance(draft, options);
|
|
55
|
+
const validate = ajv.compile(schema);
|
|
56
|
+
const isValid = validate(data);
|
|
57
|
+
if (!isValid) {
|
|
58
|
+
const errors = validate.errors || [];
|
|
59
|
+
const errorMessages = errors
|
|
60
|
+
.map((error) => {
|
|
61
|
+
const path = error.instancePath || 'root';
|
|
62
|
+
const keyword = error.keyword;
|
|
63
|
+
const message = error.message;
|
|
64
|
+
return `${path} (${keyword}): ${message}`;
|
|
65
|
+
})
|
|
66
|
+
.join(', ');
|
|
67
|
+
return {
|
|
68
|
+
isValid: false,
|
|
69
|
+
errors,
|
|
70
|
+
errorMessage: `Data validation failed: ${errorMessages}`,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
isValid: true,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
79
|
+
return {
|
|
80
|
+
isValid: false,
|
|
81
|
+
errorMessage: `Data validation error: ${errorMessage}`,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function createAjvInstance(draft, options = {}) {
|
|
86
|
+
const { allErrors = true, verbose = true, strict = false, validateSchema = true, addFormats: shouldAddFormats = true, } = options;
|
|
87
|
+
let ajv;
|
|
88
|
+
switch (draft) {
|
|
89
|
+
case JsonSchemaDraft.DRAFT_04:
|
|
90
|
+
ajv = new ajv_draft_04_1.default({
|
|
91
|
+
allErrors,
|
|
92
|
+
verbose,
|
|
93
|
+
strict,
|
|
94
|
+
validateSchema,
|
|
95
|
+
});
|
|
96
|
+
break;
|
|
97
|
+
case JsonSchemaDraft.DRAFT_06:
|
|
98
|
+
ajv = new ajv_1.default({
|
|
99
|
+
schemaId: 'id',
|
|
100
|
+
meta: false,
|
|
101
|
+
allErrors,
|
|
102
|
+
verbose,
|
|
103
|
+
strict,
|
|
104
|
+
validateSchema,
|
|
105
|
+
});
|
|
106
|
+
ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json'));
|
|
107
|
+
break;
|
|
108
|
+
case JsonSchemaDraft.DRAFT_07:
|
|
109
|
+
ajv = new ajv_1.default({
|
|
110
|
+
schemaId: '$id',
|
|
111
|
+
allErrors,
|
|
112
|
+
verbose,
|
|
113
|
+
strict,
|
|
114
|
+
validateSchema,
|
|
115
|
+
});
|
|
116
|
+
break;
|
|
117
|
+
case JsonSchemaDraft.DRAFT_2019_09:
|
|
118
|
+
ajv = new _2019_1.default({
|
|
119
|
+
allErrors,
|
|
120
|
+
verbose,
|
|
121
|
+
strict,
|
|
122
|
+
validateSchema,
|
|
123
|
+
});
|
|
124
|
+
break;
|
|
125
|
+
case JsonSchemaDraft.DRAFT_2020_12:
|
|
126
|
+
ajv = new _2020_1.default({
|
|
127
|
+
allErrors,
|
|
128
|
+
verbose,
|
|
129
|
+
strict,
|
|
130
|
+
validateSchema,
|
|
131
|
+
addUsedSchema: false,
|
|
132
|
+
});
|
|
133
|
+
break;
|
|
134
|
+
default:
|
|
135
|
+
throw new Error(`Unsupported JSON Schema draft: ${draft}`);
|
|
136
|
+
}
|
|
137
|
+
if (shouldAddFormats) {
|
|
138
|
+
(0, ajv_formats_1.default)(ajv);
|
|
139
|
+
}
|
|
140
|
+
return ajv;
|
|
141
|
+
}
|
|
142
|
+
function getDraftFromSchemaUrl(schemaUrl) {
|
|
143
|
+
if (schemaUrl.includes('draft-04'))
|
|
144
|
+
return JsonSchemaDraft.DRAFT_04;
|
|
145
|
+
if (schemaUrl.includes('draft-06'))
|
|
146
|
+
return JsonSchemaDraft.DRAFT_06;
|
|
147
|
+
if (schemaUrl.includes('draft-07'))
|
|
148
|
+
return JsonSchemaDraft.DRAFT_07;
|
|
149
|
+
if (schemaUrl.includes('2019-09'))
|
|
150
|
+
return JsonSchemaDraft.DRAFT_2019_09;
|
|
151
|
+
if (schemaUrl.includes('2020-12'))
|
|
152
|
+
return JsonSchemaDraft.DRAFT_2020_12;
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=schema-validation.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validation.util.js","sourceRoot":"","sources":["../../../../../../../../libs/common/base/src/lib/schema-validation.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export declare class StringBuilder {
|
|
2
|
+
private readonly _parts;
|
|
3
|
+
static readonly newLinePlaceholder = "{newline}";
|
|
4
|
+
/**
|
|
5
|
+
* Append a string to the string builder.
|
|
6
|
+
*
|
|
7
|
+
* @param value The value to append.
|
|
8
|
+
*/
|
|
9
|
+
append(value: any): StringBuilder;
|
|
10
|
+
/**
|
|
11
|
+
* Append a formatted string to the string builder.
|
|
12
|
+
*
|
|
13
|
+
* @param value The value to append.
|
|
14
|
+
* @param args The arguments to format the string with.
|
|
15
|
+
*/
|
|
16
|
+
appendFormat(value: any, ...args: any[]): StringBuilder;
|
|
17
|
+
/**
|
|
18
|
+
* Append a line to the string builder.
|
|
19
|
+
*
|
|
20
|
+
* @param value The value to append.
|
|
21
|
+
*/
|
|
22
|
+
appendLine(value?: any): StringBuilder;
|
|
23
|
+
/**
|
|
24
|
+
* Append a formatted line to the string builder.
|
|
25
|
+
*
|
|
26
|
+
* @param value The value to append.
|
|
27
|
+
* @param args The arguments to format the string with.
|
|
28
|
+
*/
|
|
29
|
+
appendLineFormat(value: any, ...args: any[]): StringBuilder;
|
|
30
|
+
/**
|
|
31
|
+
* Clear the string builder.
|
|
32
|
+
*/
|
|
33
|
+
clear(): StringBuilder;
|
|
34
|
+
/**
|
|
35
|
+
* Get the number of parts in the string builder.
|
|
36
|
+
*
|
|
37
|
+
* @returns The number of parts in the string builder.
|
|
38
|
+
*/
|
|
39
|
+
size(): number;
|
|
40
|
+
/**
|
|
41
|
+
* Get the string representation of the string builder.
|
|
42
|
+
*/
|
|
43
|
+
toString(): any;
|
|
44
|
+
/**
|
|
45
|
+
* Get the HTML string representation of the string builder.
|
|
46
|
+
*/
|
|
47
|
+
toHtmlString(useBrTags?: boolean): any;
|
|
48
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringBuilder = void 0;
|
|
4
|
+
class StringBuilder {
|
|
5
|
+
_parts = [];
|
|
6
|
+
static newLinePlaceholder = '{newline}';
|
|
7
|
+
/**
|
|
8
|
+
* Append a string to the string builder.
|
|
9
|
+
*
|
|
10
|
+
* @param value The value to append.
|
|
11
|
+
*/
|
|
12
|
+
append(value) {
|
|
13
|
+
value = typeof value === 'string' ? value : value.toString();
|
|
14
|
+
this._parts.push(value);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Append a formatted string to the string builder.
|
|
19
|
+
*
|
|
20
|
+
* @param value The value to append.
|
|
21
|
+
* @param args The arguments to format the string with.
|
|
22
|
+
*/
|
|
23
|
+
appendFormat(value, ...args) {
|
|
24
|
+
value = typeof value === 'string' ? value : value.toString;
|
|
25
|
+
this._parts.push(value.replace(/{(\d+)}/g, (match, index) => {
|
|
26
|
+
const i = parseInt(index, 10);
|
|
27
|
+
return typeof args[i] !== 'undefined' ? args[i] : match;
|
|
28
|
+
}));
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Append a line to the string builder.
|
|
33
|
+
*
|
|
34
|
+
* @param value The value to append.
|
|
35
|
+
*/
|
|
36
|
+
appendLine(value = '') {
|
|
37
|
+
value = typeof value === 'string' ? value : value.toString;
|
|
38
|
+
this._parts.push(this._parts.length ? StringBuilder.newLinePlaceholder : '', value);
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Append a formatted line to the string builder.
|
|
43
|
+
*
|
|
44
|
+
* @param value The value to append.
|
|
45
|
+
* @param args The arguments to format the string with.
|
|
46
|
+
*/
|
|
47
|
+
appendLineFormat(value, ...args) {
|
|
48
|
+
value = typeof value === 'string' ? value : value.toString();
|
|
49
|
+
this._parts.push(this._parts.length ? StringBuilder.newLinePlaceholder : '', value.replace(/{(\d+)}/g, (match, index) => {
|
|
50
|
+
const i = parseInt(index, 10);
|
|
51
|
+
return typeof args[i] !== 'undefined' ? args[i] : match;
|
|
52
|
+
}));
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Clear the string builder.
|
|
57
|
+
*/
|
|
58
|
+
clear() {
|
|
59
|
+
this._parts.length = 0;
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get the number of parts in the string builder.
|
|
64
|
+
*
|
|
65
|
+
* @returns The number of parts in the string builder.
|
|
66
|
+
*/
|
|
67
|
+
size() {
|
|
68
|
+
return this._parts.length;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get the string representation of the string builder.
|
|
72
|
+
*/
|
|
73
|
+
toString() {
|
|
74
|
+
return this._parts
|
|
75
|
+
.join('')
|
|
76
|
+
.replace(new RegExp(StringBuilder.newLinePlaceholder, 'g'), '\n');
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get the HTML string representation of the string builder.
|
|
80
|
+
*/
|
|
81
|
+
toHtmlString(useBrTags = false) {
|
|
82
|
+
return this._parts
|
|
83
|
+
.join('')
|
|
84
|
+
.replace(new RegExp(StringBuilder.newLinePlaceholder, 'g'), useBrTags
|
|
85
|
+
? '<br>'
|
|
86
|
+
: '<div class="mb-2" style="margin-bottom: 8px;"></div>');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.StringBuilder = StringBuilder;
|
|
90
|
+
//# sourceMappingURL=string-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-builder.js","sourceRoot":"","sources":["../../../../../../../../libs/common/base/src/lib/string-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare enum TimeZone {
|
|
2
|
+
PST = "America/Los_Angeles"
|
|
3
|
+
}
|
|
4
|
+
export interface NumberRange {
|
|
5
|
+
from?: number;
|
|
6
|
+
to?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function formatToUSD(value: number): string;
|
|
9
|
+
export declare function formatToUSDWithoutSymbol(value: number): string;
|
|
10
|
+
export declare function convertCurrencyToWords(amount: number): string;
|
|
11
|
+
export declare function convertNumberToWords(amount: number): string;
|
|
12
|
+
export declare function convertNumberToCompactNumber(value: number): string;
|
|
13
|
+
export declare function toWords(value: number, config?: any): string;
|
|
14
|
+
export declare function isNumber(value: any): boolean;
|
|
15
|
+
export declare function formatNumberRangeToText(range: NumberRange, config: {
|
|
16
|
+
suffix?: string;
|
|
17
|
+
prefix?: string;
|
|
18
|
+
}): string;
|
|
19
|
+
export declare function hasSomeValues(obj: object, keys: string[]): boolean;
|
|
20
|
+
export declare function hasAllValues<T extends object>(obj: T | null | undefined, keys: string[]): obj is T;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimeZone = void 0;
|
|
4
|
+
exports.formatToUSD = formatToUSD;
|
|
5
|
+
exports.formatToUSDWithoutSymbol = formatToUSDWithoutSymbol;
|
|
6
|
+
exports.convertCurrencyToWords = convertCurrencyToWords;
|
|
7
|
+
exports.convertNumberToWords = convertNumberToWords;
|
|
8
|
+
exports.convertNumberToCompactNumber = convertNumberToCompactNumber;
|
|
9
|
+
exports.toWords = toWords;
|
|
10
|
+
exports.isNumber = isNumber;
|
|
11
|
+
exports.formatNumberRangeToText = formatNumberRangeToText;
|
|
12
|
+
exports.hasSomeValues = hasSomeValues;
|
|
13
|
+
exports.hasAllValues = hasAllValues;
|
|
14
|
+
const to_words_1 = require("to-words");
|
|
15
|
+
const lodash_1 = require("lodash");
|
|
16
|
+
var TimeZone;
|
|
17
|
+
(function (TimeZone) {
|
|
18
|
+
TimeZone["PST"] = "America/Los_Angeles";
|
|
19
|
+
})(TimeZone || (exports.TimeZone = TimeZone = {}));
|
|
20
|
+
function formatToUSD(value) {
|
|
21
|
+
const currencyFormatter = new Intl.NumberFormat('en-US', {
|
|
22
|
+
currency: 'USD',
|
|
23
|
+
style: 'currency',
|
|
24
|
+
minimumFractionDigits: 0,
|
|
25
|
+
maximumFractionDigits: 2,
|
|
26
|
+
});
|
|
27
|
+
return currencyFormatter.format(value);
|
|
28
|
+
}
|
|
29
|
+
function formatToUSDWithoutSymbol(value) {
|
|
30
|
+
const currencyFormatterWithoutSymbol = new Intl.NumberFormat('en-US', {
|
|
31
|
+
currency: 'USD',
|
|
32
|
+
minimumFractionDigits: 0,
|
|
33
|
+
maximumFractionDigits: 2,
|
|
34
|
+
});
|
|
35
|
+
return currencyFormatterWithoutSymbol.format(value);
|
|
36
|
+
}
|
|
37
|
+
function convertCurrencyToWords(amount) {
|
|
38
|
+
return new to_words_1.ToWords({
|
|
39
|
+
localeCode: 'en-US',
|
|
40
|
+
}).convert(amount, {
|
|
41
|
+
currency: true,
|
|
42
|
+
ignoreDecimal: false,
|
|
43
|
+
ignoreZeroCurrency: false,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function convertNumberToWords(amount) {
|
|
47
|
+
return new to_words_1.ToWords({
|
|
48
|
+
localeCode: 'en-US',
|
|
49
|
+
}).convert(amount);
|
|
50
|
+
}
|
|
51
|
+
function convertNumberToCompactNumber(value) {
|
|
52
|
+
if (!isNumber(value))
|
|
53
|
+
return '';
|
|
54
|
+
return new Intl.NumberFormat('en-US', {
|
|
55
|
+
notation: 'compact',
|
|
56
|
+
maximumFractionDigits: 1,
|
|
57
|
+
}).format(value);
|
|
58
|
+
}
|
|
59
|
+
function toWords(value, config = {}) {
|
|
60
|
+
if (!value || Number.isNaN(value)) {
|
|
61
|
+
return '';
|
|
62
|
+
}
|
|
63
|
+
return new to_words_1.ToWords({
|
|
64
|
+
localeCode: 'en-US',
|
|
65
|
+
}).convert(value, {
|
|
66
|
+
currency: true,
|
|
67
|
+
ignoreDecimal: true,
|
|
68
|
+
ignoreZeroCurrency: false,
|
|
69
|
+
...config,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function isNumber(value) {
|
|
73
|
+
return typeof value === 'number' && !Number.isNaN(value);
|
|
74
|
+
}
|
|
75
|
+
function formatNumberRangeToText(range, config) {
|
|
76
|
+
const prefix = config.prefix || '';
|
|
77
|
+
const suffix = config.suffix ? ` ${config.suffix}` : '';
|
|
78
|
+
if (!range || (!range.from && !range.to)) {
|
|
79
|
+
return '';
|
|
80
|
+
}
|
|
81
|
+
else if (range.from && range.to) {
|
|
82
|
+
if (range.from === range.to) {
|
|
83
|
+
return `${prefix}${range.from.toLocaleString()}${suffix}`;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return `${prefix}${range.from.toLocaleString()} - ${prefix}${range.to.toLocaleString()}${suffix}`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else if (range.from) {
|
|
90
|
+
return `from ${prefix}${range.from.toLocaleString()}${suffix}`;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
return `up to ${prefix}${range.to.toLocaleString()}${suffix}`;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function hasSomeValues(obj, keys) {
|
|
97
|
+
return (0, lodash_1.some)(keys, (k) => {
|
|
98
|
+
const v = (0, lodash_1.get)(obj, k);
|
|
99
|
+
return v != null && v !== '';
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
function hasAllValues(obj, keys) {
|
|
103
|
+
if (obj == null)
|
|
104
|
+
return false;
|
|
105
|
+
return (0, lodash_1.every)(keys, (k) => {
|
|
106
|
+
const v = (0, lodash_1.get)(obj, k);
|
|
107
|
+
return v != null && v !== '';
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../../../../libs/common/base/src/lib/util.ts"],"names":[],"mappings":"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"}
|