samlesa 3.4.2 → 3.5.0

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/package.json CHANGED
@@ -1,75 +1,88 @@
1
- {
2
- "name": "samlesa",
3
- "version": "3.4.2",
4
- "description": "High-level API for Single Sign On (SAML 2.0) baseed on samlify ",
5
- "main": "build/index.js",
6
- "keywords": [
7
- "nodejs",
8
- "saml2",
9
- "sso",
10
- "slo",
11
- "metadata"
12
- ],
13
- "type": "module",
14
- "typings": "types/index.d.ts",
15
- "scripts": {
16
- "build": "tsc && copyfiles -u 1 src/schema/**/* build/src",
17
- "docs": "docsify serve -o docs",
18
- "lint": "tslint -p .",
19
- "lint:fix": "tslint -p . --fix",
20
- "test": "vitest",
21
- "test:watch": "vitest --watch",
22
- "test:coverage": "vitest run --coverage",
23
- "hooks:postinstall": "mklink /J .git\\hooks\\pre-commit .pre-commit.sh || copy .pre-commit.sh .git\\hooks\\pre-commit"
24
- },
25
- "exports": {
26
- ".": {
27
- "types": "./types/index.d.ts",
28
- "import": "./build/index.js"
29
- }
30
- },
31
- "files": [
32
- "build",
33
- "types"
34
- ],
35
- "contributors": [
36
- "Veclea <vemocle@gmail.com>"
37
- ],
38
- "author": "Veclea",
39
- "repository": {
40
- "url": "https://github.com/Veclea/samlify.git",
41
- "type": "git"
42
- },
43
- "license": "MIT",
44
- "dependencies": {
45
- "@xmldom/xmldom": "^0.9.8",
46
- "axios": "^1.13.5",
47
- "camelcase": "^9.0.0",
48
- "cross-env": "^10.1.0",
49
- "iconv-lite": "^0.7.2",
50
- "ts-node": "^10.9.2",
51
- "vite-tsconfig-paths": "^6.1.1",
52
- "xml": "^1.0.1",
53
- "xml-crypto": "^6.1.2",
54
- "xml-crypto-next": "^7.0.4",
55
- "xml-encryption-next": "^4.6.0",
56
- "xml-escape": "^1.1.0",
57
- "xml2js": "^0.6.2",
58
- "xmllint-wasm": "^5.1.0",
59
- "xpath": "^0.0.34"
60
- },
61
- "devDependencies": {
62
- "@types/node": "^25.3.2",
63
- "@types/pako": "2.0.4",
64
- "@types/uuid": "11.0.0",
65
- "@vitest/coverage-istanbul": "^4.0.18",
66
- "@vitest/coverage-v8": "4.0.18",
67
- "copyfiles": "^2.4.1",
68
- "coveralls": "^3.1.1",
69
- "esbuild": "^0.27.3",
70
- "jsdom": "^28.1.0",
71
- "timekeeper": "^2.3.1",
72
- "typescript": "5.9.3",
73
- "vitest": "^4.0.18"
74
- }
75
- }
1
+ {
2
+ "name": "samlesa",
3
+ "version": "3.5.0",
4
+ "description": "High-level API for Single Sign On (SAML 2.0) baseed on samlify ",
5
+ "main": "build/index.js",
6
+ "keywords": [
7
+ "nodejs",
8
+ "saml2",
9
+ "sso",
10
+ "slo",
11
+ "metadata"
12
+ ],
13
+ "type": "module",
14
+ "typings": "types/index.d.ts",
15
+ "homepage": "https://saml.veclea.com",
16
+ "scripts": {
17
+ "build": "tsc && copyfiles -u 1 src/schema/**/* build/src",
18
+ "build:fast": "tsc",
19
+ "build:clean": "tsc --build --clean && pnpm run build",
20
+ "docs:dev": "cd docs && npm run docs:dev",
21
+ "docs:build": "cd docs && npm run docs:build",
22
+ "docs:preview": "cd docs && npm run docs:preview",
23
+ "docs:deploy": "vercel --prod",
24
+ "lint": "tslint -p .",
25
+ "lint:fix": "tslint -p . --fix",
26
+ "test": "vitest run",
27
+ "test:watch": "vitest",
28
+ "test:coverage": "vitest run --coverage",
29
+ "test:fast": "vitest run --pool=forks",
30
+ "test:artifact": "vitest run test/artifact.test.ts",
31
+ "generate-certs": "node scripts/generate-certs.js",
32
+ "hooks:postinstall": "mklink /J .git\\hooks\\pre-commit .pre-commit.sh || copy .pre-commit.sh .git\\hooks\\pre-commit"
33
+ },
34
+ "exports": {
35
+ ".": {
36
+ "types": "./types/index.d.ts",
37
+ "import": "./build/index.js"
38
+ }
39
+ },
40
+ "files": [
41
+ "build",
42
+ "types"
43
+ ],
44
+ "contributors": [
45
+ "Veclea <vemocle@gmail.com>"
46
+ ],
47
+ "author": "Veclea",
48
+ "repository": {
49
+ "url": "https://github.com/Veclea/samlify.git",
50
+ "type": "git"
51
+ },
52
+ "bugs": {
53
+ "url": "https://github.com/Veclea/samlify/issues"
54
+ },
55
+ "docs": "https://saml.veclea.com",
56
+ "license": "MIT",
57
+ "dependencies": {
58
+ "@xmldom/xmldom": "^0.9.8",
59
+ "axios": "^1.13.6",
60
+ "camelcase": "^9.0.0",
61
+ "cross-env": "^10.1.0",
62
+ "iconv-lite": "^0.7.2",
63
+ "ts-node": "^10.9.2",
64
+ "vite-tsconfig-paths": "^6.1.1",
65
+ "xml": "^1.0.1",
66
+ "xml-crypto": "^6.1.2",
67
+ "xml-crypto-next": "^7.0.4",
68
+ "xml-encryption-next": "^4.6.0",
69
+ "xml-escape": "^1.1.0",
70
+ "xml2js": "^0.6.2",
71
+ "xmllint-wasm": "^5.2.0",
72
+ "xpath": "^0.0.34"
73
+ },
74
+ "devDependencies": {
75
+ "@types/node": "^25.5.0",
76
+ "@types/pako": "2.0.4",
77
+ "@types/uuid": "11.0.0",
78
+ "@vitest/coverage-istanbul": "^4.1.2",
79
+ "@vitest/coverage-v8": "4.1.2",
80
+ "copyfiles": "^2.4.1",
81
+ "coveralls": "^3.1.1",
82
+ "esbuild": "^0.27.4",
83
+ "jsdom": "^29.0.1",
84
+ "timekeeper": "^2.3.1",
85
+ "typescript": "6.0.2",
86
+ "vitest": "^4.1.2"
87
+ }
88
+ }
@@ -1,43 +1,71 @@
1
+ /**
2
+ * @file binding-artifact.ts
3
+ * @author tngan
4
+ * @desc Binding-level API for SAML 2.0 Artifact Binding
5
+ * @see https://docs.oasis-open.org/security/saml/v2.0/saml-bind-2.0-os.pdf
6
+ */
1
7
  import type { BindingContext } from './entity.js';
