@digitaldefiance/secrets 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +445 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/browser-types.d.ts +112 -0
  5. package/dist/browser-types.d.ts.map +1 -0
  6. package/dist/browser-types.js +242 -0
  7. package/dist/browser-types.js.map +1 -0
  8. package/dist/errors.d.ts +33 -0
  9. package/dist/errors.d.ts.map +1 -0
  10. package/dist/errors.js +92 -0
  11. package/dist/errors.js.map +1 -0
  12. package/dist/esm/.tsbuildinfo +1 -0
  13. package/dist/esm/browser-types.d.ts +112 -0
  14. package/dist/esm/browser-types.d.ts.map +1 -0
  15. package/dist/esm/browser-types.js +201 -0
  16. package/dist/esm/browser-types.js.map +1 -0
  17. package/dist/esm/errors.d.ts +33 -0
  18. package/dist/esm/errors.d.ts.map +1 -0
  19. package/dist/esm/errors.js +54 -0
  20. package/dist/esm/errors.js.map +1 -0
  21. package/dist/esm/node-types.d.ts +87 -0
  22. package/dist/esm/node-types.d.ts.map +1 -0
  23. package/dist/esm/node-types.js +157 -0
  24. package/dist/esm/node-types.js.map +1 -0
  25. package/dist/esm/secrets.d.ts +262 -0
  26. package/dist/esm/secrets.d.ts.map +1 -0
  27. package/dist/esm/secrets.js +894 -0
  28. package/dist/esm/secrets.js.map +1 -0
  29. package/dist/esm/types.d.ts +249 -0
  30. package/dist/esm/types.d.ts.map +1 -0
  31. package/dist/esm/types.js +61 -0
  32. package/dist/esm/types.js.map +1 -0
  33. package/dist/esm/validation.d.ts +34 -0
  34. package/dist/esm/validation.d.ts.map +1 -0
  35. package/dist/esm/validation.js +72 -0
  36. package/dist/esm/validation.js.map +1 -0
  37. package/dist/node-types.d.ts +87 -0
  38. package/dist/node-types.d.ts.map +1 -0
  39. package/dist/node-types.js +191 -0
  40. package/dist/node-types.js.map +1 -0
  41. package/dist/secrets.d.ts +262 -0
  42. package/dist/secrets.d.ts.map +1 -0
  43. package/dist/secrets.js +897 -0
  44. package/dist/secrets.js.map +1 -0
  45. package/dist/types.d.ts +249 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +67 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/umd/.tsbuildinfo +1 -0
  50. package/dist/umd/browser-types.d.ts +112 -0
  51. package/dist/umd/browser-types.d.ts.map +1 -0
  52. package/dist/umd/browser-types.js +252 -0
  53. package/dist/umd/browser-types.js.map +1 -0
  54. package/dist/umd/errors.d.ts +33 -0
  55. package/dist/umd/errors.d.ts.map +1 -0
  56. package/dist/umd/errors.js +102 -0
  57. package/dist/umd/errors.js.map +1 -0
  58. package/dist/umd/node-types.d.ts +87 -0
  59. package/dist/umd/node-types.d.ts.map +1 -0
  60. package/dist/umd/node-types.js +201 -0
  61. package/dist/umd/node-types.js.map +1 -0
  62. package/dist/umd/secrets.d.ts +262 -0
  63. package/dist/umd/secrets.d.ts.map +1 -0
  64. package/dist/umd/secrets.js +907 -0
  65. package/dist/umd/secrets.js.map +1 -0
  66. package/dist/umd/secrets.min.js +2 -0
  67. package/dist/umd/types.d.ts +249 -0
  68. package/dist/umd/types.d.ts.map +1 -0
  69. package/dist/umd/types.js +77 -0
  70. package/dist/umd/types.js.map +1 -0
  71. package/dist/umd/validation.d.ts +34 -0
  72. package/dist/umd/validation.d.ts.map +1 -0
  73. package/dist/umd/validation.js +92 -0
  74. package/dist/umd/validation.js.map +1 -0
  75. package/dist/validation.d.ts +34 -0
  76. package/dist/validation.d.ts.map +1 -0
  77. package/dist/validation.js +82 -0
  78. package/dist/validation.js.map +1 -0
  79. package/package.json +181 -0
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ // Type guard functions and runtime validation for @digitaldefiance/secrets
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.isValidSecret = isValidSecret;
5
+ exports.isValidShares = isValidShares;
6
+ exports.isValidRNGFunction = isValidRNGFunction;
7
+ exports.isValidCSPRNGType = isValidCSPRNGType;
8
+ exports.validateInteger = validateInteger;
9
+ exports.validateString = validateString;
10
+ exports.validateHexString = validateHexString;
11
+ exports.validateBinaryString = validateBinaryString;
12
+ var errors_1 = require("./errors");
13
+ /**
14
+ * Type guard to check if a value is a valid secret string (hex)
15
+ */
16
+ function isValidSecret(value) {
17
+ return typeof value === 'string' && /^[0-9a-fA-F]*$/.test(value);
18
+ }
19
+ /**
20
+ * Type guard to check if a value is a valid shares array
21
+ */
22
+ function isValidShares(value) {
23
+ return Array.isArray(value) &&
24
+ value.length > 0 &&
25
+ value.every(function (share) { return typeof share === 'string'; });
26
+ }
27
+ /**
28
+ * Type guard to check if a value is a valid RNG function
29
+ */
30
+ function isValidRNGFunction(value) {
31
+ return typeof value === 'function';
32
+ }
33
+ /**
34
+ * Type guard to check if a value is a valid CSPRNG type
35
+ */
36
+ function isValidCSPRNGType(value) {
37
+ return typeof value === 'string' &&
38
+ (value === 'nodeCryptoRandomBytes' ||
39
+ value === 'browserCryptoGetRandomValues' ||
40
+ value === 'testRandom');
41
+ }
42
+ /**
43
+ * Validates that a number is an integer within a specified range
44
+ */
45
+ function validateInteger(value, paramName, min, max) {
46
+ if (typeof value !== 'number') {
47
+ throw new errors_1.InvalidParameterError(paramName, value, 'number');
48
+ }
49
+ if (value % 1 !== 0) {
50
+ throw new errors_1.InvalidParameterError(paramName, value, 'integer');
51
+ }
52
+ if (value < min || value > max) {
53
+ throw new errors_1.InvalidParameterError(paramName, value, "integer between ".concat(min, " and ").concat(max, ", inclusive"));
54
+ }
55
+ }
56
+ /**
57
+ * Validates that a value is a non-empty string
58
+ */
59
+ function validateString(value, paramName) {
60
+ if (typeof value !== 'string') {
61
+ throw new errors_1.InvalidParameterError(paramName, value, 'string');
62
+ }
63
+ }
64
+ /**
65
+ * Validates that a value is a valid hex string
66
+ */
67
+ function validateHexString(value, paramName) {
68
+ validateString(value, paramName);
69
+ if (!/^[0-9a-fA-F]*$/.test(value)) {
70
+ throw new errors_1.InvalidParameterError(paramName, value, 'hexadecimal string (0-9, a-f, A-F)');
71
+ }
72
+ }
73
+ /**
74
+ * Validates that a value is a valid binary string
75
+ */
76
+ function validateBinaryString(value, paramName) {
77
+ validateString(value, paramName);
78
+ if (!/^[01]*$/.test(value)) {
79
+ throw new errors_1.InvalidParameterError(paramName, value, 'binary string (0 and 1 only)');
80
+ }
81
+ }
82
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":";AAAA,2EAA2E;;AAQ3E,sCAEC;AAKD,sCAIC;AAKD,gDAEC;AAKD,8CAKC;AAKD,0CAqBC;AAKD,wCAOC;AAKD,8CAaC;AAKD,oDAaC;AA5GD,mCAAiD;AAGjD;;GAEG;AACH,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,UAAA,KAAK,IAAI,OAAA,OAAO,KAAK,KAAK,QAAQ,EAAzB,CAAyB,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,KAAK,uBAAuB;YACjC,KAAK,KAAK,8BAA8B;YACxC,KAAK,KAAK,YAAY,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,KAAc,EACd,SAAiB,EACjB,GAAW,EACX,GAAW;IAEX,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,8BAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,8BAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,8BAAqB,CAC7B,SAAS,EACT,KAAK,EACL,0BAAmB,GAAG,kBAAQ,GAAG,gBAAa,CAC/C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,KAAc,EACd,SAAiB;IAEjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,8BAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,KAAc,EACd,SAAiB;IAEjB,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEjC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,8BAAqB,CAC7B,SAAS,EACT,KAAK,EACL,oCAAoC,CACrC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,KAAc,EACd,SAAiB;IAEjB,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,8BAAqB,CAC7B,SAAS,EACT,KAAK,EACL,8BAA8B,CAC/B,CAAC;IACJ,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,181 @@
1
+ {
2
+ "name": "@digitaldefiance/secrets",
3
+ "version": "2.0.3",
4
+ "description": "Shamir's threshold secret sharing scheme",
5
+ "main": "dist/secrets.js",
6
+ "module": "dist/esm/secrets.js",
7
+ "types": "dist/secrets.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/esm/secrets.js",
11
+ "require": "./dist/secrets.js",
12
+ "types": "./dist/secrets.d.ts"
13
+ },
14
+ "./umd": {
15
+ "default": "./dist/umd/secrets.js",
16
+ "types": "./dist/umd/secrets.d.ts"
17
+ },
18
+ "./types": {
19
+ "import": "./dist/esm/types.js",
20
+ "require": "./dist/types.js",
21
+ "types": "./dist/types.d.ts"
22
+ },
23
+ "./package.json": "./package.json"
24
+ },
25
+ "directories": {
26
+ "example": "examples"
27
+ },
28
+ "devDependencies": {
29
+ "@types/jasmine": "^5.1.15",
30
+ "@types/node": "^25.0.8",
31
+ "@typescript-eslint/eslint-plugin": "^8.53.0",
32
+ "@typescript-eslint/parser": "^8.53.0",
33
+ "eslint": "^9.39.2",
34
+ "eslint-config-prettier": "^10.1.8",
35
+ "eslint-plugin-prettier": "^5.5.4",
36
+ "grunt": "^1.0",
37
+ "grunt-check-modules": "^1.0.0",
38
+ "grunt-contrib-uglify": "^4.0",
39
+ "grunt-contrib-watch": "^1.1",
40
+ "grunt-jasmine-nodejs": "^1.6",
41
+ "jasmine": "^3.4.0",
42
+ "jquery": "^3.4",
43
+ "nyc": "^17.1.0",
44
+ "prettier": "^3.7.4",
45
+ "ts-node": "^10.9.2",
46
+ "typescript": "^5.9.3",
47
+ "uglify-js": "^3.6.0"
48
+ },
49
+ "peerDependencies": {
50
+ "typescript": ">=4.0.0"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "typescript": {
54
+ "optional": true
55
+ }
56
+ },
57
+ "scripts": {
58
+ "build": "yarn build:ts:all && yarn build:ts:umd && yarn build:umd:min",
59
+ "build:clean": "rm -rf dist dist-test",
60
+ "build:all": "yarn build:clean && yarn build",
61
+ "build:ts": "./node_modules/.bin/tsc",
62
+ "build:ts:esm": "./node_modules/.bin/tsc -p tsconfig.esm.json",
63
+ "build:ts:umd": "./node_modules/.bin/tsc -p tsconfig.umd.json",
64
+ "build:ts:all": "yarn build:ts && yarn build:ts:esm && yarn build:ts:umd",
65
+ "build:umd:min": "./node_modules/.bin/grunt uglify",
66
+ "build:ts:watch": "./node_modules/.bin/tsc --watch",
67
+ "build:ts:test": "./node_modules/.bin/tsc -p tsconfig.test.json",
68
+ "typecheck": "./node_modules/.bin/tsc --noEmit",
69
+ "typecheck:test": "./node_modules/.bin/tsc -p tsconfig.test.json --noEmit",
70
+ "test": "./node_modules/.bin/jasmine",
71
+ "test:coverage": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine",
72
+ "test:coverage:report": "./node_modules/.bin/nyc report",
73
+ "test:coverage:check": "./node_modules/.bin/nyc check-coverage",
74
+ "test:coverage:html": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine && open coverage/index.html",
75
+ "test:all": "npm run test:coverage && npm run test:coverage:check",
76
+ "test:comprehensive": "npm run test:unit && npm run test:properties && npm run test:integration && npm run test:security && npm run test:cross-platform && npm run test:performance && npm run test:typescript",
77
+ "test:comprehensive:coverage": "npm run test:coverage && npm run test:coverage:check && npm run coverage:report:html",
78
+ "test:comprehensive:fast": "npm run test:unit && npm run test:integration && npm run test:security && npm run test:cross-platform && npm run test:typescript:fast",
79
+ "test:fast": "TEST_MODE=fast npm run test",
80
+ "test:fast:coverage": "TEST_MODE=fast npm run test:coverage",
81
+ "test:fast:properties": "TEST_MODE=fast npm run test:properties",
82
+ "test:fast:performance": "TEST_MODE=fast npm run test:performance",
83
+ "test:fast:all": "TEST_MODE=fast npm run test:comprehensive:fast",
84
+ "test:ci": "TEST_MODE=ci npm run test:comprehensive:coverage && npm run coverage:validate",
85
+ "test:ci:fast": "TEST_MODE=ci npm run test:comprehensive:fast && npm run test:coverage:check",
86
+ "test:ci:parallel": "npm run test:unit:coverage & npm run test:properties:coverage & npm run test:integration:coverage & wait",
87
+ "test:properties": "./node_modules/.bin/jasmine spec/secrets/SecretsPropertySpec.js",
88
+ "test:properties:coverage": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine spec/secrets/SecretsPropertySpec.js",
89
+ "test:properties:fast": "TEST_MODE=fast ./node_modules/.bin/jasmine spec/secrets/SecretsPropertySpec.js",
90
+ "test:properties:ci": "TEST_MODE=ci ./node_modules/.bin/jasmine spec/secrets/SecretsPropertySpec.js",
91
+ "test:properties:comprehensive": "TEST_MODE=comprehensive ./node_modules/.bin/jasmine spec/secrets/SecretsPropertySpec.js",
92
+ "test:performance": "./node_modules/.bin/jasmine spec/secrets/SecretsPerformanceSpec.js",
93
+ "test:performance:coverage": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine spec/secrets/SecretsPerformanceSpec.js",
94
+ "test:performance:fast": "TEST_MODE=fast ./node_modules/.bin/jasmine spec/secrets/SecretsPerformanceSpec.js",
95
+ "test:performance:ci": "TEST_MODE=ci ./node_modules/.bin/jasmine spec/secrets/SecretsPerformanceSpec.js",
96
+ "test:performance:benchmark": "./node_modules/.bin/jasmine spec/secrets/SecretsPerformanceSpec.js --grep='Benchmark'",
97
+ "test:performance:stress": "./node_modules/.bin/jasmine spec/secrets/SecretsPerformanceSpec.js --grep='Stress'",
98
+ "test:security": "./node_modules/.bin/jasmine spec/secrets/SecretsSecuritySpec.js",
99
+ "test:security:coverage": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine spec/secrets/SecretsSecuritySpec.js",
100
+ "test:security:fast": "TEST_MODE=fast ./node_modules/.bin/jasmine spec/secrets/SecretsSecuritySpec.js",
101
+ "test:integration": "./node_modules/.bin/jasmine spec/secrets/SecretsIntegrationSpec.js",
102
+ "test:integration:coverage": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine spec/secrets/SecretsIntegrationSpec.js",
103
+ "test:integration:fast": "TEST_MODE=fast ./node_modules/.bin/jasmine spec/secrets/SecretsIntegrationSpec.js",
104
+ "test:cross-platform": "./node_modules/.bin/jasmine spec/secrets/SecretsCrossPlatformSpec.js",
105
+ "test:cross-platform:coverage": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine spec/secrets/SecretsCrossPlatformSpec.js",
106
+ "test:cross-platform:fast": "TEST_MODE=fast ./node_modules/.bin/jasmine spec/secrets/SecretsCrossPlatformSpec.js",
107
+ "test:cross-platform:node": "./node_modules/.bin/jasmine spec/secrets/SecretsCrossPlatformSpec.js --grep='Node.js'",
108
+ "test:cross-platform:browser": "npm run build && open SpecRunner.html",
109
+ "test:unit": "./node_modules/.bin/jasmine spec/secrets/SecretsSpec.js spec/secrets/SecretsPrivateSpec.js",
110
+ "test:unit:coverage": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine spec/secrets/SecretsSpec.js spec/secrets/SecretsPrivateSpec.js",
111
+ "test:unit:fast": "TEST_MODE=fast ./node_modules/.bin/jasmine spec/secrets/SecretsSpec.js spec/secrets/SecretsPrivateSpec.js",
112
+ "test:helpers": "./node_modules/.bin/jasmine spec/helpers/PropertyTestHelperSpec.js",
113
+ "test:helpers:coverage": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine spec/helpers/PropertyTestHelperSpec.js",
114
+ "test:typescript": "./node_modules/.bin/jasmine dist-test/spec/typescript/**/*Spec.js",
115
+ "test:typescript:coverage": "./node_modules/.bin/nyc ./node_modules/.bin/jasmine dist-test/spec/typescript/**/*Spec.js",
116
+ "test:typescript:fast": "TEST_MODE=fast ./node_modules/.bin/jasmine dist-test/spec/typescript/**/*Spec.js",
117
+ "test:typescript:conversion": "./node_modules/.bin/jasmine dist-test/spec/typescript/TypeScriptConversionPropertySpec.js",
118
+ "test:typescript:compatibility": "./node_modules/.bin/jasmine dist-test/spec/typescript/BackwardCompatibilitySpec.js dist-test/spec/typescript/ConsumerCompatibilitySpec.js",
119
+ "test:typescript:types": "./node_modules/.bin/jasmine dist-test/spec/typescript/TypeScriptTypeValidationSpec.js dist-test/spec/typescript/NodeTypeValidationSpec.js dist-test/spec/typescript/BrowserTypeValidationSpec.js",
120
+ "test:typescript:performance": "./node_modules/.bin/jasmine dist-test/spec/typescript/TypeScriptPerformanceComparisonSpec.js",
121
+ "test:typescript:tooling": "./node_modules/.bin/jasmine dist-test/spec/typescript/DevelopmentToolIntegrationSpec.js",
122
+ "test:typescript:cross-env": "./node_modules/.bin/jasmine dist-test/spec/typescript/CrossEnvironmentPropertySpec.js",
123
+ "test:browser": "open SpecRunner.html",
124
+ "test:browser:min": "npm run build && open SpecRunnerMinified.html",
125
+ "test:browser:coverage": "npm run build && open SpecRunner.html",
126
+ "test:browser:comprehensive": "npm run build && open SpecRunner.html",
127
+ "test:browser:performance": "npm run build && open benchmark/benchmark.html",
128
+ "test:benchmark": "npm run build && open benchmark/benchmark.html",
129
+ "test:watch": "./node_modules/.bin/grunt watch",
130
+ "coverage:clean": "rm -rf coverage .nyc_output",
131
+ "coverage:report:text": "./node_modules/.bin/nyc report --reporter=text",
132
+ "coverage:report:html": "./node_modules/.bin/nyc report --reporter=html && open coverage/index.html",
133
+ "coverage:report:lcov": "./node_modules/.bin/nyc report --reporter=lcov",
134
+ "coverage:report:json": "./node_modules/.bin/nyc report --reporter=json",
135
+ "coverage:report:all": "./node_modules/.bin/nyc report --reporter=text --reporter=html --reporter=lcov --reporter=json",
136
+ "coverage:validate": "node scripts/validate-coverage.js",
137
+ "coverage:trend": "node scripts/coverage-trend.js",
138
+ "ci:coverage": "node scripts/ci-coverage.js",
139
+ "ci:typecheck": "node scripts/ci-typecheck.js",
140
+ "ci:build": "node scripts/ci-build-validation.js",
141
+ "ci:typescript-versions": "node scripts/test-typescript-versions.js",
142
+ "watch": "./node_modules/.bin/grunt watch",
143
+ "lint": "./node_modules/.bin/eslint 'src/**/*.ts' 'spec/**/*.ts'",
144
+ "lint:fix": "./node_modules/.bin/eslint 'src/**/*.ts' 'spec/**/*.ts' --fix",
145
+ "format": "./node_modules/.bin/prettier --write 'src/**/*.ts' 'spec/**/*.ts'",
146
+ "format:check": "./node_modules/.bin/prettier --check 'src/**/*.ts' 'spec/**/*.ts'",
147
+ "format:all": "./node_modules/.bin/prettier --write '**/*.{ts,js,json,md}' --ignore-path .prettierignore",
148
+ "validate": "yarn typecheck && yarn lint && yarn format:check && yarn build:all && yarn test:comprehensive:fast",
149
+ "validate:full": "yarn typecheck && yarn lint && yarn format:check && yarn build:all && yarn test:comprehensive:coverage",
150
+ "prepublishOnly": "yarn build && yarn test:unit && yarn test:integration && yarn test:security && yarn test:cross-platform",
151
+ "publish:public": "npm publish --access public"
152
+ },
153
+ "repository": {
154
+ "type": "git",
155
+ "url": "https://github.com/Digital-Defiance/secrets.js.git"
156
+ },
157
+ "keywords": [
158
+ "secret",
159
+ "sharing",
160
+ "shamir",
161
+ "cryptography",
162
+ "split"
163
+ ],
164
+ "author": "Alexander Stetsyuk <alexstets@gmail.com>",
165
+ "contributors": [
166
+ "Digital Defiance, Jessica Mulein <jessica@digitaldefiance.org>",
167
+ "Glenn Rempe <glenn@rempe.us>",
168
+ "34r7h"
169
+ ],
170
+ "license": "MIT",
171
+ "bugs": {
172
+ "url": "https://github.com/Digital-Defiance/secrets.js/issues"
173
+ },
174
+ "homepage": "https://github.com/Digital-Defiance/secrets.js",
175
+ "files": [
176
+ "dist/**/*",
177
+ "README.md",
178
+ "LICENSE"
179
+ ],
180
+ "browser": "dist/umd/secrets.js"
181
+ }