@shellicar/core-config 2.1.4 → 2.1.5
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/CHANGELOG.md +102 -0
- package/README.md +166 -3
- package/dist/cjs/EncryptedValue.cjs +8 -1
- package/dist/cjs/EncryptedValue.cjs.map +1 -1
- package/dist/cjs/SecureConnectionString.cjs +11 -1
- package/dist/cjs/SecureConnectionString.cjs.map +1 -1
- package/dist/cjs/SecureString.cjs +10 -1
- package/dist/cjs/SecureString.cjs.map +1 -1
- package/dist/cjs/SecureURL.cjs +11 -1
- package/dist/cjs/SecureURL.cjs.map +1 -1
- package/dist/cjs/chunks/chunk-BDMFGBTR.cjs +59 -0
- package/dist/cjs/chunks/chunk-BDMFGBTR.cjs.map +1 -0
- package/dist/cjs/chunks/chunk-FOL2TBBQ.cjs +7 -0
- package/dist/cjs/chunks/chunk-FOL2TBBQ.cjs.map +1 -0
- package/dist/cjs/chunks/chunk-GGWBGRR3.cjs +29 -0
- package/dist/cjs/chunks/chunk-GGWBGRR3.cjs.map +1 -0
- package/dist/cjs/chunks/chunk-K6RFKD55.cjs +41 -0
- package/dist/cjs/chunks/chunk-K6RFKD55.cjs.map +1 -0
- package/dist/cjs/chunks/chunk-PO2PS4VB.cjs +34 -0
- package/dist/cjs/chunks/chunk-PO2PS4VB.cjs.map +1 -0
- package/dist/cjs/chunks/chunk-R4H4GKFW.cjs +82 -0
- package/dist/cjs/chunks/chunk-R4H4GKFW.cjs.map +1 -0
- package/dist/cjs/chunks/chunk-SRMLZGCX.cjs +71 -0
- package/dist/cjs/chunks/chunk-SRMLZGCX.cjs.map +1 -0
- package/dist/cjs/chunks/chunk-X6BO6XFB.cjs +7 -0
- package/dist/cjs/chunks/chunk-X6BO6XFB.cjs.map +1 -0
- package/dist/cjs/chunks/chunk-YK25AWXL.cjs +48 -0
- package/dist/cjs/chunks/chunk-YK25AWXL.cjs.map +1 -0
- package/dist/cjs/createFactory.cjs +17 -1
- package/dist/cjs/createFactory.cjs.map +1 -1
- package/dist/cjs/defaults.cjs +8 -1
- package/dist/cjs/defaults.cjs.map +1 -1
- package/dist/cjs/hash.cjs +8 -1
- package/dist/cjs/hash.cjs.map +1 -1
- package/dist/cjs/index.cjs +30 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/interfaces.cjs +14 -1
- package/dist/cjs/interfaces.cjs.map +1 -1
- package/dist/cjs/types.cjs +15 -1
- package/dist/cjs/types.cjs.map +1 -1
- package/dist/esm/EncryptedValue.js +8 -1
- package/dist/esm/EncryptedValue.js.map +1 -1
- package/dist/esm/SecureConnectionString.js +11 -1
- package/dist/esm/SecureConnectionString.js.map +1 -1
- package/dist/esm/SecureString.js +10 -1
- package/dist/esm/SecureString.js.map +1 -1
- package/dist/esm/SecureURL.js +11 -1
- package/dist/esm/SecureURL.js.map +1 -1
- package/dist/esm/chunks/chunk-2L4YGJ3C.js +71 -0
- package/dist/esm/chunks/chunk-2L4YGJ3C.js.map +1 -0
- package/dist/esm/chunks/chunk-GOUAOFCH.js +7 -0
- package/dist/esm/chunks/chunk-GOUAOFCH.js.map +1 -0
- package/dist/esm/chunks/chunk-GWYWZHV2.js +7 -0
- package/dist/esm/chunks/chunk-GWYWZHV2.js.map +1 -0
- package/dist/esm/chunks/chunk-KM6K7D2J.js +41 -0
- package/dist/esm/chunks/chunk-KM6K7D2J.js.map +1 -0
- package/dist/esm/chunks/chunk-TRDZS6YE.js +34 -0
- package/dist/esm/chunks/chunk-TRDZS6YE.js.map +1 -0
- package/dist/esm/chunks/chunk-UDMHV6JX.js +82 -0
- package/dist/esm/chunks/chunk-UDMHV6JX.js.map +1 -0
- package/dist/esm/chunks/chunk-UJTGIE6R.js +59 -0
- package/dist/esm/chunks/chunk-UJTGIE6R.js.map +1 -0
- package/dist/esm/chunks/chunk-UOGVVT4U.js +29 -0
- package/dist/esm/chunks/chunk-UOGVVT4U.js.map +1 -0
- package/dist/esm/chunks/chunk-VIUQA4IN.js +48 -0
- package/dist/esm/chunks/chunk-VIUQA4IN.js.map +1 -0
- package/dist/esm/createFactory.js +17 -1
- package/dist/esm/createFactory.js.map +1 -1
- package/dist/esm/defaults.js +8 -1
- package/dist/esm/defaults.js.map +1 -1
- package/dist/esm/hash.js +8 -1
- package/dist/esm/hash.js.map +1 -1
- package/dist/esm/index.js +30 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces.js +14 -1
- package/dist/esm/interfaces.js.map +1 -1
- package/dist/esm/types.js +15 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +11 -10
- package/dist/cjs/chunk-7PP3CDDK.cjs +0 -1
- package/dist/cjs/chunk-7PP3CDDK.cjs.map +0 -1
- package/dist/cjs/chunk-FKX4J4Q2.cjs +0 -1
- package/dist/cjs/chunk-FKX4J4Q2.cjs.map +0 -1
- package/dist/cjs/chunk-J7CRMQ5Z.cjs +0 -1
- package/dist/cjs/chunk-J7CRMQ5Z.cjs.map +0 -1
- package/dist/cjs/chunk-JS7CWWUD.cjs +0 -1
- package/dist/cjs/chunk-JS7CWWUD.cjs.map +0 -1
- package/dist/cjs/chunk-JVM3GGW6.cjs +0 -1
- package/dist/cjs/chunk-JVM3GGW6.cjs.map +0 -1
- package/dist/cjs/chunk-PK6SKIKE.cjs +0 -1
- package/dist/cjs/chunk-PK6SKIKE.cjs.map +0 -1
- package/dist/cjs/chunk-VQ2XCAJT.cjs +0 -1
- package/dist/cjs/chunk-VQ2XCAJT.cjs.map +0 -1
- package/dist/cjs/chunk-WZWXGAJN.cjs +0 -1
- package/dist/cjs/chunk-WZWXGAJN.cjs.map +0 -1
- package/dist/cjs/chunk-XVDIOMZD.cjs +0 -1
- package/dist/cjs/chunk-XVDIOMZD.cjs.map +0 -1
- package/dist/esm/chunk-7QVYU63E.js +0 -1
- package/dist/esm/chunk-7QVYU63E.js.map +0 -1
- package/dist/esm/chunk-CGPJ25IS.js +0 -1
- package/dist/esm/chunk-CGPJ25IS.js.map +0 -1
- package/dist/esm/chunk-FUGQ3OFQ.js +0 -1
- package/dist/esm/chunk-FUGQ3OFQ.js.map +0 -1
- package/dist/esm/chunk-GJXVQ2LL.js +0 -1
- package/dist/esm/chunk-GJXVQ2LL.js.map +0 -1
- package/dist/esm/chunk-JAXX5FG7.js +0 -1
- package/dist/esm/chunk-JAXX5FG7.js.map +0 -1
- package/dist/esm/chunk-NWPDBO55.js +0 -1
- package/dist/esm/chunk-NWPDBO55.js.map +0 -1
- package/dist/esm/chunk-S3UXVGVK.js +0 -1
- package/dist/esm/chunk-S3UXVGVK.js.map +0 -1
- package/dist/esm/chunk-TGJY6ZQ7.js +0 -1
- package/dist/esm/chunk-TGJY6ZQ7.js.map +0 -1
- package/dist/esm/chunk-XICVVAG4.js +0 -1
- package/dist/esm/chunk-XICVVAG4.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{EncryptedValue as r}from"./chunk-CGPJ25IS.js";import{SecureConnectionString as t}from"./chunk-S3UXVGVK.js";import{SecureURL as o}from"./chunk-TGJY6ZQ7.js";import{SecureString as c}from"./chunk-JAXX5FG7.js";import{defaultSecureKeys as e}from"./chunk-FUGQ3OFQ.js";import{__name as n}from"./chunk-7QVYU63E.js";var s={encrypt:n(t=>new r(t),"encrypt")},i=n(r=>{const n={secret:r?.secret??null,encryptionProvider:r?.encryptionProvider??s,secretKeys:r?.secretKeys??e};return{string:c.factory(n),connectionString:t.factory(n),url:o.factory(n)}},"createFactory");export{i as createFactory,s as defaultEncryptionProvider};//# sourceMappingURL=chunk-NWPDBO55.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/createFactory.ts"],"names":[],"mappings":";AAQO,IAAM,yBAAA,GAAiD;AAAA,EAC5D,yBAAS,MAAA,CAAA,CAAC,KAAA,KAAkB,IAAI,cAAA,CAAe,KAAK,CAAA,EAA3C,SAAA;AACX;AAEO,IAAM,aAAA,2BAAiB,OAAA,KAAoD;AAChF,EAAA,MAAM,MAAA,GAAuB;AAAA,IAC3B,MAAA,EAAQ,SAAS,MAAA,IAAU,IAAA;AAAA,IAC3B,kBAAA,EAAoB,SAAS,kBAAA,IAAsB,yBAAA;AAAA,IACnD,UAAA,EAAY,SAAS,UAAA,IAAc;AAAA,GACrC;AAEA,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,YAAA,CAAa,OAAA,CAAQ,MAAM,CAAA;AAAA,IACnC,gBAAA,EAAkB,sBAAA,CAAuB,OAAA,CAAQ,MAAM,CAAA;AAAA,IACvD,GAAA,EAAK,SAAA,CAAU,OAAA,CAAQ,MAAM;AAAA,GAC/B;AACF,CAAA,EAZ6B,eAAA","file":"chunk-NWPDBO55.js","sourcesContent":["import { defaultSecureKeys } from './defaults';\nimport { EncryptedValue } from './EncryptedValue';\nimport type { ISecureFactory } from './interfaces';\nimport { SecureConnectionString } from './SecureConnectionString';\nimport { SecureString } from './SecureString';\nimport { SecureURL } from './SecureURL';\nimport type { IEncryptionProvider, SecureConfig } from './types';\n\nexport const defaultEncryptionProvider: IEncryptionProvider = {\n encrypt: (value: string) => new EncryptedValue(value),\n};\n\nexport const createFactory = (options?: Partial<SecureConfig>): ISecureFactory => {\n const config: SecureConfig = {\n secret: options?.secret ?? null,\n encryptionProvider: options?.encryptionProvider ?? defaultEncryptionProvider,\n secretKeys: options?.secretKeys ?? defaultSecureKeys,\n };\n\n return {\n string: SecureString.factory(config),\n connectionString: SecureConnectionString.factory(config),\n url: SecureURL.factory(config),\n };\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{SecureString as t}from"./chunk-JAXX5FG7.js";import{ISecureConnectionString as e}from"./chunk-XICVVAG4.js";import{__name as r}from"./chunk-7QVYU63E.js";import n from"node:util";var o=class o extends e{static{r(this,"SecureConnectionString")}#t;#e;get secretValue(){return this.#t.getValue()}constructor(t,e){super(),this.#t=e.encryptionProvider.encrypt(t),this.#e=this.parseConnectionString(t,e.secretKeys.map(t=>t.toLocaleLowerCase()),e)}parseConnectionString(e,r,n){return e.split(";").filter(Boolean).map(e=>{const[o,i]=e.split("="),s=i??"",c=r.includes(o.toLocaleLowerCase())?t.from(s,n):s;return[o,c]})}static factory(t){return e=>o.from(e,t)}static from(t,e){return null===t?null:void 0!==t?new o(t,e):void 0}toString(){return this.#e.map(([t,e])=>`${t}=${e}`).join(";")}toJSON(){return Object.fromEntries(this.#e)}[n.inspect.custom](t,e,r){if(t<0)return"[SecureConnectionString]";const n=Object.assign({},e,{depth:null==e.depth?null:e.depth-1});return r(this.toJSON(),n)}};export{o as SecureConnectionString};//# sourceMappingURL=chunk-S3UXVGVK.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/SecureConnectionString.ts"],"names":["value"],"mappings":"8KAKO,IAAM,sBAAA,GAAN,MAAM,uBAAA,SAA+B,uBAAA,CAAwB;AAAA,EALpE;AAKoE,IAAA,MAAA,CAAA,IAAA,EAAA,wBAAA,CAAA;AAAA;AAAA,EACzD,eAAA;AAAA,EACA,KAAA;AAAA,EAET,IAAW,WAAA,GAAsB;AAC/B,IAAA,OAAO,IAAA,CAAK,gBAAgB,QAAA,EAAS;AAAA,EACvC;AAAA,EAEQ,WAAA,CAAY,OAAe,MAAA,EAAsB;AACvD,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,eAAA,GAAkB,MAAA,CAAO,kBAAA,CAAmB,OAAA,CAAQ,KAAK,CAAA;AAC9D,IAAA,IAAA,CAAK,QAAQ,IAAA,CAAK,qBAAA;AAAA,MAChB,KAAA;AAAA,MACA,OAAO,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,mBAAmB,CAAA;AAAA,MAClD;AAAA,KACF;AAAA,EACF;AAAA,EAEQ,qBAAA,CAAsB,KAAA,EAAe,UAAA,EAAwB,MAAA,EAAyD;AAC5H,IAAA,OAAO,KAAA,CACJ,MAAM,GAAG,CAAA,CACT,OAAO,OAAO,CAAA,CACd,GAAA,CAAI,CAAC,IAAA,KAAS;AACb,MAAA,MAAM,CAAC,GAAA,EAAKA,MAAK,CAAA,GAAI,IAAA,CAAK,MAAM,GAAG,CAAA;AACnC,MAAA,MAAM,IAAIA,MAAAA,IAAS,EAAA;AACnB,MAAA,MAAM,GAAA,GAAM,UAAA,CAAW,QAAA,CAAS,GAAA,CAAI,iBAAA,EAAmB,CAAA,GAAI,YAAA,CAAa,IAAA,CAAK,CAAA,EAAG,MAAM,CAAA,GAAI,CAAA;AAC1F,MAAA,OAAO,CAAC,KAAK,GAAG,CAAA;AAAA,IAClB,CAAC,CAAA;AAAA,EACL;AAAA,EAEA,OAAO,QAAQ,MAAA,EAAiE;AAC9E,IAAA,OAAO,CAAC,KAAA,KAAkB,uBAAA,CAAuB,IAAA,CAAK,OAAO,MAAM,CAAA;AAAA,EACrE;AAAA,EAEA,OAAc,IAAA,CAA0C,KAAA,EAAU,MAAA,EAAqE;AACrI,IAAA,IAAI,UAAU,IAAA,EAAM;AAClB,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,OAAO,MAAA;AAAA,IACT;AACA,IAAA,OAAO,IAAI,uBAAA,CAAuB,KAAA,EAAO,MAAM,CAAA;AAAA,EACjD;AAAA,EAEgB,QAAA,GAAmB;AACjC,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,EACrE;AAAA,EAEgB,MAAA,GAAiB;AAC/B,IAAA,OAAO,MAAA,CAAO,WAAA,CAAY,IAAA,CAAK,KAAK,CAAA;AAAA,EACtC;AAAA,EAEA,CAAiB,IAAA,CAAK,OAAA,CAAQ,MAAM,CAAA,CAAE,KAAA,EAAe,SAAyB,OAAA,EAAkC;AAC9G,IAAA,IAAI,QAAQ,CAAA,EAAG;AACb,MAAA,OAAO,0BAAA;AAAA,IACT;AACA,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,IAAI,OAAA,EAAS;AAAA,MAC5C,OAAO,OAAA,CAAQ,KAAA,IAAS,IAAA,GAAO,IAAA,GAAO,QAAQ,KAAA,GAAQ;AAAA,KACvD,CAAA;AACD,IAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAA,EAAO,EAAG,UAAU,CAAA;AAAA,EAC1C;AACF","file":"chunk-S3UXVGVK.js","sourcesContent":["import util, { type InspectOptions } from 'node:util';\nimport { ISecureConnectionString } from './interfaces';\nimport { SecureString } from './SecureString';\nimport type { IEncryptedValue, InspectFunction, SecureConfig, SecureKeys } from './types';\n\nexport class SecureConnectionString extends ISecureConnectionString {\n readonly #encryptedValue: IEncryptedValue;\n readonly #data: [string, string | SecureString][];\n\n public get secretValue(): string {\n return this.#encryptedValue.getValue();\n }\n\n private constructor(value: string, config: SecureConfig) {\n super();\n this.#encryptedValue = config.encryptionProvider.encrypt(value);\n this.#data = this.parseConnectionString(\n value,\n config.secretKeys.map((x) => x.toLocaleLowerCase()),\n config,\n );\n }\n\n private parseConnectionString(value: string, secretKeys: SecureKeys, config: SecureConfig): [string, string | SecureString][] {\n return value\n .split(';')\n .filter(Boolean)\n .map((pair) => {\n const [key, value] = pair.split('=');\n const v = value ?? '';\n const val = secretKeys.includes(key.toLocaleLowerCase()) ? SecureString.from(v, config) : v;\n return [key, val];\n });\n }\n\n static factory(config: SecureConfig): (value: string) => SecureConnectionString {\n return (value: string) => SecureConnectionString.from(value, config);\n }\n\n public static from<T extends string | null | undefined>(value: T, config: SecureConfig): T extends string ? SecureConnectionString : T {\n if (value === null) {\n return null as T extends string ? SecureConnectionString : T;\n }\n if (value === undefined) {\n return undefined as T extends string ? SecureConnectionString : T;\n }\n return new SecureConnectionString(value, config) as T extends string ? SecureConnectionString : T;\n }\n\n public override toString(): string {\n return this.#data.map(([key, value]) => `${key}=${value}`).join(';');\n }\n\n public override toJSON(): object {\n return Object.fromEntries(this.#data);\n }\n\n public override [util.inspect.custom](depth: number, options: InspectOptions, inspect: InspectFunction): string {\n if (depth < 0) {\n return '[SecureConnectionString]';\n }\n const newOptions = Object.assign({}, options, {\n depth: options.depth == null ? null : options.depth - 1,\n });\n return inspect(this.toJSON(), newOptions);\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{SecureString as r}from"./chunk-JAXX5FG7.js";import{ISecureURL as t}from"./chunk-XICVVAG4.js";import{__name as e}from"./chunk-7QVYU63E.js";import s from"node:util";var o=class o extends t{static{e(this,"SecureURL")}#r;#t;get secretValue(){return new URL(this.#r.getValue())}constructor(t,e){super(),this.#r=e.encryptionProvider.encrypt(t.href),this.#t=r.from(t.password||null,e)}static factory(r){return t=>o.from(t,r)}static from(r,t){return null===r?null:void 0!==r?new o(r,t):void 0}toString(){const r=this.secretValue,t=new URL(r.href);return null!==this.#t&&(t.password=this.#t.toString()),t.href}toJSON(){const r=this.secretValue,t=new URL(r.href);t.password="";const e=new URLSearchParams(t.searchParams);let s;t.search="",null!==this.#t&&(s=this.#t.toString());const o={href:t.href};return void 0!==s&&(o.password=s),e.size>0&&(o.searchParams=Object.fromEntries(e)),o}[s.inspect.custom](r,t,e){if(r<0)return"[SecureURL]";const s=Object.assign({},t,{depth:null==t.depth?null:t.depth-1});return e(this.toJSON(),s)}};export{o as SecureURL};//# sourceMappingURL=chunk-TGJY6ZQ7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/SecureURL.ts"],"names":[],"mappings":"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","file":"chunk-TGJY6ZQ7.js","sourcesContent":["import util, { type InspectOptions } from 'node:util';\nimport { ISecureURL } from './interfaces';\nimport { SecureString } from './SecureString';\nimport type { IEncryptedValue, InspectFunction, SecureConfig } from './types';\n\ntype UrlObject = {\n href: string;\n password?: string;\n searchParams?: Record<string, string>;\n};\n\nexport class SecureURL extends ISecureURL {\n readonly #encryptedValue: IEncryptedValue;\n readonly #password: SecureString | null;\n\n public get secretValue(): URL {\n return new URL(this.#encryptedValue.getValue());\n }\n\n private constructor(value: URL, config: SecureConfig) {\n super();\n this.#encryptedValue = config.encryptionProvider.encrypt(value.href);\n this.#password = SecureString.from(value.password || null, config);\n }\n\n static factory(config: SecureConfig): (value: URL) => ISecureURL {\n return (value: URL) => SecureURL.from(value, config);\n }\n\n public static from<T extends URL | null | undefined>(value: T, config: SecureConfig): T extends URL ? SecureURL : T {\n if (value === null) {\n return null as T extends URL ? SecureURL : T;\n }\n if (value === undefined) {\n return undefined as T extends URL ? SecureURL : T;\n }\n return new SecureURL(value, config) as T extends URL ? SecureURL : T;\n }\n\n override toString(): string {\n const originalUrl = this.secretValue;\n const newUrl = new URL(originalUrl.href);\n if (this.#password !== null) {\n newUrl.password = this.#password.toString();\n }\n return newUrl.href;\n }\n\n override toJSON(): UrlObject {\n const originalUrl = this.secretValue;\n const newUrl = new URL(originalUrl.href);\n newUrl.password = '';\n\n const searchParams = new URLSearchParams(newUrl.searchParams);\n newUrl.search = '';\n\n let password: string | undefined;\n if (this.#password !== null) {\n password = this.#password.toString();\n }\n\n const result: UrlObject = {\n href: newUrl.href,\n };\n if (password !== undefined) {\n result.password = password;\n }\n if (searchParams.size > 0) {\n result.searchParams = Object.fromEntries(searchParams);\n }\n return result;\n }\n override [util.inspect.custom](depth: number, options: InspectOptions, inspect: InspectFunction): string {\n if (depth < 0) {\n return '[SecureURL]';\n }\n const newOptions = Object.assign({}, options, {\n depth: options.depth == null ? null : options.depth - 1,\n });\n return inspect(this.toJSON(), newOptions);\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{__name as t}from"./chunk-7QVYU63E.js";var s=class{static{t(this,"ISecureString")}},c=class{static{t(this,"ISecureConnectionString")}},i=class{static{t(this,"ISecureURL")}},r=class{static{t(this,"ISecureFactory")}};export{c as ISecureConnectionString,r as ISecureFactory,s as ISecureString,i as ISecureURL};//# sourceMappingURL=chunk-XICVVAG4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interfaces.ts"],"names":[],"mappings":";AAGO,IAAe,gBAAf,MAAmD;AAAA,EAH1D;AAG0D,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAAA;AAK1D;AAEO,IAAe,0BAAf,MAA6D;AAAA,EAVpE;AAUoE,IAAA,MAAA,CAAA,IAAA,EAAA,yBAAA,CAAA;AAAA;AAKpE;AAEO,IAAe,aAAf,MAAgD;AAAA,EAjBvD;AAiBuD,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAKvD;AAEO,IAAe,iBAAf,MAA8B;AAAA,EAxBrC;AAwBqC,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AAAA;AAIrC","file":"chunk-XICVVAG4.js","sourcesContent":["import util, { type InspectOptions } from 'node:util';\nimport type { BaseObject, InspectFunction } from './types';\n\nexport abstract class ISecureString implements BaseObject {\n public abstract toString(): string;\n public abstract toJSON(): string | object;\n public abstract [util.inspect.custom](depth: number, options: InspectOptions, inspect: InspectFunction): string;\n public abstract get secretValue(): string;\n}\n\nexport abstract class ISecureConnectionString implements BaseObject {\n public abstract toString(): string;\n public abstract toJSON(): string | object;\n public abstract [util.inspect.custom](depth: number, options: InspectOptions, inspect: InspectFunction): string;\n public abstract get secretValue(): string;\n}\n\nexport abstract class ISecureURL implements BaseObject {\n public abstract toString(): string;\n public abstract toJSON(): object;\n public abstract [util.inspect.custom](depth: number, options: InspectOptions, inspect: InspectFunction): string;\n public abstract get secretValue(): URL;\n}\n\nexport abstract class ISecureFactory {\n public abstract string(value: string): ISecureString;\n public abstract connectionString(value: string, secretKeys?: readonly string[]): ISecureConnectionString;\n public abstract url(value: URL): ISecureURL;\n}\n"]}
|