2
8
  import { IdentityProviderConstructor as IdentityProvider, ServiceProviderConstructor as ServiceProvider } from "./types.js";
9
+ import { Base64LoginResponseParams } from "./types.js";
10
+ /**
11
+ * Generate a SAML 2.0 compliant Artifact ID
12
+ * Format: [TypeCode: 2 bytes] + [EndpointIndex: 2 bytes] + [SourceID: 20 bytes] + [MessageHandle: 20 bytes]
13
+ * @param issuerId The entity ID of the issuing party (IdP)
14
+ * @param endpointIndex The index of the destination endpoint (default is 1 for Artifact Resolution Service)
15
+ * @returns The Base64 encoded Artifact ID string
16
+ */
17
+ export declare function generateArtifactId(issuerId: string, endpointIndex?: number): string;
18
+ /**
19
+ * @desc Generate a SOAP-encoded login request for Artifact binding
20
+ * @param {string} referenceTagXPath reference uri
21
+ * @param {object} entity object includes both idp and sp
22
+ * @param {function} customTagReplacement used when developers have their own login request template
23
+ * @returns {BindingContext}
24
+ */
25
+ declare function soapLoginRequest(referenceTagXPath: string, entity: {
26
+ idp: IdentityProvider;
27
+ sp: ServiceProvider;
28
+ inResponse?: string;
29
+ relayState?: string;
30
+ }, customTagReplacement?: (template: string) => BindingContext): BindingContext;
3
31
  /**
4
- * @desc Generate a base64 encoded login request
5
- * @param {string} referenceTagXPath reference uri
6
- * @param {object} entity object includes both idp and sp
7
- * @param customTagReplacement
32
+ * @desc Generate a SOAP-encoded login response for Artifact binding
33
+ * @param {Base64LoginResponseParams} params parameters for generating login response
34
+ * @returns {BindingContext}
8
35
  */
