@cdklabs/cdk-ssm-documents 0.0.65 → 0.0.66
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 +11 -11
- package/lib/construct/synth-utils.js +1 -1
- package/lib/document/automation-document.js +1 -1
- package/lib/document/command-document.js +1 -1
- package/lib/document/document-builder.js +2 -2
- package/lib/document/ssm-document.js +1 -1
- package/lib/domain/aws-service.js +1 -1
- package/lib/domain/choice.js +1 -1
- package/lib/domain/data-type.js +1 -1
- package/lib/domain/enum/install-action.js +2 -2
- package/lib/domain/enum/install-uninstall-repair.js +2 -2
- package/lib/domain/enum/installation-type.js +2 -2
- package/lib/domain/enum/package-name.js +2 -2
- package/lib/domain/input.js +1 -1
- package/lib/domain/operation.js +1 -1
- package/lib/domain/platform.js +1 -1
- package/lib/domain/precondition.js +1 -1
- package/lib/incident-response/incident-response.js +3 -3
- package/lib/interface/approve-hook.js +2 -2
- package/lib/interface/auth-method.js +3 -3
- package/lib/interface/aws-invoker.js +2 -2
- package/lib/interface/downloadable-content.js +8 -8
- package/lib/interface/environment.js +3 -3
- package/lib/interface/execute-automation-hook/api-execute-automation-hook.js +1 -1
- package/lib/interface/observer.js +1 -1
- package/lib/interface/on-failure.js +6 -6
- package/lib/interface/pause-hook.js +2 -2
- package/lib/interface/run-command-hook/api-run-command-hook.js +1 -1
- package/lib/interface/run-document-location.js +2 -2
- package/lib/interface/sleep-hook.js +2 -2
- package/lib/interface/step-ref.js +1 -1
- package/lib/interface/variables/boolean-variable.js +2 -2
- package/lib/interface/variables/map-list-variable.js +2 -2
- package/lib/interface/variables/number-variable.js +2 -2
- package/lib/interface/variables/secure-string-variable.js +4 -4
- package/lib/interface/variables/string-list-variable.js +2 -2
- package/lib/interface/variables/string-map-variable.js +2 -2
- package/lib/interface/variables/string-variable.js +4 -4
- package/lib/interface/variables/variable.js +2 -2
- package/lib/interface/webhook.js +1 -1
- package/lib/parent-steps/automation/approve-step.js +1 -1
- package/lib/parent-steps/automation/assert-aws-resource-step.js +1 -1
- package/lib/parent-steps/automation/aws-api-step.js +1 -1
- package/lib/parent-steps/automation/branch-step.js +1 -1
- package/lib/parent-steps/automation/change-instance-state-step.js +3 -3
- package/lib/parent-steps/automation/copy-image-step.js +1 -1
- package/lib/parent-steps/automation/create-image-step.js +1 -1
- package/lib/parent-steps/automation/create-stack-step.js +3 -3
- package/lib/parent-steps/automation/create-tags-step.js +3 -3
- package/lib/parent-steps/automation/delete-image-step.js +1 -1
- package/lib/parent-steps/automation/delete-stack-step.js +1 -1
- package/lib/parent-steps/automation/execute-automation-step.js +1 -1
- package/lib/parent-steps/automation/execute-script-step.js +5 -5
- package/lib/parent-steps/automation/execute-state-machine-step.js +1 -1
- package/lib/parent-steps/automation/invoke-lambda-function-step.js +1 -1
- package/lib/parent-steps/automation/invoke-webhook-step.js +1 -1
- package/lib/parent-steps/automation/pause-step.js +1 -1
- package/lib/parent-steps/automation/run-command-step.js +3 -3
- package/lib/parent-steps/automation/run-instance-step.js +1 -1
- package/lib/parent-steps/automation/sleep-step.js +1 -1
- package/lib/parent-steps/automation/update-variable.js +1 -1
- package/lib/parent-steps/automation/wait-for-resource-step.js +1 -1
- package/lib/parent-steps/automation-step.js +1 -1
- package/lib/parent-steps/command/applications-step.js +1 -1
- package/lib/parent-steps/command/configure-docker-step.js +1 -1
- package/lib/parent-steps/command/configure-package-step.js +1 -1
- package/lib/parent-steps/command/domain-join-step.js +1 -1
- package/lib/parent-steps/command/download-content-step.js +1 -1
- package/lib/parent-steps/command/ps-module-step.js +1 -1
- package/lib/parent-steps/command/run-docker-action-step.js +1 -1
- package/lib/parent-steps/command/run-document-step.js +1 -1
- package/lib/parent-steps/command/run-powershell-script-step.js +1 -1
- package/lib/parent-steps/command/run-shell-script-step.js +1 -1
- package/lib/parent-steps/command/software-inventory-step.js +1 -1
- package/lib/parent-steps/command/update-agent-step.js +1 -1
- package/lib/parent-steps/command/update-ssm-agent-step.js +1 -1
- package/lib/parent-steps/command-step.js +1 -1
- package/lib/parent-steps/step.js +1 -1
- package/lib/patterns/automation/composite-step.js +2 -2
- package/lib/patterns/automation/reboot-instance-and-wait.js +1 -1
- package/lib/patterns/automation/string-step.js +1 -1
- package/lib/patterns/document/string-document.js +1 -1
- package/lib/patterns/document/timed-document.js +1 -1
- package/lib/samples/hello-world.js +1 -1
- package/lib/simulation/automation/approve-simulation.js +1 -1
- package/lib/simulation/automation/assert-aws-resource-simulation.js +1 -1
- package/lib/simulation/automation/automation-simulation-base.js +1 -1
- package/lib/simulation/automation/aws-api-simulation.js +1 -1
- package/lib/simulation/automation/branch-simulation.js +1 -1
- package/lib/simulation/automation/change-instance-state-simulation.js +1 -1
- package/lib/simulation/automation/copy-image-simulation.js +1 -1
- package/lib/simulation/automation/create-image-simulation.js +1 -1
- package/lib/simulation/automation/create-stack-simulation.js +1 -1
- package/lib/simulation/automation/create-tags-simulation.js +1 -1
- package/lib/simulation/automation/delete-image-simulation.js +1 -1
- package/lib/simulation/automation/delete-stack-simulation.js +1 -1
- package/lib/simulation/automation/execute-script-simulation.js +1 -1
- package/lib/simulation/automation/execute-state-machine-simulation.js +1 -1
- package/lib/simulation/automation/invoke-lambda-function-simulation.js +1 -1
- package/lib/simulation/automation/invoke-webhook-simulation.js +1 -1
- package/lib/simulation/automation/pause-simulation.js +1 -1
- package/lib/simulation/automation/run-command-simulation.js +1 -1
- package/lib/simulation/automation/run-instance-simulation.js +1 -1
- package/lib/simulation/automation/sleep-simulation.js +1 -1
- package/lib/simulation/automation/update-variable-simulation.js +1 -1
- package/lib/simulation/automation/wait-for-resource-simulation.js +1 -1
- package/lib/simulation/automation-step-simulation.js +1 -1
- package/lib/simulation/command/command-simulation-base.js +1 -1
- package/lib/simulation/command/ps-module-simulation.js +1 -1
- package/lib/simulation/command/run-powershell-script-simulation.js +1 -1
- package/lib/simulation/command/run-shell-script-simulation.js +1 -1
- package/lib/simulation/command-step-simulation.js +1 -1
- package/lib/simulation/document/automation-simulation.js +1 -1
- package/lib/simulation/document/command-simulation.js +1 -1
- package/lib/simulation/simulation.js +1 -1
- package/node_modules/@aws-sdk/checksums/dist-cjs/flexible-checksums/getCrc32ChecksumAlgorithmFunction.browser.js +2 -6
- package/node_modules/@aws-sdk/checksums/dist-cjs/flexible-checksums/getCrc32ChecksumAlgorithmFunction.js +6 -11
- package/node_modules/@aws-sdk/checksums/dist-cjs/index.js +56 -56
- package/node_modules/@aws-sdk/checksums/package.json +6 -6
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/bdd.js +2 -5
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/index.js +449 -469
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/CloudFormationServiceException.js +4 -8
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/errors.js +59 -91
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.browser.js +22 -26
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.js +30 -34
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.native.js +4 -7
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.shared.js +20 -24
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/schemas/schemas_0.js +814 -533
- package/node_modules/@aws-sdk/client-cloudformation/package.json +8 -8
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/endpoint/bdd.js +2 -5
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/index.js +222 -242
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/models/CloudWatchServiceException.js +4 -8
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/models/errors.js +35 -55
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/runtimeConfig.browser.js +25 -29
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/runtimeConfig.js +33 -37
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/runtimeConfig.native.js +4 -7
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/runtimeConfig.shared.js +20 -24
- package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/schemas/schemas_0.js +419 -275
- package/node_modules/@aws-sdk/client-cloudwatch/package.json +9 -9
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/endpoint/bdd.js +2 -5
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/index.js +2875 -2885
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/models/EC2ServiceException.js +4 -8
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/runtimeConfig.browser.js +22 -26
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/runtimeConfig.js +30 -34
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/runtimeConfig.native.js +4 -7
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/runtimeConfig.shared.js +20 -24
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/schemas/schemas_0.js +6885 -4554
- package/node_modules/@aws-sdk/client-ec2/dist-types/commands/CancelCapacityReservationCommand.d.ts +16 -10
- package/node_modules/@aws-sdk/client-ec2/package.json +11 -11
- package/node_modules/@aws-sdk/client-iam/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/node_modules/@aws-sdk/client-iam/dist-cjs/endpoint/bdd.js +2 -5
- package/node_modules/@aws-sdk/client-iam/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/node_modules/@aws-sdk/client-iam/dist-cjs/index.js +634 -654
- package/node_modules/@aws-sdk/client-iam/dist-cjs/models/IAMServiceException.js +4 -8
- package/node_modules/@aws-sdk/client-iam/dist-cjs/models/errors.js +71 -109
- package/node_modules/@aws-sdk/client-iam/dist-cjs/runtimeConfig.browser.js +22 -26
- package/node_modules/@aws-sdk/client-iam/dist-cjs/runtimeConfig.js +30 -34
- package/node_modules/@aws-sdk/client-iam/dist-cjs/runtimeConfig.native.js +4 -7
- package/node_modules/@aws-sdk/client-iam/dist-cjs/runtimeConfig.shared.js +20 -24
- package/node_modules/@aws-sdk/client-iam/dist-cjs/schemas/schemas_0.js +1006 -665
- package/node_modules/@aws-sdk/client-iam/package.json +10 -10
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/endpoint/bdd.js +2 -5
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/index.js +368 -386
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/models/LambdaServiceException.js +4 -8
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/models/errors.js +229 -145
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/runtimeConfig.browser.js +24 -28
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/runtimeConfig.js +32 -36
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/runtimeConfig.native.js +4 -7
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/runtimeConfig.shared.js +20 -24
- package/node_modules/@aws-sdk/client-lambda/dist-cjs/schemas/schemas_0.js +959 -581
- package/node_modules/@aws-sdk/client-lambda/dist-es/models/enums.js +2 -0
- package/node_modules/@aws-sdk/client-lambda/dist-es/models/errors.js +134 -0
- package/node_modules/@aws-sdk/client-lambda/dist-es/schemas/schemas_0.js +100 -31
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/AddPermissionCommand.d.ts +5 -2
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/CreateAliasCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/CreateEventSourceMappingCommand.d.ts +28 -28
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/CreateFunctionCommand.d.ts +14 -14
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/DeleteAliasCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/DeleteEventSourceMappingCommand.d.ts +16 -16
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/DeleteFunctionUrlConfigCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/DeleteLayerVersionCommand.d.ts +6 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/GetEventSourceMappingCommand.d.ts +16 -16
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/GetFunctionCodeSigningConfigCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/GetFunctionCommand.d.ts +8 -8
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/GetFunctionConfigurationCommand.d.ts +8 -8
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/GetLayerVersionByArnCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/GetLayerVersionCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/GetRuntimeManagementConfigCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/InvokeAsyncCommand.d.ts +72 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/InvokeCommand.d.ts +21 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/InvokeWithResponseStreamCommand.d.ts +6 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/ListEventSourceMappingsCommand.d.ts +16 -16
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/ListFunctionsCommand.d.ts +8 -8
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/ListLayerVersionsCommand.d.ts +6 -6
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/ListLayersCommand.d.ts +6 -6
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/ListVersionsByFunctionCommand.d.ts +8 -8
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/PublishLayerVersionCommand.d.ts +8 -8
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/PublishVersionCommand.d.ts +8 -8
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/PutProvisionedConcurrencyConfigCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/RemovePermissionCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/SendDurableExecutionCallbackFailureCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/SendDurableExecutionCallbackHeartbeatCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/SendDurableExecutionCallbackSuccessCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/UpdateEventSourceMappingCommand.d.ts +32 -32
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/UpdateFunctionCodeCommand.d.ts +12 -12
- package/node_modules/@aws-sdk/client-lambda/dist-types/commands/UpdateFunctionConfigurationCommand.d.ts +9 -9
- package/node_modules/@aws-sdk/client-lambda/dist-types/models/enums.d.ts +2 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/models/errors.d.ts +173 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/models/models_0.d.ts +158 -158
- package/node_modules/@aws-sdk/client-lambda/dist-types/schemas/schemas_0.d.ts +9 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/models/enums.d.ts +2 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/models/errors.d.ts +88 -0
- package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/models/models_0.d.ts +33 -33
- package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/schemas/schemas_0.d.ts +9 -0
- package/node_modules/@aws-sdk/client-lambda/package.json +12 -12
- package/node_modules/@aws-sdk/client-s3/README.md +35 -0
- package/node_modules/@aws-sdk/client-s3/dist-cjs/auth/httpAuthSchemeProvider.js +15 -19
- package/node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/bdd.js +2 -5
- package/node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +646 -535
- package/node_modules/@aws-sdk/client-s3/dist-cjs/models/S3ServiceException.js +4 -8
- package/node_modules/@aws-sdk/client-s3/dist-cjs/models/errors.js +106 -52
- package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.browser.js +29 -33
- package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.js +43 -47
- package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.native.js +4 -7
- package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.shared.js +25 -29
- package/node_modules/@aws-sdk/client-s3/dist-cjs/schemas/schemas_0.js +1256 -740
- package/node_modules/@aws-sdk/client-s3/dist-es/S3.js +12 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectAnnotationCommand.js +23 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAnnotationCommand.js +28 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectAnnotationsCommand.js +23 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectAnnotationCommand.js +29 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/UpdateBucketMetadataAnnotationTableConfigurationCommand.js +27 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/index.js +5 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/models/enums.js +12 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/models/errors.js +76 -4
- package/node_modules/@aws-sdk/client-s3/dist-es/pagination/ListObjectAnnotationsPaginator.js +4 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/pagination/index.js +1 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/schemas/schemas_0.js +260 -100
- package/node_modules/@aws-sdk/client-s3/dist-types/S3.d.ts +42 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/S3Client.d.ts +7 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CopyObjectCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataConfigurationCommand.d.ts +27 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectAnnotationCommand.d.ts +119 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataConfigurationCommand.d.ts +11 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketNotificationConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAnnotationCommand.d.ts +141 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectAnnotationsCommand.d.ts +138 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketNotificationConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectAnnotationCommand.d.ts +166 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/RenameObjectCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/RestoreObjectCommand.d.ts +1 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/UpdateBucketMetadataAnnotationTableConfigurationCommand.d.ts +110 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/index.d.ts +5 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/models/enums.d.ts +29 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/models/errors.d.ts +76 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/models/models_0.d.ts +925 -549
- package/node_modules/@aws-sdk/client-s3/dist-types/models/models_1.d.ts +380 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListObjectAnnotationsPaginator.d.ts +7 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/pagination/index.d.ts +1 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/schemas/schemas_0.d.ts +24 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3.d.ts +98 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3Client.d.ts +30 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/DeleteObjectAnnotationCommand.d.ts +53 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetObjectAnnotationCommand.d.ts +61 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/ListObjectAnnotationsCommand.d.ts +53 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutObjectAnnotationCommand.d.ts +61 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/RenameObjectCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/RestoreObjectCommand.d.ts +1 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/UpdateBucketMetadataAnnotationTableConfigurationCommand.d.ts +49 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/index.d.ts +5 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/enums.d.ts +18 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/errors.d.ts +41 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_0.d.ts +138 -64
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_1.d.ts +75 -5
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/pagination/ListObjectAnnotationsPaginator.d.ts +11 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/pagination/index.d.ts +1 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/schemas/schemas_0.d.ts +24 -0
- package/node_modules/@aws-sdk/client-s3/package.json +20 -20
- package/node_modules/@aws-sdk/client-sns/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/node_modules/@aws-sdk/client-sns/dist-cjs/endpoint/bdd.js +2 -5
- package/node_modules/@aws-sdk/client-sns/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/node_modules/@aws-sdk/client-sns/dist-cjs/index.js +174 -194
- package/node_modules/@aws-sdk/client-sns/dist-cjs/models/SNSServiceException.js +4 -8
- package/node_modules/@aws-sdk/client-sns/dist-cjs/models/errors.js +69 -106
- package/node_modules/@aws-sdk/client-sns/dist-cjs/runtimeConfig.browser.js +22 -26
- package/node_modules/@aws-sdk/client-sns/dist-cjs/runtimeConfig.js +30 -34
- package/node_modules/@aws-sdk/client-sns/dist-cjs/runtimeConfig.native.js +4 -7
- package/node_modules/@aws-sdk/client-sns/dist-cjs/runtimeConfig.shared.js +20 -24
- package/node_modules/@aws-sdk/client-sns/dist-cjs/schemas/schemas_0.js +331 -218
- package/node_modules/@aws-sdk/client-sns/package.json +9 -9
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/endpoint/bdd.js +2 -5
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/index.js +118 -138
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/models/SQSServiceException.js +4 -8
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/models/errors.js +57 -88
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/runtimeConfig.browser.js +24 -28
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/runtimeConfig.js +31 -35
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/runtimeConfig.native.js +4 -7
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/runtimeConfig.shared.js +20 -24
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/schemas/schemas_0.js +222 -150
- package/node_modules/@aws-sdk/client-sqs/package.json +15 -15
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/endpoint/bdd.js +2 -5
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/index.js +543 -563
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/models/SSMServiceException.js +4 -8
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/models/errors.js +279 -423
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/runtimeConfig.browser.js +22 -26
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/runtimeConfig.js +30 -34
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/runtimeConfig.native.js +4 -7
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/runtimeConfig.shared.js +20 -24
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/schemas/schemas_0.js +1693 -1109
- package/node_modules/@aws-sdk/client-ssm/package.json +9 -9
- package/node_modules/@aws-sdk/core/dist-cjs/index.js +45 -50
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/account-id-endpoint/index.js +2 -4
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.browser.js +297 -23
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +327 -52
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.native.js +297 -23
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +19 -21
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +107 -109
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/util/index.js +2 -4
- package/node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/partitions.js +276 -1
- package/node_modules/@aws-sdk/core/package.json +8 -8
- package/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +4 -6
- package/node_modules/@aws-sdk/credential-provider-env/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js +3 -7
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.browser.js +12 -16
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +16 -21
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js +14 -18
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js +1 -5
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.browser.js +2 -5
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js +2 -7
- package/node_modules/@aws-sdk/credential-provider-http/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +47 -41
- package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProcessCredentials.js +8 -4
- package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveWebIdentityCredentials.js +14 -10
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +13 -13
- package/node_modules/@aws-sdk/credential-provider-login/dist-cjs/index.js +31 -33
- package/node_modules/@aws-sdk/credential-provider-login/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +16 -18
- package/node_modules/@aws-sdk/credential-provider-node/package.json +11 -11
- package/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +11 -13
- package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +22 -24
- package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-BGYXHf8s.js +3 -0
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js +10 -14
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js +2 -6
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +3 -27
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -7
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +18 -23
- package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +5 -5
- package/node_modules/@aws-sdk/middleware-sdk-ec2/dist-cjs/index.js +11 -13
- package/node_modules/@aws-sdk/middleware-sdk-ec2/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +1 -518
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/submodules/s3/index.browser.js +31 -33
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/submodules/s3/index.js +37 -39
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/submodules/s3-control/index.js +14 -16
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/index.js +1 -1
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/index.d.ts +2 -2
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/index.d.ts +2 -2
- package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +9 -11
- package/node_modules/@aws-sdk/middleware-sdk-sqs/dist-cjs/index.js +9 -11
- package/node_modules/@aws-sdk/middleware-sdk-sqs/package.json +5 -5
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/index.js +0 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +82 -84
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +158 -119
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +80 -82
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +80 -82
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +99 -101
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenCommand.js +4 -1
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/bdd.js +70 -35
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/endpointResolver.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/enums.js +3 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/EndpointParameters.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/enums.d.ts +12 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/endpoint/EndpointParameters.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/enums.d.ts +3 -0
- package/node_modules/@aws-sdk/nested-clients/package.json +9 -8
- package/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +4 -6
- package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +5 -5
- package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +26 -28
- package/node_modules/@aws-sdk/token-providers/package.json +7 -7
- package/node_modules/@aws-sdk/types/dist-cjs/index.js +7 -8
- package/node_modules/@aws-sdk/types/package.json +4 -4
- package/node_modules/@aws-sdk/util-locate-window/dist-cjs/index.js +0 -2
- package/node_modules/@aws-sdk/util-locate-window/package.json +4 -4
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +2 -4
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-external/nodable_entities.js +4 -7
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.browser.js +2 -5
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +7 -10
- package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/package.json +5 -4
- package/node_modules/@aws-sdk/xml-builder/package.json +4 -4
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +518 -371
- package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +1 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +10 -2
- package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-decode.js +326 -269
- package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-encode.js +192 -103
- package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor.js +4 -2
- package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/get-value-from-text-node.js +1 -1
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +10 -2
- package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor-decode.d.ts +4 -0
- package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor-encode.d.ts +8 -4
- package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpProtocol.d.ts +6 -0
- package/node_modules/@smithy/core/package.json +1 -1
- package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
- package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
- package/node_modules/@smithy/middleware-compression/package.json +2 -2
- package/node_modules/@smithy/node-http-handler/package.json +2 -2
- package/node_modules/@smithy/signature-v4/package.json +2 -2
- package/node_modules/anynum/package.json +2 -2
- package/node_modules/path-expression-matcher/README.md +82 -7
- package/node_modules/path-expression-matcher/lib/pem.cjs +1 -1
- package/node_modules/path-expression-matcher/lib/pem.d.cts +83 -2
- package/node_modules/path-expression-matcher/lib/pem.min.js +1 -1
- package/node_modules/path-expression-matcher/lib/pem.min.js.map +1 -1
- package/node_modules/path-expression-matcher/package.json +3 -2
- package/node_modules/path-expression-matcher/src/ExpressionSet.js +18 -2
- package/node_modules/path-expression-matcher/src/Matcher.js +93 -3
- package/node_modules/path-expression-matcher/src/index.d.ts +67 -1
- package/package.json +10 -10
- package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-BKDNrsal.js +0 -8
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.browser.js +0 -34
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/index.browser.js +0 -1
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/index.browser.d.ts +0 -2
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/index.browser.d.ts +0 -39
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# path-expression-matcher
|
|
2
2
|
|
|
3
|
+
[](https://npm-compare.com/path-expression-matcher)
|
|
4
|
+
[](https://www.npmjs.com/package/path-expression-matcher)
|
|
5
|
+
[](https://github.com/NaturalIntelligence/path-expression-matcher)
|
|
6
|
+
|
|
3
7
|
Efficient path tracking and pattern matching for XML, JSON, YAML or any other parsers.
|
|
4
8
|
|
|
5
9
|
## 🎯 Purpose
|
|
@@ -71,9 +75,10 @@ console.log(matcher.toString()); // "soap:Envelope.soap:Body.ns:UserId"
|
|
|
71
75
|
```javascript
|
|
72
76
|
"user[id]" // user with "id" attribute
|
|
73
77
|
"user[type=admin]" // user with type="admin" (current node only)
|
|
74
|
-
"root[lang]..user" // user under root that has "lang" attribute
|
|
75
78
|
```
|
|
76
79
|
|
|
80
|
+
> **Note:** Attribute conditions in expressions only ever look at the **current** (last) node in the path — `..user` matches `user` at any depth, but bracket conditions like `[lang]` still apply to `user` itself, never to an ancestor tag. To check an *ancestor's* attribute (e.g. "is there a `lang` attribute somewhere above this node?"), use `push(..., { keep: [...] })` with `getAnyParentAttr()` / `hasAnyParentAttr()` — see [Ancestor Attributes (`keep`)](#ancestor-attributes-keep) below.
|
|
81
|
+
|
|
77
82
|
### Position Selectors
|
|
78
83
|
|
|
79
84
|
```javascript
|
|
@@ -174,7 +179,7 @@ new Matcher(options)
|
|
|
174
179
|
|
|
175
180
|
#### Path Tracking Methods
|
|
176
181
|
|
|
177
|
-
##### `push(tagName, attrValues, namespace)`
|
|
182
|
+
##### `push(tagName, attrValues, namespace, options)`
|
|
178
183
|
|
|
179
184
|
Add a tag to the current path. Position and counter are automatically calculated.
|
|
180
185
|
|
|
@@ -182,6 +187,8 @@ Add a tag to the current path. Position and counter are automatically calculated
|
|
|
182
187
|
- `tagName` (string): Tag name
|
|
183
188
|
- `attrValues` (object, optional): Attribute key-value pairs (current node only)
|
|
184
189
|
- `namespace` (string, optional): Namespace for the tag
|
|
190
|
+
- `options` (object, optional):
|
|
191
|
+
- `keep` (string[], optional): Names of attributes (from `attrValues`) to retain for ancestor lookup via `getAnyParentAttr()` / `hasAnyParentAttr()`, even after this node is no longer the current node. See [Ancestor Attributes (`keep`)](#ancestor-attributes-keep).
|
|
185
192
|
|
|
186
193
|
**Example:**
|
|
187
194
|
```javascript
|
|
@@ -189,6 +196,7 @@ matcher.push("user", { id: "123", type: "admin" });
|
|
|
189
196
|
matcher.push("item"); // No attributes
|
|
190
197
|
matcher.push("Envelope", null, "soap"); // With namespace
|
|
191
198
|
matcher.push("Body", { version: "1.1" }, "soap"); // With both
|
|
199
|
+
matcher.push("Body", { version: "1.1" }, "soap", { keep: ["version"] }); // Retain "version" for descendants
|
|
192
200
|
```
|
|
193
201
|
|
|
194
202
|
**Position vs Counter:**
|
|
@@ -293,6 +301,29 @@ if (matcher.hasAttr("id")) {
|
|
|
293
301
|
}
|
|
294
302
|
```
|
|
295
303
|
|
|
304
|
+
##### `getAnyParentAttr(attrName)`
|
|
305
|
+
|
|
306
|
+
Get the value of an attribute that was explicitly **kept** (via `push(..., { keep: [...] })`) by the current node or any ancestor. Unlike `getAttrValue()`, this works regardless of how far the path has descended since the attribute was pushed — but only for names that were marked with `keep` at push time. If the same name was kept at multiple depths, the **nearest** (most recent) one wins.
|
|
307
|
+
|
|
308
|
+
```javascript
|
|
309
|
+
matcher.push("Body", { version: "1.1" }, "soap", { keep: ["version"] });
|
|
310
|
+
matcher.push("GetUserRequest");
|
|
311
|
+
matcher.push("UserId");
|
|
312
|
+
|
|
313
|
+
matcher.getAttrValue("version"); // undefined — Body is no longer current
|
|
314
|
+
matcher.getAnyParentAttr("version"); // "1.1" — still reachable, because it was kept
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
##### `hasAnyParentAttr(attrName)`
|
|
318
|
+
|
|
319
|
+
Check whether the current node or any ancestor kept the given attribute via `push(..., { keep: [...] })`.
|
|
320
|
+
|
|
321
|
+
```javascript
|
|
322
|
+
if (matcher.hasAnyParentAttr("version")) {
|
|
323
|
+
// Some node on the path (current or ancestor) kept "version"
|
|
324
|
+
}
|
|
325
|
+
```
|
|
326
|
+
|
|
296
327
|
##### `getPosition()`
|
|
297
328
|
|
|
298
329
|
Get sibling position of current node (child index in parent).
|
|
@@ -528,6 +559,32 @@ const expr2 = new Expression("user[type=admin]");
|
|
|
528
559
|
console.log(matcher.matches(expr2)); // true
|
|
529
560
|
```
|
|
530
561
|
|
|
562
|
+
> Need to check an attribute from an *ancestor* node, not just the current one? See [Example 5b](#example-5b-ancestor-attributes-keep) and [Ancestor Attributes (`keep`)](#ancestor-attributes-keep).
|
|
563
|
+
|
|
564
|
+
### Example 5b: Ancestor Attributes (`keep`)
|
|
565
|
+
|
|
566
|
+
`getAttrValue()` / `hasAttr()` only ever see the **current** node — by design, ancestor attribute values are discarded as soon as you push past them, to keep memory usage low. If you know in advance that a specific attribute (e.g. a SOAP envelope's `version`, or `xml:space`) will matter much deeper in the tree, mark it to be **kept**:
|
|
567
|
+
|
|
568
|
+
```javascript
|
|
569
|
+
const matcher = new Matcher();
|
|
570
|
+
matcher.push("Envelope", null, "soap");
|
|
571
|
+
matcher.push("Body", { version: "1.1" }, "soap", { keep: ["version"] });
|
|
572
|
+
matcher.push("GetUserRequest", { id: "42" });
|
|
573
|
+
matcher.push("UserId");
|
|
574
|
+
|
|
575
|
+
// Ordinary attribute access only sees the current node:
|
|
576
|
+
console.log(matcher.getAttrValue("version")); // undefined
|
|
577
|
+
|
|
578
|
+
// getAnyParentAttr/hasAnyParentAttr still see it, however deep we've gone:
|
|
579
|
+
console.log(matcher.hasAnyParentAttr("version")); // true
|
|
580
|
+
console.log(matcher.getAnyParentAttr("version")); // "1.1"
|
|
581
|
+
|
|
582
|
+
matcher.pop(); matcher.pop(); matcher.pop(); // back to Envelope
|
|
583
|
+
console.log(matcher.hasAnyParentAttr("version")); // false — Body (and its kept attrs) was popped
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
**When to use this:** only for the small number of attributes you specifically know you'll need many levels deeper — not as a general substitute for `getAttrValue()`. Each name passed to `keep` adds a tiny, constant amount of bookkeeping at `push()` time; lookups scan only the kept-attributes list (typically 0-3 entries), never the full path, so cost does not grow with document depth.
|
|
587
|
+
|
|
531
588
|
### Example 6: Position vs Counter
|
|
532
589
|
|
|
533
590
|
```javascript
|
|
@@ -634,24 +691,42 @@ console.log(matcher.matches(expr)); // true - matches namespace "ns", tag "first
|
|
|
634
691
|
|
|
635
692
|
This design minimizes memory usage:
|
|
636
693
|
- No attribute names stored (derived from values object when needed)
|
|
637
|
-
- Attribute values only for current node, not ancestors
|
|
638
|
-
- Attribute checking for ancestors is not supported (acceptable trade-off)
|
|
694
|
+
- Attribute values only for current node, not ancestors, **by default**
|
|
639
695
|
- For 1M nodes with 3 attributes each, saves ~50MB vs storing attribute names
|
|
640
696
|
|
|
697
|
+
### Ancestor Attributes (`keep`)
|
|
698
|
+
|
|
699
|
+
The trade-off above is the right default, but XML/SOAP documents occasionally have a handful of attributes — `xml:space`, a SOAP envelope's `version`, a feature-flag at the document root — that genuinely need to be visible many levels deeper. Rather than retaining *all* attribute values for *every* node (defeating the memory savings above), `push()` accepts an explicit opt-in:
|
|
700
|
+
|
|
701
|
+
```javascript
|
|
702
|
+
matcher.push("Body", { version: "1.1" }, "soap", { keep: ["version"] });
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
Only the named attribute(s) are copied into a small side-stack (`_keptAttrs`), independent of the normal per-node `values`. Reachable later via `getAnyParentAttr(name)` / `hasAnyParentAttr(name)` regardless of depth — see [Example 5b](#example-5b-ancestor-attributes-keep).
|
|
706
|
+
|
|
707
|
+
**Why this stays cheap:**
|
|
708
|
+
- Pushing without `options` costs two extra property reads — no allocation, no measurable overhead (benchmarked: within run-to-run noise vs. plain `push()`).
|
|
709
|
+
- Lookups scan only the kept-attributes stack, not the full path — cost is proportional to *how many distinct attributes are currently kept* (typically 0-3 in real usage), not to document depth.
|
|
710
|
+
- `pop()` truncates kept entries belonging to the popped subtree in the same backward-scan style, so the stack never grows unbounded.
|
|
711
|
+
- The core `matches()` / `_matchSegment` pattern-matching path is completely unaffected — `keep` is a separate, opt-in mechanism with no new expression syntax.
|
|
712
|
+
|
|
713
|
+
This is intentionally a narrow escape hatch, not a general "remember everything" toggle — overusing `keep` (e.g. keeping every attribute on every node) reintroduces the same memory cost this library avoids by default.
|
|
714
|
+
|
|
641
715
|
### Matching Strategy
|
|
642
716
|
|
|
643
717
|
Matching is performed **bottom-to-top** (from current node toward root):
|
|
644
718
|
1. Start at current node
|
|
645
719
|
2. Match segments from pattern end to start
|
|
646
|
-
3. Attribute
|
|
720
|
+
3. Attribute *expression* conditions (`[attr=value]`) only apply to the current node — ancestors have no attribute data in the path itself. For genuinely ancestor-scoped checks outside of expression matching, use `keep` (above).
|
|
647
721
|
4. Position selectors use **counter** (occurrence count), not position (child index)
|
|
648
722
|
|
|
649
723
|
### Performance
|
|
650
724
|
|
|
651
725
|
- **Expression parsing:** One-time cost when Expression is created
|
|
652
726
|
- **Expression analysis:** Cached (hasDeepWildcard, hasAttributeCondition, hasPositionSelector)
|
|
653
|
-
- **Path tracking:** O(1) for push/pop operations
|
|
727
|
+
- **Path tracking:** O(1) for push/pop operations (O(k) additionally when `options.keep` is used, where k = number of kept attribute names — typically 0-3)
|
|
654
728
|
- **Pattern matching:** O(n*m) where n = path depth, m = pattern segments
|
|
729
|
+
- **Ancestor attribute lookup:** O(k) where k = number of currently-kept attributes, independent of path depth
|
|
655
730
|
- **Memory per ancestor node:** ~40-60 bytes (tag, position, counter only)
|
|
656
731
|
- **Memory per current node:** ~80-120 bytes (adds attribute values)
|
|
657
732
|
|
|
@@ -869,4 +944,4 @@ MIT
|
|
|
869
944
|
|
|
870
945
|
## 🤝 Contributing
|
|
871
946
|
|
|
872
|
-
Issues and PRs welcome! This package is designed to be used by XML/JSON parsers like fast-xml-parser. But can be used with any formar parser.
|
|
947
|
+
Issues and PRs welcome! This package is designed to be used by XML/JSON parsers like fast-xml-parser. But can be used with any formar parser.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var t={d:(e,s)=>{for(var
|
|
1
|
+
(()=>{"use strict";var t={d:(e,s)=>{for(var n in s)t.o(s,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:s[n]})},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,{Expression:()=>s,ExpressionSet:()=>h,Matcher:()=>r,default:()=>i});class s{constructor(t,e={},s){this.pattern=t,this.separator=e.separator||".",this.segments=this._parse(t),this.data=s,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 s=0,n="";for(;s<t.length;)t[s]===this.separator?s+1<t.length&&t[s+1]===this.separator?(n.trim()&&(e.push(this._parseSegment(n.trim())),n=""),e.push({type:"deep-wildcard"}),s+=2):(n.trim()&&e.push(this._parseSegment(n.trim())),n="",s++):(n+=t[s],s++);return n.trim()&&e.push(this._parseSegment(n.trim())),e}_parseSegment(t){const e={type:"tag"};let s=null,n=t;const r=t.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(r&&(n=r[1]+r[3],r[2])){const t=r[2].slice(1,-1);t&&(s=t)}let h,i,a=n;if(n.includes("::")){const e=n.indexOf("::");if(h=n.substring(0,e).trim(),a=n.substring(e+2).trim(),!h)throw new Error(`Invalid namespace in pattern: ${t}`)}let p=null;if(a.includes(":")){const t=a.lastIndexOf(":"),e=a.substring(0,t).trim(),s=a.substring(t+1).trim();["first","last","odd","even"].includes(s)||/^nth\(\d+\)$/.test(s)?(i=e,p=s):i=a}else i=a;if(!i)throw new Error(`Invalid segment pattern: ${t}`);if(e.tag=i,h&&(e.namespace=h),s)if(s.includes("=")){const t=s.indexOf("=");e.attrName=s.substring(0,t).trim(),e.attrValue=s.substring(t+1).trim()}else e.attrName=s.trim();if(p){const t=p.match(/^nth\((\d+)\)$/);t?(e.position="nth",e.positionValue=parseInt(t[1],10)):e.position=p}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 n{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 s=e[e.length-1];return void 0!==s.values&&t in s.values}getAnyParentAttr(t){return this._matcher.getAnyParentAttr(t)}hasAnyParentAttr(t){return this._matcher.hasAnyParentAttr(t)}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 r{constructor(t={}){this.separator=t.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new n(this),this._keptAttrs=[]}push(t,e=null,s=null,n=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);const r=this.path.length;this.siblingStacks[r]||(this.siblingStacks[r]=new Map);const h=this.siblingStacks[r],i=s?`${s}:${t}`:t,a=h.get(i)||0;let p=0;for(const t of h.values())p+=t;h.set(i,a+1);const l={tag:t,position:p,counter:a};null!=s&&(l.namespace=s),null!=e&&(l.values=e),this.path.push(l);const o=this.path.length,g=null!==n?n.keep:null;if(null!=g&&g.length>0&&e)for(let t=0;t<g.length;t++){const s=g[t];void 0!==e[s]&&this._keptAttrs.push({depth:o,name:s,value:e[s]})}}pop(){if(0===this.path.length)return;this._pathStringCache=null;const t=this.path.pop();this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1);const e=this.path.length+1;for(;this._keptAttrs.length>0&&this._keptAttrs[this._keptAttrs.length-1].depth>=e;)this._keptAttrs.pop();return 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}getAnyParentAttr(t){const e=this._keptAttrs;for(let s=e.length-1;s>=0;s--)if(e[s].name===t)return e[s].value}hasAnyParentAttr(t){const e=this._keptAttrs;for(let s=e.length-1;s>=0;s--)if(e[s].name===t)return!0;return!1}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 s=t||this.separator;if(s===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(s);return this._pathStringCache=t,t}return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(s)}toArray(){return this.path.map(t=>t.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[],this._keptAttrs=[]}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,s=t.length-1;for(;s>=0&&e>=0;){const n=t[s];if("deep-wildcard"===n.type){if(s--,s<0)return!0;const n=t[s];let r=!1;for(let t=e;t>=0;t--)if(this._matchSegment(n,this.path[t],t===this.path.length-1)){e=t-1,s--,r=!0;break}if(!r)return!1}else{if(!this._matchSegment(n,this.path[e],e===this.path.length-1))return!1;e--,s--}}return s<0}_matchSegment(t,e,s){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(!s)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(!s)return!1;const n=e.counter??0;if("first"===t.position&&0!==n)return!1;if("odd"===t.position&&n%2!=1)return!1;if("even"===t.position&&n%2!=0)return!1;if("nth"===t.position&&n!==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)),keptAttrs:this._keptAttrs.map(t=>({...t}))}}restore(t){this._pathStringCache=null,this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t)),this._keptAttrs=(t.keptAttrs||[]).map(t=>({...t}))}readOnly(){return this._view}}class h{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._deepByTerminalTag=new Map,this._patterns=new Set,this._sealed=!1}add(t){if(this._sealed)throw new TypeError("ExpressionSet is sealed. Create a new ExpressionSet to add more expressions.");if(this._patterns.has(t.pattern))return this;if(this._patterns.add(t.pattern),t.hasDeepWildcard()){const e=t.segments[t.segments.length-1];if(e&&"deep-wildcard"!==e.type&&"*"!==e.tag){const s=e.tag;this._deepByTerminalTag.has(s)||this._deepByTerminalTag.set(s,[]),this._deepByTerminalTag.get(s).push(t)}else this._deepWildcards.push(t);return this}const e=t.length,s=t.segments[t.segments.length-1],n=s?.tag;if(n&&"*"!==n){const s=`${e}:${n}`;this._byDepthAndTag.has(s)||this._byDepthAndTag.set(s,[]),this._byDepthAndTag.get(s).push(t)}else this._wildcardByDepth.has(e)||this._wildcardByDepth.set(e,[]),this._wildcardByDepth.get(e).push(t);return this}addAll(t){for(const e of t)this.add(e);return this}has(t){return this._patterns.has(t.pattern)}get size(){return this._patterns.size}seal(){return this._sealed=!0,this}get isSealed(){return this._sealed}matchesAny(t){return null!==this.findMatch(t)}findMatch(t){const e=t.getDepth(),s=t.getCurrentTag(),n=`${e}:${s}`,r=this._byDepthAndTag.get(n);if(r)for(let e=0;e<r.length;e++)if(t.matches(r[e]))return r[e];const h=this._wildcardByDepth.get(e);if(h)for(let e=0;e<h.length;e++)if(t.matches(h[e]))return h[e];const i=this._deepByTerminalTag.get(s);if(i)for(let e=0;e<i.length;e++)if(t.matches(i[e]))return i[e];for(let e=0;e<this._deepWildcards.length;e++)if(t.matches(this._deepWildcards[e]))return this._deepWildcards[e];return null}}const i={Expression:s,Matcher:r,ExpressionSet:h};module.exports=e})();
|
|
@@ -186,6 +186,42 @@ declare interface MatcherSnapshot {
|
|
|
186
186
|
* Copy of sibling tracking maps
|
|
187
187
|
*/
|
|
188
188
|
siblingStacks: Map<string, number>[];
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Copy of the kept-attrs stack (see {@link PushOptions.keep})
|
|
192
|
+
*/
|
|
193
|
+
keptAttrs: KeptAttrEntry[];
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* A single entry in the matcher's kept-attrs stack — an attribute value
|
|
198
|
+
* explicitly retained at push time via `{ keep: [...] }` so it remains
|
|
199
|
+
* reachable from descendants after the owning node is no longer current.
|
|
200
|
+
*/
|
|
201
|
+
declare interface KeptAttrEntry {
|
|
202
|
+
/** Path depth (1-based) of the node that declared this kept attribute */
|
|
203
|
+
depth: number;
|
|
204
|
+
/** Attribute name */
|
|
205
|
+
name: string;
|
|
206
|
+
/** Attribute value at push time */
|
|
207
|
+
value: any;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Options for {@link Matcher.push}
|
|
212
|
+
*/
|
|
213
|
+
declare interface PushOptions {
|
|
214
|
+
/**
|
|
215
|
+
* Names of attributes (from `attrValues`) to retain for ancestor lookup
|
|
216
|
+
* (`getAnyParentAttr` / `hasAnyParentAttr`) even after this node is no
|
|
217
|
+
* longer the current node.
|
|
218
|
+
*
|
|
219
|
+
* Use sparingly — this is for attributes you know you'll need much deeper
|
|
220
|
+
* in the tree (e.g. `xml:space`, a SOAP envelope's `version`), not a
|
|
221
|
+
* general substitute for `getAttrValue()`. Cost is proportional to
|
|
222
|
+
* `keep.length`, independent of path depth.
|
|
223
|
+
*/
|
|
224
|
+
keep?: string[];
|
|
189
225
|
}
|
|
190
226
|
|
|
191
227
|
/**
|
|
@@ -253,6 +289,24 @@ declare interface ReadOnlyMatcher {
|
|
|
253
289
|
*/
|
|
254
290
|
hasAttr(attrName: string): boolean;
|
|
255
291
|
|
|
292
|
+
/**
|
|
293
|
+
* Get the value of a "kept" attribute from the nearest ancestor (or
|
|
294
|
+
* current node) that declared it via `push(tag, attrs, ns, { keep: [...] })`.
|
|
295
|
+
* Unlike `getAttrValue()`, this works regardless of how deep the path has
|
|
296
|
+
* gone since the attribute was pushed — but only for attribute names that
|
|
297
|
+
* were explicitly marked with `keep` at push time.
|
|
298
|
+
* @param attrName - Attribute name
|
|
299
|
+
* @returns The kept value, or undefined if no ancestor kept this attribute
|
|
300
|
+
*/
|
|
301
|
+
getAnyParentAttr(attrName: string): any;
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Check whether any ancestor (or the current node) kept the given
|
|
305
|
+
* attribute via `push(tag, attrs, ns, { keep: [...] })`.
|
|
306
|
+
* @param attrName - Attribute name
|
|
307
|
+
*/
|
|
308
|
+
hasAnyParentAttr(attrName: string): boolean;
|
|
309
|
+
|
|
256
310
|
/**
|
|
257
311
|
* Get current node's sibling position (child index in parent)
|
|
258
312
|
* @returns Position index or -1 if path is empty
|
|
@@ -386,15 +440,23 @@ declare class Matcher {
|
|
|
386
440
|
* @param tagName - Name of the tag
|
|
387
441
|
* @param attrValues - Attribute key-value pairs for current node (optional)
|
|
388
442
|
* @param namespace - Namespace for the tag (optional)
|
|
443
|
+
* @param options - Push options, e.g. `{ keep: ['version'] }` to retain
|
|
444
|
+
* specific attributes for ancestor lookup after this node stops being current
|
|
389
445
|
*
|
|
390
446
|
* @example
|
|
391
447
|
* ```javascript
|
|
392
448
|
* matcher.push("user", { id: "123", type: "admin" });
|
|
393
449
|
* matcher.push("user", { id: "456" }, "ns");
|
|
394
450
|
* matcher.push("container", null);
|
|
451
|
+
* matcher.push("Body", { version: "1.1" }, "soap", { keep: ["version"] });
|
|
395
452
|
* ```
|
|
396
453
|
*/
|
|
397
|
-
push(
|
|
454
|
+
push(
|
|
455
|
+
tagName: string,
|
|
456
|
+
attrValues?: Record<string, any> | null,
|
|
457
|
+
namespace?: string | null,
|
|
458
|
+
options?: PushOptions | null
|
|
459
|
+
): void;
|
|
398
460
|
|
|
399
461
|
/**
|
|
400
462
|
* Pop the last tag from the path
|
|
@@ -434,6 +496,23 @@ declare class Matcher {
|
|
|
434
496
|
*/
|
|
435
497
|
hasAttr(attrName: string): boolean;
|
|
436
498
|
|
|
499
|
+
/**
|
|
500
|
+
* Get the value of a "kept" attribute from the nearest ancestor (or current
|
|
501
|
+
* node) that declared it via `push(tag, attrs, ns, { keep: [...] })`.
|
|
502
|
+
* Cost is proportional to the number of currently-kept attributes, not
|
|
503
|
+
* path depth.
|
|
504
|
+
* @param attrName - Attribute name
|
|
505
|
+
* @returns The kept value, or undefined if no ancestor kept this attribute
|
|
506
|
+
*/
|
|
507
|
+
getAnyParentAttr(attrName: string): any;
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Check whether any ancestor (or the current node) kept the given
|
|
511
|
+
* attribute via `push(tag, attrs, ns, { keep: [...] })`.
|
|
512
|
+
* @param attrName - Attribute name
|
|
513
|
+
*/
|
|
514
|
+
hasAnyParentAttr(attrName: string): boolean;
|
|
515
|
+
|
|
437
516
|
/**
|
|
438
517
|
* Get current node's sibling position (child index in parent)
|
|
439
518
|
* @returns Position index or -1 if path is empty
|
|
@@ -628,7 +707,9 @@ declare namespace pathExpressionMatcher {
|
|
|
628
707
|
Segment,
|
|
629
708
|
PathNode,
|
|
630
709
|
MatcherSnapshot,
|
|
710
|
+
KeptAttrEntry,
|
|
711
|
+
PushOptions,
|
|
631
712
|
};
|
|
632
713
|
}
|
|
633
714
|
|
|
634
|
-
export = pathExpressionMatcher;
|
|
715
|
+
export = pathExpressionMatcher;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.pem=e():t.pem=e()}(this,()=>(()=>{"use strict";var t={d:(e,s)=>{for(var
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.pem=e():t.pem=e()}(this,()=>(()=>{"use strict";var t={d:(e,s)=>{for(var n in s)t.o(s,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:s[n]})},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,{Expression:()=>s,ExpressionSet:()=>i,Matcher:()=>r,default:()=>h});class s{constructor(t,e={},s){this.pattern=t,this.separator=e.separator||".",this.segments=this._parse(t),this.data=s,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 s=0,n="";for(;s<t.length;)t[s]===this.separator?s+1<t.length&&t[s+1]===this.separator?(n.trim()&&(e.push(this._parseSegment(n.trim())),n=""),e.push({type:"deep-wildcard"}),s+=2):(n.trim()&&e.push(this._parseSegment(n.trim())),n="",s++):(n+=t[s],s++);return n.trim()&&e.push(this._parseSegment(n.trim())),e}_parseSegment(t){const e={type:"tag"};let s=null,n=t;const r=t.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(r&&(n=r[1]+r[3],r[2])){const t=r[2].slice(1,-1);t&&(s=t)}let i,h,a=n;if(n.includes("::")){const e=n.indexOf("::");if(i=n.substring(0,e).trim(),a=n.substring(e+2).trim(),!i)throw new Error(`Invalid namespace in pattern: ${t}`)}let p=null;if(a.includes(":")){const t=a.lastIndexOf(":"),e=a.substring(0,t).trim(),s=a.substring(t+1).trim();["first","last","odd","even"].includes(s)||/^nth\(\d+\)$/.test(s)?(h=e,p=s):h=a}else h=a;if(!h)throw new Error(`Invalid segment pattern: ${t}`);if(e.tag=h,i&&(e.namespace=i),s)if(s.includes("=")){const t=s.indexOf("=");e.attrName=s.substring(0,t).trim(),e.attrValue=s.substring(t+1).trim()}else e.attrName=s.trim();if(p){const t=p.match(/^nth\((\d+)\)$/);t?(e.position="nth",e.positionValue=parseInt(t[1],10)):e.position=p}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 n{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 s=e[e.length-1];return void 0!==s.values&&t in s.values}getAnyParentAttr(t){return this._matcher.getAnyParentAttr(t)}hasAnyParentAttr(t){return this._matcher.hasAnyParentAttr(t)}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 r{constructor(t={}){this.separator=t.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new n(this),this._keptAttrs=[]}push(t,e=null,s=null,n=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);const r=this.path.length;this.siblingStacks[r]||(this.siblingStacks[r]=new Map);const i=this.siblingStacks[r],h=s?`${s}:${t}`:t,a=i.get(h)||0;let p=0;for(const t of i.values())p+=t;i.set(h,a+1);const l={tag:t,position:p,counter:a};null!=s&&(l.namespace=s),null!=e&&(l.values=e),this.path.push(l);const o=this.path.length,g=null!==n?n.keep:null;if(null!=g&&g.length>0&&e)for(let t=0;t<g.length;t++){const s=g[t];void 0!==e[s]&&this._keptAttrs.push({depth:o,name:s,value:e[s]})}}pop(){if(0===this.path.length)return;this._pathStringCache=null;const t=this.path.pop();this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1);const e=this.path.length+1;for(;this._keptAttrs.length>0&&this._keptAttrs[this._keptAttrs.length-1].depth>=e;)this._keptAttrs.pop();return 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}getAnyParentAttr(t){const e=this._keptAttrs;for(let s=e.length-1;s>=0;s--)if(e[s].name===t)return e[s].value}hasAnyParentAttr(t){const e=this._keptAttrs;for(let s=e.length-1;s>=0;s--)if(e[s].name===t)return!0;return!1}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 s=t||this.separator;if(s===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(s);return this._pathStringCache=t,t}return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(s)}toArray(){return this.path.map(t=>t.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[],this._keptAttrs=[]}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,s=t.length-1;for(;s>=0&&e>=0;){const n=t[s];if("deep-wildcard"===n.type){if(s--,s<0)return!0;const n=t[s];let r=!1;for(let t=e;t>=0;t--)if(this._matchSegment(n,this.path[t],t===this.path.length-1)){e=t-1,s--,r=!0;break}if(!r)return!1}else{if(!this._matchSegment(n,this.path[e],e===this.path.length-1))return!1;e--,s--}}return s<0}_matchSegment(t,e,s){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(!s)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(!s)return!1;const n=e.counter??0;if("first"===t.position&&0!==n)return!1;if("odd"===t.position&&n%2!=1)return!1;if("even"===t.position&&n%2!=0)return!1;if("nth"===t.position&&n!==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)),keptAttrs:this._keptAttrs.map(t=>({...t}))}}restore(t){this._pathStringCache=null,this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t)),this._keptAttrs=(t.keptAttrs||[]).map(t=>({...t}))}readOnly(){return this._view}}class i{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._deepByTerminalTag=new Map,this._patterns=new Set,this._sealed=!1}add(t){if(this._sealed)throw new TypeError("ExpressionSet is sealed. Create a new ExpressionSet to add more expressions.");if(this._patterns.has(t.pattern))return this;if(this._patterns.add(t.pattern),t.hasDeepWildcard()){const e=t.segments[t.segments.length-1];if(e&&"deep-wildcard"!==e.type&&"*"!==e.tag){const s=e.tag;this._deepByTerminalTag.has(s)||this._deepByTerminalTag.set(s,[]),this._deepByTerminalTag.get(s).push(t)}else this._deepWildcards.push(t);return this}const e=t.length,s=t.segments[t.segments.length-1],n=s?.tag;if(n&&"*"!==n){const s=`${e}:${n}`;this._byDepthAndTag.has(s)||this._byDepthAndTag.set(s,[]),this._byDepthAndTag.get(s).push(t)}else this._wildcardByDepth.has(e)||this._wildcardByDepth.set(e,[]),this._wildcardByDepth.get(e).push(t);return this}addAll(t){for(const e of t)this.add(e);return this}has(t){return this._patterns.has(t.pattern)}get size(){return this._patterns.size}seal(){return this._sealed=!0,this}get isSealed(){return this._sealed}matchesAny(t){return null!==this.findMatch(t)}findMatch(t){const e=t.getDepth(),s=t.getCurrentTag(),n=`${e}:${s}`,r=this._byDepthAndTag.get(n);if(r)for(let e=0;e<r.length;e++)if(t.matches(r[e]))return r[e];const i=this._wildcardByDepth.get(e);if(i)for(let e=0;e<i.length;e++)if(t.matches(i[e]))return i[e];const h=this._deepByTerminalTag.get(s);if(h)for(let e=0;e<h.length;e++)if(t.matches(h[e]))return h[e];for(let e=0;e<this._deepWildcards.length;e++)if(t.matches(this._deepWildcards[e]))return this._deepWildcards[e];return null}}const h={Expression:s,Matcher:r,ExpressionSet:i};return e})());
|
|
2
2
|
//# sourceMappingURL=pem.min.js.map
|