opencode-rehydar 0.14.1 → 0.14.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.
- package/dist/browser.d.ts +54 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +74 -0
- package/dist/browser.js.map +1 -0
- package/dist/core/anonymizer.d.ts +309 -0
- package/dist/core/anonymizer.d.ts.map +1 -0
- package/dist/core/anonymizer.js +555 -0
- package/dist/core/anonymizer.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/crypto/index.d.ts +6 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +6 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/pii-map-crypto.d.ts +114 -0
- package/dist/crypto/pii-map-crypto.d.ts.map +1 -0
- package/dist/crypto/pii-map-crypto.js +228 -0
- package/dist/crypto/pii-map-crypto.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/ner/bio-decoder.d.ts +64 -0
- package/dist/ner/bio-decoder.d.ts.map +1 -0
- package/dist/ner/bio-decoder.js +218 -0
- package/dist/ner/bio-decoder.js.map +1 -0
- package/dist/ner/index.d.ts +12 -0
- package/dist/ner/index.d.ts.map +1 -0
- package/dist/ner/index.js +12 -0
- package/dist/ner/index.js.map +1 -0
- package/dist/ner/inference-server-client.d.ts +81 -0
- package/dist/ner/inference-server-client.d.ts.map +1 -0
- package/dist/ner/inference-server-client.js +120 -0
- package/dist/ner/inference-server-client.js.map +1 -0
- package/dist/ner/inference-server-ner-model.d.ts +43 -0
- package/dist/ner/inference-server-ner-model.d.ts.map +1 -0
- package/dist/ner/inference-server-ner-model.js +119 -0
- package/dist/ner/inference-server-ner-model.js.map +1 -0
- package/dist/ner/model-manager.d.ts +111 -0
- package/dist/ner/model-manager.d.ts.map +1 -0
- package/dist/ner/model-manager.js +334 -0
- package/dist/ner/model-manager.js.map +1 -0
- package/dist/ner/ner-model.d.ts +172 -0
- package/dist/ner/ner-model.d.ts.map +1 -0
- package/dist/ner/ner-model.js +514 -0
- package/dist/ner/ner-model.js.map +1 -0
- package/dist/ner/onnx-runtime.browser.d.ts +46 -0
- package/dist/ner/onnx-runtime.browser.d.ts.map +1 -0
- package/dist/ner/onnx-runtime.browser.js +90 -0
- package/dist/ner/onnx-runtime.browser.js.map +1 -0
- package/dist/ner/onnx-runtime.d.ts +72 -0
- package/dist/ner/onnx-runtime.d.ts.map +1 -0
- package/dist/ner/onnx-runtime.js +132 -0
- package/dist/ner/onnx-runtime.js.map +1 -0
- package/dist/ner/token-window.d.ts +19 -0
- package/dist/ner/token-window.d.ts.map +1 -0
- package/dist/ner/token-window.js +101 -0
- package/dist/ner/token-window.js.map +1 -0
- package/dist/ner/tokenizer.d.ts +142 -0
- package/dist/ner/tokenizer.d.ts.map +1 -0
- package/dist/ner/tokenizer.js +362 -0
- package/dist/ner/tokenizer.js.map +1 -0
- package/dist/opencode-plugin/git-identity.d.ts +3 -0
- package/dist/opencode-plugin/git-identity.d.ts.map +1 -0
- package/dist/opencode-plugin/git-identity.js +37 -0
- package/dist/opencode-plugin/git-identity.js.map +1 -0
- package/dist/opencode-plugin/github-username.d.ts +3 -0
- package/dist/opencode-plugin/github-username.d.ts.map +1 -0
- package/dist/opencode-plugin/github-username.js +41 -0
- package/dist/opencode-plugin/github-username.js.map +1 -0
- package/dist/opencode-plugin/identity-recognizer.d.ts +5 -0
- package/dist/opencode-plugin/identity-recognizer.d.ts.map +1 -0
- package/dist/opencode-plugin/identity-recognizer.js +21 -0
- package/dist/opencode-plugin/identity-recognizer.js.map +1 -0
- package/dist/opencode-plugin/index.d.ts +7 -0
- package/dist/opencode-plugin/index.d.ts.map +1 -0
- package/dist/opencode-plugin/index.js +6 -0
- package/dist/opencode-plugin/index.js.map +1 -0
- package/dist/opencode-plugin/plugin.d.ts +39 -0
- package/dist/opencode-plugin/plugin.d.ts.map +1 -0
- package/dist/opencode-plugin/plugin.js +294 -0
- package/dist/opencode-plugin/plugin.js.map +1 -0
- package/dist/opencode-plugin/types.d.ts +33 -0
- package/dist/opencode-plugin/types.d.ts.map +1 -0
- package/dist/opencode-plugin/types.js +5 -0
- package/dist/opencode-plugin/types.js.map +1 -0
- package/dist/opencode-plugin/v2/anon-state.d.ts +12 -0
- package/dist/opencode-plugin/v2/anon-state.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/anon-state.js +14 -0
- package/dist/opencode-plugin/v2/anon-state.js.map +1 -0
- package/dist/opencode-plugin/v2/deep-rehydrate.d.ts +13 -0
- package/dist/opencode-plugin/v2/deep-rehydrate.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/deep-rehydrate.js +33 -0
- package/dist/opencode-plugin/v2/deep-rehydrate.js.map +1 -0
- package/dist/opencode-plugin/v2/index.d.ts +17 -0
- package/dist/opencode-plugin/v2/index.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/index.js +17 -0
- package/dist/opencode-plugin/v2/index.js.map +1 -0
- package/dist/opencode-plugin/v2/logger.d.ts +24 -0
- package/dist/opencode-plugin/v2/logger.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/logger.js +73 -0
- package/dist/opencode-plugin/v2/logger.js.map +1 -0
- package/dist/opencode-plugin/v2/options.d.ts +63 -0
- package/dist/opencode-plugin/v2/options.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/options.js +183 -0
- package/dist/opencode-plugin/v2/options.js.map +1 -0
- package/dist/opencode-plugin/v2/register-hooks.d.ts +43 -0
- package/dist/opencode-plugin/v2/register-hooks.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/register-hooks.js +160 -0
- package/dist/opencode-plugin/v2/register-hooks.js.map +1 -0
- package/dist/opencode-plugin/v2/rehydrate-tail.d.ts +101 -0
- package/dist/opencode-plugin/v2/rehydrate-tail.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/rehydrate-tail.js +147 -0
- package/dist/opencode-plugin/v2/rehydrate-tail.js.map +1 -0
- package/dist/opencode-plugin/v2/response-rehydrate.d.ts +78 -0
- package/dist/opencode-plugin/v2/response-rehydrate.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/response-rehydrate.js +210 -0
- package/dist/opencode-plugin/v2/response-rehydrate.js.map +1 -0
- package/dist/opencode-plugin/v2/scrub-messages.d.ts +39 -0
- package/dist/opencode-plugin/v2/scrub-messages.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/scrub-messages.js +260 -0
- package/dist/opencode-plugin/v2/scrub-messages.js.map +1 -0
- package/dist/opencode-plugin/v2/sessions.d.ts +17 -0
- package/dist/opencode-plugin/v2/sessions.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/sessions.js +23 -0
- package/dist/opencode-plugin/v2/sessions.js.map +1 -0
- package/dist/opencode-plugin/v2/sse.d.ts +101 -0
- package/dist/opencode-plugin/v2/sse.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/sse.js +235 -0
- package/dist/opencode-plugin/v2/sse.js.map +1 -0
- package/dist/opencode-plugin/v2/types.d.ts +188 -0
- package/dist/opencode-plugin/v2/types.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/types.js +10 -0
- package/dist/opencode-plugin/v2/types.js.map +1 -0
- package/dist/opencode-plugin/vcs-command.d.ts +3 -0
- package/dist/opencode-plugin/vcs-command.d.ts.map +1 -0
- package/dist/opencode-plugin/vcs-command.js +34 -0
- package/dist/opencode-plugin/vcs-command.js.map +1 -0
- package/dist/pipeline/index.d.ts +12 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +12 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/prenormalize.d.ts +48 -0
- package/dist/pipeline/prenormalize.d.ts.map +1 -0
- package/dist/pipeline/prenormalize.js +94 -0
- package/dist/pipeline/prenormalize.js.map +1 -0
- package/dist/pipeline/resolver.d.ts +56 -0
- package/dist/pipeline/resolver.d.ts.map +1 -0
- package/dist/pipeline/resolver.js +239 -0
- package/dist/pipeline/resolver.js.map +1 -0
- package/dist/pipeline/semantic-data-loader.d.ts +171 -0
- package/dist/pipeline/semantic-data-loader.d.ts.map +1 -0
- package/dist/pipeline/semantic-data-loader.js +677 -0
- package/dist/pipeline/semantic-data-loader.js.map +1 -0
- package/dist/pipeline/semantic-enricher.d.ts +112 -0
- package/dist/pipeline/semantic-enricher.d.ts.map +1 -0
- package/dist/pipeline/semantic-enricher.js +322 -0
- package/dist/pipeline/semantic-enricher.js.map +1 -0
- package/dist/pipeline/tagger.d.ts +121 -0
- package/dist/pipeline/tagger.d.ts.map +1 -0
- package/dist/pipeline/tagger.js +545 -0
- package/dist/pipeline/tagger.js.map +1 -0
- package/dist/pipeline/title-extractor.d.ts +79 -0
- package/dist/pipeline/title-extractor.d.ts.map +1 -0
- package/dist/pipeline/title-extractor.js +801 -0
- package/dist/pipeline/title-extractor.js.map +1 -0
- package/dist/pipeline/validator.d.ts +65 -0
- package/dist/pipeline/validator.d.ts.map +1 -0
- package/dist/pipeline/validator.js +292 -0
- package/dist/pipeline/validator.js.map +1 -0
- package/dist/proxy/index.d.ts +13 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +12 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/providers/anthropic.d.ts +28 -0
- package/dist/proxy/providers/anthropic.d.ts.map +1 -0
- package/dist/proxy/providers/anthropic.js +265 -0
- package/dist/proxy/providers/anthropic.js.map +1 -0
- package/dist/proxy/providers/index.d.ts +19 -0
- package/dist/proxy/providers/index.d.ts.map +1 -0
- package/dist/proxy/providers/index.js +41 -0
- package/dist/proxy/providers/index.js.map +1 -0
- package/dist/proxy/providers/openai.d.ts +27 -0
- package/dist/proxy/providers/openai.d.ts.map +1 -0
- package/dist/proxy/providers/openai.js +203 -0
- package/dist/proxy/providers/openai.js.map +1 -0
- package/dist/proxy/providers/streaming-tool-loop.d.ts +12 -0
- package/dist/proxy/providers/streaming-tool-loop.d.ts.map +1 -0
- package/dist/proxy/providers/streaming-tool-loop.js +223 -0
- package/dist/proxy/providers/streaming-tool-loop.js.map +1 -0
- package/dist/proxy/providers/types.d.ts +109 -0
- package/dist/proxy/providers/types.d.ts.map +1 -0
- package/dist/proxy/providers/types.js +2 -0
- package/dist/proxy/providers/types.js.map +1 -0
- package/dist/proxy/proxy-server.d.ts +61 -0
- package/dist/proxy/proxy-server.d.ts.map +1 -0
- package/dist/proxy/proxy-server.js +146 -0
- package/dist/proxy/proxy-server.js.map +1 -0
- package/dist/proxy/rehydra-fetch.d.ts +35 -0
- package/dist/proxy/rehydra-fetch.d.ts.map +1 -0
- package/dist/proxy/rehydra-fetch.js +631 -0
- package/dist/proxy/rehydra-fetch.js.map +1 -0
- package/dist/proxy/rehydra-proxy.d.ts +40 -0
- package/dist/proxy/rehydra-proxy.d.ts.map +1 -0
- package/dist/proxy/rehydra-proxy.js +150 -0
- package/dist/proxy/rehydra-proxy.js.map +1 -0
- package/dist/proxy/sse-parser.d.ts +59 -0
- package/dist/proxy/sse-parser.d.ts.map +1 -0
- package/dist/proxy/sse-parser.js +112 -0
- package/dist/proxy/sse-parser.js.map +1 -0
- package/dist/proxy/system-instruction.d.ts +19 -0
- package/dist/proxy/system-instruction.d.ts.map +1 -0
- package/dist/proxy/system-instruction.js +33 -0
- package/dist/proxy/system-instruction.js.map +1 -0
- package/dist/proxy/tool-loop-stream.d.ts +7 -0
- package/dist/proxy/tool-loop-stream.d.ts.map +1 -0
- package/dist/proxy/tool-loop-stream.js +65 -0
- package/dist/proxy/tool-loop-stream.js.map +1 -0
- package/dist/proxy/types.d.ts +138 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js +5 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/proxy/wrap-client.d.ts +47 -0
- package/dist/proxy/wrap-client.d.ts.map +1 -0
- package/dist/proxy/wrap-client.js +70 -0
- package/dist/proxy/wrap-client.js.map +1 -0
- package/dist/recognizers/address.d.ts +2 -0
- package/dist/recognizers/address.d.ts.map +1 -0
- package/dist/recognizers/address.js +23 -0
- package/dist/recognizers/address.js.map +1 -0
- package/dist/recognizers/base.d.ts +78 -0
- package/dist/recognizers/base.d.ts.map +1 -0
- package/dist/recognizers/base.js +100 -0
- package/dist/recognizers/base.js.map +1 -0
- package/dist/recognizers/bic-swift.d.ts +10 -0
- package/dist/recognizers/bic-swift.d.ts.map +1 -0
- package/dist/recognizers/bic-swift.js +107 -0
- package/dist/recognizers/bic-swift.js.map +1 -0
- package/dist/recognizers/credit-card.d.ts +32 -0
- package/dist/recognizers/credit-card.d.ts.map +1 -0
- package/dist/recognizers/credit-card.js +160 -0
- package/dist/recognizers/credit-card.js.map +1 -0
- package/dist/recognizers/custom-id.d.ts +28 -0
- package/dist/recognizers/custom-id.d.ts.map +1 -0
- package/dist/recognizers/custom-id.js +116 -0
- package/dist/recognizers/custom-id.js.map +1 -0
- package/dist/recognizers/date.d.ts +10 -0
- package/dist/recognizers/date.d.ts.map +1 -0
- package/dist/recognizers/date.js +228 -0
- package/dist/recognizers/date.js.map +1 -0
- package/dist/recognizers/email.d.ts +10 -0
- package/dist/recognizers/email.d.ts.map +1 -0
- package/dist/recognizers/email.js +75 -0
- package/dist/recognizers/email.js.map +1 -0
- package/dist/recognizers/iban.d.ts +14 -0
- package/dist/recognizers/iban.d.ts.map +1 -0
- package/dist/recognizers/iban.js +67 -0
- package/dist/recognizers/iban.js.map +1 -0
- package/dist/recognizers/index.d.ts +25 -0
- package/dist/recognizers/index.d.ts.map +1 -0
- package/dist/recognizers/index.js +53 -0
- package/dist/recognizers/index.js.map +1 -0
- package/dist/recognizers/ip-address.d.ts +14 -0
- package/dist/recognizers/ip-address.d.ts.map +1 -0
- package/dist/recognizers/ip-address.js +183 -0
- package/dist/recognizers/ip-address.js.map +1 -0
- package/dist/recognizers/phone.d.ts +10 -0
- package/dist/recognizers/phone.d.ts.map +1 -0
- package/dist/recognizers/phone.js +145 -0
- package/dist/recognizers/phone.js.map +1 -0
- package/dist/recognizers/postal-code.d.ts +16 -0
- package/dist/recognizers/postal-code.d.ts.map +1 -0
- package/dist/recognizers/postal-code.js +42 -0
- package/dist/recognizers/postal-code.js.map +1 -0
- package/dist/recognizers/registry.d.ts +59 -0
- package/dist/recognizers/registry.d.ts.map +1 -0
- package/dist/recognizers/registry.js +113 -0
- package/dist/recognizers/registry.js.map +1 -0
- package/dist/recognizers/secrets/api-key.d.ts +6 -0
- package/dist/recognizers/secrets/api-key.d.ts.map +1 -0
- package/dist/recognizers/secrets/api-key.js +40 -0
- package/dist/recognizers/secrets/api-key.js.map +1 -0
- package/dist/recognizers/secrets/aws-credentials.d.ts +7 -0
- package/dist/recognizers/secrets/aws-credentials.d.ts.map +1 -0
- package/dist/recognizers/secrets/aws-credentials.js +68 -0
- package/dist/recognizers/secrets/aws-credentials.js.map +1 -0
- package/dist/recognizers/secrets/config-secret.d.ts +8 -0
- package/dist/recognizers/secrets/config-secret.d.ts.map +1 -0
- package/dist/recognizers/secrets/config-secret.js +59 -0
- package/dist/recognizers/secrets/config-secret.js.map +1 -0
- package/dist/recognizers/secrets/connection-string.d.ts +6 -0
- package/dist/recognizers/secrets/connection-string.d.ts.map +1 -0
- package/dist/recognizers/secrets/connection-string.js +40 -0
- package/dist/recognizers/secrets/connection-string.js.map +1 -0
- package/dist/recognizers/secrets/env-var.d.ts +8 -0
- package/dist/recognizers/secrets/env-var.d.ts.map +1 -0
- package/dist/recognizers/secrets/env-var.js +54 -0
- package/dist/recognizers/secrets/env-var.js.map +1 -0
- package/dist/recognizers/secrets/index.d.ts +22 -0
- package/dist/recognizers/secrets/index.d.ts.map +1 -0
- package/dist/recognizers/secrets/index.js +41 -0
- package/dist/recognizers/secrets/index.js.map +1 -0
- package/dist/recognizers/secrets/jwt.d.ts +6 -0
- package/dist/recognizers/secrets/jwt.d.ts.map +1 -0
- package/dist/recognizers/secrets/jwt.js +47 -0
- package/dist/recognizers/secrets/jwt.js.map +1 -0
- package/dist/recognizers/secrets/key-patterns.d.ts +10 -0
- package/dist/recognizers/secrets/key-patterns.d.ts.map +1 -0
- package/dist/recognizers/secrets/key-patterns.js +15 -0
- package/dist/recognizers/secrets/key-patterns.js.map +1 -0
- package/dist/recognizers/secrets/literal-value.d.ts +10 -0
- package/dist/recognizers/secrets/literal-value.d.ts.map +1 -0
- package/dist/recognizers/secrets/literal-value.js +48 -0
- package/dist/recognizers/secrets/literal-value.js.map +1 -0
- package/dist/recognizers/secrets/private-key.d.ts +6 -0
- package/dist/recognizers/secrets/private-key.d.ts.map +1 -0
- package/dist/recognizers/secrets/private-key.js +16 -0
- package/dist/recognizers/secrets/private-key.js.map +1 -0
- package/dist/recognizers/url.d.ts +14 -0
- package/dist/recognizers/url.d.ts.map +1 -0
- package/dist/recognizers/url.js +121 -0
- package/dist/recognizers/url.js.map +1 -0
- package/dist/storage/browser.d.ts +13 -0
- package/dist/storage/browser.d.ts.map +1 -0
- package/dist/storage/browser.js +13 -0
- package/dist/storage/browser.js.map +1 -0
- package/dist/storage/in-memory.d.ts +60 -0
- package/dist/storage/in-memory.d.ts.map +1 -0
- package/dist/storage/in-memory.js +108 -0
- package/dist/storage/in-memory.js.map +1 -0
- package/dist/storage/index.d.ts +11 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +11 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/indexeddb.d.ts +69 -0
- package/dist/storage/indexeddb.d.ts.map +1 -0
- package/dist/storage/indexeddb.js +274 -0
- package/dist/storage/indexeddb.js.map +1 -0
- package/dist/storage/session-base.d.ts +34 -0
- package/dist/storage/session-base.d.ts.map +1 -0
- package/dist/storage/session-base.js +122 -0
- package/dist/storage/session-base.js.map +1 -0
- package/dist/storage/session.d.ts +19 -0
- package/dist/storage/session.d.ts.map +1 -0
- package/dist/storage/session.js +31 -0
- package/dist/storage/session.js.map +1 -0
- package/dist/storage/sqlite.d.ts +80 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +255 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/storage/types.d.ts +208 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +6 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/streaming/anonymizer-stream.d.ts +63 -0
- package/dist/streaming/anonymizer-stream.d.ts.map +1 -0
- package/dist/streaming/anonymizer-stream.js +184 -0
- package/dist/streaming/anonymizer-stream.js.map +1 -0
- package/dist/streaming/index.d.ts +9 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/streaming/index.js +8 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/streaming/sentence-buffer.d.ts +78 -0
- package/dist/streaming/sentence-buffer.d.ts.map +1 -0
- package/dist/streaming/sentence-buffer.js +239 -0
- package/dist/streaming/sentence-buffer.js.map +1 -0
- package/dist/streaming/stream-factory.d.ts +38 -0
- package/dist/streaming/stream-factory.d.ts.map +1 -0
- package/dist/streaming/stream-factory.js +69 -0
- package/dist/streaming/stream-factory.js.map +1 -0
- package/dist/streaming/types.d.ts +121 -0
- package/dist/streaming/types.d.ts.map +1 -0
- package/dist/streaming/types.js +5 -0
- package/dist/streaming/types.js.map +1 -0
- package/dist/types/index.d.ts +269 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +95 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/pii-types.d.ts +64 -0
- package/dist/types/pii-types.d.ts.map +1 -0
- package/dist/types/pii-types.js +153 -0
- package/dist/types/pii-types.js.map +1 -0
- package/dist/utils/iban-checksum.d.ts +23 -0
- package/dist/utils/iban-checksum.d.ts.map +1 -0
- package/dist/utils/iban-checksum.js +106 -0
- package/dist/utils/iban-checksum.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/json-walk.d.ts +21 -0
- package/dist/utils/json-walk.d.ts.map +1 -0
- package/dist/utils/json-walk.js +44 -0
- package/dist/utils/json-walk.js.map +1 -0
- package/dist/utils/luhn.d.ts +17 -0
- package/dist/utils/luhn.d.ts.map +1 -0
- package/dist/utils/luhn.js +55 -0
- package/dist/utils/luhn.js.map +1 -0
- package/dist/utils/offsets.d.ts +86 -0
- package/dist/utils/offsets.d.ts.map +1 -0
- package/dist/utils/offsets.js +124 -0
- package/dist/utils/offsets.js.map +1 -0
- package/dist/utils/path.d.ts +34 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +96 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/regex.d.ts +11 -0
- package/dist/utils/regex.d.ts.map +1 -0
- package/dist/utils/regex.js +14 -0
- package/dist/utils/regex.js.map +1 -0
- package/dist/utils/storage-browser.d.ts +51 -0
- package/dist/utils/storage-browser.d.ts.map +1 -0
- package/dist/utils/storage-browser.js +381 -0
- package/dist/utils/storage-browser.js.map +1 -0
- package/dist/utils/storage-node.d.ts +51 -0
- package/dist/utils/storage-node.d.ts.map +1 -0
- package/dist/utils/storage-node.js +153 -0
- package/dist/utils/storage-node.js.map +1 -0
- package/dist/utils/storage.browser.d.ts +75 -0
- package/dist/utils/storage.browser.d.ts.map +1 -0
- package/dist/utils/storage.browser.js +69 -0
- package/dist/utils/storage.browser.js.map +1 -0
- package/dist/utils/storage.d.ts +73 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/storage.js +69 -0
- package/dist/utils/storage.js.map +1 -0
- package/index.js +14 -13
- package/package.json +19 -5
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PII Type Enumeration
|
|
3
|
+
* Defines all supported PII categories for detection and anonymization
|
|
4
|
+
*/
|
|
5
|
+
export var PIIType;
|
|
6
|
+
(function (PIIType) {
|
|
7
|
+
// Personal identifiers
|
|
8
|
+
PIIType["PERSON"] = "PERSON";
|
|
9
|
+
PIIType["ORG"] = "ORG";
|
|
10
|
+
PIIType["LOCATION"] = "LOCATION";
|
|
11
|
+
PIIType["ADDRESS"] = "ADDRESS";
|
|
12
|
+
PIIType["POSTAL_CODE"] = "POSTAL_CODE";
|
|
13
|
+
// Contact information
|
|
14
|
+
PIIType["EMAIL"] = "EMAIL";
|
|
15
|
+
PIIType["PHONE"] = "PHONE";
|
|
16
|
+
PIIType["GITHUB_USERNAME"] = "GITHUB_USERNAME";
|
|
17
|
+
PIIType["URL"] = "URL";
|
|
18
|
+
PIIType["IP_ADDRESS"] = "IP_ADDRESS";
|
|
19
|
+
// Financial identifiers
|
|
20
|
+
PIIType["IBAN"] = "IBAN";
|
|
21
|
+
PIIType["BIC_SWIFT"] = "BIC_SWIFT";
|
|
22
|
+
PIIType["ACCOUNT_NUMBER"] = "ACCOUNT_NUMBER";
|
|
23
|
+
PIIType["CREDIT_CARD"] = "CREDIT_CARD";
|
|
24
|
+
// Temporal
|
|
25
|
+
PIIType["DATE"] = "DATE";
|
|
26
|
+
// Government/Tax identifiers
|
|
27
|
+
PIIType["TAX_ID"] = "TAX_ID";
|
|
28
|
+
PIIType["NATIONAL_ID"] = "NATIONAL_ID";
|
|
29
|
+
PIIType["DATE_OF_BIRTH"] = "DATE_OF_BIRTH";
|
|
30
|
+
// Custom/Business identifiers
|
|
31
|
+
PIIType["CASE_ID"] = "CASE_ID";
|
|
32
|
+
PIIType["CUSTOMER_ID"] = "CUSTOMER_ID";
|
|
33
|
+
// Secrets/Credentials
|
|
34
|
+
PIIType["API_KEY"] = "API_KEY";
|
|
35
|
+
PIIType["PRIVATE_KEY"] = "PRIVATE_KEY";
|
|
36
|
+
PIIType["JWT"] = "JWT";
|
|
37
|
+
PIIType["CONNECTION_STRING"] = "CONNECTION_STRING";
|
|
38
|
+
PIIType["AWS_CREDENTIALS"] = "AWS_CREDENTIALS";
|
|
39
|
+
PIIType["ENV_VAR_SECRET"] = "ENV_VAR_SECRET";
|
|
40
|
+
PIIType["CONFIG_SECRET"] = "CONFIG_SECRET";
|
|
41
|
+
})(PIIType || (PIIType = {}));
|
|
42
|
+
/**
|
|
43
|
+
* All PII types as a readonly array for iteration
|
|
44
|
+
*/
|
|
45
|
+
export const ALL_PII_TYPES = Object.values(PIIType);
|
|
46
|
+
/**
|
|
47
|
+
* PII types that are detected via regex (structured PII)
|
|
48
|
+
*/
|
|
49
|
+
export const REGEX_PII_TYPES = [
|
|
50
|
+
PIIType.ADDRESS,
|
|
51
|
+
PIIType.EMAIL,
|
|
52
|
+
PIIType.PHONE,
|
|
53
|
+
PIIType.POSTAL_CODE,
|
|
54
|
+
PIIType.IBAN,
|
|
55
|
+
PIIType.BIC_SWIFT,
|
|
56
|
+
PIIType.CREDIT_CARD,
|
|
57
|
+
PIIType.IP_ADDRESS,
|
|
58
|
+
PIIType.URL,
|
|
59
|
+
PIIType.ACCOUNT_NUMBER,
|
|
60
|
+
PIIType.TAX_ID,
|
|
61
|
+
PIIType.NATIONAL_ID,
|
|
62
|
+
PIIType.DATE,
|
|
63
|
+
PIIType.CASE_ID,
|
|
64
|
+
PIIType.CUSTOMER_ID,
|
|
65
|
+
PIIType.GITHUB_USERNAME,
|
|
66
|
+
];
|
|
67
|
+
/**
|
|
68
|
+
* PII types that are secrets/credentials (opt-in, regex-based)
|
|
69
|
+
*/
|
|
70
|
+
export const SECRET_PII_TYPES = [
|
|
71
|
+
PIIType.API_KEY,
|
|
72
|
+
PIIType.PRIVATE_KEY,
|
|
73
|
+
PIIType.JWT,
|
|
74
|
+
PIIType.CONNECTION_STRING,
|
|
75
|
+
PIIType.AWS_CREDENTIALS,
|
|
76
|
+
PIIType.ENV_VAR_SECRET,
|
|
77
|
+
PIIType.CONFIG_SECRET,
|
|
78
|
+
];
|
|
79
|
+
/**
|
|
80
|
+
* PII types that are detected via NER model (soft PII)
|
|
81
|
+
*/
|
|
82
|
+
export const NER_PII_TYPES = [
|
|
83
|
+
PIIType.PERSON,
|
|
84
|
+
PIIType.ORG,
|
|
85
|
+
PIIType.LOCATION,
|
|
86
|
+
PIIType.ADDRESS,
|
|
87
|
+
PIIType.DATE_OF_BIRTH,
|
|
88
|
+
];
|
|
89
|
+
/**
|
|
90
|
+
* Default priority order for resolving overlapping entities
|
|
91
|
+
* Higher index = higher priority
|
|
92
|
+
*/
|
|
93
|
+
export const DEFAULT_TYPE_PRIORITY = [
|
|
94
|
+
// Lower priority (generic)
|
|
95
|
+
PIIType.GITHUB_USERNAME,
|
|
96
|
+
PIIType.URL,
|
|
97
|
+
PIIType.IP_ADDRESS,
|
|
98
|
+
PIIType.LOCATION,
|
|
99
|
+
PIIType.ORG,
|
|
100
|
+
PIIType.PERSON,
|
|
101
|
+
// Medium priority
|
|
102
|
+
PIIType.DATE,
|
|
103
|
+
PIIType.DATE_OF_BIRTH,
|
|
104
|
+
PIIType.PHONE,
|
|
105
|
+
PIIType.EMAIL,
|
|
106
|
+
PIIType.ADDRESS,
|
|
107
|
+
PIIType.POSTAL_CODE,
|
|
108
|
+
// Higher priority (specific identifiers)
|
|
109
|
+
PIIType.CASE_ID,
|
|
110
|
+
PIIType.CUSTOMER_ID,
|
|
111
|
+
PIIType.ACCOUNT_NUMBER,
|
|
112
|
+
PIIType.BIC_SWIFT,
|
|
113
|
+
PIIType.IBAN,
|
|
114
|
+
PIIType.CREDIT_CARD,
|
|
115
|
+
PIIType.TAX_ID,
|
|
116
|
+
PIIType.NATIONAL_ID,
|
|
117
|
+
// Highest priority (secrets/credentials)
|
|
118
|
+
PIIType.ENV_VAR_SECRET,
|
|
119
|
+
PIIType.CONFIG_SECRET,
|
|
120
|
+
PIIType.CONNECTION_STRING,
|
|
121
|
+
PIIType.AWS_CREDENTIALS,
|
|
122
|
+
PIIType.API_KEY,
|
|
123
|
+
PIIType.PRIVATE_KEY,
|
|
124
|
+
PIIType.JWT,
|
|
125
|
+
];
|
|
126
|
+
/**
|
|
127
|
+
* Maps NER model labels to PIIType
|
|
128
|
+
* Common label formats from NER models (B-PER, I-PER, B-ORG, etc.)
|
|
129
|
+
*/
|
|
130
|
+
export const NER_LABEL_TO_PII_TYPE = {
|
|
131
|
+
PER: PIIType.PERSON,
|
|
132
|
+
PERSON: PIIType.PERSON,
|
|
133
|
+
ORG: PIIType.ORG,
|
|
134
|
+
ORGANIZATION: PIIType.ORG,
|
|
135
|
+
LOC: PIIType.LOCATION,
|
|
136
|
+
LOCATION: PIIType.LOCATION,
|
|
137
|
+
GPE: PIIType.LOCATION, // Geo-Political Entity
|
|
138
|
+
DATE: PIIType.DATE,
|
|
139
|
+
// Some models use MISC for addresses
|
|
140
|
+
MISC: PIIType.ADDRESS,
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Get PIIType from NER label (handles B-/I- prefixes)
|
|
144
|
+
*/
|
|
145
|
+
export function getPIITypeFromNERLabel(label) {
|
|
146
|
+
// Remove B-/I- prefix if present
|
|
147
|
+
const cleanLabel = label.replace(/^[BI]-/, '').toUpperCase();
|
|
148
|
+
if (cleanLabel === 'O') {
|
|
149
|
+
return null; // Outside any entity
|
|
150
|
+
}
|
|
151
|
+
return NER_LABEL_TO_PII_TYPE[cleanLabel] ?? null;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=pii-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pii-types.js","sourceRoot":"","sources":["../../src/types/pii-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IBAN Checksum Validation (ISO 13616)
|
|
3
|
+
* Uses Mod-97 algorithm
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Country code to IBAN length mapping (partial list of common countries)
|
|
7
|
+
*/
|
|
8
|
+
export declare const IBAN_LENGTHS: Record<string, number>;
|
|
9
|
+
/**
|
|
10
|
+
* Validates an IBAN using the mod-97 algorithm
|
|
11
|
+
* @param iban - IBAN string (spaces allowed)
|
|
12
|
+
* @returns true if checksum is valid
|
|
13
|
+
*/
|
|
14
|
+
export declare function validateIBAN(iban: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Normalizes an IBAN by removing spaces and converting to uppercase
|
|
17
|
+
*/
|
|
18
|
+
export declare function normalizeIBAN(iban: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Formats an IBAN with spaces every 4 characters for readability
|
|
21
|
+
*/
|
|
22
|
+
export declare function formatIBAN(iban: string): string;
|
|
23
|
+
//# sourceMappingURL=iban-checksum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iban-checksum.d.ts","sourceRoot":"","sources":["../../src/utils/iban-checksum.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwB/C,CAAC;AA4CF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAuBlD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/C"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IBAN Checksum Validation (ISO 13616)
|
|
3
|
+
* Uses Mod-97 algorithm
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Country code to IBAN length mapping (partial list of common countries)
|
|
7
|
+
*/
|
|
8
|
+
export const IBAN_LENGTHS = {
|
|
9
|
+
AD: 24, // Andorra
|
|
10
|
+
AT: 20, // Austria
|
|
11
|
+
BE: 16, // Belgium
|
|
12
|
+
CH: 21, // Switzerland
|
|
13
|
+
CZ: 24, // Czech Republic
|
|
14
|
+
DE: 22, // Germany
|
|
15
|
+
DK: 18, // Denmark
|
|
16
|
+
ES: 24, // Spain
|
|
17
|
+
FI: 18, // Finland
|
|
18
|
+
FR: 27, // France
|
|
19
|
+
GB: 22, // United Kingdom
|
|
20
|
+
GR: 27, // Greece
|
|
21
|
+
HU: 28, // Hungary
|
|
22
|
+
IE: 22, // Ireland
|
|
23
|
+
IT: 27, // Italy
|
|
24
|
+
LI: 21, // Liechtenstein
|
|
25
|
+
LU: 20, // Luxembourg
|
|
26
|
+
NL: 18, // Netherlands
|
|
27
|
+
NO: 15, // Norway
|
|
28
|
+
PL: 28, // Poland
|
|
29
|
+
PT: 25, // Portugal
|
|
30
|
+
SE: 24, // Sweden
|
|
31
|
+
SK: 24, // Slovakia
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Convert a character to its numeric value for IBAN calculation
|
|
35
|
+
* A=10, B=11, ..., Z=35
|
|
36
|
+
*/
|
|
37
|
+
function charToNumber(char) {
|
|
38
|
+
const code = char.toUpperCase().charCodeAt(0);
|
|
39
|
+
if (code >= 65 && code <= 90) {
|
|
40
|
+
// A-Z
|
|
41
|
+
return (code - 55).toString();
|
|
42
|
+
}
|
|
43
|
+
return char; // Already a digit
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Rearranges IBAN for checksum calculation:
|
|
47
|
+
* Move first 4 chars to end, convert letters to numbers
|
|
48
|
+
*/
|
|
49
|
+
function rearrangeForChecksum(iban) {
|
|
50
|
+
const cleaned = iban.replace(/\s/g, '').toUpperCase();
|
|
51
|
+
const rearranged = cleaned.slice(4) + cleaned.slice(0, 4);
|
|
52
|
+
let numeric = '';
|
|
53
|
+
for (const char of rearranged) {
|
|
54
|
+
numeric += charToNumber(char);
|
|
55
|
+
}
|
|
56
|
+
return numeric;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Calculate mod 97 for a large number represented as a string
|
|
60
|
+
*/
|
|
61
|
+
function mod97(numericString) {
|
|
62
|
+
let remainder = 0;
|
|
63
|
+
for (const digit of numericString) {
|
|
64
|
+
remainder = (remainder * 10 + parseInt(digit, 10)) % 97;
|
|
65
|
+
}
|
|
66
|
+
return remainder;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Validates an IBAN using the mod-97 algorithm
|
|
70
|
+
* @param iban - IBAN string (spaces allowed)
|
|
71
|
+
* @returns true if checksum is valid
|
|
72
|
+
*/
|
|
73
|
+
export function validateIBAN(iban) {
|
|
74
|
+
const cleaned = iban.replace(/\s/g, '').toUpperCase();
|
|
75
|
+
// Basic format check
|
|
76
|
+
if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]+$/.test(cleaned)) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
// Check length for known countries
|
|
80
|
+
const countryCode = cleaned.slice(0, 2);
|
|
81
|
+
const expectedLength = IBAN_LENGTHS[countryCode];
|
|
82
|
+
if (expectedLength !== undefined && cleaned.length !== expectedLength) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
// General length check (IBANs are 15-34 characters)
|
|
86
|
+
if (cleaned.length < 15 || cleaned.length > 34) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
// Mod-97 validation
|
|
90
|
+
const numericString = rearrangeForChecksum(cleaned);
|
|
91
|
+
return mod97(numericString) === 1;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Normalizes an IBAN by removing spaces and converting to uppercase
|
|
95
|
+
*/
|
|
96
|
+
export function normalizeIBAN(iban) {
|
|
97
|
+
return iban.replace(/\s/g, '').toUpperCase();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Formats an IBAN with spaces every 4 characters for readability
|
|
101
|
+
*/
|
|
102
|
+
export function formatIBAN(iban) {
|
|
103
|
+
const normalized = normalizeIBAN(iban);
|
|
104
|
+
return normalized.replace(/(.{4})/g, '$1 ').trim();
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=iban-checksum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iban-checksum.js","sourceRoot":"","sources":["../../src/utils/iban-checksum.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utils Module
|
|
3
|
+
* Exports utility functions
|
|
4
|
+
*/
|
|
5
|
+
export * from "./luhn.js";
|
|
6
|
+
export * from "./iban-checksum.js";
|
|
7
|
+
export * from "./offsets.js";
|
|
8
|
+
export * from "./path.js";
|
|
9
|
+
export * from "./storage.js";
|
|
10
|
+
export * from "./regex.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utils Module
|
|
3
|
+
* Exports utility functions
|
|
4
|
+
*/
|
|
5
|
+
export * from "./luhn.js";
|
|
6
|
+
export * from "./iban-checksum.js";
|
|
7
|
+
export * from "./offsets.js";
|
|
8
|
+
export * from "./path.js";
|
|
9
|
+
export * from "./storage.js";
|
|
10
|
+
export * from "./regex.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursive JSON Walker
|
|
3
|
+
* Walks a JSON-serializable value and transforms all string leaves.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Async function that transforms a string value.
|
|
7
|
+
*/
|
|
8
|
+
export type StringProcessor = (s: string) => Promise<string>;
|
|
9
|
+
/**
|
|
10
|
+
* Recursively walks a JSON-serializable value and applies a string processor
|
|
11
|
+
* to every string leaf. Returns a deep copy with all strings transformed.
|
|
12
|
+
*
|
|
13
|
+
* Strings are processed **sequentially** to ensure deterministic PII ID
|
|
14
|
+
* assignment when used with session.anonymize().
|
|
15
|
+
*
|
|
16
|
+
* @param value - Any JSON-serializable value (object, array, string, number, boolean, null)
|
|
17
|
+
* @param processString - Async function to transform each string leaf
|
|
18
|
+
* @returns Deep copy of the value with all strings transformed
|
|
19
|
+
*/
|
|
20
|
+
export declare function walkJson<T>(value: T, processString: StringProcessor): Promise<T>;
|
|
21
|
+
//# sourceMappingURL=json-walk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-walk.d.ts","sourceRoot":"","sources":["../../src/utils/json-walk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,KAAK,EAAE,CAAC,EACR,aAAa,EAAE,eAAe,GAC7B,OAAO,CAAC,CAAC,CAAC,CAkCZ"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursive JSON Walker
|
|
3
|
+
* Walks a JSON-serializable value and transforms all string leaves.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Recursively walks a JSON-serializable value and applies a string processor
|
|
7
|
+
* to every string leaf. Returns a deep copy with all strings transformed.
|
|
8
|
+
*
|
|
9
|
+
* Strings are processed **sequentially** to ensure deterministic PII ID
|
|
10
|
+
* assignment when used with session.anonymize().
|
|
11
|
+
*
|
|
12
|
+
* @param value - Any JSON-serializable value (object, array, string, number, boolean, null)
|
|
13
|
+
* @param processString - Async function to transform each string leaf
|
|
14
|
+
* @returns Deep copy of the value with all strings transformed
|
|
15
|
+
*/
|
|
16
|
+
export async function walkJson(value, processString) {
|
|
17
|
+
// null
|
|
18
|
+
if (value === null || value === undefined) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
// string — process it
|
|
22
|
+
if (typeof value === "string") {
|
|
23
|
+
return (await processString(value));
|
|
24
|
+
}
|
|
25
|
+
// non-object primitives (number, boolean) — pass through
|
|
26
|
+
if (typeof value !== "object") {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
// array — walk each element sequentially
|
|
30
|
+
if (Array.isArray(value)) {
|
|
31
|
+
const result = [];
|
|
32
|
+
for (const item of value) {
|
|
33
|
+
result.push(await walkJson(item, processString));
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
// plain object — walk each own enumerable property sequentially
|
|
38
|
+
const result = {};
|
|
39
|
+
for (const key of Object.keys(value)) {
|
|
40
|
+
result[key] = await walkJson(value[key], processString);
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=json-walk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-walk.js","sourceRoot":"","sources":["../../src/utils/json-walk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAQ,EACR,aAA8B;IAE9B,OAAO;IACP,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB;IACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAM,CAAC;IAC3C,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yCAAyC;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC;IAED,gEAAgE;IAChE,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,QAAQ,CACzB,KAAiC,CAAC,GAAG,CAAC,EACvC,aAAa,CACd,CAAC;IACJ,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Luhn Algorithm (Mod 10) Implementation
|
|
3
|
+
* Used for validating credit card numbers and other identifier checksums
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Validates a number string using the Luhn algorithm
|
|
7
|
+
* @param input - String of digits (spaces and dashes are stripped)
|
|
8
|
+
* @returns true if the checksum is valid
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateLuhn(input: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Calculates the Luhn check digit for a partial number
|
|
13
|
+
* @param partialNumber - String of digits without the check digit
|
|
14
|
+
* @returns The check digit (0-9)
|
|
15
|
+
*/
|
|
16
|
+
export declare function calculateLuhnCheckDigit(partialNumber: string): number;
|
|
17
|
+
//# sourceMappingURL=luhn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"luhn.d.ts","sourceRoot":"","sources":["../../src/utils/luhn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CA2BnD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAsBrE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Luhn Algorithm (Mod 10) Implementation
|
|
3
|
+
* Used for validating credit card numbers and other identifier checksums
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Validates a number string using the Luhn algorithm
|
|
7
|
+
* @param input - String of digits (spaces and dashes are stripped)
|
|
8
|
+
* @returns true if the checksum is valid
|
|
9
|
+
*/
|
|
10
|
+
export function validateLuhn(input) {
|
|
11
|
+
// Remove spaces, dashes, and other non-digit characters
|
|
12
|
+
const digits = input.replace(/\D/g, '');
|
|
13
|
+
if (digits.length === 0) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
let sum = 0;
|
|
17
|
+
let isEven = false;
|
|
18
|
+
// Process digits from right to left
|
|
19
|
+
for (let i = digits.length - 1; i >= 0; i--) {
|
|
20
|
+
let digit = parseInt(digits[i], 10);
|
|
21
|
+
if (isEven) {
|
|
22
|
+
digit *= 2;
|
|
23
|
+
if (digit > 9) {
|
|
24
|
+
digit -= 9;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
sum += digit;
|
|
28
|
+
isEven = !isEven;
|
|
29
|
+
}
|
|
30
|
+
return sum % 10 === 0;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Calculates the Luhn check digit for a partial number
|
|
34
|
+
* @param partialNumber - String of digits without the check digit
|
|
35
|
+
* @returns The check digit (0-9)
|
|
36
|
+
*/
|
|
37
|
+
export function calculateLuhnCheckDigit(partialNumber) {
|
|
38
|
+
const digits = partialNumber.replace(/\D/g, '');
|
|
39
|
+
let sum = 0;
|
|
40
|
+
let isEven = true; // Start with true since we're adding a digit
|
|
41
|
+
// Process digits from right to left
|
|
42
|
+
for (let i = digits.length - 1; i >= 0; i--) {
|
|
43
|
+
let digit = parseInt(digits[i], 10);
|
|
44
|
+
if (isEven) {
|
|
45
|
+
digit *= 2;
|
|
46
|
+
if (digit > 9) {
|
|
47
|
+
digit -= 9;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
sum += digit;
|
|
51
|
+
isEven = !isEven;
|
|
52
|
+
}
|
|
53
|
+
return (10 - (sum % 10)) % 10;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=luhn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"luhn.js","sourceRoot":"","sources":["../../src/utils/luhn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,wDAAwD;IACxD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAExC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,oCAAoC;IACpC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QAED,GAAG,IAAI,KAAK,CAAC;QACb,MAAM,GAAG,CAAC,MAAM,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEhD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,6CAA6C;IAEhE,oCAAoC;IACpC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QAED,GAAG,IAAI,KAAK,CAAC;QACb,MAAM,GAAG,CAAC,MAAM,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Character Offset Utilities
|
|
3
|
+
* Handles character offset calculations for text manipulation
|
|
4
|
+
*/
|
|
5
|
+
import type { SpanMatch } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Checks if two spans overlap
|
|
8
|
+
*/
|
|
9
|
+
export declare function spansOverlap(a: {
|
|
10
|
+
start: number;
|
|
11
|
+
end: number;
|
|
12
|
+
}, b: {
|
|
13
|
+
start: number;
|
|
14
|
+
end: number;
|
|
15
|
+
}): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if span A contains span B
|
|
18
|
+
*/
|
|
19
|
+
export declare function spanContains(outer: {
|
|
20
|
+
start: number;
|
|
21
|
+
end: number;
|
|
22
|
+
}, inner: {
|
|
23
|
+
start: number;
|
|
24
|
+
end: number;
|
|
25
|
+
}): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Gets the length of a span
|
|
28
|
+
*/
|
|
29
|
+
export declare function spanLength(span: {
|
|
30
|
+
start: number;
|
|
31
|
+
end: number;
|
|
32
|
+
}): number;
|
|
33
|
+
/**
|
|
34
|
+
* Extracts text for a span from the original text
|
|
35
|
+
*/
|
|
36
|
+
export declare function getSpanText(text: string, span: {
|
|
37
|
+
start: number;
|
|
38
|
+
end: number;
|
|
39
|
+
}): string;
|
|
40
|
+
/**
|
|
41
|
+
* Sorts spans by start position (ascending) then by length (descending)
|
|
42
|
+
*/
|
|
43
|
+
export declare function sortSpansByPosition<T extends {
|
|
44
|
+
start: number;
|
|
45
|
+
end: number;
|
|
46
|
+
}>(spans: T[]): T[];
|
|
47
|
+
/**
|
|
48
|
+
* Sorts spans by start position descending (for replacement operations)
|
|
49
|
+
*/
|
|
50
|
+
export declare function sortSpansByPositionDescending<T extends {
|
|
51
|
+
start: number;
|
|
52
|
+
end: number;
|
|
53
|
+
}>(spans: T[]): T[];
|
|
54
|
+
/**
|
|
55
|
+
* Removes overlapping spans, keeping the preferred ones based on a comparator
|
|
56
|
+
* @param spans - Array of spans to deduplicate
|
|
57
|
+
* @param prefer - Comparator that returns positive if 'a' should be preferred over 'b'
|
|
58
|
+
*/
|
|
59
|
+
export declare function removeOverlappingSpans<T extends SpanMatch>(spans: T[], prefer: (a: T, b: T) => number): T[];
|
|
60
|
+
/**
|
|
61
|
+
* Validates that spans don't overlap (for final validation)
|
|
62
|
+
*/
|
|
63
|
+
export declare function validateNoOverlaps(spans: {
|
|
64
|
+
start: number;
|
|
65
|
+
end: number;
|
|
66
|
+
}[]): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Calculates offset adjustments for replacements
|
|
69
|
+
* Used when you need to map positions between original and modified text
|
|
70
|
+
*/
|
|
71
|
+
export interface OffsetAdjustment {
|
|
72
|
+
originalStart: number;
|
|
73
|
+
originalEnd: number;
|
|
74
|
+
newStart: number;
|
|
75
|
+
newEnd: number;
|
|
76
|
+
delta: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Builds a list of offset adjustments from replacements
|
|
80
|
+
*/
|
|
81
|
+
export declare function buildOffsetAdjustments(replacements: Array<{
|
|
82
|
+
start: number;
|
|
83
|
+
end: number;
|
|
84
|
+
replacement: string;
|
|
85
|
+
}>): OffsetAdjustment[];
|
|
86
|
+
//# sourceMappingURL=offsets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offsets.d.ts","sourceRoot":"","sources":["../../src/utils/offsets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE1G;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAElH;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEtF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAQ7F;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEvG;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,SAAS,EACxD,KAAK,EAAE,CAAC,EAAE,EACV,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAC7B,CAAC,EAAE,CA0CL;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,OAAO,CAanF;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GACvE,gBAAgB,EAAE,CAsBpB"}
|