9
- declare function soapLoginRequest(referenceTagXPath: string, entity: any, customTagReplacement?: (template: string) => BindingContext): any;
36
+ declare function soapLoginResponse(params: Base64LoginResponseParams): Promise<BindingContext>;
10
37
  /**
11
- * @desc Generate a base64 encoded login response
12
- * @param {object} requestInfo corresponding request, used to obtain the id
13
- * @param {object} entity object includes both idp and sp
14
- * @param {object} user current logged user (e.g. req.user)
15
- * @param {function} customTagReplacement used when developers have their own login response template
16
- * @param {boolean} encryptThenSign whether or not to encrypt then sign first (if signing). Defaults to sign-then-encrypt
17
- * @param AttributeStatement
38
+ * @desc Parse and validate Artifact Resolve request
39
+ * @param {object} params
40
+ * @param {IdentityProvider} params.idp Identity Provider instance
41
+ * @param {ServiceProvider} params.sp Service Provider instance
42
+ * @param {string} params.xml SOAP request XML string
43
+ * @returns {Promise}
18
44
  */
19
- declare function soapLoginResponse(requestInfo: any | undefined, entity: any, user?: any, customTagReplacement?: (template: string) => BindingContext, encryptThenSign?: boolean, AttributeStatement?: never[]): Promise<BindingContext>;
20
45
  declare function parseLoginRequestResolve(params: {
21
46
  idp: IdentityProvider;
22
47
  sp: ServiceProvider;
23
48
  xml: string;
24
- }): Promise<{
25
- samlContent: any;
26
- extract: any;
27
- }>;
49
+ }): Promise<any>;
50
+ /**
51
+ * @desc Parse and validate Artifact Resolve response
52
+ * @param {object} params
53
+ * @param {IdentityProvider} params.idp Identity Provider instance
54
+ * @param {ServiceProvider} params.sp Service Provider instance
55
+ * @param {string} params.art Artifact string
56
+ * @returns {Promise}
57
+ */
28
58
  declare function parseLoginResponseResolve(params: {
29
59
  idp: IdentityProvider;
30
60
  sp: ServiceProvider;
31
61
  art: string;
32
- }): Promise<{
33
- samlContent: string;
34
- extract: any;
35
- }>;
36
- declare const artifactSignBinding: {
37
- parseLoginRequestResolve: typeof parseLoginRequestResolve;
62
+ }): Promise<any>;
63
+ declare const artifactBinding: {
38
64
  soapLoginRequest: typeof soapLoginRequest;
39
- parseLoginResponseResolve: typeof parseLoginResponseResolve;
40
65
  soapLoginResponse: typeof soapLoginResponse;
66
+ parseLoginRequestResolve: typeof parseLoginRequestResolve;
67
+ parseLoginResponseResolve: typeof parseLoginResponseResolve;
68
+ generateArtifactId: typeof generateArtifactId;
41
69
  };
42
- export default artifactSignBinding;
70
+ export default artifactBinding;
43
71
  //# sourceMappingURL=binding-artifact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"binding-artifact.d.ts","sourceRoot":"","sources":["../../src/binding-artifact.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAMhD,OAAO,EACH,2BAA2B,IAAI,gBAAgB,EAC/C,0BAA0B,IAAI,eAAe,EAChD,MAAM,YAAY,CAAC;AAwCpB;;;;;GAKG;AACH,iBAAS,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,GAAG,CAkGlI;AAED;;;;;;;;GAQG;AACH,iBAAe,iBAAiB,CAAC,WAAW,EAAE,GAAG,YAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,EAAE,eAAe,GAAE,OAAe,EAAE,kBAAkB,UAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAuIpO;AAED,iBAAe,wBAAwB,CAAC,MAAM,EAAE;IAC5C,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,GAAG,EAAE,MAAM,CAAA;CACd;;;GAqDA;AAED,iBAAe,yBAAyB,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;;;GAgP3G;AAED,QAAA,MAAM,mBAAmB;;;;;CAOxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"binding-artifact.d.ts","sourceRoot":"","sources":["../../src/binding-artifact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,EACH,2BAA2B,IAAI,gBAAgB,EAC/C,0BAA0B,IAAI,eAAe,EAChD,MAAM,YAAY,CAAC;AAYpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AA0BvD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAE,MAAU,GAAG,MAAM,CAoBtF;AAED;;;;;;GAMG;AACH,iBAAS,gBAAgB,CACrB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE;IACJ,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,EACD,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAC5D,cAAc,CAsGhB;AAED;;;;GAIG;AACH,iBAAe,iBAAiB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAuE3F;AAED;;;;;;;GAOG;AACH,iBAAe,wBAAwB,CAAC,MAAM,EAAE;IAC5C,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,GAAG,CAAC,CA6Cf;AAED;;;;;;;GAOG;AACH,iBAAe,yBAAyB,CAAC,MAAM,EAAE;IAC7C,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,GAAG,CAAC,CAyJf;AAED,QAAA,MAAM,eAAe;;;;;;CAMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"entity-idp.d.ts","sourceRoot":"","sources":["../../src/entity-idp.ts"],"names":[],"mappings":"AAYA,OAAO,MAAM,EAAE,EAAC,KAAK,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,EACH,0BAA0B,IAAI,eAAe,EAE7C,wBAAwB,EACxB,KAAK,wBAAwB,EAChC,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAO,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,KAAK,EAAE,wBAAwB,oBAEvD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,MAAM;IAEhC,UAAU,EAAE,wBAAwB,CAAC;gBAEjC,UAAU,EAAE,wBAAwB;IAWhD;;;OAGG;IACU,mBAAmB,CAAC,MAAM,EAAE;QACrC,EAAE,EAAE,eAAe,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,KAAK,CAAC;KACnB;IAuDD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB;CAYhF"}
