@cdklabs/cdk-construct-connect-datalake 0.0.8 → 0.0.9
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/.jsii +9 -9
- package/.jsii.tabl.json +1 -1
- package/lib/index.js +1 -1
- package/node_modules/@aws-sdk/client-cloudformation/package.json +1 -1
- package/node_modules/@aws-sdk/client-connect/package.json +1 -1
- package/node_modules/@aws-sdk/client-glue/dist-cjs/schemas/schemas_0.js +5 -4
- package/node_modules/@aws-sdk/client-glue/dist-es/schemas/schemas_0.js +5 -4
- package/node_modules/@aws-sdk/client-glue/dist-types/commands/GetDataQualityRulesetEvaluationRunCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-glue/dist-types/commands/ListDataQualityRulesetEvaluationRunsCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-glue/dist-types/commands/StartDataQualityRulesetEvaluationRunCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-glue/dist-types/models/models_1.d.ts +5 -0
- package/node_modules/@aws-sdk/client-glue/dist-types/models/models_2.d.ts +5 -0
- package/node_modules/@aws-sdk/client-glue/dist-types/ts3.4/models/models_1.d.ts +1 -0
- package/node_modules/@aws-sdk/client-glue/dist-types/ts3.4/models/models_2.d.ts +1 -0
- package/node_modules/@aws-sdk/client-glue/package.json +1 -1
- package/node_modules/@aws-sdk/client-lakeformation/package.json +1 -1
- package/node_modules/@aws-sdk/client-ram/package.json +1 -1
- package/node_modules/@aws-sdk/client-sts/package.json +1 -1
- package/node_modules/fast-xml-builder/CHANGELOG.md +11 -0
- package/node_modules/fast-xml-builder/README.md +53 -2
- package/node_modules/fast-xml-builder/lib/fxb.cjs +1 -1
- package/node_modules/fast-xml-builder/lib/fxb.d.cts +91 -1
- package/node_modules/fast-xml-builder/lib/fxb.min.js +1 -1
- package/node_modules/fast-xml-builder/lib/fxb.min.js.map +1 -1
- package/node_modules/fast-xml-builder/package.json +3 -2
- package/node_modules/fast-xml-builder/src/fxb.d.ts +93 -3
- package/node_modules/fast-xml-builder/src/fxb.js +100 -33
- package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +91 -37
- package/node_modules/strnum/CHANGELOG.md +3 -0
- package/node_modules/strnum/package.json +3 -2
- package/node_modules/strnum/strnum.js +12 -10
- package/node_modules/xml-naming/README.md +189 -0
- package/node_modules/xml-naming/package.json +54 -0
- package/node_modules/xml-naming/src/index.d.ts +74 -0
- package/node_modules/xml-naming/src/index.js +270 -0
- package/package.json +10 -10
package/.jsii
CHANGED
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
]
|
|
9
9
|
},
|
|
10
10
|
"bundled": {
|
|
11
|
-
"@aws-sdk/client-cloudformation": "^3.
|
|
12
|
-
"@aws-sdk/client-connect": "^3.
|
|
13
|
-
"@aws-sdk/client-glue": "^3.
|
|
14
|
-
"@aws-sdk/client-lakeformation": "^3.
|
|
15
|
-
"@aws-sdk/client-ram": "^3.
|
|
16
|
-
"@aws-sdk/client-sts": "^3.
|
|
11
|
+
"@aws-sdk/client-cloudformation": "^3.1045.0",
|
|
12
|
+
"@aws-sdk/client-connect": "^3.1045.0",
|
|
13
|
+
"@aws-sdk/client-glue": "^3.1045.0",
|
|
14
|
+
"@aws-sdk/client-lakeformation": "^3.1045.0",
|
|
15
|
+
"@aws-sdk/client-ram": "^3.1045.0",
|
|
16
|
+
"@aws-sdk/client-sts": "^3.1045.0",
|
|
17
17
|
"@aws-sdk/types": "^3.973.8",
|
|
18
18
|
"@types/aws-lambda": "^8.10.161",
|
|
19
19
|
"aws-lambda": "^1.0.7"
|
|
@@ -8523,7 +8523,7 @@
|
|
|
8523
8523
|
"stability": "experimental"
|
|
8524
8524
|
},
|
|
8525
8525
|
"homepage": "https://github.com/cdklabs/cdk-construct-connect-datalake.git",
|
|
8526
|
-
"jsiiVersion": "5.9.
|
|
8526
|
+
"jsiiVersion": "5.9.39 (build cdf85b4)",
|
|
8527
8527
|
"keywords": [
|
|
8528
8528
|
"aws",
|
|
8529
8529
|
"cdk",
|
|
@@ -8978,6 +8978,6 @@
|
|
|
8978
8978
|
"symbolId": "src/data-types:DataType"
|
|
8979
8979
|
}
|
|
8980
8980
|
},
|
|
8981
|
-
"version": "0.0.
|
|
8982
|
-
"fingerprint": "
|
|
8981
|
+
"version": "0.0.9",
|
|
8982
|
+
"fingerprint": "i6yOsLVoGYdi3gtxeV4l/Iar8IEdkXRkuI3LcaVlruM="
|
|
8983
8983
|
}
|
package/.jsii.tabl.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"2","toolVersion":"5.9.43","snippets":{"00a7fa098b113353e1819aadc132dddc8bb6c243a38b1558462c6ca3bb81aa17":{"translations":{"python":{"source":"from cdklabs.cdk_construct_connect_datalake import DataLakeAccess, DataType\n\n\nDataLakeAccess(self, \"DataLakeAccess\",\n instance_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\", # Your Connect instance ID\n dataset_ids=[DataType.CONTACT_RECORD, \"contact_statistic_record\"\n ]\n)","version":"2"},"csharp":{"source":"using Cdklabs.CdkConstructConnectDatalake;\n\n\nnew DataLakeAccess(this, \"DataLakeAccess\", new DataLakeAccessProps {\n InstanceId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\", // Your Connect instance ID\n DatasetIds = new [] { DataType.CONTACT_RECORD, \"contact_statistic_record\" }\n});","version":"1"},"java":{"source":"import io.github.cdklabs.cdk.construct.connect.datalake.DataLakeAccess;\nimport io.github.cdklabs.cdk.construct.connect.datalake.DataType;\n\n\nDataLakeAccess.Builder.create(this, \"DataLakeAccess\")\n .instanceId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\") // Your Connect instance ID\n .datasetIds(List.of(DataType.CONTACT_RECORD, \"contact_statistic_record\"))\n .build();","version":"1"},"go":{"source":"import \"github.com/cdklabs/cdk-construct-connect-datalake-go/cdklabscdkconstructconnectdatalake\"\n\n\ncdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess\"), &DataLakeAccessProps{\n\tInstanceId: jsii.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t // Your Connect instance ID\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t\tjsii.String(\"contact_statistic_record\"),\n\t},\n})","version":"1"},"$":{"source":"import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n\nnew DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', // Your Connect instance ID\n datasetIds: [\n DataType.CONTACT_RECORD,\n 'contact_statistic_record',\n ],\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"@cdklabs/cdk-construct-connect-datalake"},"field":{"field":"markdown","line":83}},"didCompile":true,"fqnsReferenced":["@cdklabs/cdk-construct-connect-datalake.DataLakeAccess","@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_RECORD","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nnew DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', // Your Connect instance ID\n datasetIds: [\n DataType.CONTACT_RECORD,\n 'contact_statistic_record',\n ],\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":4,"80":7,"110":1,"210":1,"211":1,"212":1,"215":1,"245":1,"273":1,"274":1,"276":1,"277":2,"304":2,"308":1},"fqnsFingerprint":"2f7cf2ab87645e9fcb4879ac6548d0cba0e9ef3876781b8c0ff01b105940d544"},"a8797c35a7a51ce10f33f69c2ed3aa8b4331b96a7b2baaaa5fd8d1792e585e98":{"translations":{"python":{"source":"from cdklabs.cdk_construct_connect_datalake import DataLakeAccess, DataType\nfrom aws_cdk.aws_connect import CfnInstance\n\n\nconnect_instance = CfnInstance(self, \"ConnectInstance\",\n identity_management_type=\"CONNECT_MANAGED\",\n instance_alias=\"my-instance\",\n attributes=CfnInstance.AttributesProperty(\n inbound_calls=True,\n outbound_calls=True\n )\n)\n\ndata_lake = DataLakeAccess(self, \"DataLakeAccess\",\n instance_id=connect_instance.attr_id,\n dataset_ids=[DataType.CONTACT_RECORD]\n)\n\n# Ensure data lake resources are deleted before the Connect instance\ndata_lake.node.add_dependency(connect_instance)","version":"2"},"csharp":{"source":"using Cdklabs.CdkConstructConnectDatalake;\nusing Amazon.CDK.AWS.Connect;\n\n\nvar connectInstance = new CfnInstance(this, \"ConnectInstance\", new CfnInstanceProps {\n IdentityManagementType = \"CONNECT_MANAGED\",\n InstanceAlias = \"my-instance\",\n Attributes = new AttributesProperty {\n InboundCalls = true,\n OutboundCalls = true\n }\n});\n\nvar dataLake = new DataLakeAccess(this, \"DataLakeAccess\", new DataLakeAccessProps {\n InstanceId = connectInstance.AttrId,\n DatasetIds = new [] { DataType.CONTACT_RECORD }\n});\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.Node.AddDependency(connectInstance);","version":"1"},"java":{"source":"import io.github.cdklabs.cdk.construct.connect.datalake.DataLakeAccess;\nimport io.github.cdklabs.cdk.construct.connect.datalake.DataType;\nimport software.amazon.awscdk.services.connect.CfnInstance;\n\n\nCfnInstance connectInstance = CfnInstance.Builder.create(this, \"ConnectInstance\")\n .identityManagementType(\"CONNECT_MANAGED\")\n .instanceAlias(\"my-instance\")\n .attributes(AttributesProperty.builder()\n .inboundCalls(true)\n .outboundCalls(true)\n .build())\n .build();\n\nDataLakeAccess dataLake = DataLakeAccess.Builder.create(this, \"DataLakeAccess\")\n .instanceId(connectInstance.getAttrId())\n .datasetIds(List.of(DataType.CONTACT_RECORD))\n .build();\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.node.addDependency(connectInstance);","version":"1"},"go":{"source":"import \"github.com/cdklabs/cdk-construct-connect-datalake-go/cdklabscdkconstructconnectdatalake\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\n\n\nconnectInstance := awscdk.NewCfnInstance(this, jsii.String(\"ConnectInstance\"), &CfnInstanceProps{\n\tIdentityManagementType: jsii.String(\"CONNECT_MANAGED\"),\n\tInstanceAlias: jsii.String(\"my-instance\"),\n\tAttributes: &AttributesProperty{\n\t\tInboundCalls: jsii.Boolean(true),\n\t\tOutboundCalls: jsii.Boolean(true),\n\t},\n})\n\ndataLake := cdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess\"), &DataLakeAccessProps{\n\tInstanceId: connectInstance.attrId,\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t},\n})\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.Node.AddDependency(connectInstance)","version":"1"},"$":{"source":"import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\nimport { CfnInstance } from 'aws-cdk-lib/aws-connect';\n\nconst connectInstance = new CfnInstance(this, 'ConnectInstance', {\n identityManagementType: 'CONNECT_MANAGED',\n instanceAlias: 'my-instance',\n attributes: {\n inboundCalls: true,\n outboundCalls: true,\n },\n});\n\nconst dataLake = new DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: connectInstance.attrId,\n datasetIds: [DataType.CONTACT_RECORD],\n});\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.node.addDependency(connectInstance);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"@cdklabs/cdk-construct-connect-datalake"},"field":{"field":"markdown","line":99}},"didCompile":true,"fqnsReferenced":["@cdklabs/cdk-construct-connect-datalake.DataLakeAccess","@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_RECORD","aws-cdk-lib.aws_connect.CfnInstance","aws-cdk-lib.aws_connect.CfnInstanceProps","constructs.Construct","constructs.Construct#node","constructs.IDependable","constructs.Node#addDependency"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\nimport { CfnInstance } from 'aws-cdk-lib/aws-connect';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst connectInstance = new CfnInstance(this, 'ConnectInstance', {\n identityManagementType: 'CONNECT_MANAGED',\n instanceAlias: 'my-instance',\n attributes: {\n inboundCalls: true,\n outboundCalls: true,\n },\n});\n\nconst dataLake = new DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: connectInstance.attrId,\n datasetIds: [DataType.CONTACT_RECORD],\n});\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.node.addDependency(connectInstance);\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":6,"80":22,"110":2,"112":2,"210":1,"211":3,"212":4,"214":1,"215":2,"244":2,"245":1,"261":2,"262":2,"273":2,"274":2,"276":2,"277":3,"304":7,"308":1},"fqnsFingerprint":"8a6c8629dd0567ef0a683b0c8bac0b66bf4f8d30cf75c5111838915ab59b6e60"},"3943f4235a371932e8d12e22a29123af325eaa909899056ecca10bde6afbd24c":{"translations":{"python":{"source":"from cdklabs.cdk_construct_connect_datalake import DataLakeAccess, DataType\n\n\nDataLakeAccess(self, \"DataLakeAccess\",\n instance_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n dataset_ids=[DataType.CONTACT_RECORD, \"contact_statistic_record\"\n ],\n\n # Target account where the resources are created\n target_account_id=\"123456789012\",\n\n # IAM role in the target account for cross-account role assumption\n target_account_role_arn=\"arn:aws:iam::123456789012:role/RoleName\"\n)","version":"2"},"csharp":{"source":"using Cdklabs.CdkConstructConnectDatalake;\n\n\nnew DataLakeAccess(this, \"DataLakeAccess\", new DataLakeAccessProps {\n InstanceId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n DatasetIds = new [] { DataType.CONTACT_RECORD, \"contact_statistic_record\" },\n\n // Target account where the resources are created\n TargetAccountId = \"123456789012\",\n\n // IAM role in the target account for cross-account role assumption\n TargetAccountRoleArn = \"arn:aws:iam::123456789012:role/RoleName\"\n});","version":"1"},"java":{"source":"import io.github.cdklabs.cdk.construct.connect.datalake.DataLakeAccess;\nimport io.github.cdklabs.cdk.construct.connect.datalake.DataType;\n\n\nDataLakeAccess.Builder.create(this, \"DataLakeAccess\")\n .instanceId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .datasetIds(List.of(DataType.CONTACT_RECORD, \"contact_statistic_record\"))\n\n // Target account where the resources are created\n .targetAccountId(\"123456789012\")\n\n // IAM role in the target account for cross-account role assumption\n .targetAccountRoleArn(\"arn:aws:iam::123456789012:role/RoleName\")\n .build();","version":"1"},"go":{"source":"import \"github.com/cdklabs/cdk-construct-connect-datalake-go/cdklabscdkconstructconnectdatalake\"\n\n\ncdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess\"), &DataLakeAccessProps{\n\tInstanceId: jsii.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t\tjsii.String(\"contact_statistic_record\"),\n\t},\n\n\t// Target account where the resources are created\n\tTargetAccountId: jsii.String(\"123456789012\"),\n\n\t// IAM role in the target account for cross-account role assumption\n\tTargetAccountRoleArn: jsii.String(\"arn:aws:iam::123456789012:role/RoleName\"),\n})","version":"1"},"$":{"source":"import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n\nnew DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',\n datasetIds: [\n DataType.CONTACT_RECORD,\n 'contact_statistic_record',\n ],\n\n // Target account where the resources are created\n targetAccountId: '123456789012',\n\n // IAM role in the target account for cross-account role assumption\n targetAccountRoleArn: \"arn:aws:iam::123456789012:role/RoleName\",\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"@cdklabs/cdk-construct-connect-datalake"},"field":{"field":"markdown","line":127}},"didCompile":true,"fqnsReferenced":["@cdklabs/cdk-construct-connect-datalake.DataLakeAccess","@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_RECORD","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nnew DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',\n datasetIds: [\n DataType.CONTACT_RECORD,\n 'contact_statistic_record',\n ],\n\n // Target account where the resources are created\n targetAccountId: '123456789012',\n\n // IAM role in the target account for cross-account role assumption\n targetAccountRoleArn: \"arn:aws:iam::123456789012:role/RoleName\",\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":6,"80":9,"110":1,"210":1,"211":1,"212":1,"215":1,"245":1,"273":1,"274":1,"276":1,"277":2,"304":4,"308":1},"fqnsFingerprint":"2f7cf2ab87645e9fcb4879ac6548d0cba0e9ef3876781b8c0ff01b105940d544"},"c2e3da396fefcd5ecdded7763916a7ad777bf15f5aa19d7566dc24cdd7f25595":{"translations":{"python":{"source":"from cdklabs.cdk_construct_connect_datalake import DataLakeAccess, DataType\n\n\n# First Connect instance data lake setup\ndata_lake1 = DataLakeAccess(self, \"DataLakeAccess1\",\n instance_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n dataset_ids=[DataType.CONTACT_RECORD, DataType.AGENT_STATISTIC_RECORD\n ]\n)\n\n# Second Connect instance data lake setup\ndata_lake2 = DataLakeAccess(self, \"DataLakeAccess2\",\n instance_id=\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\",\n dataset_ids=[DataType.CONTACT_RECORD, DataType.CONTACT_FLOW_EVENTS\n ]\n)\n\n# Create dependency to ensure sequential deployment\ndata_lake2.node.add_dependency(data_lake1)","version":"2"},"csharp":{"source":"using Cdklabs.CdkConstructConnectDatalake;\n\n\n// First Connect instance data lake setup\nvar dataLake1 = new DataLakeAccess(this, \"DataLakeAccess1\", new DataLakeAccessProps {\n InstanceId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n DatasetIds = new [] { DataType.CONTACT_RECORD, DataType.AGENT_STATISTIC_RECORD }\n});\n\n// Second Connect instance data lake setup\nvar dataLake2 = new DataLakeAccess(this, \"DataLakeAccess2\", new DataLakeAccessProps {\n InstanceId = \"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\",\n DatasetIds = new [] { DataType.CONTACT_RECORD, DataType.CONTACT_FLOW_EVENTS }\n});\n\n// Create dependency to ensure sequential deployment\ndataLake2.Node.AddDependency(dataLake1);","version":"1"},"java":{"source":"import io.github.cdklabs.cdk.construct.connect.datalake.DataLakeAccess;\nimport io.github.cdklabs.cdk.construct.connect.datalake.DataType;\n\n\n// First Connect instance data lake setup\nDataLakeAccess dataLake1 = DataLakeAccess.Builder.create(this, \"DataLakeAccess1\")\n .instanceId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .datasetIds(List.of(DataType.CONTACT_RECORD, DataType.AGENT_STATISTIC_RECORD))\n .build();\n\n// Second Connect instance data lake setup\nDataLakeAccess dataLake2 = DataLakeAccess.Builder.create(this, \"DataLakeAccess2\")\n .instanceId(\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\")\n .datasetIds(List.of(DataType.CONTACT_RECORD, DataType.CONTACT_FLOW_EVENTS))\n .build();\n\n// Create dependency to ensure sequential deployment\ndataLake2.node.addDependency(dataLake1);","version":"1"},"go":{"source":"import \"github.com/cdklabs/cdk-construct-connect-datalake-go/cdklabscdkconstructconnectdatalake\"\n\n\n// First Connect instance data lake setup\ndataLake1 := cdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess1\"), &DataLakeAccessProps{\n\tInstanceId: jsii.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t\t*cdklabscdkconstructconnectdatalake.DataType_AGENT_STATISTIC_RECORD,\n\t},\n})\n\n// Second Connect instance data lake setup\ndataLake2 := cdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess2\"), &DataLakeAccessProps{\n\tInstanceId: jsii.String(\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\"),\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_FLOW_EVENTS,\n\t},\n})\n\n// Create dependency to ensure sequential deployment\ndataLake2.Node.AddDependency(dataLake1)","version":"1"},"$":{"source":"import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n\n// First Connect instance data lake setup\nconst dataLake1 = new DataLakeAccess(this, 'DataLakeAccess1', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',\n datasetIds: [\n DataType.CONTACT_RECORD,\n DataType.AGENT_STATISTIC_RECORD,\n ],\n});\n\n// Second Connect instance data lake setup\nconst dataLake2 = new DataLakeAccess(this, 'DataLakeAccess2', {\n instanceId: 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy',\n datasetIds: [\n DataType.CONTACT_RECORD,\n DataType.CONTACT_FLOW_EVENTS,\n ],\n});\n\n// Create dependency to ensure sequential deployment\ndataLake2.node.addDependency(dataLake1);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"@cdklabs/cdk-construct-connect-datalake"},"field":{"field":"markdown","line":149}},"didCompile":true,"fqnsReferenced":["@cdklabs/cdk-construct-connect-datalake.DataLakeAccess","@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps","@cdklabs/cdk-construct-connect-datalake.DataType#AGENT_STATISTIC_RECORD","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_FLOW_EVENTS","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_RECORD","constructs.Construct","constructs.Construct#node","constructs.IDependable","constructs.Node#addDependency"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\n// First Connect instance data lake setup\nconst dataLake1 = new DataLakeAccess(this, 'DataLakeAccess1', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',\n datasetIds: [\n DataType.CONTACT_RECORD,\n DataType.AGENT_STATISTIC_RECORD,\n ],\n});\n\n// Second Connect instance data lake setup\nconst dataLake2 = new DataLakeAccess(this, 'DataLakeAccess2', {\n instanceId: 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy',\n datasetIds: [\n DataType.CONTACT_RECORD,\n DataType.CONTACT_FLOW_EVENTS,\n ],\n});\n\n// Create dependency to ensure sequential deployment\ndataLake2.node.addDependency(dataLake1);\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":5,"80":22,"110":2,"210":2,"211":2,"212":6,"214":1,"215":2,"244":2,"245":1,"261":2,"262":2,"273":1,"274":1,"276":1,"277":2,"304":4,"308":1},"fqnsFingerprint":"cd43f00cebfa6df6d2edd5cc1b9bb19ad5c2543bfe51e5597c6478151e05d124"}}}
|
|
1
|
+
{"version":"2","toolVersion":"5.9.44","snippets":{"00a7fa098b113353e1819aadc132dddc8bb6c243a38b1558462c6ca3bb81aa17":{"translations":{"python":{"source":"from cdklabs.cdk_construct_connect_datalake import DataLakeAccess, DataType\n\n\nDataLakeAccess(self, \"DataLakeAccess\",\n instance_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\", # Your Connect instance ID\n dataset_ids=[DataType.CONTACT_RECORD, \"contact_statistic_record\"\n ]\n)","version":"2"},"csharp":{"source":"using Cdklabs.CdkConstructConnectDatalake;\n\n\nnew DataLakeAccess(this, \"DataLakeAccess\", new DataLakeAccessProps {\n InstanceId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\", // Your Connect instance ID\n DatasetIds = new [] { DataType.CONTACT_RECORD, \"contact_statistic_record\" }\n});","version":"1"},"java":{"source":"import io.github.cdklabs.cdk.construct.connect.datalake.DataLakeAccess;\nimport io.github.cdklabs.cdk.construct.connect.datalake.DataType;\n\n\nDataLakeAccess.Builder.create(this, \"DataLakeAccess\")\n .instanceId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\") // Your Connect instance ID\n .datasetIds(List.of(DataType.CONTACT_RECORD, \"contact_statistic_record\"))\n .build();","version":"1"},"go":{"source":"import \"github.com/cdklabs/cdk-construct-connect-datalake-go/cdklabscdkconstructconnectdatalake\"\n\n\ncdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess\"), &DataLakeAccessProps{\n\tInstanceId: jsii.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t // Your Connect instance ID\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t\tjsii.String(\"contact_statistic_record\"),\n\t},\n})","version":"1"},"$":{"source":"import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n\nnew DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', // Your Connect instance ID\n datasetIds: [\n DataType.CONTACT_RECORD,\n 'contact_statistic_record',\n ],\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"@cdklabs/cdk-construct-connect-datalake"},"field":{"field":"markdown","line":83}},"didCompile":true,"fqnsReferenced":["@cdklabs/cdk-construct-connect-datalake.DataLakeAccess","@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_RECORD","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nnew DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', // Your Connect instance ID\n datasetIds: [\n DataType.CONTACT_RECORD,\n 'contact_statistic_record',\n ],\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":4,"80":7,"110":1,"210":1,"211":1,"212":1,"215":1,"245":1,"273":1,"274":1,"276":1,"277":2,"304":2,"308":1},"fqnsFingerprint":"2f7cf2ab87645e9fcb4879ac6548d0cba0e9ef3876781b8c0ff01b105940d544"},"a8797c35a7a51ce10f33f69c2ed3aa8b4331b96a7b2baaaa5fd8d1792e585e98":{"translations":{"python":{"source":"from cdklabs.cdk_construct_connect_datalake import DataLakeAccess, DataType\nfrom aws_cdk.aws_connect import CfnInstance\n\n\nconnect_instance = CfnInstance(self, \"ConnectInstance\",\n identity_management_type=\"CONNECT_MANAGED\",\n instance_alias=\"my-instance\",\n attributes=CfnInstance.AttributesProperty(\n inbound_calls=True,\n outbound_calls=True\n )\n)\n\ndata_lake = DataLakeAccess(self, \"DataLakeAccess\",\n instance_id=connect_instance.attr_id,\n dataset_ids=[DataType.CONTACT_RECORD]\n)\n\n# Ensure data lake resources are deleted before the Connect instance\ndata_lake.node.add_dependency(connect_instance)","version":"2"},"csharp":{"source":"using Cdklabs.CdkConstructConnectDatalake;\nusing Amazon.CDK.AWS.Connect;\n\n\nvar connectInstance = new CfnInstance(this, \"ConnectInstance\", new CfnInstanceProps {\n IdentityManagementType = \"CONNECT_MANAGED\",\n InstanceAlias = \"my-instance\",\n Attributes = new AttributesProperty {\n InboundCalls = true,\n OutboundCalls = true\n }\n});\n\nvar dataLake = new DataLakeAccess(this, \"DataLakeAccess\", new DataLakeAccessProps {\n InstanceId = connectInstance.AttrId,\n DatasetIds = new [] { DataType.CONTACT_RECORD }\n});\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.Node.AddDependency(connectInstance);","version":"1"},"java":{"source":"import io.github.cdklabs.cdk.construct.connect.datalake.DataLakeAccess;\nimport io.github.cdklabs.cdk.construct.connect.datalake.DataType;\nimport software.amazon.awscdk.services.connect.CfnInstance;\n\n\nCfnInstance connectInstance = CfnInstance.Builder.create(this, \"ConnectInstance\")\n .identityManagementType(\"CONNECT_MANAGED\")\n .instanceAlias(\"my-instance\")\n .attributes(AttributesProperty.builder()\n .inboundCalls(true)\n .outboundCalls(true)\n .build())\n .build();\n\nDataLakeAccess dataLake = DataLakeAccess.Builder.create(this, \"DataLakeAccess\")\n .instanceId(connectInstance.getAttrId())\n .datasetIds(List.of(DataType.CONTACT_RECORD))\n .build();\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.node.addDependency(connectInstance);","version":"1"},"go":{"source":"import \"github.com/cdklabs/cdk-construct-connect-datalake-go/cdklabscdkconstructconnectdatalake\"\nimport \"github.com/aws/aws-cdk-go/awscdk\"\n\n\nconnectInstance := awscdk.NewCfnInstance(this, jsii.String(\"ConnectInstance\"), &CfnInstanceProps{\n\tIdentityManagementType: jsii.String(\"CONNECT_MANAGED\"),\n\tInstanceAlias: jsii.String(\"my-instance\"),\n\tAttributes: &AttributesProperty{\n\t\tInboundCalls: jsii.Boolean(true),\n\t\tOutboundCalls: jsii.Boolean(true),\n\t},\n})\n\ndataLake := cdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess\"), &DataLakeAccessProps{\n\tInstanceId: connectInstance.attrId,\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t},\n})\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.Node.AddDependency(connectInstance)","version":"1"},"$":{"source":"import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\nimport { CfnInstance } from 'aws-cdk-lib/aws-connect';\n\nconst connectInstance = new CfnInstance(this, 'ConnectInstance', {\n identityManagementType: 'CONNECT_MANAGED',\n instanceAlias: 'my-instance',\n attributes: {\n inboundCalls: true,\n outboundCalls: true,\n },\n});\n\nconst dataLake = new DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: connectInstance.attrId,\n datasetIds: [DataType.CONTACT_RECORD],\n});\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.node.addDependency(connectInstance);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"@cdklabs/cdk-construct-connect-datalake"},"field":{"field":"markdown","line":99}},"didCompile":true,"fqnsReferenced":["@cdklabs/cdk-construct-connect-datalake.DataLakeAccess","@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_RECORD","aws-cdk-lib.aws_connect.CfnInstance","aws-cdk-lib.aws_connect.CfnInstanceProps","constructs.Construct","constructs.Construct#node","constructs.IDependable","constructs.Node#addDependency"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\nimport { CfnInstance } from 'aws-cdk-lib/aws-connect';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst connectInstance = new CfnInstance(this, 'ConnectInstance', {\n identityManagementType: 'CONNECT_MANAGED',\n instanceAlias: 'my-instance',\n attributes: {\n inboundCalls: true,\n outboundCalls: true,\n },\n});\n\nconst dataLake = new DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: connectInstance.attrId,\n datasetIds: [DataType.CONTACT_RECORD],\n});\n\n// Ensure data lake resources are deleted before the Connect instance\ndataLake.node.addDependency(connectInstance);\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":6,"80":22,"110":2,"112":2,"210":1,"211":3,"212":4,"214":1,"215":2,"244":2,"245":1,"261":2,"262":2,"273":2,"274":2,"276":2,"277":3,"304":7,"308":1},"fqnsFingerprint":"8a6c8629dd0567ef0a683b0c8bac0b66bf4f8d30cf75c5111838915ab59b6e60"},"3943f4235a371932e8d12e22a29123af325eaa909899056ecca10bde6afbd24c":{"translations":{"python":{"source":"from cdklabs.cdk_construct_connect_datalake import DataLakeAccess, DataType\n\n\nDataLakeAccess(self, \"DataLakeAccess\",\n instance_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n dataset_ids=[DataType.CONTACT_RECORD, \"contact_statistic_record\"\n ],\n\n # Target account where the resources are created\n target_account_id=\"123456789012\",\n\n # IAM role in the target account for cross-account role assumption\n target_account_role_arn=\"arn:aws:iam::123456789012:role/RoleName\"\n)","version":"2"},"csharp":{"source":"using Cdklabs.CdkConstructConnectDatalake;\n\n\nnew DataLakeAccess(this, \"DataLakeAccess\", new DataLakeAccessProps {\n InstanceId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n DatasetIds = new [] { DataType.CONTACT_RECORD, \"contact_statistic_record\" },\n\n // Target account where the resources are created\n TargetAccountId = \"123456789012\",\n\n // IAM role in the target account for cross-account role assumption\n TargetAccountRoleArn = \"arn:aws:iam::123456789012:role/RoleName\"\n});","version":"1"},"java":{"source":"import io.github.cdklabs.cdk.construct.connect.datalake.DataLakeAccess;\nimport io.github.cdklabs.cdk.construct.connect.datalake.DataType;\n\n\nDataLakeAccess.Builder.create(this, \"DataLakeAccess\")\n .instanceId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .datasetIds(List.of(DataType.CONTACT_RECORD, \"contact_statistic_record\"))\n\n // Target account where the resources are created\n .targetAccountId(\"123456789012\")\n\n // IAM role in the target account for cross-account role assumption\n .targetAccountRoleArn(\"arn:aws:iam::123456789012:role/RoleName\")\n .build();","version":"1"},"go":{"source":"import \"github.com/cdklabs/cdk-construct-connect-datalake-go/cdklabscdkconstructconnectdatalake\"\n\n\ncdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess\"), &DataLakeAccessProps{\n\tInstanceId: jsii.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t\tjsii.String(\"contact_statistic_record\"),\n\t},\n\n\t// Target account where the resources are created\n\tTargetAccountId: jsii.String(\"123456789012\"),\n\n\t// IAM role in the target account for cross-account role assumption\n\tTargetAccountRoleArn: jsii.String(\"arn:aws:iam::123456789012:role/RoleName\"),\n})","version":"1"},"$":{"source":"import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n\nnew DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',\n datasetIds: [\n DataType.CONTACT_RECORD,\n 'contact_statistic_record',\n ],\n\n // Target account where the resources are created\n targetAccountId: '123456789012',\n\n // IAM role in the target account for cross-account role assumption\n targetAccountRoleArn: \"arn:aws:iam::123456789012:role/RoleName\",\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"@cdklabs/cdk-construct-connect-datalake"},"field":{"field":"markdown","line":127}},"didCompile":true,"fqnsReferenced":["@cdklabs/cdk-construct-connect-datalake.DataLakeAccess","@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_RECORD","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nnew DataLakeAccess(this, 'DataLakeAccess', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',\n datasetIds: [\n DataType.CONTACT_RECORD,\n 'contact_statistic_record',\n ],\n\n // Target account where the resources are created\n targetAccountId: '123456789012',\n\n // IAM role in the target account for cross-account role assumption\n targetAccountRoleArn: \"arn:aws:iam::123456789012:role/RoleName\",\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":6,"80":9,"110":1,"210":1,"211":1,"212":1,"215":1,"245":1,"273":1,"274":1,"276":1,"277":2,"304":4,"308":1},"fqnsFingerprint":"2f7cf2ab87645e9fcb4879ac6548d0cba0e9ef3876781b8c0ff01b105940d544"},"c2e3da396fefcd5ecdded7763916a7ad777bf15f5aa19d7566dc24cdd7f25595":{"translations":{"python":{"source":"from cdklabs.cdk_construct_connect_datalake import DataLakeAccess, DataType\n\n\n# First Connect instance data lake setup\ndata_lake1 = DataLakeAccess(self, \"DataLakeAccess1\",\n instance_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n dataset_ids=[DataType.CONTACT_RECORD, DataType.AGENT_STATISTIC_RECORD\n ]\n)\n\n# Second Connect instance data lake setup\ndata_lake2 = DataLakeAccess(self, \"DataLakeAccess2\",\n instance_id=\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\",\n dataset_ids=[DataType.CONTACT_RECORD, DataType.CONTACT_FLOW_EVENTS\n ]\n)\n\n# Create dependency to ensure sequential deployment\ndata_lake2.node.add_dependency(data_lake1)","version":"2"},"csharp":{"source":"using Cdklabs.CdkConstructConnectDatalake;\n\n\n// First Connect instance data lake setup\nvar dataLake1 = new DataLakeAccess(this, \"DataLakeAccess1\", new DataLakeAccessProps {\n InstanceId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n DatasetIds = new [] { DataType.CONTACT_RECORD, DataType.AGENT_STATISTIC_RECORD }\n});\n\n// Second Connect instance data lake setup\nvar dataLake2 = new DataLakeAccess(this, \"DataLakeAccess2\", new DataLakeAccessProps {\n InstanceId = \"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\",\n DatasetIds = new [] { DataType.CONTACT_RECORD, DataType.CONTACT_FLOW_EVENTS }\n});\n\n// Create dependency to ensure sequential deployment\ndataLake2.Node.AddDependency(dataLake1);","version":"1"},"java":{"source":"import io.github.cdklabs.cdk.construct.connect.datalake.DataLakeAccess;\nimport io.github.cdklabs.cdk.construct.connect.datalake.DataType;\n\n\n// First Connect instance data lake setup\nDataLakeAccess dataLake1 = DataLakeAccess.Builder.create(this, \"DataLakeAccess1\")\n .instanceId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .datasetIds(List.of(DataType.CONTACT_RECORD, DataType.AGENT_STATISTIC_RECORD))\n .build();\n\n// Second Connect instance data lake setup\nDataLakeAccess dataLake2 = DataLakeAccess.Builder.create(this, \"DataLakeAccess2\")\n .instanceId(\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\")\n .datasetIds(List.of(DataType.CONTACT_RECORD, DataType.CONTACT_FLOW_EVENTS))\n .build();\n\n// Create dependency to ensure sequential deployment\ndataLake2.node.addDependency(dataLake1);","version":"1"},"go":{"source":"import \"github.com/cdklabs/cdk-construct-connect-datalake-go/cdklabscdkconstructconnectdatalake\"\n\n\n// First Connect instance data lake setup\ndataLake1 := cdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess1\"), &DataLakeAccessProps{\n\tInstanceId: jsii.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t\t*cdklabscdkconstructconnectdatalake.DataType_AGENT_STATISTIC_RECORD,\n\t},\n})\n\n// Second Connect instance data lake setup\ndataLake2 := cdklabscdkconstructconnectdatalake.NewDataLakeAccess(this, jsii.String(\"DataLakeAccess2\"), &DataLakeAccessProps{\n\tInstanceId: jsii.String(\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\"),\n\tDatasetIds: []*string{\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_RECORD,\n\t\t*cdklabscdkconstructconnectdatalake.DataType_CONTACT_FLOW_EVENTS,\n\t},\n})\n\n// Create dependency to ensure sequential deployment\ndataLake2.Node.AddDependency(dataLake1)","version":"1"},"$":{"source":"import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n\n// First Connect instance data lake setup\nconst dataLake1 = new DataLakeAccess(this, 'DataLakeAccess1', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',\n datasetIds: [\n DataType.CONTACT_RECORD,\n DataType.AGENT_STATISTIC_RECORD,\n ],\n});\n\n// Second Connect instance data lake setup\nconst dataLake2 = new DataLakeAccess(this, 'DataLakeAccess2', {\n instanceId: 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy',\n datasetIds: [\n DataType.CONTACT_RECORD,\n DataType.CONTACT_FLOW_EVENTS,\n ],\n});\n\n// Create dependency to ensure sequential deployment\ndataLake2.node.addDependency(dataLake1);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"@cdklabs/cdk-construct-connect-datalake"},"field":{"field":"markdown","line":149}},"didCompile":true,"fqnsReferenced":["@cdklabs/cdk-construct-connect-datalake.DataLakeAccess","@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps","@cdklabs/cdk-construct-connect-datalake.DataType#AGENT_STATISTIC_RECORD","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_FLOW_EVENTS","@cdklabs/cdk-construct-connect-datalake.DataType#CONTACT_RECORD","constructs.Construct","constructs.Construct#node","constructs.IDependable","constructs.Node#addDependency"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n Stack,\n} from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\n// First Connect instance data lake setup\nconst dataLake1 = new DataLakeAccess(this, 'DataLakeAccess1', {\n instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',\n datasetIds: [\n DataType.CONTACT_RECORD,\n DataType.AGENT_STATISTIC_RECORD,\n ],\n});\n\n// Second Connect instance data lake setup\nconst dataLake2 = new DataLakeAccess(this, 'DataLakeAccess2', {\n instanceId: 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy',\n datasetIds: [\n DataType.CONTACT_RECORD,\n DataType.CONTACT_FLOW_EVENTS,\n ],\n});\n\n// Create dependency to ensure sequential deployment\ndataLake2.node.addDependency(dataLake1);\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":5,"80":22,"110":2,"210":2,"211":2,"212":6,"214":1,"215":2,"244":2,"245":1,"261":2,"262":2,"273":1,"274":1,"276":1,"277":2,"304":4,"308":1},"fqnsFingerprint":"cd43f00cebfa6df6d2edd5cc1b9bb19ad5c2543bfe51e5597c6478151e05d124"}}}
|
package/lib/index.js
CHANGED
|
@@ -215,6 +215,6 @@ class DataLakeAccess extends constructs_1.Construct {
|
|
|
215
215
|
}
|
|
216
216
|
exports.DataLakeAccess = DataLakeAccess;
|
|
217
217
|
_a = JSII_RTTI_SYMBOL_1;
|
|
218
|
-
DataLakeAccess[_a] = { fqn: "@cdklabs/cdk-construct-connect-datalake.DataLakeAccess", version: "0.0.
|
|
218
|
+
DataLakeAccess[_a] = { fqn: "@cdklabs/cdk-construct-connect-datalake.DataLakeAccess", version: "0.0.9" };
|
|
219
219
|
DataLakeAccess.DATABASE_NAME = "connect_datalake_database";
|
|
220
220
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFFdEMsK0JBQTRCO0FBQzVCLDZDQUE2RjtBQUM3RixpREFBOEQ7QUFDOUQsdURBQWlFO0FBQ2pFLG1FQUF3RDtBQUN4RCwyQ0FBdUM7QUFHdkMsK0NBQTZCO0FBcUM3Qjs7Ozs7R0FLRztBQUNILE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBRzNDOzs7O09BSUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxLQUFLLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNsQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzVCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDOUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNsQyxNQUFNLGFBQWEsR0FBVyxLQUFLLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUMvRCxNQUFNLHdCQUF3QixHQUFZLGFBQWEsS0FBSyxPQUFPLENBQUM7UUFFcEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUVwRCxxREFBcUQ7UUFDckQsTUFBTSxxQkFBcUIsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV6Rjs7O1dBR0c7UUFDSCxNQUFNLGNBQWMsR0FBRyxJQUFJLHFCQUFRLENBQUMsSUFBSSxF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Q0FBQyxhQUFhLElBQUk7b0JBQ3BGLE9BQU8sU0FBUyxTQUFTLE1BQU0sSUFBSSxPQUFPLHdCQUF3QixjQUFjLENBQUMsYUFBYSxJQUFJO29CQUNsRyxPQUFPLFNBQVMsU0FBUyxNQUFNLElBQUksT0FBTyxVQUFVO2lCQUNyRDthQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7O0FBclBILHdDQXNQQzs7O0FBclB5Qiw0QkFBYSxHQUFHLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IER1cmF0aW9uLCBDdXN0b21SZXNvdXJjZSwgQ2ZuT3V0cHV0LCBTdGFjaywgQW5ub3RhdGlvbnMsIFRva2VuIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIEVmZmVjdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBGdW5jdGlvbiwgUnVudGltZSwgQ29kZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tIFwiLi9kYXRhLXR5cGVzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RhdGEtdHlwZXNcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgRGF0YUxha2VBY2Nlc3MgY29uc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUxha2VBY2Nlc3NQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgQW1hem9uIENvbm5lY3QgaW5zdGFuY2VcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQXJyYXkgb2YgZGF0YXNldCBJRHMgdG8gYXNzb2NpYXRlIHdpdGggdGhlIENvbm5lY3QgaW5zdGFuY2VcbiAgICpcbiAgICogQ2FuIGluY2x1ZGUgRGF0YVR5cGUgZW51bSB2YWx1ZXMgb3Igc3RyaW5nIGRhdGFzZXQgSURzXG4gICAqL1xuICByZWFkb25seSBkYXRhc2V0SWRzOiBBcnJheTxzdHJpbmcgfCBEYXRhVHlwZT47XG5cbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSB0YXJnZXQgYWNjb3VudFxuICAgKlxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUgY3VycmVudCBBV1MgYWNjb3VudC4gRm9yIGNyb3NzLWFjY291bnQgc2V0dXBzLFxuICAgKiBzcGVjaWZ5IGFuIGV4dGVybmFsIGFjY291bnQgSUQgdG8gYXNzb2NpYXRlIGRhdGFzZXRzIGFuZCBjcmVhdGUgcmVzb3VyY2VzIGluIHRoYXQgYWNjb3VudFxuICAgKlxuICAgKiBXaGVuIHNwZWNpZmllZCB3aXRoIGFuIGV4dGVybmFsIGFjY291bnQsIGB0YXJnZXRBY2NvdW50Um9sZUFybmAgaXMgYWxzbyByZXF1aXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0QWNjb3VudElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgQVJOIGluIHRoZSB0YXJnZXQgYWNjb3VudCBmb3IgY3Jvc3MtYWNjb3VudCByb2xlIGFzc3VtcHRpb25cbiAgICpcbiAgICogT25seSByZXF1aXJlZCB3aGVuIGB0YXJnZXRBY2NvdW50SWRgIGlzIHNwZWNpZmllZCB3aXRoIGFuIGV4dGVybmFsIGFjY291bnQuIEEgdGVtcGxhdGVcbiAgICogZm9yIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9ucyBjYW4gYmUgZm91bmQgaW4gdGhlIFtDcm9zcyBBY2NvdW50IFNldHVwXSguLi9DUk9TU19BQ0NPVU5UX1NFVFVQLm1kKSBkb2N1bWVudGF0aW9uXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRBY2NvdW50Um9sZUFybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBdXRvbWF0ZXMgQW1hem9uIENvbm5lY3QgRGF0YSBMYWtlIGludGVncmF0aW9uIHNldHVwIGFuZCBtYW5hZ2VtZW50LlxuICpcbiAqIFRoaXMgY29uc3RydWN0IHNpbXBsaWZpZXMgdGhlIHByb2Nlc3Mgb2YgYXNzb2NpYXRpbmcgQW1hem9uIENvbm5lY3QgYW5hbHl0aWNzIGRhdGFzZXRzIHdpdGggQVdTIGRhdGEgbGFrZSBzZXJ2aWNlcyxcbiAqIGhhbmRsaW5nIHJlc291cmNlIHNoYXJpbmcsIExha2UgRm9ybWF0aW9uIHBlcm1pc3Npb25zLCBhbmQgZGF0YSBjYXRhbG9nIG1hbmFnZW1lbnQgdGhyb3VnaCBhIGNlbnRyYWxpemVkIEdsdWUgZGF0YWJhc2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhTGFrZUFjY2VzcyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERBVEFCQVNFX05BTUUgPSBcImNvbm5lY3RfZGF0YWxha2VfZGF0YWJhc2VcIjtcblxuICAvKipcbiAgICogQHBhcmFtIHNjb3BlIFBhcmVudCB0byB3aGljaCB0aGUgQ3VzdG9tIFJlc291cmNlIGJlbG9uZ3NcbiAgICogQHBhcmFtIGlkIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyBNZXRhZGF0YSBmb3IgY29uZmlndXJpbmcgdGhlIEN1c3RvbSBSZXNvdXJjZVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFMYWtlQWNjZXNzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcbiAgICBjb25zdCBwYXJ0aXRpb24gPSBzdGFjay5wYXJ0aXRpb247XG4gICAgY29uc3QgcmVnaW9uID0gc3RhY2sucmVnaW9uO1xuICAgIGNvbnN0IGFjY291bnQgPSBzdGFjay5hY2NvdW50O1xuICAgIGNvbnN0IHN0YWNrTmFtZSA9IHN0YWNrLnN0YWNrTmFtZTtcbiAgICBjb25zdCB0YXJnZXRBY2NvdW50OiBzdHJpbmcgPSBwcm9wcy50YXJnZXRBY2NvdW50SWQgPz8gYWNjb3VudDtcbiAgICBjb25zdCBpc0Nyb3NzQWNjb3VudERlcGxveW1lbnQ6IGJvb2xlYW4gPSB0YXJnZXRBY2NvdW50ICE9PSBhY2NvdW50O1xuXG4gICAgdGhpcy52YWxpZGF0ZVByb3BzKHByb3BzLCBpc0Nyb3NzQWNjb3VudERlcGxveW1lbnQpO1xuXG4gICAgLy8gVXNlZCB0byBtYW5hZ2UgY2hhbmdlIGluIHRhcmdldEFjY291bnRJZCBzY2VuYXJpb3NcbiAgICBjb25zdCB0YXJnZXRBY2NvdW50SWRTdWZmaXggPSBpc0Nyb3NzQWNjb3VudERlcGxveW1lbnQgPyBgJHtwcm9wcy50YXJnZXRBY2NvdW50SWR9YCA6IFwiXCI7XG5cbiAgICAvKipcbiAgICAgKiBMYW1iZGEgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIHRoZSBkYXRhIGxha2Ugc2V0dXAgYW5kIHRlYXJkb3duIHByb2Nlc3NcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIG9yY2hlc3RyYXRlcyB0aGUgZW50aXJlIENvbm5lY3QgZGF0YSBsYWtlIGludGVncmF0aW9uIHdvcmtmbG93XG4gICAgICovXG4gICAgY29uc3QgZGF0YUxha2VMYW1iZGEgPSBuZXcgRnVuY3Rpb24odGhpcywgYERhdGFMYWtlSGFuZGxlciR7dGFyZ2V0QWNjb3VudElkU3VmZml4fWAsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIyX1gsXG4gICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KGpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwibGliXCIsIFwiaGFuZGxlclwiKSksXG4gICAgICBtZW1vcnlTaXplOiA1MTIsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvbGVBcm4gPSBpc0Nyb3NzQWNjb3VudERlcGxveW1lbnQgPyBwcm9wcy50YXJnZXRBY2NvdW50Um9sZUFybiEgOiBkYXRhTGFrZUxhbWJkYS5yb2xlIS5yb2xlQXJuO1xuICAgIHRoaXMuY29uZmlndXJlTGFtYmRhUGVybWlzc2lvbnMoXG4gICAgICBkYXRhTGFrZUxhbWJkYSxcbiAgICAgIHBhcnRpdGlvbixcbiAgICAgIHJlZ2lvbixcbiAgICAgIGFjY291bnQsXG4gICAgICBzdGFja05hbWUsXG4gICAgICBpc0Nyb3NzQWNjb3VudERlcGxveW1lbnQsXG4gICAgICByb2xlQXJuLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gcmVzb3VyY2UgcHJvdmlkZXIgdGhhdCBtYW5hZ2VzIHRoZSBMYW1iZGEgZnVuY3Rpb24gbGlmZWN5Y2xlXG4gICAgICovXG4gICAgY29uc3QgZGF0YUxha2VQcm92aWRlciA9IG5ldyBQcm92aWRlcih0aGlzLCBgRGF0YUxha2VQcm92aWRlciR7dGFyZ2V0QWNjb3VudElkU3VmZml4fWAsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBkYXRhTGFrZUxhbWJkYSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSByZXNvdXJjZSB0aGF0IHRyaWdnZXJzIHRoZSBkYXRhIGxha2Ugc2V0dXAgcHJvY2VzcyBkdXJpbmcgQ2xvdWRGb3JtYXRpb24gc3RhY2sgbGlmZWN5Y2xlIGV2ZW50c1xuICAgICAqL1xuICAgIGNvbnN0IGRhdGFMYWtlQ3VzdG9tUmVzb3VyY2UgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgYERhdGFMYWtlQ3VzdG9tUmVzb3VyY2Uke3RhcmdldEFjY291bnRJZFN1ZmZpeH1gLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IGRhdGFMYWtlUHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpbnN0YW5jZUlkOiBwcm9wcy5pbnN0YW5jZUlkLFxuICAgICAgICBkYXRhc2V0SWRzOiBwcm9wcy5kYXRhc2V0SWRzLm1hcCgoZCkgPT4gU3RyaW5nKGQpKSxcbiAgICAgICAgcm9sZUFybjogcm9sZUFybixcbiAgICAgICAgbGFtYmRhQWNjb3VudElkOiBhY2NvdW50LFxuICAgICAgICB0YXJnZXRBY2NvdW50SWQ6IHRhcmdldEFjY291bnQsXG4gICAgICAgIHRpbWVTdGFtcDogRGF0ZS5ub3coKS50b1N0cmluZygpLCAvLyBGb3JjZSB1cGRhdGUgZXZlbiBpZiBpbnB1dCBwcm9wZXJ0aWVzIGRvIG5vdCBjaGFuZ2VcbiAgICAgICAgY29uc3RydWN0SWQ6IGlkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENsb3VkRm9ybWF0aW9uIG91dHB1dCBjb250YWluaW5nIGN1c3RvbSByZXNvdXJjZSBsYW1iZGEgZXJyb3JzXG4gICAgICovXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIkVycm9yc1wiLCB7XG4gICAgICB2YWx1ZTogZGF0YUxha2VDdXN0b21SZXNvdXJjZS5nZXRBdHRTdHJpbmcoXCJlcnJvcnNcIiksXG4gICAgICBleHBvcnROYW1lOiBgJHtpZH1FcnJvcnNgLFxuICAgIH0pO1xuICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoXG4gICAgICBgRGF0YUxha2VBY2Nlc3MgcmVwb3J0cyBzZXR1cCBlcnJvcnMgdmlhIHRoZSBzdGFjayBvdXRwdXQuIGAgK1xuICAgICAgICBgQ2hlY2sgb3V0cHV0ICcke2lkfUVycm9ycycgYWZ0ZXIgZWFjaCBkZXBsb3ltZW50IHRvIHZlcmlmeSB0aGUgc2V0dXAgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS5gLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBjb25zdHJ1Y3QgaW5wdXQgcGFyYW1ldGVyc1xuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIGNvbnN0cnVjdCBwcm9wZXJ0aWVzIHRvIHZhbGlkYXRlXG4gICAqIEBwYXJhbSBpc0Nyb3NzQWNjb3VudERlcGxveW1lbnQgSW5kaWNhdGVzIGlmIHRhcmdldCBhY2NvdW50IGRpZmZlcnMgZnJvbSBjdXJyZW50IGFjY291bnRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVQcm9wcyhwcm9wczogRGF0YUxha2VBY2Nlc3NQcm9wcywgaXNDcm9zc0FjY291bnREZXBsb3ltZW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKFxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5pbnN0YW5jZUlkKSAmJlxuICAgICAgIS9eW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JC8udGVzdChwcm9wcy5pbnN0YW5jZUlkKVxuICAgICkge1xuICAgICAgZXJyb3JzLnB1c2goXCJpbnN0YW5jZUlkIG11c3QgYmUgYSB2YWxpZCBVVUlEIGZvcm1hdFwiKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZGF0YXNldElkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGVycm9ycy5wdXNoKFwiZGF0YXNldElkcyBjYW5ub3QgYmUgZW1wdHlcIik7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMudGFyZ2V0QWNjb3VudElkICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLnRhcmdldEFjY291bnRJZCkgJiZcbiAgICAgICEvXlxcZHsxMn0kLy50ZXN0KHByb3BzLnRhcmdldEFjY291bnRJZClcbiAgICApIHtcbiAgICAgIGVycm9ycy5wdXNoKFwidGFyZ2V0QWNjb3VudElkIG11c3QgYmUgYSAxMi1kaWdpdCBBV1MgYWNjb3VudCBJRFwiKTtcbiAgICB9XG5cbiAgICBpZiAoaXNDcm9zc0FjY291bnREZXBsb3ltZW50ICYmICFwcm9wcy50YXJnZXRBY2NvdW50Um9sZUFybikge1xuICAgICAgZXJyb3JzLnB1c2goXCJ0YXJnZXRBY2NvdW50Um9sZUFybiBpcyByZXF1aXJlZCB3aGVuIHRhcmdldEFjY291bnRJZCBkaWZmZXJzIGZyb20gY3VycmVudCBhY2NvdW50XCIpO1xuICAgIH1cbiAgICBpZiAoIWlzQ3Jvc3NBY2NvdW50RGVwbG95bWVudCAmJiBwcm9wcy50YXJnZXRBY2NvdW50Um9sZUFybikge1xuICAgICAgZXJyb3JzLnB1c2goXCJ0YXJnZXRBY2NvdW50Um9sZUFybiBzaG91bGQgbm90IGJlIHNwZWNpZmllZCB3aXRob3V0IHRhcmdldEFjY291bnRJZFwiKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy50YXJnZXRBY2NvdW50Um9sZUFybiAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy50YXJnZXRBY2NvdW50Um9sZUFybikgJiZcbiAgICAgICEvXmFybjooYXdzfGF3cy11cy1nb3YpOmlhbTo6XFxkezEyfTpyb2xlXFwvW1xcdys9LC5ALy1dKyQvLnRlc3QocHJvcHMudGFyZ2V0QWNjb3VudFJvbGVBcm4pXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcInRhcmdldEFjY291bnRSb2xlQXJuIG11c3QgYmUgYSB2YWxpZCBJQU0gcm9sZSBBUk5cIik7XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBlcnJvcnMuZm9yRWFjaCgoZXJyb3IpID0+IEFubm90YXRpb25zLm9mKHRoaXMpLmFkZEVycm9yKGVycm9yKSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERhdGFMYWtlQWNjZXNzIHZhbGlkYXRpb24gZmFpbGVkOiAke2Vycm9ycy5qb2luKFwiOyBcIil9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgTGFtYmRhIHBlcm1pc3Npb25zIGZvciBzYW1lLWFjY291bnQgb3IgY3Jvc3MtYWNjb3VudCBkZXBsb3ltZW50c1xuICAgKlxuICAgKiBAcGFyYW0gbGFtYmRhRnVuY3Rpb24gVGhlIExhbWJkYSBmdW5jdGlvbiB0byBjb25maWd1cmUgcGVybWlzc2lvbnMgZm9yXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gQVdTIHBhcnRpdGlvbiBmb3IgcmVzb3VyY2UgQVJOIGNvbnN0cnVjdGlvblxuICAgKiBAcGFyYW0gcmVnaW9uIEFXUyByZWdpb24gZm9yIHJlc291cmNlIEFSTiBjb25zdHJ1Y3Rpb25cbiAgICogQHBhcmFtIGFjY291bnQgQ3VycmVudCBhY2NvdW50IElEIHdoZXJlIHRoZSBDb25uZWN0IGluc3RhbmNlIHJlc2lkZXNcbiAgICogQHBhcmFtIHN0YWNrTmFtZSBOYW1lIG9mIHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFja1xuICAgKiBAcGFyYW0gaXNDcm9zc0FjY291bnREZXBsb3ltZW50IEluZGljYXRlcyBpZiB0YXJnZXQgYWNjb3VudCBkaWZmZXJzIGZyb20gY3VycmVudCBhY2NvdW50XG4gICAqIEBwYXJhbSByb2xlQXJuIFJvbGUgQVJOIHVzZWQgZm9yIGNyb3NzLWFjY291bnQgZGVwbG95bWVudHNcbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlTGFtYmRhUGVybWlzc2lvbnMoXG4gICAgbGFtYmRhRnVuY3Rpb246IEZ1bmN0aW9uLFxuICAgIHBhcnRpdGlvbjogc3RyaW5nLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIGFjY291bnQ6IHN0cmluZyxcbiAgICBzdGFja05hbWU6IHN0cmluZyxcbiAgICBpc0Nyb3NzQWNjb3VudERlcGxveW1lbnQ6IGJvb2xlYW4sXG4gICAgcm9sZUFybjogc3RyaW5nLFxuICApOiB2b2lkIHtcbiAgICBsYW1iZGFGdW5jdGlvbi5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcImNvbm5lY3Q6QmF0Y2hBc3NvY2lhdGVBbmFseXRpY3NEYXRhU2V0XCIsXG4gICAgICAgICAgXCJjb25uZWN0OkJhdGNoRGlzYXNzb2NpYXRlQW5hbHl0aWNzRGF0YVNldFwiLFxuICAgICAgICAgIFwiY29ubmVjdDpBc3NvY2lhdGVBbmFseXRpY3NEYXRhU2V0XCIsXG4gICAgICAgICAgXCJjb25uZWN0OkRpc2Fzc29jaWF0ZUFuYWx5dGljc0RhdGFTZXRcIixcbiAgICAgICAgICBcImNvbm5lY3Q6TGlzdEFuYWx5dGljc0RhdGFBc3NvY2lhdGlvbnNcIixcbiAgICAgICAgICBcImNvbm5lY3Q6TGlzdEFuYWx5dGljc0RhdGFMYWtlRGF0YVNldHNcIixcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06Y29ubmVjdDoke3JlZ2lvbn06JHthY2NvdW50fTppbnN0YW5jZS8qYF0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgbGFtYmRhRnVuY3Rpb24uYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXCJjb25uZWN0Okxpc3RJbnN0YW5jZXNcIl0sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmNvbm5lY3Q6JHtyZWdpb259OiR7YWNjb3VudH06KmBdLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGxhbWJkYUZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1wiZHM6RGVzY3JpYmVEaXJlY3Rvcmllc1wiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCpgXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBsYW1iZGFGdW5jdGlvbi5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcImNsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2tzXCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTpjbG91ZGZvcm1hdGlvbjoke3JlZ2lvbn06JHthY2NvdW50fTpzdGFjay8ke3N0YWNrTmFtZX0vKmBdLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIEFsbG93IGFzc3VtaW5nIENvbm5lY3REYXRhTGFrZVJvbGUgZm9yIGNyb3NzLWFjY291bnQgb3BlcmF0aW9uc1xuICAgIGlmIChpc0Nyb3NzQWNjb3VudERlcGxveW1lbnQpIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogW1wic3RzOkFzc3VtZVJvbGVcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbcm9sZUFybl0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFtYmRhRnVuY3Rpb24uYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbXCJyYW06R2V0UmVzb3VyY2VTaGFyZUludml0YXRpb25zXCIsIFwicmFtOkdldFJlc291cmNlU2hhcmVzXCIsIFwicmFtOkxpc3RSZXNvdXJjZXNcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGxhbWJkYUZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogW1wicmFtOkFjY2VwdFJlc291cmNlU2hhcmVJbnZpdGF0aW9uXCJdLFxuICAgICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OnJhbToke3JlZ2lvbn06KjpyZXNvdXJjZS1zaGFyZS1pbnZpdGF0aW9uLypgXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgICBsYW1iZGFGdW5jdGlvbi5hZGRUb1JvbGVQb2xpY3koXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFtcImxha2Vmb3JtYXRpb246R2V0RGF0YUxha2VTZXR0aW5nc1wiLCBcImxha2Vmb3JtYXRpb246UHV0RGF0YUxha2VTZXR0aW5nc1wiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgbGFtYmRhRnVuY3Rpb24uYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcImdsdWU6R2V0RGF0YWJhc2VcIixcbiAgICAgICAgICAgIFwiZ2x1ZTpDcmVhdGVEYXRhYmFzZVwiLFxuICAgICAgICAgICAgXCJnbHVlOkRlbGV0ZURhdGFiYXNlXCIsXG4gICAgICAgICAgICBcImdsdWU6Q3JlYXRlVGFibGVcIixcbiAgICAgICAgICAgIFwiZ2x1ZTpEZWxldGVUYWJsZVwiLFxuICAgICAgICAgICAgXCJnbHVlOkdldFRhYmxlc1wiLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpnbHVlOiR7cmVnaW9ufToke2FjY291bnR9OmRhdGFiYXNlLyR7RGF0YUxha2VBY2Nlc3MuREFUQUJBU0VfTkFNRX1gLFxuICAgICAgICAgICAgYGFybjoke3BhcnRpdGlvbn06Z2x1ZToke3JlZ2lvbn06JHthY2NvdW50fTp0YWJsZS8ke0RhdGFMYWtlQWNjZXNzLkRBVEFCQVNFX05BTUV9LypgLFxuICAgICAgICAgICAgYGFybjoke3BhcnRpdGlvbn06Z2x1ZToke3JlZ2lvbn06JHthY2NvdW50fTp1c2VyRGVmaW5lZEZ1bmN0aW9uLyR7RGF0YUxha2VBY2Nlc3MuREFUQUJBU0VfTkFNRX0vKmAsXG4gICAgICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpnbHVlOiR7cmVnaW9ufToke2FjY291bnR9OmNhdGFsb2dgLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-cloudformation",
|
|
3
3
|
"description": "AWS SDK for JavaScript Cloudformation Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.1045.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-cloudformation",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-connect",
|
|
3
3
|
"description": "AWS SDK for JavaScript Connect Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.1045.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-connect",
|
|
@@ -333,6 +333,7 @@ const _CJRr = "CreateJobResponse";
|
|
|
333
333
|
const _CKS = "CatalogKafkaSource";
|
|
334
334
|
const _CKSa = "CatalogKinesisSource";
|
|
335
335
|
const _CL = "ConnectionsList";
|
|
336
|
+
const _CLGP = "CustomLogGroupPrefix";
|
|
336
337
|
const _CLS = "CrawlerLineageSettings";
|
|
337
338
|
const _CLa = "CatalogList";
|
|
338
339
|
const _CLl = "ClassifierList";
|
|
@@ -3837,8 +3838,8 @@ exports.DataQualityEncryption$ = [3, n0, _DQE,
|
|
|
3837
3838
|
];
|
|
3838
3839
|
exports.DataQualityEvaluationRunAdditionalRunOptions$ = [3, n0, _DQERARO,
|
|
3839
3840
|
0,
|
|
3840
|
-
[_CWME, _RSP, _CREM],
|
|
3841
|
-
[2, 0, 0]
|
|
3841
|
+
[_CWME, _RSP, _CREM, _CLGP],
|
|
3842
|
+
[2, 0, 0, 0]
|
|
3842
3843
|
];
|
|
3843
3844
|
exports.DataQualityGlueTable$ = [3, n0, _DQGT,
|
|
3844
3845
|
0,
|
|
@@ -3892,8 +3893,8 @@ exports.DataQualityRulesetEvaluationRunDescription$ = [3, n0, _DQRERD,
|
|
|
3892
3893
|
];
|
|
3893
3894
|
exports.DataQualityRulesetEvaluationRunFilter$ = [3, n0, _DQRERF,
|
|
3894
3895
|
0,
|
|
3895
|
-
[_DSa, _SB, _SAt],
|
|
3896
|
-
[() => exports.DataSource$, 4, 4], 1
|
|
3896
|
+
[_DSa, _SB, _SAt, _RNu],
|
|
3897
|
+
[() => exports.DataSource$, 4, 4, 0], 1
|
|
3897
3898
|
];
|
|
3898
3899
|
exports.DataQualityRulesetFilterCriteria$ = [3, n0, _DQRFCa,
|
|
3899
3900
|
0,
|
|
@@ -305,6 +305,7 @@ const _CJRr = "CreateJobResponse";
|
|
|
305
305
|
const _CKS = "CatalogKafkaSource";
|
|
306
306
|
const _CKSa = "CatalogKinesisSource";
|
|
307
307
|
const _CL = "ConnectionsList";
|
|
308
|
+
const _CLGP = "CustomLogGroupPrefix";
|
|
308
309
|
const _CLS = "CrawlerLineageSettings";
|
|
309
310
|
const _CLa = "CatalogList";
|
|
310
311
|
const _CLl = "ClassifierList";
|
|
@@ -3809,8 +3810,8 @@ export var DataQualityEncryption$ = [3, n0, _DQE,
|
|
|
3809
3810
|
];
|
|
3810
3811
|
export var DataQualityEvaluationRunAdditionalRunOptions$ = [3, n0, _DQERARO,
|
|
3811
3812
|
0,
|
|
3812
|
-
[_CWME, _RSP, _CREM],
|
|
3813
|
-
[2, 0, 0]
|
|
3813
|
+
[_CWME, _RSP, _CREM, _CLGP],
|
|
3814
|
+
[2, 0, 0, 0]
|
|
3814
3815
|
];
|
|
3815
3816
|
export var DataQualityGlueTable$ = [3, n0, _DQGT,
|
|
3816
3817
|
0,
|
|
@@ -3864,8 +3865,8 @@ export var DataQualityRulesetEvaluationRunDescription$ = [3, n0, _DQRERD,
|
|
|
3864
3865
|
];
|
|
3865
3866
|
export var DataQualityRulesetEvaluationRunFilter$ = [3, n0, _DQRERF,
|
|
3866
3867
|
0,
|
|
3867
|
-
[_DSa, _SB, _SAt],
|
|
3868
|
-
[() => DataSource$, 4, 4], 1
|
|
3868
|
+
[_DSa, _SB, _SAt, _RNu],
|
|
3869
|
+
[() => DataSource$, 4, 4, 0], 1
|
|
3869
3870
|
];
|
|
3870
3871
|
export var DataQualityRulesetFilterCriteria$ = [3, n0, _DQRFCa,
|
|
3871
3872
|
0,
|
|
@@ -71,6 +71,7 @@ declare const GetDataQualityRulesetEvaluationRunCommand_base: {
|
|
|
71
71
|
* // CloudWatchMetricsEnabled: true || false,
|
|
72
72
|
* // ResultsS3Prefix: "STRING_VALUE",
|
|
73
73
|
* // CompositeRuleEvaluationMethod: "COLUMN" || "ROW",
|
|
74
|
+
* // CustomLogGroupPrefix: "STRING_VALUE",
|
|
74
75
|
* // },
|
|
75
76
|
* // Status: "STARTING" || "RUNNING" || "STOPPING" || "STOPPED" || "SUCCEEDED" || "FAILED" || "TIMEOUT",
|
|
76
77
|
* // ErrorString: "STRING_VALUE",
|
|
@@ -61,6 +61,7 @@ declare const ListDataQualityRulesetEvaluationRunsCommand_base: {
|
|
|
61
61
|
* },
|
|
62
62
|
* StartedBefore: new Date("TIMESTAMP"),
|
|
63
63
|
* StartedAfter: new Date("TIMESTAMP"),
|
|
64
|
+
* RulesetName: "STRING_VALUE",
|
|
64
65
|
* },
|
|
65
66
|
* NextToken: "STRING_VALUE",
|
|
66
67
|
* MaxResults: Number("int"),
|
|
@@ -66,6 +66,7 @@ declare const StartDataQualityRulesetEvaluationRunCommand_base: {
|
|
|
66
66
|
* CloudWatchMetricsEnabled: true || false,
|
|
67
67
|
* ResultsS3Prefix: "STRING_VALUE",
|
|
68
68
|
* CompositeRuleEvaluationMethod: "COLUMN" || "ROW",
|
|
69
|
+
* CustomLogGroupPrefix: "STRING_VALUE",
|
|
69
70
|
* },
|
|
70
71
|
* RulesetNames: [ // RulesetNames // required
|
|
71
72
|
* "STRING_VALUE",
|
|
@@ -6755,6 +6755,11 @@ export interface DataQualityEvaluationRunAdditionalRunOptions {
|
|
|
6755
6755
|
* @public
|
|
6756
6756
|
*/
|
|
6757
6757
|
CompositeRuleEvaluationMethod?: DQCompositeRuleEvaluationMethod | undefined;
|
|
6758
|
+
/**
|
|
6759
|
+
* <p>A custom prefix for the CloudWatch log group names. When specified, evaluation run logs are written to <code><CustomLogGroupPrefix>/error</code> and <code><CustomLogGroupPrefix>/output</code> instead of the default <code>/aws-glue/data-quality/error</code> and <code>/aws-glue/data-quality/output</code> log groups.</p>
|
|
6760
|
+
* @public
|
|
6761
|
+
*/
|
|
6762
|
+
CustomLogGroupPrefix?: string | undefined;
|
|
6758
6763
|
}
|
|
6759
6764
|
/**
|
|
6760
6765
|
* @public
|
|
@@ -3635,6 +3635,11 @@ export interface DataQualityRulesetEvaluationRunFilter {
|
|
|
3635
3635
|
* @public
|
|
3636
3636
|
*/
|
|
3637
3637
|
StartedAfter?: Date | undefined;
|
|
3638
|
+
/**
|
|
3639
|
+
* <p>Filter results by the name of the ruleset.</p>
|
|
3640
|
+
* @public
|
|
3641
|
+
*/
|
|
3642
|
+
RulesetName?: string | undefined;
|
|
3638
3643
|
}
|
|
3639
3644
|
/**
|
|
3640
3645
|
* @public
|
|
@@ -1519,6 +1519,7 @@ export interface DataQualityEvaluationRunAdditionalRunOptions {
|
|
|
1519
1519
|
CloudWatchMetricsEnabled?: boolean | undefined;
|
|
1520
1520
|
ResultsS3Prefix?: string | undefined;
|
|
1521
1521
|
CompositeRuleEvaluationMethod?: DQCompositeRuleEvaluationMethod | undefined;
|
|
1522
|
+
CustomLogGroupPrefix?: string | undefined;
|
|
1522
1523
|
}
|
|
1523
1524
|
export interface GetDataQualityRulesetEvaluationRunResponse {
|
|
1524
1525
|
RunId?: string | undefined;
|
|
@@ -846,6 +846,7 @@ export interface DataQualityRulesetEvaluationRunFilter {
|
|
|
846
846
|
DataSource: DataSource | undefined;
|
|
847
847
|
StartedBefore?: Date | undefined;
|
|
848
848
|
StartedAfter?: Date | undefined;
|
|
849
|
+
RulesetName?: string | undefined;
|
|
849
850
|
}
|
|
850
851
|
export interface ListDataQualityRulesetEvaluationRunsRequest {
|
|
851
852
|
Filter?: DataQualityRulesetEvaluationRunFilter | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-glue",
|
|
3
3
|
"description": "AWS SDK for JavaScript Glue Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.1045.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-glue",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-lakeformation",
|
|
3
3
|
"description": "AWS SDK for JavaScript Lakeformation Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.1045.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-lakeformation",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-ram",
|
|
3
3
|
"description": "AWS SDK for JavaScript Ram Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.1045.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-ram",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-sts",
|
|
3
3
|
"description": "AWS SDK for JavaScript Sts Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.1045.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-sts",
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
**1.2.0** (2026-05-08)
|
|
5
|
+
- Add support for `sanitizeName` option
|
|
6
|
+
- Support xml-naming for validating and sanitizing tag and attribute names
|
|
7
|
+
|
|
8
|
+
**1.1.9** (2026-05-06)
|
|
9
|
+
- fix: format output for preserve order when indent by is set to empty string
|
|
10
|
+
|
|
11
|
+
**1.1.8** (2026-05-05)
|
|
12
|
+
- fix: skip text property for PI tags
|
|
13
|
+
- improve typings
|
|
14
|
+
|
|
4
15
|
**1.1.7** (2026--05-04)
|
|
5
16
|
- fix security issues when attribute value contains quotes
|
|
6
17
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Build XML from JSON
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
XML Builder was
|
|
5
|
+
XML Builder was part of [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) for years. But considering that any bug in the parser may false-alarm users who are only using the builder, we have decided to split it into a separate package.
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
@@ -19,5 +19,56 @@ const builder = new XMLBuilder();
|
|
|
19
19
|
const xml = builder.build({ name: 'value' });
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
fast-xml-builder fully
|
|
22
|
+
fast-xml-builder fully supports the response generated by fast-xml-parser. You can use options like `preserveOrder`, `ignoreAttributes`, `attributeNamePrefix`, `textNodeName`, `cdataPropName`, `commentPropName`, `format`, `indentBy`, `suppressEmptyNode`, `suppressUnpairedNode`, `stopNodes`, `oneListGroup`, `maxNestedTags`, and many more.
|
|
23
23
|
|
|
24
|
+
## Default Options
|
|
25
|
+
|
|
26
|
+
```js
|
|
27
|
+
{
|
|
28
|
+
attributeNamePrefix: '@_',
|
|
29
|
+
attributesGroupName: false,
|
|
30
|
+
textNodeName: '#text',
|
|
31
|
+
ignoreAttributes: true,
|
|
32
|
+
cdataPropName: false,
|
|
33
|
+
commentPropName: false,
|
|
34
|
+
format: false,
|
|
35
|
+
indentBy: ' ',
|
|
36
|
+
suppressEmptyNode: false,
|
|
37
|
+
suppressUnpairedNode: true,
|
|
38
|
+
suppressBooleanAttributes: true,
|
|
39
|
+
preserveOrder: false,
|
|
40
|
+
processEntities: true,
|
|
41
|
+
unpairedTags: [],
|
|
42
|
+
stopNodes: [],
|
|
43
|
+
oneListGroup: false,
|
|
44
|
+
maxNestedTags: 100,
|
|
45
|
+
jPath: true,
|
|
46
|
+
tagValueProcessor: (key, val) => val,
|
|
47
|
+
attributeValueProcessor: (attrName, val) => val,
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Options Reference
|
|
52
|
+
|
|
53
|
+
Check [Options reference](docs/Builder_v1.md) for more detail and examples.
|
|
54
|
+
|
|
55
|
+
- **arrayNodeName**: When building XML from an array, set `arrayNodeName` to wrap each element in a tag name.
|
|
56
|
+
- **attributeNamePrefix**: Prefix used to identify attribute properties in the JS object. Default: `'@_'`.
|
|
57
|
+
- **attributesGroupName**: Group name for attributes in the JS object. When set, all attributes are expected to be nested under this key. Not supported with `preserveOrder: true`.
|
|
58
|
+
- **attributeValueProcessor**: Customize how attribute values are serialized. Receives the attribute name and value.
|
|
59
|
+
- **cdataPropName**: Property name that identifies CDATA content. Values under this key are wrapped in `<![CDATA[...]]>`.
|
|
60
|
+
- **commentPropName**: Property name that identifies comment content. Values under this key are rendered as `<!-- ... -->`.
|
|
61
|
+
- **format**: By default, output is a single-line XML string. Set `format: true` for human-readable, indented output.
|
|
62
|
+
- **ignoreAttributes**: By default (`true`), attributes are skipped. Set to `false` to include them. Also supports selective ignoring via an array of strings, array of regular expressions, or a callback function.
|
|
63
|
+
- **indentBy**: String used for each level of indentation. Default: `' '` (two spaces). Only applies when `format: true`.
|
|
64
|
+
- **maxNestedTags**: Limits the maximum depth of nested tags. An error is thrown if this depth is exceeded. Default: `100`.
|
|
65
|
+
- **oneListGroup**: Groups all repeated child tags under a single parent tag.
|
|
66
|
+
- **preserveOrder**: When a JS object was produced by XMLParser with `preserveOrder: true`, pass the same option to XMLBuilder to reconstruct the original XML correctly.
|
|
67
|
+
- **processEntities**: When `true` (default), special characters in text and attribute values are replaced with XML entities (`&`, `<`, etc.). Set to `false` for a performance boost when you know your content has no entities. Note: quotes in attribute values are always escaped regardless of this setting.
|
|
68
|
+
- **stopNodes**: Tags listed here are treated as raw content containers — their text content is written as-is without entity encoding. Accepts an array of tag name strings or `Expression` instances from `path-expression-matcher`. The old `*.tagName` wildcard syntax is still accepted and automatically converted to the equivalent `..tagName` deep-wildcard syntax.
|
|
69
|
+
- **suppressBooleanAttributes**: When `true` (default), attributes with the value `true` are rendered without the value (e.g. `<tag attr>` instead of `<tag attr="true">`).
|
|
70
|
+
- **suppressEmptyNode**: When `true`, tags with no text value are rendered as self-closing (`<tag/>`).
|
|
71
|
+
- **suppressUnpairedNode**: When `true` (default), unpaired tags are rendered without a closing slash (`<br>`). When `false`, they are rendered as `<br/>`.
|
|
72
|
+
- **tagValueProcessor**: Customize how tag text values are serialized. Receives the tag name and value.
|
|
73
|
+
- **textNodeName**: Property name representing the text content of a tag in the JS object. Default: `'#text'`.
|
|
74
|
+
- **unpairedTags**: List of tag names that have no matching closing tag (e.g. `<br>` in HTML).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var t={d:(e,i)=>{for(var s in i)t.o(i,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:i[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{default:()=>b});class i{constructor(t,e={}){this.pattern=t,this.separator=e.separator||".",this.segments=this._parse(t),this._hasDeepWildcard=this.segments.some(t=>"deep-wildcard"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,s="";for(;i<t.length;)t[i]===this.separator?i+1<t.length&&t[i+1]===this.separator?(s.trim()&&(e.push(this._parseSegment(s.trim())),s=""),e.push({type:"deep-wildcard"}),i+=2):(s.trim()&&e.push(this._parseSegment(s.trim())),s="",i++):(s+=t[i],i++);return s.trim()&&e.push(this._parseSegment(s.trim())),e}_parseSegment(t){const e={type:"tag"};let i=null,s=t;const n=t.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(n&&(s=n[1]+n[3],n[2])){const t=n[2].slice(1,-1);t&&(i=t)}let o,r,a=s;if(s.includes("::")){const e=s.indexOf("::");if(o=s.substring(0,e).trim(),a=s.substring(e+2).trim(),!o)throw new Error(`Invalid namespace in pattern: ${t}`)}let h=null;if(a.includes(":")){const t=a.lastIndexOf(":"),e=a.substring(0,t).trim(),i=a.substring(t+1).trim();["first","last","odd","even"].includes(i)||/^nth\(\d+\)$/.test(i)?(r=e,h=i):r=a}else r=a;if(!r)throw new Error(`Invalid segment pattern: ${t}`);if(e.tag=r,o&&(e.namespace=o),i)if(i.includes("=")){const t=i.indexOf("=");e.attrName=i.substring(0,t).trim(),e.attrValue=i.substring(t+1).trim()}else e.attrName=i.trim();if(h){const t=h.match(/^nth\((\d+)\)$/);t?(e.position="nth",e.positionValue=parseInt(t[1],10)):e.position=h}return e}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}}class s{constructor(t={}){this.separator=t.separator||".",this.path=[],this.siblingStacks=[]}push(t,e=null,i=null){this.path.length>0&&(this.path[this.path.length-1].values=void 0);const s=this.path.length;this.siblingStacks[s]||(this.siblingStacks[s]=new Map);const n=this.siblingStacks[s],o=i?`${i}:${t}`:t,r=n.get(o)||0;let a=0;for(const t of n.values())a+=t;n.set(o,r+1);const h={tag:t,position:a,counter:r};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0===this.path.length)return;const e=this.path[this.path.length-1];return e.values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e<t.length;e++){const i=t[e],s=this.path[e],n=e===this.path.length-1;if(!this._matchSegment(i,s,n))return!1}return!0}_matchWithDeepWildcard(t){let e=this.path.length-1,i=t.length-1;for(;i>=0&&e>=0;){const s=t[i];if("deep-wildcard"===s.type){if(i--,i<0)return!0;const s=t[i];let n=!1;for(let t=e;t>=0;t--){const o=t===this.path.length-1;if(this._matchSegment(s,this.path[t],o)){e=t-1,i--,n=!0;break}}if(!n)return!1}else{const t=e===this.path.length-1;if(!this._matchSegment(s,this.path[e],t))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if("*"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&"*"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue){const i=e.values[t.attrName];if(String(i)!==String(t.attrValue))return!1}}if(void 0!==t.position){if(!i)return!1;const s=e.counter??0;if("first"===t.position&&0!==s)return!1;if("odd"===t.position&&s%2!=1)return!1;if("even"===t.position&&s%2!=0)return!1;if("nth"===t.position&&s!==t.positionValue)return!1}return!0}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}}function n(t){return String(t).replace(/--/g,"- -").replace(/--/g,"- -").replace(/-$/,"- ")}function o(t){return String(t).replace(/\]\]>/g,"]]]]><![CDATA[>")}function r(t){return String(t).replace(/"/g,""").replace(/'/g,"'")}function a(t,e){let n="";e.format&&e.indentBy.length>0&&(n="\n");const o=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;t<e.stopNodes.length;t++){const s=e.stopNodes[t];"string"==typeof s?o.push(new i(s)):s instanceof i&&o.push(s)}return h(t,e,n,new s,o)}function h(t,e,i,s,r){let a="",l=!1;if(e.maxNestedTags&&s.getDepth()>e.maxNestedTags)throw new Error("Maximum nested tags exceeded");if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=g(i,e),i}return""}for(let m=0;m<t.length;m++){const b=t[m],N=c(b);if(void 0===N)continue;const y=p(b[":@"],e);s.push(N,y);const x=f(s,r);if(N===e.textNodeName){let t=b[N];x||(t=e.tagValueProcessor(N,t),t=g(t,e)),l&&(a+=i),a+=t,l=!1,s.pop();continue}if(N===e.cdataPropName){l&&(a+=i),a+=`<![CDATA[${o(b[N][0][e.textNodeName])}]]>`,l=!1,s.pop();continue}if(N===e.commentPropName){a+=i+`\x3c!--${n(b[N][0][e.textNodeName])}--\x3e`,l=!0,s.pop();continue}if("?"===N[0]){const t=d(b[":@"],e,x),n="?xml"===N?"":i;let o=b[N][0][e.textNodeName];o=0!==o.length?" "+o:"",a+=n+`<${N}${o}${t}?>`,l=!0,s.pop();continue}let P=i;""!==P&&(P+=e.indentBy);const A=i+`<${N}${d(b[":@"],e,x)}`;let S;S=x?u(b[N],e):h(b[N],e,P,s,r),-1!==e.unpairedTags.indexOf(N)?e.suppressUnpairedNode?a+=A+">":a+=A+"/>":S&&0!==S.length||!e.suppressEmptyNode?S&&S.endsWith(">")?a+=A+`>${S}${i}</${N}>`:(a+=A+">",S&&""!==i&&(S.includes("/>")||S.includes("</"))?a+=i+e.indentBy+S+i:a+=S,a+=`</${N}>`):a+=A+"/>",l=!0,s.pop()}return a}function p(t,e){if(!t||e.ignoreAttributes)return null;const i={};let s=!1;for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n.startsWith(e.attributeNamePrefix)?n.substr(e.attributeNamePrefix.length):n]=r(t[n]),s=!0);return s?i:null}function u(t,e){if(!Array.isArray(t))return null!=t?t.toString():"";let i="";for(let s=0;s<t.length;s++){const n=t[s],o=c(n);if(o===e.textNodeName)i+=n[o];else if(o===e.cdataPropName)i+=n[o][0][e.textNodeName];else if(o===e.commentPropName)i+=n[o][0][e.textNodeName];else{if(o&&"?"===o[0])continue;if(o){const t=l(n[":@"],e),s=u(n[o],e);s&&0!==s.length?i+=`<${o}${t}>${s}</${o}>`:i+=`<${o}${t}/>`}}}return i}function l(t,e){let i="";if(t&&!e.ignoreAttributes)for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let n=t[s];!0===n&&e.suppressBooleanAttributes?i+=` ${s.substr(e.attributeNamePrefix.length)}`:i+=` ${s.substr(e.attributeNamePrefix.length)}="${r(n)}"`}return i}function c(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const s=e[i];if(Object.prototype.hasOwnProperty.call(t,s)&&":@"!==s)return s}}function d(t,e,i){let s="";if(t&&!e.ignoreAttributes)for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let o;i?o=t[n]:(o=e.attributeValueProcessor(n,t[n]),o=g(o,e)),!0===o&&e.suppressBooleanAttributes?s+=` ${n.substr(e.attributeNamePrefix.length)}`:s+=` ${n.substr(e.attributeNamePrefix.length)}="${r(o)}"`}return s}function f(t,e){if(!e||0===e.length)return!1;for(let i=0;i<e.length;i++)if(t.matches(e[i]))return!0;return!1}function g(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const s=e.entities[i];t=t.replace(s.regex,s.val)}return t}const m={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0};function b(t){if(this.options=Object.assign({},m,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>"string"==typeof t&&t.startsWith("*.")?".."+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t<this.options.stopNodes.length;t++){const e=this.options.stopNodes[t];"string"==typeof e?this.stopNodeExpressions.push(new i(e)):e instanceof i&&this.stopNodeExpressions.push(e)}var e;!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn="function"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if("string"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=x),this.processTextOrObjNode=N,this.options.format?(this.indentate=y,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function N(t,e,i,s){const n=this.extractAttributes(t);if(s.push(e,n),this.checkStopNode(s)){const n=this.buildRawContent(t),o=this.buildAttributesForStopNode(t);return s.pop(),this.buildObjectNode(n,e,o,i)}const o=this.j2x(t,i+1,s);return s.pop(),void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,i,s):this.buildObjectNode(o.val,e,o.attrStr,i)}function y(t){return this.options.indentBy.repeat(t)}function x(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}b.prototype.build=function(t){if(this.options.preserveOrder)return a(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new s;return this.j2x(t,0,e).val}},b.prototype.j2x=function(t,e,i){let s="",n="";if(this.options.maxNestedTags&&i.getDepth()>=this.options.maxNestedTags)throw new Error("Maximum nested tags exceeded");const o=this.options.jPath?i.toString():i,r=this.checkStopNode(i);for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(n+="");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName||a===this.options.commentPropName?n+="":"?"===a[0]?n+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)n+=this.buildTextValNode(t[a],a,"",e,i);else if("object"!=typeof t[a]){const h=this.isAttribute(a);if(h&&!this.ignoreAttributesFn(h,o))s+=this.buildAttrPairStr(h,""+t[a],r);else if(!h)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);n+=this.replaceEntitiesValue(e)}else{i.push(a);const s=this.checkStopNode(i);if(i.pop(),s){const i=""+t[a];n+=""===i?this.indentate(e)+"<"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+"<"+a+">"+i+"</"+a+this.tagEndChar}else n+=this.buildTextValNode(t[a],a,"",e,i)}}else if(Array.isArray(t[a])){const s=t[a].length;let o="",r="";for(let h=0;h<s;h++){const s=t[a][h];if(void 0===s);else if(null===s)"?"===a[0]?n+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if("object"==typeof s)if(this.options.oneListGroup){i.push(a);const t=this.j2x(s,e+1,i);i.pop(),o+=t.val,this.options.attributesGroupName&&s.hasOwnProperty(this.options.attributesGroupName)&&(r+=t.attrStr)}else o+=this.processTextOrObjNode(s,a,e,i);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(a,s);t=this.replaceEntitiesValue(t),o+=t}else{i.push(a);const t=this.checkStopNode(i);if(i.pop(),t){const t=""+s;o+=""===t?this.indentate(e)+"<"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+"<"+a+">"+t+"</"+a+this.tagEndChar}else o+=this.buildTextValNode(s,a,"",e,i)}}this.options.oneListGroup&&(o=this.buildObjectNode(o,a,r,e)),n+=o}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const e=Object.keys(t[a]),i=e.length;for(let n=0;n<i;n++)s+=this.buildAttrPairStr(e[n],""+t[a][e[n]],r)}else n+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:s,val:n}},b.prototype.buildAttrPairStr=function(t,e,i){return i||(e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e)),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+r(e)+'"'},b.prototype.extractAttributes=function(t){if(!t||"object"!=typeof t)return null;const e={};let i=!1;if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const s=t[this.options.attributesGroupName];for(let t in s)Object.prototype.hasOwnProperty.call(s,t)&&(e[t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t]=r(s[t]),i=!0)}else for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;const n=this.isAttribute(s);n&&(e[n]=r(t[s]),i=!0)}return i?e:null},b.prototype.buildRawContent=function(t){if("string"==typeof t)return t;if("object"!=typeof t||null===t)return String(t);if(void 0!==t[this.options.textNodeName])return t[this.options.textNodeName];let e="";for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;if(this.isAttribute(i))continue;if(this.options.attributesGroupName&&i===this.options.attributesGroupName)continue;const s=t[i];if(i===this.options.textNodeName)e+=s;else if(Array.isArray(s)){for(let t of s)if("string"==typeof t||"number"==typeof t)e+=`<${i}>${t}</${i}>`;else if("object"==typeof t&&null!==t){const s=this.buildRawContent(t),n=this.buildAttributesForStopNode(t);e+=""===s?`<${i}${n}/>`:`<${i}${n}>${s}</${i}>`}}else if("object"==typeof s&&null!==s){const t=this.buildRawContent(s),n=this.buildAttributesForStopNode(s);e+=""===t?`<${i}${n}/>`:`<${i}${n}>${t}</${i}>`}else e+=`<${i}>${s}</${i}>`}return e},b.prototype.buildAttributesForStopNode=function(t){if(!t||"object"!=typeof t)return"";let e="";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const s=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,n=i[t];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const s=this.isAttribute(i);if(s){const n=t[i];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}return e},b.prototype.buildObjectNode=function(t,e,i,s){if(""===t)return"?"===e[0]?this.indentate(s)+"<"+e+i+"?"+this.tagEndChar:this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar;{let n="</"+e+this.tagEndChar,o="";return"?"===e[0]&&(o="?",n=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===o.length?this.indentate(s)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(s)+"<"+e+i+o+this.tagEndChar+t+this.indentate(s)+n:this.indentate(s)+"<"+e+i+o+">"+t+n}},b.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},b.prototype.checkStopNode=function(t){if(!this.stopNodeExpressions||0===this.stopNodeExpressions.length)return!1;for(let e=0;e<this.stopNodeExpressions.length;e++)if(t.matches(this.stopNodeExpressions[e]))return!0;return!1},b.prototype.buildTextValNode=function(t,e,i,s,r){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName){const e=o(t);return this.indentate(s)+`<![CDATA[${e}]]>`+this.newLine}if(!1!==this.options.commentPropName&&e===this.options.commentPropName){const e=n(t);return this.indentate(s)+`\x3c!--${e}--\x3e`+this.newLine}if("?"===e[0])return this.indentate(s)+"<"+e+i+"?"+this.tagEndChar;{let n=this.options.tagValueProcessor(e,t);return n=this.replaceEntitiesValue(n),""===n?this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(s)+"<"+e+i+">"+n+"</"+e+this.tagEndChar}},b.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},module.exports=e})();
|
|
1
|
+
(()=>{"use strict";var t={d:(e,i)=>{for(var s in i)t.o(i,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:i[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{default:()=>w});class i{constructor(t,e={},i){this.pattern=t,this.separator=e.separator||".",this.segments=this._parse(t),this.data=i,this._hasDeepWildcard=this.segments.some(t=>"deep-wildcard"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,s="";for(;i<t.length;)t[i]===this.separator?i+1<t.length&&t[i+1]===this.separator?(s.trim()&&(e.push(this._parseSegment(s.trim())),s=""),e.push({type:"deep-wildcard"}),i+=2):(s.trim()&&e.push(this._parseSegment(s.trim())),s="",i++):(s+=t[i],i++);return s.trim()&&e.push(this._parseSegment(s.trim())),e}_parseSegment(t){const e={type:"tag"};let i=null,s=t;const n=t.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(n&&(s=n[1]+n[3],n[2])){const t=n[2].slice(1,-1);t&&(i=t)}let r,o,a=s;if(s.includes("::")){const e=s.indexOf("::");if(r=s.substring(0,e).trim(),a=s.substring(e+2).trim(),!r)throw new Error(`Invalid namespace in pattern: ${t}`)}let h=null;if(a.includes(":")){const t=a.lastIndexOf(":"),e=a.substring(0,t).trim(),i=a.substring(t+1).trim();["first","last","odd","even"].includes(i)||/^nth\(\d+\)$/.test(i)?(o=e,h=i):o=a}else o=a;if(!o)throw new Error(`Invalid segment pattern: ${t}`);if(e.tag=o,r&&(e.namespace=r),i)if(i.includes("=")){const t=i.indexOf("=");e.attrName=i.substring(0,t).trim(),e.attrValue=i.substring(t+1).trim()}else e.attrName=i.trim();if(h){const t=h.match(/^nth\((\d+)\)$/);t?(e.position="nth",e.positionValue=parseInt(t[1],10)):e.position=h}return e}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}}class s{constructor(t){this._matcher=t}get separator(){return this._matcher.separator}getCurrentTag(){const t=this._matcher.path;return t.length>0?t[t.length-1].tag:void 0}getCurrentNamespace(){const t=this._matcher.path;return t.length>0?t[t.length-1].namespace:void 0}getAttrValue(t){const e=this._matcher.path;if(0!==e.length)return e[e.length-1].values?.[t]}hasAttr(t){const e=this._matcher.path;if(0===e.length)return!1;const i=e[e.length-1];return void 0!==i.values&&t in i.values}getPosition(){const t=this._matcher.path;return 0===t.length?-1:t[t.length-1].position??0}getCounter(){const t=this._matcher.path;return 0===t.length?-1:t[t.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this._matcher.path.length}toString(t,e=!0){return this._matcher.toString(t,e)}toArray(){return this._matcher.path.map(t=>t.tag)}matches(t){return this._matcher.matches(t)}matchesAny(t){return t.matchesAny(this._matcher)}}class n{constructor(t={}){this.separator=t.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new s(this)}push(t,e=null,i=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);const s=this.path.length;this.siblingStacks[s]||(this.siblingStacks[s]=new Map);const n=this.siblingStacks[s],r=i?`${i}:${t}`:t,o=n.get(r)||0;let a=0;for(const t of n.values())a+=t;n.set(r,o+1);const h={tag:t,position:a,counter:o};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;this._pathStringCache=null;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0!==this.path.length)return this.path[this.path.length-1].values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;if(i===this.separator&&!0===e){if(null!==this._pathStringCache)return this._pathStringCache;const t=this.path.map(t=>t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i);return this._pathStringCache=t,t}return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e<t.length;e++)if(!this._matchSegment(t[e],this.path[e],e===this.path.length-1))return!1;return!0}_matchWithDeepWildcard(t){let e=this.path.length-1,i=t.length-1;for(;i>=0&&e>=0;){const s=t[i];if("deep-wildcard"===s.type){if(i--,i<0)return!0;const s=t[i];let n=!1;for(let t=e;t>=0;t--)if(this._matchSegment(s,this.path[t],t===this.path.length-1)){e=t-1,i--,n=!0;break}if(!n)return!1}else{if(!this._matchSegment(s,this.path[e],e===this.path.length-1))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if("*"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&"*"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue&&String(e.values[t.attrName])!==String(t.attrValue))return!1}if(void 0!==t.position){if(!i)return!1;const s=e.counter??0;if("first"===t.position&&0!==s)return!1;if("odd"===t.position&&s%2!=1)return!1;if("even"===t.position&&s%2!=0)return!1;if("nth"===t.position&&s!==t.positionValue)return!1}return!0}matchesAny(t){return t.matchesAny(this)}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this._pathStringCache=null,this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}readOnly(){return this._view}}function r(t){return String(t).replace(/--/g,"- -").replace(/--/g,"- -").replace(/-$/,"- ")}function o(t){return String(t).replace(/\]\]>/g,"]]]]><![CDATA[>")}function a(t){return String(t).replace(/"/g,""").replace(/'/g,"'")}const h=":A-Za-z_À-ÖØ-öø-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�",p=":A-Za-z_À-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",u=p+"\\-\\.\\d·̀-ͯ҇‿-⁀",l=(t,e,i="")=>{const s=`[${t.replace(":","")}][${e.replace(":","")}]*`;return{name:new RegExp(`^[${t}][${e}]*$`,i),ncName:new RegExp(`^${s}$`,i),qName:new RegExp(`^${s}(?::${s})?$`,i),nmToken:new RegExp(`^[${e}]+$`,i),nmTokens:new RegExp(`^[${e}]+(?:\\s+[${e}]+)*$`,i)}},c=l(h,h+"\\-\\.\\d·̀-ͯ‿-⁀"),g=l(p,u,"u"),d=(t,{xmlVersion:e="1.0"}={})=>((t="1.0")=>"1.1"===t?g:c)(e).qName.test(t);function f(t,e,i,s,n){return i.sanitizeName?d(t,{xmlVersion:n})?t:i.sanitizeName(t,{isAttribute:e,matcher:s.readOnly()}):t}function m(t,e){let s="";e.format&&(s="\n");const r=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;t<e.stopNodes.length;t++){const s=e.stopNodes[t];"string"==typeof s?r.push(new i(s)):s instanceof i&&r.push(s)}const o=function(t,e){if(!Array.isArray(t)||0===t.length)return"1.0";const i=t[0];if("?xml"===A(i)){const t=i[":@"];if(t){const i=e.attributeNamePrefix+"version";if(t[i])return t[i]}}return"1.0"}(t,e);return N(t,e,s,new n,r,o)}function N(t,e,i,s,n,a){let h="",p=!1;if(e.maxNestedTags&&s.getDepth()>e.maxNestedTags)throw new Error("Maximum nested tags exceeded");if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=S(i,e),i}return""}for(let u=0;u<t.length;u++){const l=t[u],c=A(l);if(void 0===c)continue;const g=c===e.textNodeName||c===e.cdataPropName||c===e.commentPropName||"?"===c[0]?c:f(c,!1,e,s,a),d=b(l[":@"],e);s.push(g,d);const m=P(s,n);if(g===e.textNodeName){let t=l[c];m||(t=e.tagValueProcessor(g,t),t=S(t,e)),p&&(h+=i),h+=t,p=!1,s.pop();continue}if(g===e.cdataPropName){p&&(h+=i),h+=`<![CDATA[${o(l[c][0][e.textNodeName])}]]>`,p=!1,s.pop();continue}if(g===e.commentPropName){h+=i+`\x3c!--${r(l[c][0][e.textNodeName])}--\x3e`,p=!0,s.pop();continue}if("?"===g[0]){h+=("?xml"===g?"":i)+`<${g}${$(l[":@"],e,m,s,a)}?>`,p=!0,s.pop();continue}let y=i;""!==y&&(y+=e.indentBy);const v=i+`<${g}${$(l[":@"],e,m,s,a)}`;let w;w=m?x(l[c],e):N(l[c],e,y,s,n,a),-1!==e.unpairedTags.indexOf(g)?e.suppressUnpairedNode?h+=v+">":h+=v+"/>":w&&0!==w.length||!e.suppressEmptyNode?w&&w.endsWith(">")?h+=v+`>${w}${i}</${g}>`:(h+=v+">",w&&""!==i&&(w.includes("/>")||w.includes("</"))?h+=i+e.indentBy+w+i:h+=w,h+=`</${g}>`):h+=v+"/>",p=!0,s.pop()}return h}function b(t,e){if(!t||e.ignoreAttributes)return null;const i={};let s=!1;for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n.startsWith(e.attributeNamePrefix)?n.substr(e.attributeNamePrefix.length):n]=a(t[n]),s=!0);return s?i:null}function x(t,e){if(!Array.isArray(t))return null!=t?t.toString():"";let i="";for(let s=0;s<t.length;s++){const n=t[s],r=A(n);if(r===e.textNodeName)i+=n[r];else if(r===e.cdataPropName)i+=n[r][0][e.textNodeName];else if(r===e.commentPropName)i+=n[r][0][e.textNodeName];else{if(r&&"?"===r[0])continue;if(r){const t=y(n[":@"],e),s=x(n[r],e);s&&0!==s.length?i+=`<${r}${t}>${s}</${r}>`:i+=`<${r}${t}/>`}}}return i}function y(t,e){let i="";if(t&&!e.ignoreAttributes)for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let n=t[s];!0===n&&e.suppressBooleanAttributes?i+=` ${s.substr(e.attributeNamePrefix.length)}`:i+=` ${s.substr(e.attributeNamePrefix.length)}="${a(n)}"`}return i}function A(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const s=e[i];if(Object.prototype.hasOwnProperty.call(t,s)&&":@"!==s)return s}}function $(t,e,i,s,n){let r="";if(t&&!e.ignoreAttributes)for(let o in t){if(!Object.prototype.hasOwnProperty.call(t,o))continue;const h=o.substr(e.attributeNamePrefix.length),p=i?h:f(h,!0,e,s,n);let u;i?u=t[o]:(u=e.attributeValueProcessor(o,t[o]),u=S(u,e)),!0===u&&e.suppressBooleanAttributes?r+=` ${p}`:r+=` ${p}="${a(u)}"`}return r}function P(t,e){if(!e||0===e.length)return!1;for(let i=0;i<e.length;i++)if(t.matches(e[i]))return!0;return!1}function S(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const s=e.entities[i];t=t.replace(s.regex,s.val)}return t}const v={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0,sanitizeName:!1};function w(t){if(this.options=Object.assign({},v,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>"string"==typeof t&&t.startsWith("*.")?".."+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t<this.options.stopNodes.length;t++){const e=this.options.stopNodes[t];"string"==typeof e?this.stopNodeExpressions.push(new i(e)):e instanceof i&&this.stopNodeExpressions.push(e)}var e;!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn="function"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if("string"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=C),this.processTextOrObjNode=O,this.options.format?(this.indentate=_,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function E(t,e,i,s,n){return i.sanitizeName?d(t,{xmlVersion:n})?t:i.sanitizeName(t,{isAttribute:e,matcher:s.readOnly()}):t}function O(t,e,i,s,n){const r=this.extractAttributes(t);if(s.push(e,r),this.checkStopNode(s)){const n=this.buildRawContent(t),r=this.buildAttributesForStopNode(t);return s.pop(),this.buildObjectNode(n,e,r,i)}const o=this.j2x(t,i+1,s,n);return s.pop(),"?"===e[0]?this.buildTextValNode("",e,o.attrStr,i,s):void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,i,s):this.buildObjectNode(o.val,e,o.attrStr,i)}function _(t){return this.options.indentBy.repeat(t)}function C(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}w.prototype.build=function(t){if(this.options.preserveOrder)return m(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new n,i=function(t,e){const i=t["?xml"];if(i&&"object"==typeof i){if(e.attributesGroupName&&i[e.attributesGroupName]){const t=i[e.attributesGroupName][e.attributeNamePrefix+"version"];if(t)return t}const t=i[e.attributeNamePrefix+"version"];if(t)return t}return"1.0"}(t,this.options);return this.j2x(t,0,e,i).val}},w.prototype.j2x=function(t,e,i,s){let n="",r="";if(this.options.maxNestedTags&&i.getDepth()>=this.options.maxNestedTags)throw new Error("Maximum nested tags exceeded");const o=this.options.jPath?i.toString():i,a=this.checkStopNode(i);for(let h in t){if(!Object.prototype.hasOwnProperty.call(t,h))continue;const p=h===this.options.textNodeName||h===this.options.cdataPropName||h===this.options.commentPropName||this.options.attributesGroupName&&h===this.options.attributesGroupName||this.isAttribute(h)||"?"===h[0]?h:E(h,!1,this.options,i,s);if(void 0===t[h])this.isAttribute(h)&&(r+="");else if(null===t[h])this.isAttribute(h)||p===this.options.cdataPropName||p===this.options.commentPropName?r+="":"?"===p[0]?r+=this.indentate(e)+"<"+p+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+p+"/"+this.tagEndChar;else if(t[h]instanceof Date)r+=this.buildTextValNode(t[h],p,"",e,i);else if("object"!=typeof t[h]){const u=this.isAttribute(h);if(u&&!this.ignoreAttributesFn(u,o)){const e=E(u,!0,this.options,i,s);n+=this.buildAttrPairStr(e,""+t[h],a)}else if(!u)if(h===this.options.textNodeName){let e=this.options.tagValueProcessor(h,""+t[h]);r+=this.replaceEntitiesValue(e)}else{i.push(p);const s=this.checkStopNode(i);if(i.pop(),s){const i=""+t[h];r+=""===i?this.indentate(e)+"<"+p+this.closeTag(p)+this.tagEndChar:this.indentate(e)+"<"+p+">"+i+"</"+p+this.tagEndChar}else r+=this.buildTextValNode(t[h],p,"",e,i)}}else if(Array.isArray(t[h])){const n=t[h].length;let o="",a="";for(let u=0;u<n;u++){const n=t[h][u];if(void 0===n);else if(null===n)"?"===p[0]?r+=this.indentate(e)+"<"+p+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+p+"/"+this.tagEndChar;else if("object"==typeof n)if(this.options.oneListGroup){i.push(p);const t=this.j2x(n,e+1,i,s);i.pop(),o+=t.val,this.options.attributesGroupName&&n.hasOwnProperty(this.options.attributesGroupName)&&(a+=t.attrStr)}else o+=this.processTextOrObjNode(n,p,e,i,s);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(p,n);t=this.replaceEntitiesValue(t),o+=t}else{i.push(p);const t=this.checkStopNode(i);if(i.pop(),t){const t=""+n;o+=""===t?this.indentate(e)+"<"+p+this.closeTag(p)+this.tagEndChar:this.indentate(e)+"<"+p+">"+t+"</"+p+this.tagEndChar}else o+=this.buildTextValNode(n,p,"",e,i)}}this.options.oneListGroup&&(o=this.buildObjectNode(o,p,a,e)),r+=o}else if(this.options.attributesGroupName&&h===this.options.attributesGroupName){const e=Object.keys(t[h]),r=e.length;for(let o=0;o<r;o++){const r=E(e[o],!0,this.options,i,s);n+=this.buildAttrPairStr(r,""+t[h][e[o]],a)}}else r+=this.processTextOrObjNode(t[h],p,e,i,s)}return{attrStr:n,val:r}},w.prototype.buildAttrPairStr=function(t,e,i){return i||(e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e)),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+a(e)+'"'},w.prototype.extractAttributes=function(t){if(!t||"object"!=typeof t)return null;const e={};let i=!1;if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const s=t[this.options.attributesGroupName];for(let t in s)Object.prototype.hasOwnProperty.call(s,t)&&(e[t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t]=a(s[t]),i=!0)}else for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;const n=this.isAttribute(s);n&&(e[n]=a(t[s]),i=!0)}return i?e:null},w.prototype.buildRawContent=function(t){if("string"==typeof t)return t;if("object"!=typeof t||null===t)return String(t);if(void 0!==t[this.options.textNodeName])return t[this.options.textNodeName];let e="";for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;if(this.isAttribute(i))continue;if(this.options.attributesGroupName&&i===this.options.attributesGroupName)continue;const s=t[i];if(i===this.options.textNodeName)e+=s;else if(Array.isArray(s)){for(let t of s)if("string"==typeof t||"number"==typeof t)e+=`<${i}>${t}</${i}>`;else if("object"==typeof t&&null!==t){const s=this.buildRawContent(t),n=this.buildAttributesForStopNode(t);e+=""===s?`<${i}${n}/>`:`<${i}${n}>${s}</${i}>`}}else if("object"==typeof s&&null!==s){const t=this.buildRawContent(s),n=this.buildAttributesForStopNode(s);e+=""===t?`<${i}${n}/>`:`<${i}${n}>${t}</${i}>`}else e+=`<${i}>${s}</${i}>`}return e},w.prototype.buildAttributesForStopNode=function(t){if(!t||"object"!=typeof t)return"";let e="";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const s=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,n=i[t];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const s=this.isAttribute(i);if(s){const n=t[i];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}return e},w.prototype.buildObjectNode=function(t,e,i,s){if(""===t)return"?"===e[0]?this.indentate(s)+"<"+e+i+"?"+this.tagEndChar:this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar;if("?"===e[0])return this.indentate(s)+"<"+e+i+"?"+this.tagEndChar;{let n="</"+e+this.tagEndChar,r="";return"?"===e[0]&&(r="?",n=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===r.length?this.indentate(s)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(s)+"<"+e+i+r+this.tagEndChar+t+this.indentate(s)+n:this.indentate(s)+"<"+e+i+r+">"+t+n}},w.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},w.prototype.checkStopNode=function(t){if(!this.stopNodeExpressions||0===this.stopNodeExpressions.length)return!1;for(let e=0;e<this.stopNodeExpressions.length;e++)if(t.matches(this.stopNodeExpressions[e]))return!0;return!1},w.prototype.buildTextValNode=function(t,e,i,s,n){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName){const e=o(t);return this.indentate(s)+`<![CDATA[${e}]]>`+this.newLine}if(!1!==this.options.commentPropName&&e===this.options.commentPropName){const e=r(t);return this.indentate(s)+`\x3c!--${e}--\x3e`+this.newLine}if("?"===e[0])return this.indentate(s)+"<"+e+i+"?"+this.tagEndChar;{let n=this.options.tagValueProcessor(e,t);return n=this.replaceEntitiesValue(n),""===n?this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(s)+"<"+e+i+">"+n+"</"+e+this.tagEndChar}},w.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},module.exports=e})();
|