1
+ {"version":3,"file":"entity-idp.d.ts","sourceRoot":"","sources":["../../src/entity-idp.ts"],"names":[],"mappings":"AAYA,OAAO,MAAM,EAAE,EAAC,KAAK,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,EACH,0BAA0B,IAAI,eAAe,EAE7C,wBAAwB,EACxB,KAAK,wBAAwB,EAChC,MAAM,YAAY,CAAC;AAOpB,OAAO,EAAO,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,KAAK,EAAE,wBAAwB,oBAEvD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,MAAM;IAEhC,UAAU,EAAE,wBAAwB,CAAC;gBAEjC,UAAU,EAAE,wBAAwB;IAWhD;;;OAGG;IACU,mBAAmB,CAAC,MAAM,EAAE;QACrC,EAAE,EAAE,eAAe,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,KAAK,CAAC;KACnB;IAiED;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB;CAYhF"}
@@ -10,8 +10,7 @@ import { type FlowResult } from './flow.js';
10
10
  export default function (props: ServiceProviderSettings): ServiceProvider;
11
11
  /**
12
12
  * @desc Service provider can be configured using either metadata importing or spSetting
13
- * @param {object} spSettingimport { FlowResult } from '../types/src/flow.d';
14
-
13
+ * @param {object} spSetting
15
14
  */
16
15
  export declare class ServiceProvider extends Entity {
17
16
  entityMeta: ServiceProviderMetadata;
@@ -27,11 +26,11 @@ export declare class ServiceProvider extends Entity {
27
26
  * @param {function} customTagReplacement used when developers have their own login response template
28
27
  */
29
28
  createLoginRequest(idp: IdentityProvider, binding?: string, customTagReplacement?: (template: string) => BindingContext): BindingContext | PostBindingContext | SimpleSignBindingContext;
30
- createLoginSoapRequest(idp: IdentityProvider, binding: string | undefined, config: {
29
+ createLoginSoapRequest(idp: IdentityProvider, binding?: string, config?: {
31
30
  customTagReplacement?: (template: string) => BindingContext;
32
31
  inResponseTo?: string;
33
32
  relayState?: string;
34
- }): Promise<any>;
33
+ }): Promise<BindingContext>;
35
34
  /**
36
35
  * @desc Validation of the parsed the URL parameters
37
36
  * @param {IdentityProvider} idp object of identity provider
@@ -40,18 +39,17 @@ export declare class ServiceProvider extends Entity {
40
39
  */
41
40
  parseLoginResponse(idp: any, binding: any, request: ESamlHttpRequest): Promise<FlowResult>;
42
41
  /**
43
- * @desc request SamlResponse by Arc id
42
+ * @desc Parse and validate Artifact Resolve request
44
43
  * @param {IdentityProvider} idp object of identity provider
45
- * @param {string} binding protocol binding
44
+ * @param {string} xml SOAP request XML string
45
+ */
46
+ parseLoginRequestResolve(idp: IdentityProvider, xml: string): Promise<any>;
47
+ /**
48
+ * @desc Resolve SAML Response by Artifact ID
49
+ * @param {IdentityProvider} idp object of identity provider
50
+ * @param {string} art Artifact string
46
51
  * @param {request} req request
47
52
  */
48
- parseLoginRequestResolve(idp: any, xml: any): Promise<{
49
- samlContent: any;
50
- extract: any;
51
- }>;
52
- parseLoginResponseResolve(idp: IdentityProvider, art: string, request: ESamlHttpRequest): Promise<{
53
- samlContent: string;
54
- extract: any;
55
- }>;
53
+ parseLoginResponseResolve(idp: IdentityProvider, art: string, request: ESamlHttpRequest): Promise<any>;
56
54
  }
57
55
  //# sourceMappingURL=entity-sp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity-sp.d.ts","sourceRoot":"","sources":["../../src/entity-sp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,MAAU,MAAM,aAAa,CAAC;AAGrC,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,IAAI,gBAAgB,EAC/C,uBAAuB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAO,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAKhD,MAAM,CAAC,OAAO,WAAW,KAAK,EAAE,uBAAuB,mBAEtD;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,MAAM;IACjC,UAAU,EAAE,uBAAuB,CAAC;IAE5C;;;OAGG;gBACS,SAAS,EAAE,uBAAuB;IAS9C;;;;;OAKG;IACI,kBAAkB,CACrB,GAAG,EAAE,gBAAgB,EACrB,OAAO,SAAa,EACpB,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAC5D,cAAc,GAAG,kBAAkB,GAAG,wBAAwB;IAkCpD,sBAAsB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,OAAO,oBAAa,EACpB,MAAM,EAAC;QACL,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,YAAY,CAAC,EAAC,MAAM,CAAC;QACrB,UAAU,CAAC,EAAC,MAAM,CAAC;KACpB,GACH,OAAO,CAAC,GAAG,CAAC;IAsBd;;;;;OAKG;IACI,kBAAkB,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,EAAE,OAAO,EAAE,gBAAgB;IAcjE;;;;;OAKG;IACI,wBAAwB,CAAC,GAAG,KAAA,EAAC,GAAG,KAAA;;;;IAQhC,yBAAyB,CAAC,GAAG,EAAC,gBAAgB,EAAE,GAAG,EAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB;;;;CAS7F"}
1
+ {"version":3,"file":"entity-sp.d.ts","sourceRoot":"","sources":["../../src/entity-sp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,IAAI,gBAAgB,EAC/C,uBAAuB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAO,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAKhD,MAAM,CAAC,OAAO,WAAW,KAAK,EAAE,uBAAuB,mBAEtD;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,MAAM;IACjC,UAAU,EAAE,uBAAuB,CAAC;IAE5C;;;OAGG;gBACS,SAAS,EAAE,uBAAuB;IAS9C;;;;;OAKG;IACI,kBAAkB,CACrB,GAAG,EAAE,gBAAgB,EACrB,OAAO,SAAa,EACpB,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAC5D,cAAc,GAAG,kBAAkB,GAAG,wBAAwB;IAuCpD,sBAAsB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,OAAO,SAAa,EACpB,MAAM,CAAC,EAAE;QACP,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACF,OAAO,CAAC,cAAc,CAAC;IAmB1B;;;;;OAKG;IACI,kBAAkB,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,EAAE,OAAO,EAAE,gBAAgB;IAajE;;;;OAIG;IACI,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM;IASlE;;;;;OAKG;IACI,yBAAyB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB;CAS/F"}
@@ -32,6 +32,7 @@ export declare function extractSpData(context: string): any;
32
32
  export declare function extractIdp(context: string): any;
33
33
  export declare function extractSp(context: string): any;
34
34
  export declare function extractAuthRequest(context: string): any;
35
- export declare function extractResponse(context: string, ass: any): any;
35
+ export declare function extractResponse(context: string): any;
36
+ export declare function extractArtifactResolve(context: string): any;
36
37
  export {};
37
38
  //# sourceMappingURL=extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"AAMA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AA4B/C,eAAO,MAAM,kBAAkB,EAAE,eAsFhC,CAAC;AAKF,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,eAKpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,eAGvC,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,eAG/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,eAGxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,KAAK,eAAe,CAWrE,CAAC;AAqMF,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAIlC,CAAC;AAKF,eAAO,MAAM,iBAAiB,EAAE,eAiI/B,CAAC;AAOF,eAAO,MAAM,gBAAgB,EAAE,eAyL9B,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,OAiN/D;AASD,eAAO,MAAM,2BAA2B,EAAE,eAkZzC,CAAC;AAIF;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,OAkRrE;AAKD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,OAE5C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,OAEzC;AAGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,OAExC;AACD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,OAEjD;AACD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAC,GAAG,EAAC,GAAG,OAEtD"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"AAMA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AA4B/C,eAAO,MAAM,kBAAkB,EAAE,eAsFhC,CAAC;AAKF,eAAO,MAAM,qBAAqB,EAAE,eAsBnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,eAKpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,eAGvC,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,eAG/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,eAGxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,KAAK,eAAe,CAWrE,CAAC;AAqMF,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAIlC,CAAC;AAKF,eAAO,MAAM,iBAAiB,EAAE,eAiI/B,CAAC;AAOF,eAAO,MAAM,gBAAgB,EAAE,eAyL9B,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,OAiN/D;AASD,eAAO,MAAM,2BAA2B,EAAE,eAkZzC,CAAC;AAIF;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,OAkRrE;AAKD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,OAE5C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,OAEzC;AAGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,OAExC;AACD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,OAEjD;AACD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,OAE9C;AACD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,OAErD"}
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAqsBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BhG;AAED,wBAAgB,IAAI,CAAC,OAAO,KAAA,GAAG,OAAO,CAAC,UAAU,CAAC,CA0BjD"}
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AA8rBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BhG;AAED,wBAAgB,IAAI,CAAC,OAAO,KAAA,GAAG,OAAO,CAAC,UAAU,CAAC,CA0BjD"}
@@ -1,3 +1,20 @@
1
+ /**
2
+ * 验证 SAML 消息(普通或 SOAP)
3
+ * @param xml XML 字符串
4
+ * @param isSoap 是否为 SOAP 消息,默认 false
5
+ * @returns true 表示验证通过,否则抛出错误
6
+ * @throws 当检测到 XXE 或验证失败时抛出错误
7
+ */
1
8
  export declare const validate: (xml: string, isSoap?: boolean) => Promise<boolean>;
2
- export declare const validateMetadata: (xml: string, isParse?: boolean) => Promise<any>;
9
+ /**
10
+ * 验证 SAML 元数据,并可选择解析元数据类型
11
+ * @param xml XML 字符串
12
+ * @param isParse 是否解析并返回元数据类型,默认 false
13
+ * @returns 验证通过时:若 isParse 为 true 返回 { isValid: true, metadataType: string },否则返回 true;
14
+ * 验证失败时返回 Error 对象(保持原行为)
15
+ */
16
+ export declare const validateMetadata: (xml: string, isParse?: boolean) => Promise<true | Error | readonly import("xmllint-wasm").XMLValidationError[] | {
17
+ isValid: boolean;
18
+ metadataType: string;
19
+ }>;
3
20
  //# sourceMappingURL=schemaValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemaValidator.d.ts","sourceRoot":"","sources":["../../src/schemaValidator.ts"],"names":[],"mappings":"AA8EA,eAAO,MAAM,QAAQ,GAAU,KAAK,MAAM,EAAC,SAAQ,OAAe,qBAmCjE,CAAC;AACF,eAAO,MAAM,gBAAgB,GAAU,KAAK,MAAM,EAAC,UAAS,OAAe,iBA6D1E,CAAC"}
1
+ {"version":3,"file":"schemaValidator.d.ts","sourceRoot":"","sources":["../../src/schemaValidator.ts"],"names":[],"mappings":"AAoFA;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAU,KAAK,MAAM,EAAE,SAAQ,OAAe,qBA4BlE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAU,KAAK,MAAM,EAAE,UAAS,OAAe;;;EA+D3E,CAAC"}
@@ -9,6 +9,8 @@ export declare enum BindingNamespace {
9
9
  SimpleSign = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign",
10
10
  Artifact = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
11
11
  }
12
+ export declare const NamespaceBindingMap: Record<string, 'redirect' | 'post' | 'simplesign' | 'artifact'>;
13
+ declare function getBindingName(uri: string): 'redirect' | 'post' | 'simplesign' | 'artifact' | undefined;
12
14
  export declare enum MessageSignatureOrder {
13
15
  STE = "sign-then-encrypt",
14
16
  ETS = "encrypt-then-sign"
@@ -46,6 +48,12 @@ declare const namespace: {
46
48
  artifact: string;
47
49
  soap: string;
48
50
  };
51
+ bindMap: {
52
+ 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect': string;
53
+ 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST': string;
54
+ 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign': string;
55
+ 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact': string;
56
+ };
49
57
  names: {
50
58
  protocol: string;
51
59
  assertion: string;
@@ -156,19 +164,20 @@ declare const messageConfigurations: {
156
164
  };
157
165
  declare const algorithms: {
158
166
  signature: {
159
- ECDSA_SHA256: string;
160
- ECDSA_SHA384: string;
161
- ECDSA_SHA512: string;
162
- DSA_SHA1: string;
163
167
  RSA_SHA1: string;
168
+ DSA_SHA1: string;
164
169
  RSA_SHA224: string;
165
170
  RSA_SHA256: string;
166
171
  RSA_SHA384: string;
167
172
  RSA_SHA512: string;
173
+ ECDSA_SHA256: string;
174
+ ECDSA_SHA384: string;
175
+ ECDSA_SHA512: string;
168
176
  RSA_PSS_SHA256: string;
169
177
  EDDSA_ED25519: string;
170
178
  EDDSA_ED488: string;
171
179
  };
180
+ unsafeAlgorithms: string[];
172
181
  digest: {
173
182
  SHA1: string;
174
183
  SHA224: string;
@@ -260,5 +269,52 @@ declare const elementsOrder: {
260
269
  onelogin: string[];
261
270
  shibboleth: string[];
262
271
  };
263
- export { namespace, tags, algorithms, wording, elementsOrder, messageConfigurations };
272
+ /**
273
+ * 安全配置选项
274
+ */
275
+ interface SecurityOptions {
276
+ /** 是否允许 SHA-1 算法(默认 false) */
277
+ allowSHA1: boolean;
278
+ /** 是否允许 RSA-1_5 密钥加密(默认 false) */
279
+ allowRSA15: boolean;
280
+ /** 是否允许 TripleDES 加密(默认 false) */
281
+ allowTripleDES: boolean;
282
+ }
283
+ /**
284
+ * 默认安全配置
285
+ */
286
+ declare const defaultSecurityOptions: SecurityOptions;
287
+ /**
288
+ * 设置安全配置
289
+ * @param options 安全配置选项
290
+ */
291
+ declare function setSecurityOptions(options: Partial<SecurityOptions>): void;
292
+ /**
293
+ * 获取当前安全配置
294
+ * @returns 安全配置对象
295
+ */
296
+ declare function getSecurityOptions(): SecurityOptions;
297
+ /**
298
+ * 重置为默认安全配置
299
+ */
300
+ declare function resetSecurityOptions(): void;
301
+ /**
302
+ * 验证算法是否安全
303
+ * @param algorithm 算法 URI
304
+ * @returns 验证结果
305
+ */
306
+ declare function validateAlgorithm(algorithm: string): {
307
+ valid: boolean;
308
+ reason?: string;
309
+ };
310
+ /**
311
+ * 检查算法是否为不安全算法
312
+ * @param algorithm 算法 URI
313
+ * @returns 检查结果
314
+ */
315
+ declare function checkUnsafeAlgorithm(algorithm: string): {
316
+ isUnsafe: boolean;
317
+ algorithm?: string;
318
+ };
319
+ export { namespace, tags, algorithms, wording, elementsOrder, messageConfigurations, getBindingName, SecurityOptions, defaultSecurityOptions, setSecurityOptions, getSecurityOptions, resetSecurityOptions, validateAlgorithm, checkUnsafeAlgorithm };
264
320
  //# sourceMappingURL=urn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../src/urn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAY,gBAAgB;IAC1B,QAAQ,uDAAuD;IAC/D,IAAI,mDAAmD;IACvD,UAAU,8DAA8D;IACxE,QAAQ,uDAAuD;CAChE;AAED,oBAAY,qBAAqB;IAC/B,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;CAC1B;AAED,oBAAY,UAAU;IAEpB,OAAO,+CAA+C;IACtD,SAAS,iDAAiD;IAC1D,SAAS,iDAAiD;IAC1D,eAAe,uDAAuD;IAEtE,UAAU,mDAAmD;IAC7D,sBAAsB,8DAA8D;IACpF,mBAAmB,2DAA2D;IAC9E,cAAc,sDAAsD;IACpE,cAAc,sDAAsD;IACpE,SAAS,iDAAiD;IAC1D,cAAc,sDAAsD;IACpE,aAAa,qDAAqD;IAClE,kBAAkB,0DAA0D;IAC5E,aAAa,qDAAqD;IAClE,kBAAkB,0DAA0D;IAC5E,wBAAwB,gEAAgE;IACxF,qBAAqB,6DAA6D;IAClF,oBAAoB,4DAA4D;IAChF,qBAAqB,6DAA6D;IAClF,gBAAgB,wDAAwD;IACxE,kBAAkB,0DAA0D;IAC5E,gBAAgB,wDAAwD;IACxE,kBAAkB,0DAA0D;CAC7E;AAED,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Fd,CAAC;AAEF,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BT,CAAC;AAEF,QAAA,MAAM,qBAAqB;;;;;CAK1B,CAAC;AAEF,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmFZ;;;WAGG;;;;;;;;;;;;;CAwBN,CAAC;AAaF,oBAAY,UAAU;IACpB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;CAClC;AAED,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAyBZ,CAAC;AAIF,QAAA,MAAM,aAAa;;;;CAIlB,CAAC;AAEF,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAC,CAAC"}
1
+ {"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../src/urn.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,21 @@ declare function convertToString(input: any, isOutputString: any): any;
113
113
  export declare function isNonEmptyArray(a: any): boolean;
114
114
  export declare function castArrayOpt<T>(a?: T | T[]): T[];
115
115
  export declare function notEmpty<TValue>(value: TValue | null | undefined): value is TValue;
116
+ /**
117
+ * @desc 验证 RelayState 是否符合 SAML 2.0 规范
118
+ * @param {string} relayState - RelayState 值
119
+ * @returns {{ valid: boolean; error?: string }} 验证结果
120
+ */
121
+ export declare function validateRelayState(relayState: string): {
122
+ valid: boolean;
123
+ error?: string;
124
+ };
125
+ /**
126
+ * @desc 日志脱敏函数,过滤敏感信息
127
+ * @param {any} data - 需要脱敏的数据
128
+ * @returns {any} 脱敏后的数据
129
+ */
130
+ export declare function sanitizeLog(data: any): any;
116
131
  declare const utility: {
117
132
  isString: typeof isString;
118
133
  base64Encode: typeof base64Encode;
@@ -128,6 +143,8 @@ declare const utility: {
128
143
  readPrivateKey: typeof readPrivateKey;
129
144
  convertToString: typeof convertToString;
130
145
  isNonEmptyArray: typeof isNonEmptyArray;
146
+ validateRelayState: typeof validateRelayState;
147
+ sanitizeLog: typeof sanitizeLog;
131
148
  };
132
149
  export default utility;
133
150
  //# sourceMappingURL=utility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/utility.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,cAAc,UAAO,MAmB3E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAIvC;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAEhC;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,YAGnC;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,EAAE,YAAY,KAAA,OAG1C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,mBAElC;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,UAE/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAGtF;AAED;;;;GAIG;AACH,iBAAS,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAc9D;AAYD;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,UAEtD;AAED;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,UAErD;AAED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,GAAG,KAAA,UAEtB;AAED;;;;GAIG;AACH,iBAAS,WAAW,CAAC,GAAG,KAAA,EAAE,YAAY,SAAK,OAE1C;AAED;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,OAE/B;AAED;;;;GAIG;AACH,iBAAS,8BAA8B,CAAC,qBAAqB,EAAE,MAAM,UAWpE;AAuED,wBAAgB,cAAc,CAC1B,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,UAAU,CAAC,EAAE,MAAM,EACnB,cAAc,GAAE,OAAc,GAC/B,MAAM,GAAG,MAAM,CAyCjB;AACD;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,KAAA,EAAE,cAAc,KAAA,OAE7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,WAErC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAGhD;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAElF;AAED,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;CAeZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/utility.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,cAAc,UAAO,MAmB3E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAIvC;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAEhC;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,YAGnC;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,EAAE,YAAY,KAAA,OAG1C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,mBAElC;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,UAE/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAGtF;AAED;;;;GAIG;AACH,iBAAS,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAc9D;AAYD;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,UAEtD;AAED;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,UAErD;AAED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,GAAG,KAAA,UAEtB;AAED;;;;GAIG;AACH,iBAAS,WAAW,CAAC,GAAG,KAAA,EAAE,YAAY,SAAK,OAE1C;AAED;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,OAE/B;AAED;;;;GAIG;AACH,iBAAS,8BAA8B,CAAC,qBAAqB,EAAE,MAAM,UAWpE;AAuED,wBAAgB,cAAc,CAC1B,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,UAAU,CAAC,EAAE,MAAM,EACnB,cAAc,GAAE,OAAc,GAC/B,MAAM,GAAG,MAAM,CAyCjB;AACD;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,KAAA,EAAE,cAAc,KAAA,OAE7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,WAErC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAGhD;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAElF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA2BzF;AAgBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAoB1C;AAED,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;CAiBZ,CAAC;AAEF,eAAe,OAAO,CAAC"}