@aerokit/sdk 12.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +277 -0
- package/README.md +170 -0
- package/dist/cjs/bpm/deployer.js +57 -0
- package/dist/cjs/bpm/index.js +35 -0
- package/dist/cjs/bpm/process.js +636 -0
- package/dist/cjs/bpm/tasks.js +973 -0
- package/dist/cjs/bpm/values.js +82 -0
- package/dist/cjs/cache/cache.js +64 -0
- package/dist/cjs/cache/index.js +26 -0
- package/dist/cjs/cms/cmis.js +689 -0
- package/dist/cjs/cms/index.js +26 -0
- package/dist/cjs/component/decorators.js +126 -0
- package/dist/cjs/component/index.js +36 -0
- package/dist/cjs/core/configurations.js +110 -0
- package/dist/cjs/core/context.js +47 -0
- package/dist/cjs/core/env.js +45 -0
- package/dist/cjs/core/globals.js +54 -0
- package/dist/cjs/core/index.js +35 -0
- package/dist/cjs/db/dao.js +795 -0
- package/dist/cjs/db/database.js +904 -0
- package/dist/cjs/db/decorators.js +167 -0
- package/dist/cjs/db/index.js +72 -0
- package/dist/cjs/db/insert.js +51 -0
- package/dist/cjs/db/orm.js +245 -0
- package/dist/cjs/db/ormstatements.js +243 -0
- package/dist/cjs/db/procedure.js +112 -0
- package/dist/cjs/db/query.js +57 -0
- package/dist/cjs/db/repository.js +148 -0
- package/dist/cjs/db/sequence.js +59 -0
- package/dist/cjs/db/sql.js +516 -0
- package/dist/cjs/db/store.js +172 -0
- package/dist/cjs/db/translator.js +100 -0
- package/dist/cjs/db/update.js +43 -0
- package/dist/cjs/etcd/client.js +174 -0
- package/dist/cjs/etcd/index.js +26 -0
- package/dist/cjs/extensions/decorators.js +40 -0
- package/dist/cjs/extensions/extensions.js +108 -0
- package/dist/cjs/extensions/index.js +39 -0
- package/dist/cjs/git/client.js +277 -0
- package/dist/cjs/git/index.js +26 -0
- package/dist/cjs/http/client-async.js +224 -0
- package/dist/cjs/http/client.js +145 -0
- package/dist/cjs/http/decorators.js +76 -0
- package/dist/cjs/http/errors/ForbiddenError.js +41 -0
- package/dist/cjs/http/errors/ValidationError.js +41 -0
- package/dist/cjs/http/errors.js +26 -0
- package/dist/cjs/http/index.js +59 -0
- package/dist/cjs/http/request.js +281 -0
- package/dist/cjs/http/response.js +452 -0
- package/dist/cjs/http/rs/resource-common.js +32 -0
- package/dist/cjs/http/rs/resource-http-controller.js +306 -0
- package/dist/cjs/http/rs/resource-mappings.js +130 -0
- package/dist/cjs/http/rs/resource-method.js +218 -0
- package/dist/cjs/http/rs/resource.js +232 -0
- package/dist/cjs/http/rs.js +31 -0
- package/dist/cjs/http/session.js +124 -0
- package/dist/cjs/http/upload.js +144 -0
- package/dist/cjs/http/utils.js +106 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/indexing/index.js +29 -0
- package/dist/cjs/indexing/searcher.js +70 -0
- package/dist/cjs/indexing/writer.js +45 -0
- package/dist/cjs/integrations/index.js +26 -0
- package/dist/cjs/integrations/integrations.js +55 -0
- package/dist/cjs/io/bytes.js +101 -0
- package/dist/cjs/io/files.js +344 -0
- package/dist/cjs/io/image.js +43 -0
- package/dist/cjs/io/index.js +38 -0
- package/dist/cjs/io/streams.js +243 -0
- package/dist/cjs/io/zip.js +251 -0
- package/dist/cjs/job/decorators.js +40 -0
- package/dist/cjs/job/index.js +39 -0
- package/dist/cjs/job/scheduler.js +347 -0
- package/dist/cjs/junit/index.js +18 -0
- package/dist/cjs/junit/junit.js +67 -0
- package/dist/cjs/kafka/consumer.js +70 -0
- package/dist/cjs/kafka/index.js +29 -0
- package/dist/cjs/kafka/producer.js +70 -0
- package/dist/cjs/log/index.js +26 -0
- package/dist/cjs/log/logging.js +174 -0
- package/dist/cjs/mail/client.js +153 -0
- package/dist/cjs/mail/index.js +26 -0
- package/dist/cjs/messaging/consumer.js +83 -0
- package/dist/cjs/messaging/decorators.js +40 -0
- package/dist/cjs/messaging/index.js +42 -0
- package/dist/cjs/messaging/producer.js +81 -0
- package/dist/cjs/mongodb/client.js +627 -0
- package/dist/cjs/mongodb/dao.js +390 -0
- package/dist/cjs/mongodb/index.js +36 -0
- package/dist/cjs/net/decorators.js +40 -0
- package/dist/cjs/net/index.js +42 -0
- package/dist/cjs/net/soap.js +228 -0
- package/dist/cjs/net/websockets.js +151 -0
- package/dist/cjs/net/wrappers/onClose.js +2 -0
- package/dist/cjs/net/wrappers/onError.js +2 -0
- package/dist/cjs/net/wrappers/onMessage.js +2 -0
- package/dist/cjs/net/wrappers/onOpen.js +2 -0
- package/dist/cjs/pdf/index.js +26 -0
- package/dist/cjs/pdf/pdf.js +160 -0
- package/dist/cjs/platform/command.js +47 -0
- package/dist/cjs/platform/engines.js +70 -0
- package/dist/cjs/platform/index.js +47 -0
- package/dist/cjs/platform/lifecycle.js +49 -0
- package/dist/cjs/platform/os.js +51 -0
- package/dist/cjs/platform/problems.js +127 -0
- package/dist/cjs/platform/registry.js +319 -0
- package/dist/cjs/platform/repository.js +498 -0
- package/dist/cjs/platform/workspace.js +574 -0
- package/dist/cjs/qldb/index.js +26 -0
- package/dist/cjs/qldb/qldb.js +24 -0
- package/dist/cjs/rabbitmq/consumer.js +50 -0
- package/dist/cjs/rabbitmq/index.js +29 -0
- package/dist/cjs/rabbitmq/producer.js +38 -0
- package/dist/cjs/redis/client.js +190 -0
- package/dist/cjs/redis/index.js +26 -0
- package/dist/cjs/security/decorators.js +48 -0
- package/dist/cjs/security/index.js +40 -0
- package/dist/cjs/security/oauth.js +75 -0
- package/dist/cjs/security/user.js +88 -0
- package/dist/cjs/template/engines.js +139 -0
- package/dist/cjs/template/index.js +26 -0
- package/dist/cjs/utils/alphanumeric.js +107 -0
- package/dist/cjs/utils/base64.js +104 -0
- package/dist/cjs/utils/converter.js +78 -0
- package/dist/cjs/utils/digest.js +167 -0
- package/dist/cjs/utils/escape.js +160 -0
- package/dist/cjs/utils/hex.js +104 -0
- package/dist/cjs/utils/index.js +68 -0
- package/dist/cjs/utils/jsonpath.js +489 -0
- package/dist/cjs/utils/qrcode.js +41 -0
- package/dist/cjs/utils/url.js +82 -0
- package/dist/cjs/utils/utf8.js +61 -0
- package/dist/cjs/utils/uuid.js +48 -0
- package/dist/cjs/utils/xml.js +57 -0
- package/dist/dts/bpm/deployer.d.ts +29 -0
- package/dist/dts/bpm/index.d.ts +8 -0
- package/dist/dts/bpm/process.d.ts +433 -0
- package/dist/dts/bpm/tasks.d.ts +2022 -0
- package/dist/dts/bpm/values.d.ts +38 -0
- package/dist/dts/cache/cache.d.ts +30 -0
- package/dist/dts/cache/index.d.ts +2 -0
- package/dist/dts/cms/cmis.d.ts +413 -0
- package/dist/dts/cms/index.d.ts +2 -0
- package/dist/dts/component/decorators.d.ts +52 -0
- package/dist/dts/component/index.d.ts +2 -0
- package/dist/dts/core/configurations.d.ts +65 -0
- package/dist/dts/core/context.d.ts +19 -0
- package/dist/dts/core/env.d.ts +23 -0
- package/dist/dts/core/globals.d.ts +30 -0
- package/dist/dts/core/index.d.ts +8 -0
- package/dist/dts/db/dao.d.ts +8 -0
- package/dist/dts/db/database.d.ts +507 -0
- package/dist/dts/db/decorators.d.ts +89 -0
- package/dist/dts/db/index.d.ts +25 -0
- package/dist/dts/db/insert.d.ts +32 -0
- package/dist/dts/db/orm.d.ts +44 -0
- package/dist/dts/db/ormstatements.d.ts +4 -0
- package/dist/dts/db/procedure.d.ts +25 -0
- package/dist/dts/db/query.d.ts +48 -0
- package/dist/dts/db/repository.d.ts +64 -0
- package/dist/dts/db/sequence.d.ts +34 -0
- package/dist/dts/db/sql.d.ts +267 -0
- package/dist/dts/db/store.d.ts +138 -0
- package/dist/dts/db/translator.d.ts +26 -0
- package/dist/dts/db/update.d.ts +21 -0
- package/dist/dts/etcd/client.d.ts +92 -0
- package/dist/dts/etcd/index.d.ts +2 -0
- package/dist/dts/extensions/decorators.d.ts +11 -0
- package/dist/dts/extensions/extensions.d.ts +41 -0
- package/dist/dts/extensions/index.d.ts +4 -0
- package/dist/dts/git/client.d.ts +478 -0
- package/dist/dts/git/index.d.ts +2 -0
- package/dist/dts/http/client-async.d.ts +158 -0
- package/dist/dts/http/client.d.ts +180 -0
- package/dist/dts/http/decorators.d.ts +11 -0
- package/dist/dts/http/errors/ForbiddenError.d.ts +20 -0
- package/dist/dts/http/errors/ValidationError.d.ts +20 -0
- package/dist/dts/http/errors.d.ts +2 -0
- package/dist/dts/http/index.d.ts +16 -0
- package/dist/dts/http/request.d.ts +158 -0
- package/dist/dts/http/response.d.ts +281 -0
- package/dist/dts/http/rs/resource-common.d.ts +11 -0
- package/dist/dts/http/rs/resource-http-controller.d.ts +43 -0
- package/dist/dts/http/rs/resource-mappings.d.ts +70 -0
- package/dist/dts/http/rs/resource-method.d.ts +206 -0
- package/dist/dts/http/rs/resource.d.ts +126 -0
- package/dist/dts/http/rs.d.ts +4 -0
- package/dist/dts/http/session.d.ts +81 -0
- package/dist/dts/http/upload.d.ts +100 -0
- package/dist/dts/http/utils.d.ts +54 -0
- package/dist/dts/index.d.ts +0 -0
- package/dist/dts/indexing/index.d.ts +4 -0
- package/dist/dts/indexing/searcher.d.ts +47 -0
- package/dist/dts/indexing/writer.d.ts +22 -0
- package/dist/dts/integrations/index.d.ts +2 -0
- package/dist/dts/integrations/integrations.d.ts +118 -0
- package/dist/dts/io/bytes.d.ts +56 -0
- package/dist/dts/io/files.d.ts +261 -0
- package/dist/dts/io/image.d.ts +22 -0
- package/dist/dts/io/index.d.ts +10 -0
- package/dist/dts/io/streams.d.ts +172 -0
- package/dist/dts/io/zip.d.ts +178 -0
- package/dist/dts/job/decorators.d.ts +11 -0
- package/dist/dts/job/index.d.ts +4 -0
- package/dist/dts/job/scheduler.d.ts +250 -0
- package/dist/dts/junit/index.d.ts +1 -0
- package/dist/dts/junit/junit.d.ts +50 -0
- package/dist/dts/kafka/consumer.d.ts +48 -0
- package/dist/dts/kafka/index.d.ts +4 -0
- package/dist/dts/kafka/producer.d.ts +50 -0
- package/dist/dts/log/index.d.ts +2 -0
- package/dist/dts/log/logging.d.ts +102 -0
- package/dist/dts/mail/client.d.ts +90 -0
- package/dist/dts/mail/index.d.ts +2 -0
- package/dist/dts/messaging/consumer.d.ts +61 -0
- package/dist/dts/messaging/decorators.d.ts +11 -0
- package/dist/dts/messaging/index.d.ts +6 -0
- package/dist/dts/messaging/producer.d.ts +59 -0
- package/dist/dts/mongodb/client.d.ts +367 -0
- package/dist/dts/mongodb/dao.d.ts +24 -0
- package/dist/dts/mongodb/index.d.ts +2 -0
- package/dist/dts/net/decorators.d.ts +11 -0
- package/dist/dts/net/index.d.ts +6 -0
- package/dist/dts/net/soap.d.ts +115 -0
- package/dist/dts/net/websockets.d.ts +100 -0
- package/dist/dts/net/wrappers/onClose.d.ts +0 -0
- package/dist/dts/net/wrappers/onError.d.ts +0 -0
- package/dist/dts/net/wrappers/onMessage.d.ts +0 -0
- package/dist/dts/net/wrappers/onOpen.d.ts +0 -0
- package/dist/dts/pdf/index.d.ts +2 -0
- package/dist/dts/pdf/pdf.d.ts +72 -0
- package/dist/dts/platform/command.d.ts +41 -0
- package/dist/dts/platform/engines.d.ts +35 -0
- package/dist/dts/platform/index.d.ts +16 -0
- package/dist/dts/platform/lifecycle.d.ts +22 -0
- package/dist/dts/platform/os.d.ts +23 -0
- package/dist/dts/platform/problems.d.ts +114 -0
- package/dist/dts/platform/registry.d.ts +227 -0
- package/dist/dts/platform/repository.d.ts +354 -0
- package/dist/dts/platform/workspace.d.ts +421 -0
- package/dist/dts/qldb/index.d.ts +2 -0
- package/dist/dts/qldb/qldb.d.ts +1 -0
- package/dist/dts/rabbitmq/consumer.d.ts +25 -0
- package/dist/dts/rabbitmq/index.d.ts +4 -0
- package/dist/dts/rabbitmq/producer.d.ts +15 -0
- package/dist/dts/redis/client.d.ts +134 -0
- package/dist/dts/redis/index.d.ts +2 -0
- package/dist/dts/security/decorators.d.ts +4 -0
- package/dist/dts/security/index.d.ts +5 -0
- package/dist/dts/security/oauth.d.ts +39 -0
- package/dist/dts/security/user.d.ts +51 -0
- package/dist/dts/template/engines.d.ts +98 -0
- package/dist/dts/template/index.d.ts +2 -0
- package/dist/dts/utils/alphanumeric.d.ts +39 -0
- package/dist/dts/utils/base64.d.ts +48 -0
- package/dist/dts/utils/converter.d.ts +44 -0
- package/dist/dts/utils/digest.d.ts +50 -0
- package/dist/dts/utils/escape.d.ts +110 -0
- package/dist/dts/utils/hex.d.ts +48 -0
- package/dist/dts/utils/index.d.ts +23 -0
- package/dist/dts/utils/jsonpath.d.ts +22 -0
- package/dist/dts/utils/qrcode.d.ts +16 -0
- package/dist/dts/utils/url.d.ts +50 -0
- package/dist/dts/utils/utf8.d.ts +33 -0
- package/dist/dts/utils/uuid.d.ts +21 -0
- package/dist/dts/utils/xml.d.ts +22 -0
- package/dist/esm/bpm/deployer.mjs +38 -0
- package/dist/esm/bpm/index.mjs +15 -0
- package/dist/esm/bpm/process.mjs +617 -0
- package/dist/esm/bpm/tasks.mjs +954 -0
- package/dist/esm/bpm/values.mjs +63 -0
- package/dist/esm/cache/cache.mjs +45 -0
- package/dist/esm/cache/index.mjs +6 -0
- package/dist/esm/cms/cmis.mjs +660 -0
- package/dist/esm/cms/index.mjs +6 -0
- package/dist/esm/component/decorators.mjs +107 -0
- package/dist/esm/component/index.mjs +6 -0
- package/dist/esm/core/configurations.mjs +91 -0
- package/dist/esm/core/context.mjs +28 -0
- package/dist/esm/core/env.mjs +26 -0
- package/dist/esm/core/globals.mjs +35 -0
- package/dist/esm/core/index.mjs +15 -0
- package/dist/esm/db/dao.mjs +775 -0
- package/dist/esm/db/database.mjs +885 -0
- package/dist/esm/db/decorators.mjs +148 -0
- package/dist/esm/db/index.mjs +42 -0
- package/dist/esm/db/insert.mjs +32 -0
- package/dist/esm/db/orm.mjs +225 -0
- package/dist/esm/db/ormstatements.mjs +223 -0
- package/dist/esm/db/procedure.mjs +93 -0
- package/dist/esm/db/query.mjs +38 -0
- package/dist/esm/db/repository.mjs +129 -0
- package/dist/esm/db/sequence.mjs +40 -0
- package/dist/esm/db/sql.mjs +497 -0
- package/dist/esm/db/store.mjs +153 -0
- package/dist/esm/db/translator.mjs +81 -0
- package/dist/esm/db/update.mjs +24 -0
- package/dist/esm/etcd/client.mjs +155 -0
- package/dist/esm/etcd/index.mjs +6 -0
- package/dist/esm/extensions/decorators.mjs +21 -0
- package/dist/esm/extensions/extensions.mjs +89 -0
- package/dist/esm/extensions/index.mjs +9 -0
- package/dist/esm/git/client.mjs +258 -0
- package/dist/esm/git/index.mjs +6 -0
- package/dist/esm/http/client-async.mjs +205 -0
- package/dist/esm/http/client.mjs +126 -0
- package/dist/esm/http/decorators.mjs +47 -0
- package/dist/esm/http/errors/ForbiddenError.mjs +22 -0
- package/dist/esm/http/errors/ValidationError.mjs +22 -0
- package/dist/esm/http/errors.mjs +7 -0
- package/dist/esm/http/index.mjs +29 -0
- package/dist/esm/http/request.mjs +262 -0
- package/dist/esm/http/response.mjs +433 -0
- package/dist/esm/http/rs/resource-common.mjs +13 -0
- package/dist/esm/http/rs/resource-http-controller.mjs +287 -0
- package/dist/esm/http/rs/resource-mappings.mjs +111 -0
- package/dist/esm/http/rs/resource-method.mjs +199 -0
- package/dist/esm/http/rs/resource.mjs +213 -0
- package/dist/esm/http/rs.mjs +12 -0
- package/dist/esm/http/session.mjs +105 -0
- package/dist/esm/http/upload.mjs +125 -0
- package/dist/esm/http/utils.mjs +87 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/indexing/index.mjs +9 -0
- package/dist/esm/indexing/searcher.mjs +51 -0
- package/dist/esm/indexing/writer.mjs +26 -0
- package/dist/esm/integrations/index.mjs +6 -0
- package/dist/esm/integrations/integrations.mjs +36 -0
- package/dist/esm/io/bytes.mjs +82 -0
- package/dist/esm/io/files.mjs +325 -0
- package/dist/esm/io/image.mjs +24 -0
- package/dist/esm/io/index.mjs +18 -0
- package/dist/esm/io/streams.mjs +224 -0
- package/dist/esm/io/zip.mjs +232 -0
- package/dist/esm/job/decorators.mjs +21 -0
- package/dist/esm/job/index.mjs +9 -0
- package/dist/esm/job/scheduler.mjs +328 -0
- package/dist/esm/junit/index.mjs +2 -0
- package/dist/esm/junit/junit.mjs +48 -0
- package/dist/esm/kafka/consumer.mjs +51 -0
- package/dist/esm/kafka/index.mjs +9 -0
- package/dist/esm/kafka/producer.mjs +51 -0
- package/dist/esm/log/index.mjs +6 -0
- package/dist/esm/log/logging.mjs +155 -0
- package/dist/esm/mail/client.mjs +134 -0
- package/dist/esm/mail/index.mjs +6 -0
- package/dist/esm/messaging/consumer.mjs +64 -0
- package/dist/esm/messaging/decorators.mjs +21 -0
- package/dist/esm/messaging/index.mjs +12 -0
- package/dist/esm/messaging/producer.mjs +62 -0
- package/dist/esm/mongodb/client.mjs +608 -0
- package/dist/esm/mongodb/dao.mjs +360 -0
- package/dist/esm/mongodb/index.mjs +7 -0
- package/dist/esm/net/decorators.mjs +21 -0
- package/dist/esm/net/index.mjs +12 -0
- package/dist/esm/net/soap.mjs +209 -0
- package/dist/esm/net/websockets.mjs +132 -0
- package/dist/esm/net/wrappers/onClose.mjs +2 -0
- package/dist/esm/net/wrappers/onError.mjs +2 -0
- package/dist/esm/net/wrappers/onMessage.mjs +2 -0
- package/dist/esm/net/wrappers/onOpen.mjs +2 -0
- package/dist/esm/pdf/index.mjs +6 -0
- package/dist/esm/pdf/pdf.mjs +141 -0
- package/dist/esm/platform/command.mjs +28 -0
- package/dist/esm/platform/engines.mjs +51 -0
- package/dist/esm/platform/index.mjs +27 -0
- package/dist/esm/platform/lifecycle.mjs +30 -0
- package/dist/esm/platform/os.mjs +32 -0
- package/dist/esm/platform/problems.mjs +108 -0
- package/dist/esm/platform/registry.mjs +300 -0
- package/dist/esm/platform/repository.mjs +479 -0
- package/dist/esm/platform/workspace.mjs +555 -0
- package/dist/esm/qldb/index.mjs +6 -0
- package/dist/esm/qldb/qldb.mjs +5 -0
- package/dist/esm/rabbitmq/consumer.mjs +31 -0
- package/dist/esm/rabbitmq/index.mjs +9 -0
- package/dist/esm/rabbitmq/producer.mjs +19 -0
- package/dist/esm/redis/client.mjs +171 -0
- package/dist/esm/redis/index.mjs +6 -0
- package/dist/esm/security/decorators.mjs +29 -0
- package/dist/esm/security/index.mjs +10 -0
- package/dist/esm/security/oauth.mjs +56 -0
- package/dist/esm/security/user.mjs +69 -0
- package/dist/esm/template/engines.mjs +120 -0
- package/dist/esm/template/index.mjs +6 -0
- package/dist/esm/utils/alphanumeric.mjs +88 -0
- package/dist/esm/utils/base64.mjs +85 -0
- package/dist/esm/utils/converter.mjs +59 -0
- package/dist/esm/utils/digest.mjs +148 -0
- package/dist/esm/utils/escape.mjs +141 -0
- package/dist/esm/utils/hex.mjs +85 -0
- package/dist/esm/utils/index.mjs +38 -0
- package/dist/esm/utils/jsonpath.mjs +470 -0
- package/dist/esm/utils/qrcode.mjs +22 -0
- package/dist/esm/utils/url.mjs +63 -0
- package/dist/esm/utils/utf8.mjs +42 -0
- package/dist/esm/utils/uuid.mjs +29 -0
- package/dist/esm/utils/xml.mjs +38 -0
- package/package.json +58 -0
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var jsonpath_exports = {};
|
|
19
|
+
__export(jsonpath_exports, {
|
|
20
|
+
JSONPath: () => JSONPath,
|
|
21
|
+
default: () => jsonpath_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(jsonpath_exports);
|
|
24
|
+
const globalEval = eval;
|
|
25
|
+
const allowedResultTypes = ["value", "path", "pointer", "parent", "parentProperty", "all"];
|
|
26
|
+
const { hasOwnProperty: hasOwnProp } = Object.prototype;
|
|
27
|
+
const moveToAnotherArray = function(source, target, conditionCb) {
|
|
28
|
+
const il = source.length;
|
|
29
|
+
for (let i = 0; i < il; i++) {
|
|
30
|
+
const item = source[i];
|
|
31
|
+
if (conditionCb(item)) {
|
|
32
|
+
target.push(source.splice(i--, 1)[0]);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const vm = {
|
|
37
|
+
/**
|
|
38
|
+
* @param {string} expr Expression to evaluate
|
|
39
|
+
* @param {Object} context Object whose items will be added to evaluation
|
|
40
|
+
* @returns {*} Result of evaluated code
|
|
41
|
+
*/
|
|
42
|
+
runInNewContext(expr, context) {
|
|
43
|
+
const keys = Object.keys(context);
|
|
44
|
+
const funcs = [];
|
|
45
|
+
moveToAnotherArray(keys, funcs, (key) => {
|
|
46
|
+
return typeof context[key] === "function";
|
|
47
|
+
});
|
|
48
|
+
const code = funcs.reduce((s, func) => {
|
|
49
|
+
let fString = context[func].toString();
|
|
50
|
+
if (!/function/.exec(fString)) {
|
|
51
|
+
fString = "function " + fString;
|
|
52
|
+
}
|
|
53
|
+
return "var " + func + "=" + fString + ";" + s;
|
|
54
|
+
}, "") + keys.reduce((s, vr) => {
|
|
55
|
+
return "var " + vr + "=" + JSON.stringify(context[vr]).replace(
|
|
56
|
+
// http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/
|
|
57
|
+
/\u2028|\u2029/g,
|
|
58
|
+
(m) => {
|
|
59
|
+
return "\\u202" + (m === "\u2028" ? "8" : "9");
|
|
60
|
+
}
|
|
61
|
+
) + ";" + s;
|
|
62
|
+
}, expr);
|
|
63
|
+
return globalEval(code);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
function push(arr, item) {
|
|
67
|
+
arr = arr.slice();
|
|
68
|
+
arr.push(item);
|
|
69
|
+
return arr;
|
|
70
|
+
}
|
|
71
|
+
function unshift(item, arr) {
|
|
72
|
+
arr = arr.slice();
|
|
73
|
+
arr.unshift(item);
|
|
74
|
+
return arr;
|
|
75
|
+
}
|
|
76
|
+
var NewError = function(value) {
|
|
77
|
+
const error = Error.call(this, 'JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)');
|
|
78
|
+
this.message = error.message;
|
|
79
|
+
this.stack = error.stack;
|
|
80
|
+
this.avoidNew = true;
|
|
81
|
+
this.value = value;
|
|
82
|
+
this.name = "NewError";
|
|
83
|
+
};
|
|
84
|
+
NewError.prototype = Object.create(Error.prototype);
|
|
85
|
+
NewError.prototype.constructor = NewError;
|
|
86
|
+
function JSONPath(opts, expr, obj, callback, otherTypeCallback) {
|
|
87
|
+
if (!(this instanceof JSONPath)) {
|
|
88
|
+
try {
|
|
89
|
+
return new JSONPath(opts, expr, obj, callback, otherTypeCallback);
|
|
90
|
+
} catch (e) {
|
|
91
|
+
if (!e.avoidNew) {
|
|
92
|
+
throw e;
|
|
93
|
+
}
|
|
94
|
+
return e.value;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (typeof opts === "string") {
|
|
98
|
+
otherTypeCallback = callback;
|
|
99
|
+
callback = obj;
|
|
100
|
+
obj = expr;
|
|
101
|
+
expr = opts;
|
|
102
|
+
opts = {};
|
|
103
|
+
}
|
|
104
|
+
opts = opts || {};
|
|
105
|
+
const objArgs = hasOwnProp.call(opts, "json") && hasOwnProp.call(opts, "path");
|
|
106
|
+
this.json = opts.json || obj;
|
|
107
|
+
this.path = opts.path || expr;
|
|
108
|
+
this.resultType = opts.resultType && opts.resultType.toLowerCase() || "value";
|
|
109
|
+
this.flatten = opts.flatten || false;
|
|
110
|
+
this.wrap = hasOwnProp.call(opts, "wrap") ? opts.wrap : true;
|
|
111
|
+
this.sandbox = opts.sandbox || {};
|
|
112
|
+
this.preventEval = opts.preventEval || false;
|
|
113
|
+
this.parent = opts.parent || null;
|
|
114
|
+
this.parentProperty = opts.parentProperty || null;
|
|
115
|
+
this.callback = opts.callback || callback || null;
|
|
116
|
+
this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function() {
|
|
117
|
+
throw new Error("You must supply an otherTypeCallback callback option with the @other() operator.");
|
|
118
|
+
};
|
|
119
|
+
if (opts.autostart !== false) {
|
|
120
|
+
const ret = this.evaluate({
|
|
121
|
+
path: objArgs ? opts.path : expr,
|
|
122
|
+
json: objArgs ? opts.json : obj
|
|
123
|
+
});
|
|
124
|
+
if (!ret || typeof ret !== "object") {
|
|
125
|
+
throw new NewError(ret);
|
|
126
|
+
}
|
|
127
|
+
return ret;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
JSONPath.prototype = Object.create(Object.prototype);
|
|
131
|
+
JSONPath.prototype.constructor = JSONPath;
|
|
132
|
+
JSONPath.prototype.evaluate = function(expr, json, callback, otherTypeCallback) {
|
|
133
|
+
const that = this;
|
|
134
|
+
let currParent = this.parent, currParentProperty = this.parentProperty;
|
|
135
|
+
let { flatten, wrap } = this;
|
|
136
|
+
this.currResultType = this.resultType;
|
|
137
|
+
this.currPreventEval = this.preventEval;
|
|
138
|
+
this.currSandbox = this.sandbox;
|
|
139
|
+
callback = callback || this.callback;
|
|
140
|
+
this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;
|
|
141
|
+
json = json || this.json;
|
|
142
|
+
expr = expr || this.path;
|
|
143
|
+
if (expr && typeof expr === "object") {
|
|
144
|
+
if (!expr.path) {
|
|
145
|
+
throw new Error('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');
|
|
146
|
+
}
|
|
147
|
+
json = hasOwnProp.call(expr, "json") ? expr.json : json;
|
|
148
|
+
flatten = hasOwnProp.call(expr, "flatten") ? expr.flatten : flatten;
|
|
149
|
+
this.currResultType = hasOwnProp.call(expr, "resultType") ? expr.resultType : this.currResultType;
|
|
150
|
+
this.currSandbox = hasOwnProp.call(expr, "sandbox") ? expr.sandbox : this.currSandbox;
|
|
151
|
+
wrap = hasOwnProp.call(expr, "wrap") ? expr.wrap : wrap;
|
|
152
|
+
this.currPreventEval = hasOwnProp.call(expr, "preventEval") ? expr.preventEval : this.currPreventEval;
|
|
153
|
+
callback = hasOwnProp.call(expr, "callback") ? expr.callback : callback;
|
|
154
|
+
this.currOtherTypeCallback = hasOwnProp.call(expr, "otherTypeCallback") ? expr.otherTypeCallback : this.currOtherTypeCallback;
|
|
155
|
+
currParent = hasOwnProp.call(expr, "parent") ? expr.parent : currParent;
|
|
156
|
+
currParentProperty = hasOwnProp.call(expr, "parentProperty") ? expr.parentProperty : currParentProperty;
|
|
157
|
+
expr = expr.path;
|
|
158
|
+
}
|
|
159
|
+
currParent = currParent || null;
|
|
160
|
+
currParentProperty = currParentProperty || null;
|
|
161
|
+
if (Array.isArray(expr)) {
|
|
162
|
+
expr = JSONPath.toPathString(expr);
|
|
163
|
+
}
|
|
164
|
+
if (!expr || !json || allowedResultTypes.indexOf(this.currResultType) < 0) {
|
|
165
|
+
return void 0;
|
|
166
|
+
}
|
|
167
|
+
this._obj = json;
|
|
168
|
+
const exprList = JSONPath.toPathArray(expr);
|
|
169
|
+
if (exprList[0] === "$" && exprList.length > 1) {
|
|
170
|
+
exprList.shift();
|
|
171
|
+
}
|
|
172
|
+
this._hasParentSelector = null;
|
|
173
|
+
const result = this._trace(exprList, json, ["$"], currParent, currParentProperty, callback).filter(function(ea) {
|
|
174
|
+
return ea && !ea.isParentSelector;
|
|
175
|
+
});
|
|
176
|
+
if (!result.length) {
|
|
177
|
+
return wrap ? [] : void 0;
|
|
178
|
+
}
|
|
179
|
+
if (result.length === 1 && !wrap && !Array.isArray(result[0].value)) {
|
|
180
|
+
return this._getPreferredOutput(result[0]);
|
|
181
|
+
}
|
|
182
|
+
return result.reduce(function(rslt, ea) {
|
|
183
|
+
const valOrPath = that._getPreferredOutput(ea);
|
|
184
|
+
if (flatten && Array.isArray(valOrPath)) {
|
|
185
|
+
rslt = rslt.concat(valOrPath);
|
|
186
|
+
} else {
|
|
187
|
+
rslt.push(valOrPath);
|
|
188
|
+
}
|
|
189
|
+
return rslt;
|
|
190
|
+
}, []);
|
|
191
|
+
};
|
|
192
|
+
JSONPath.prototype._getPreferredOutput = function(ea) {
|
|
193
|
+
const resultType = this.currResultType;
|
|
194
|
+
switch (resultType) {
|
|
195
|
+
default:
|
|
196
|
+
throw new TypeError("Unknown result type");
|
|
197
|
+
case "all":
|
|
198
|
+
ea.pointer = JSONPath.toPointer(ea.path);
|
|
199
|
+
ea.path = typeof ea.path === "string" ? ea.path : JSONPath.toPathString(ea.path);
|
|
200
|
+
return ea;
|
|
201
|
+
case "value":
|
|
202
|
+
case "parent":
|
|
203
|
+
case "parentProperty":
|
|
204
|
+
return ea[resultType];
|
|
205
|
+
case "path":
|
|
206
|
+
return JSONPath.toPathString(ea[resultType]);
|
|
207
|
+
case "pointer":
|
|
208
|
+
return JSONPath.toPointer(ea.path);
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
JSONPath.prototype._handleCallback = function(fullRetObj, callback, type) {
|
|
212
|
+
if (callback) {
|
|
213
|
+
const preferredOutput = this._getPreferredOutput(fullRetObj);
|
|
214
|
+
fullRetObj.path = typeof fullRetObj.path === "string" ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path);
|
|
215
|
+
callback(preferredOutput, type, fullRetObj);
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
JSONPath.prototype._trace = function(expr, val, path, parent, parentPropName, callback, literalPriority) {
|
|
219
|
+
let retObj;
|
|
220
|
+
const that = this;
|
|
221
|
+
if (!expr.length) {
|
|
222
|
+
retObj = { path, value: val, parent, parentProperty: parentPropName };
|
|
223
|
+
this._handleCallback(retObj, callback, "value");
|
|
224
|
+
return retObj;
|
|
225
|
+
}
|
|
226
|
+
const loc = expr[0], x = expr.slice(1);
|
|
227
|
+
const ret = [];
|
|
228
|
+
function addRet(elems) {
|
|
229
|
+
if (Array.isArray(elems)) {
|
|
230
|
+
elems.forEach((t) => {
|
|
231
|
+
ret.push(t);
|
|
232
|
+
});
|
|
233
|
+
} else {
|
|
234
|
+
ret.push(elems);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
if ((typeof loc !== "string" || literalPriority) && val && hasOwnProp.call(val, loc)) {
|
|
238
|
+
addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback));
|
|
239
|
+
} else if (loc === "*") {
|
|
240
|
+
this._walk(loc, x, val, path, parent, parentPropName, callback, function(m, l, x2, v, p, par, pr, cb) {
|
|
241
|
+
addRet(that._trace(unshift(m, x2), v, p, par, pr, cb, true));
|
|
242
|
+
});
|
|
243
|
+
} else if (loc === "..") {
|
|
244
|
+
addRet(this._trace(x, val, path, parent, parentPropName, callback));
|
|
245
|
+
this._walk(loc, x, val, path, parent, parentPropName, callback, function(m, l, x2, v, p, par, pr, cb) {
|
|
246
|
+
if (typeof v[m] === "object") {
|
|
247
|
+
addRet(that._trace(unshift(l, x2), v[m], push(p, m), v, m, cb));
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
} else if (loc === "^") {
|
|
251
|
+
this._hasParentSelector = true;
|
|
252
|
+
return path.length ? {
|
|
253
|
+
path: path.slice(0, -1),
|
|
254
|
+
expr: x,
|
|
255
|
+
isParentSelector: true
|
|
256
|
+
} : [];
|
|
257
|
+
} else if (loc === "~") {
|
|
258
|
+
retObj = { path: push(path, loc), value: parentPropName, parent, parentProperty: null };
|
|
259
|
+
this._handleCallback(retObj, callback, "property");
|
|
260
|
+
return retObj;
|
|
261
|
+
} else if (loc === "$") {
|
|
262
|
+
addRet(this._trace(x, val, path, null, null, callback));
|
|
263
|
+
} else if (/^(-?\d*):(-?\d*):?(\d*)$/.test(loc)) {
|
|
264
|
+
addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));
|
|
265
|
+
} else if (loc.indexOf("?(") === 0) {
|
|
266
|
+
if (this.currPreventEval) {
|
|
267
|
+
throw new Error("Eval [?(expr)] prevented in JSONPath expression.");
|
|
268
|
+
}
|
|
269
|
+
this._walk(loc, x, val, path, parent, parentPropName, callback, function(m, l, x2, v, p, par, pr, cb) {
|
|
270
|
+
if (that._eval(l.replace(/^\?\((.*?)\)$/, "$1"), v[m], m, p, par, pr)) {
|
|
271
|
+
addRet(that._trace(unshift(m, x2), v, p, par, pr, cb));
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
} else if (loc[0] === "(") {
|
|
275
|
+
if (this.currPreventEval) {
|
|
276
|
+
throw new Error("Eval [(expr)] prevented in JSONPath expression.");
|
|
277
|
+
}
|
|
278
|
+
addRet(this._trace(unshift(
|
|
279
|
+
this._eval(loc, val, path[path.length - 1], path.slice(0, -1), parent, parentPropName),
|
|
280
|
+
x
|
|
281
|
+
), val, path, parent, parentPropName, callback));
|
|
282
|
+
} else if (loc[0] === "@") {
|
|
283
|
+
let addType = false;
|
|
284
|
+
const valueType = loc.slice(1, -2);
|
|
285
|
+
switch (valueType) {
|
|
286
|
+
default:
|
|
287
|
+
throw new TypeError("Unknown value type " + valueType);
|
|
288
|
+
case "scalar":
|
|
289
|
+
if (!val || ["object", "function"].indexOf(typeof val) < 0) {
|
|
290
|
+
addType = true;
|
|
291
|
+
}
|
|
292
|
+
break;
|
|
293
|
+
case "boolean":
|
|
294
|
+
case "string":
|
|
295
|
+
case "undefined":
|
|
296
|
+
case "function":
|
|
297
|
+
if (typeof val === valueType) {
|
|
298
|
+
addType = true;
|
|
299
|
+
}
|
|
300
|
+
break;
|
|
301
|
+
case "number":
|
|
302
|
+
if (typeof val === valueType && isFinite(val)) {
|
|
303
|
+
addType = true;
|
|
304
|
+
}
|
|
305
|
+
break;
|
|
306
|
+
case "nonFinite":
|
|
307
|
+
if (typeof val === "number" && !isFinite(val)) {
|
|
308
|
+
addType = true;
|
|
309
|
+
}
|
|
310
|
+
break;
|
|
311
|
+
case "object":
|
|
312
|
+
if (val && typeof val === valueType) {
|
|
313
|
+
addType = true;
|
|
314
|
+
}
|
|
315
|
+
break;
|
|
316
|
+
case "array":
|
|
317
|
+
if (Array.isArray(val)) {
|
|
318
|
+
addType = true;
|
|
319
|
+
}
|
|
320
|
+
break;
|
|
321
|
+
case "other":
|
|
322
|
+
addType = this.currOtherTypeCallback(val, path, parent, parentPropName);
|
|
323
|
+
break;
|
|
324
|
+
case "integer":
|
|
325
|
+
if (val === Number(val) && isFinite(val) && !(val % 1)) {
|
|
326
|
+
addType = true;
|
|
327
|
+
}
|
|
328
|
+
break;
|
|
329
|
+
case "null":
|
|
330
|
+
if (val === null) {
|
|
331
|
+
addType = true;
|
|
332
|
+
}
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
if (addType) {
|
|
336
|
+
retObj = { path, value: val, parent, parentProperty: parentPropName };
|
|
337
|
+
this._handleCallback(retObj, callback, "value");
|
|
338
|
+
return retObj;
|
|
339
|
+
}
|
|
340
|
+
} else if (loc[0] === "`" && val && hasOwnProp.call(val, loc.slice(1))) {
|
|
341
|
+
const locProp = loc.slice(1);
|
|
342
|
+
addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, true));
|
|
343
|
+
} else if (loc.indexOf(",") > -1) {
|
|
344
|
+
const parts = loc.split(",");
|
|
345
|
+
parts.forEach(function(part) {
|
|
346
|
+
addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback));
|
|
347
|
+
}.bind(this));
|
|
348
|
+
} else if (!literalPriority && val && hasOwnProp.call(val, loc)) {
|
|
349
|
+
addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, true));
|
|
350
|
+
}
|
|
351
|
+
if (this._hasParentSelector) {
|
|
352
|
+
for (let t = 0; t < ret.length; t++) {
|
|
353
|
+
const rett = ret[t];
|
|
354
|
+
if (rett.isParentSelector) {
|
|
355
|
+
const tmp = that._trace(
|
|
356
|
+
rett.expr,
|
|
357
|
+
val,
|
|
358
|
+
rett.path,
|
|
359
|
+
parent,
|
|
360
|
+
parentPropName,
|
|
361
|
+
callback
|
|
362
|
+
);
|
|
363
|
+
if (Array.isArray(tmp)) {
|
|
364
|
+
ret[t] = tmp[0];
|
|
365
|
+
const tl = tmp.length;
|
|
366
|
+
for (let tt = 1; tt < tl; tt++) {
|
|
367
|
+
t++;
|
|
368
|
+
ret.splice(t, 0, tmp[tt]);
|
|
369
|
+
}
|
|
370
|
+
} else {
|
|
371
|
+
ret[t] = tmp;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return ret;
|
|
377
|
+
};
|
|
378
|
+
JSONPath.prototype._walk = function(loc, expr, val, path, parent, parentPropName, callback, f) {
|
|
379
|
+
if (Array.isArray(val)) {
|
|
380
|
+
const n = val.length;
|
|
381
|
+
for (let i = 0; i < n; i++) {
|
|
382
|
+
f(i, loc, expr, val, path, parent, parentPropName, callback);
|
|
383
|
+
}
|
|
384
|
+
} else if (typeof val === "object") {
|
|
385
|
+
for (var m in val) {
|
|
386
|
+
if (hasOwnProp.call(val, m)) {
|
|
387
|
+
f(m, loc, expr, val, path, parent, parentPropName, callback);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
JSONPath.prototype._slice = function(loc, expr, val, path, parent, parentPropName, callback) {
|
|
393
|
+
if (!Array.isArray(val)) {
|
|
394
|
+
return void 0;
|
|
395
|
+
}
|
|
396
|
+
const len = val.length, parts = loc.split(":"), step = parts[2] && parseInt(parts[2]) || 1;
|
|
397
|
+
let start = parts[0] && parseInt(parts[0]) || 0, end = parts[1] && parseInt(parts[1]) || len;
|
|
398
|
+
start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);
|
|
399
|
+
end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);
|
|
400
|
+
const ret = [];
|
|
401
|
+
for (let i = start; i < end; i += step) {
|
|
402
|
+
let tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback);
|
|
403
|
+
if (Array.isArray(tmp)) {
|
|
404
|
+
tmp.forEach((t) => {
|
|
405
|
+
ret.push(t);
|
|
406
|
+
});
|
|
407
|
+
} else {
|
|
408
|
+
ret.push(tmp);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
return ret;
|
|
412
|
+
};
|
|
413
|
+
JSONPath.prototype._eval = function(code, _v, _vname, path, parent, parentPropName) {
|
|
414
|
+
if (!this._obj || !_v) {
|
|
415
|
+
return false;
|
|
416
|
+
}
|
|
417
|
+
if (code.indexOf("@parentProperty") > -1) {
|
|
418
|
+
this.currSandbox._$_parentProperty = parentPropName;
|
|
419
|
+
code = code.replace(/@parentProperty/g, "_$_parentProperty");
|
|
420
|
+
}
|
|
421
|
+
if (code.indexOf("@parent") > -1) {
|
|
422
|
+
this.currSandbox._$_parent = parent;
|
|
423
|
+
code = code.replace(/@parent/g, "_$_parent");
|
|
424
|
+
}
|
|
425
|
+
if (code.indexOf("@property") > -1) {
|
|
426
|
+
this.currSandbox._$_property = _vname;
|
|
427
|
+
code = code.replace(/@property/g, "_$_property");
|
|
428
|
+
}
|
|
429
|
+
if (code.indexOf("@path") > -1) {
|
|
430
|
+
this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));
|
|
431
|
+
code = code.replace(/@path/g, "_$_path");
|
|
432
|
+
}
|
|
433
|
+
if (code.match(/@([.\s)[])/)) {
|
|
434
|
+
this.currSandbox._$_v = _v;
|
|
435
|
+
code = code.replace(/@([.\s)[])/g, "_$_v$1");
|
|
436
|
+
}
|
|
437
|
+
try {
|
|
438
|
+
return vm.runInNewContext(code, this.currSandbox);
|
|
439
|
+
} catch (e) {
|
|
440
|
+
console.log(e);
|
|
441
|
+
throw new Error("jsonPath: " + e.message + ": " + code);
|
|
442
|
+
}
|
|
443
|
+
};
|
|
444
|
+
JSONPath.cache = {};
|
|
445
|
+
JSONPath.toPathString = function(pathArr) {
|
|
446
|
+
const x = pathArr, n = x.length;
|
|
447
|
+
let p = "$";
|
|
448
|
+
for (let i = 1; i < n; i++) {
|
|
449
|
+
if (!/^(~|\^|@.*?\(\))$/.test(x[i])) {
|
|
450
|
+
p += /^[0-9*]+$/.test(x[i]) ? "[" + x[i] + "]" : "['" + x[i] + "']";
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
return p;
|
|
454
|
+
};
|
|
455
|
+
JSONPath.toPointer = function(pointer) {
|
|
456
|
+
const x = pointer, n = x.length;
|
|
457
|
+
let p = "";
|
|
458
|
+
for (let i = 1; i < n; i++) {
|
|
459
|
+
if (!/^(~|\^|@.*?\(\))$/.test(x[i])) {
|
|
460
|
+
p += "/" + x[i].toString().replace(/~/g, "~0").replace(/\//g, "~1");
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
return p;
|
|
464
|
+
};
|
|
465
|
+
JSONPath.toPathArray = function(expr) {
|
|
466
|
+
const { cache } = JSONPath;
|
|
467
|
+
if (cache[expr]) {
|
|
468
|
+
return cache[expr].concat();
|
|
469
|
+
}
|
|
470
|
+
const subx = [];
|
|
471
|
+
const normalized = expr.replace(
|
|
472
|
+
/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/g,
|
|
473
|
+
";$&;"
|
|
474
|
+
).replace(/[['](\??\(.*?\))[\]']/g, function($0, $1) {
|
|
475
|
+
return "[#" + (subx.push($1) - 1) + "]";
|
|
476
|
+
}).replace(/\['([^'\]]*)'\]/g, function($0, prop) {
|
|
477
|
+
return "['" + prop.replace(/\./g, "%@%").replace(/~/g, "%%@@%%") + "']";
|
|
478
|
+
}).replace(/~/g, ";~;").replace(/'?\.'?(?![^[]*\])|\['?/g, ";").replace(/%@%/g, ".").replace(/%%@@%%/g, "~").replace(/(?:;)?(\^+)(?:;)?/g, function($0, ups) {
|
|
479
|
+
return ";" + ups.split("").join(";") + ";";
|
|
480
|
+
}).replace(/;;;|;;/g, ";..;").replace(/;$|'?\]|'$/g, "");
|
|
481
|
+
const exprList = normalized.split(";").map(function(exp) {
|
|
482
|
+
const match = exp.match(/#(\d+)/);
|
|
483
|
+
return !match || !match[1] ? exp : subx[match[1]];
|
|
484
|
+
});
|
|
485
|
+
cache[expr] = exprList;
|
|
486
|
+
return cache[expr];
|
|
487
|
+
};
|
|
488
|
+
var jsonpath_default = JSONPath;
|
|
489
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWxzL2pzb25wYXRoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKlxuKiBGb3JrZWQgZnJvbSBzb3VyY2UgcHVibGlzaGVkIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9zM3Ugd2l0aCBNSVRcbiogbGljZW5zZSBhcyBvZiA1LzMwLzIwMTkgYW5kIGFkYXB0ZWQgZm9yIERpcmlnaWJsZVxuKiBDb250cmlidXRvcnM6XG4qICAgczN1IChodHRwczovL2dpdGh1Yi5jb20vczN1KSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxuKiAgIFNBUCAtIGFkYXB0ZWQgZm9yIERpcmlnaWJsZVxuKi9cbmNvbnN0IGdsb2JhbEV2YWwgPSBldmFsO1xuY29uc3QgYWxsb3dlZFJlc3VsdFR5cGVzID0gWyd2YWx1ZScsICdwYXRoJywgJ3BvaW50ZXInLCAncGFyZW50JywgJ3BhcmVudFByb3BlcnR5JywgJ2FsbCddO1xuY29uc3Qge2hhc093blByb3BlcnR5OiBoYXNPd25Qcm9wfSA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ29weSBpdGVtcyBvdXQgb2Ygb25lIGFycmF5IGludG8gYW5vdGhlci5cbiAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBBcnJheSB3aXRoIGl0ZW1zIHRvIGNvcHlcbiAqIEBwYXJhbSB7QXJyYXl9IHRhcmdldCBBcnJheSB0byB3aGljaCB0byBjb3B5XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb25kaXRpb25DYiBDYWxsYmFjayBwYXNzZWQgdGhlIGN1cnJlbnQgaXRlbTsgd2lsbCBtb3ZlXG4gKiBpdGVtIGlmIGV2YWx1YXRlcyB0byBgdHJ1ZWBcbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKi9cbmNvbnN0IG1vdmVUb0Fub3RoZXJBcnJheSA9IGZ1bmN0aW9uIChzb3VyY2UsIHRhcmdldCwgY29uZGl0aW9uQ2IpIHtcbiAgICBjb25zdCBpbCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBzb3VyY2VbaV07XG4gICAgICAgIGlmIChjb25kaXRpb25DYihpdGVtKSkge1xuICAgICAgICAgICAgdGFyZ2V0LnB1c2goc291cmNlLnNwbGljZShpLS0sIDEpWzBdKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmNvbnN0IHZtID0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGV4cHIgRXhwcmVzc2lvbiB0byBldmFsdWF0ZVxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gY29udGV4dCBPYmplY3Qgd2hvc2UgaXRlbXMgd2lsbCBiZSBhZGRlZCB0byBldmFsdWF0aW9uXG4gICAgICAgICAqIEByZXR1cm5zIHsqfSBSZXN1bHQgb2YgZXZhbHVhdGVkIGNvZGVcbiAgICAgICAgICovXG4gICAgICAgIHJ1bkluTmV3Q29udGV4dCAoZXhwciwgY29udGV4dCkge1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbnRleHQpO1xuICAgICAgICAgICAgY29uc3QgZnVuY3MgPSBbXTtcbiAgICAgICAgICAgIG1vdmVUb0Fub3RoZXJBcnJheShrZXlzLCBmdW5jcywgKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgY29udGV4dFtrZXldID09PSAnZnVuY3Rpb24nO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBjb2RlID0gZnVuY3MucmVkdWNlKChzLCBmdW5jKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZTdHJpbmcgPSBjb250ZXh0W2Z1bmNdLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgaWYgKCEoL2Z1bmN0aW9uLykuZXhlYyhmU3RyaW5nKSkge1xuICAgICAgICAgICAgICAgICAgICBmU3RyaW5nID0gJ2Z1bmN0aW9uICcgKyBmU3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJ3ZhciAnICsgZnVuYyArICc9JyArIGZTdHJpbmcgKyAnOycgKyBzO1xuICAgICAgICAgICAgfSwgJycpICsga2V5cy5yZWR1Y2UoKHMsIHZyKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICd2YXIgJyArIHZyICsgJz0nICsgSlNPTi5zdHJpbmdpZnkoY29udGV4dFt2cl0pLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cudGhlc3Bhbm5lci5jby51ay8yMDExLzA3LzI1L3RoZS1qc29uLXNwZWNpZmljYXRpb24taXMtbm93LXdyb25nL1xuICAgICAgICAgICAgICAgICAgICAvXFx1MjAyOHxcXHUyMDI5L2csIChtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1xcXFx1MjAyJyArIChtID09PSAnXFx1MjAyOCcgPyAnOCcgOiAnOScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKSArICc7JyArIHM7XG4gICAgICAgICAgICB9LCBleHByKTtcbiAgICAgICAgICAgIHJldHVybiBnbG9iYWxFdmFsKGNvZGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBDb3BpZXMgYXJyYXkgYW5kIHRoZW4gcHVzaGVzIGl0ZW0gaW50byBpdC5cbiAqIEBwYXJhbSB7QXJyYXl9IGFyciBBcnJheSB0byBjb3B5IGFuZCBpbnRvIHdoaWNoIHRvIHB1c2hcbiAqIEBwYXJhbSB7Kn0gaXRlbSBBcnJheSBpdGVtIHRvIGFkZCAodG8gZW5kKVxuICogQHJldHVybnMge0FycmF5fSBDb3B5IG9mIHRoZSBvcmlnaW5hbCBhcnJheVxuICovXG5mdW5jdGlvbiBwdXNoIChhcnIsIGl0ZW0pIHtcbiAgICBhcnIgPSBhcnIuc2xpY2UoKTtcbiAgICBhcnIucHVzaChpdGVtKTtcbiAgICByZXR1cm4gYXJyO1xufVxuLyoqXG4gKiBDb3BpZXMgYXJyYXkgYW5kIHRoZW4gdW5zaGlmdHMgaXRlbSBpbnRvIGl0LlxuICogQHBhcmFtIHsqfSBpdGVtIEFycmF5IGl0ZW0gdG8gYWRkICh0byBiZWdpbm5pbmcpXG4gKiBAcGFyYW0ge0FycmF5fSBhcnIgQXJyYXkgdG8gY29weSBhbmQgaW50byB3aGljaCB0byB1bnNoaWZ0XG4gKiBAcmV0dXJucyB7QXJyYXl9IENvcHkgb2YgdGhlIG9yaWdpbmFsIGFycmF5XG4gKi9cbmZ1bmN0aW9uIHVuc2hpZnQgKGl0ZW0sIGFycikge1xuICAgIGFyciA9IGFyci5zbGljZSgpO1xuICAgIGFyci51bnNoaWZ0KGl0ZW0pO1xuICAgIHJldHVybiBhcnI7XG59XG5cbi8qKlxuICogQ2F1Z2h0IHdoZW4gSlNPTlBhdGggaXMgdXNlZCB3aXRob3V0IGBuZXdgIGJ1dCByZXRocm93biBpZiB3aXRoIGBuZXdgXG4gKiBAZXh0ZW5kcyBFcnJvclxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgZXZhbHVhdGVkIHNjYWxhciB2YWx1ZVxuICovXG52YXIgTmV3RXJyb3IgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBjb25zdCBlcnJvciA9IEVycm9yLmNhbGwodGhpcywgJ0pTT05QYXRoIHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggXCJuZXdcIiAoaXQgcHJldmVudHMgcmV0dXJuIG9mICh1bndyYXBwZWQpIHNjYWxhciB2YWx1ZXMpJyk7XG4gICAgdGhpcy5tZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICB0aGlzLnN0YWNrID0gZXJyb3Iuc3RhY2s7XG4gICAgdGhpcy5hdm9pZE5ldyA9IHRydWU7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMubmFtZSA9ICdOZXdFcnJvcic7XG59XG5OZXdFcnJvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7XG5OZXdFcnJvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBOZXdFcnJvcjtcblxuLyoqXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIElmIHByZXNlbnQsIG11c3QgYmUgYW4gb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gZXhwciBKU09OIHBhdGggdG8gZXZhbHVhdGVcbiAqIEBwYXJhbSB7SlNPTn0gb2JqIEpTT04gb2JqZWN0IHRvIGV2YWx1YXRlIGFnYWluc3RcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFBhc3NlZCAzIGFyZ3VtZW50czogMSkgZGVzaXJlZCBwYXlsb2FkIHBlciBgcmVzdWx0VHlwZWAsXG4gKiAgICAgMikgYFwidmFsdWVcInxcInByb3BlcnR5XCJgLCAzKSBGdWxsIHJldHVybmVkIG9iamVjdCB3aXRoIGFsbCBwYXlsb2Fkc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gb3RoZXJUeXBlQ2FsbGJhY2sgSWYgYEBvdGhlcigpYCBpcyBhdCB0aGUgZW5kIG9mIG9uZSdzIHF1ZXJ5LCB0aGlzXG4gKiAgd2lsbCBiZSBpbnZva2VkIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBpdGVtLCBpdHMgcGF0aCwgaXRzIHBhcmVudCwgYW5kIGl0cyBwYXJlbnQnc1xuICogIHByb3BlcnR5IG5hbWUsIGFuZCBpdCBzaG91bGQgcmV0dXJuIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHN1cHBsaWVkIHZhbHVlXG4gKiAgYmVsb25ncyB0byB0aGUgXCJvdGhlclwiIHR5cGUgb3Igbm90IChvciBpdCBtYXkgaGFuZGxlIHRyYW5zZm9ybWF0aW9ucyBhbmQgcmV0dXJuIGBmYWxzZWApLlxuICogQHJldHVybnMge0pTT05QYXRofVxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBKU09OUGF0aCAob3B0cywgZXhwciwgb2JqLCBjYWxsYmFjaywgb3RoZXJUeXBlQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgSlNPTlBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEpTT05QYXRoKG9wdHMsIGV4cHIsIG9iaiwgY2FsbGJhY2ssIG90aGVyVHlwZUNhbGxiYWNrKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKCFlLmF2b2lkTmV3KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJykge1xuICAgICAgICBvdGhlclR5cGVDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICBjYWxsYmFjayA9IG9iajtcbiAgICAgICAgb2JqID0gZXhwcjtcbiAgICAgICAgZXhwciA9IG9wdHM7XG4gICAgICAgIG9wdHMgPSB7fTtcbiAgICB9XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgY29uc3Qgb2JqQXJncyA9IGhhc093blByb3AuY2FsbChvcHRzLCAnanNvbicpICYmIGhhc093blByb3AuY2FsbChvcHRzLCAncGF0aCcpO1xuICAgIHRoaXMuanNvbiA9IG9wdHMuanNvbiB8fCBvYmo7XG4gICAgdGhpcy5wYXRoID0gb3B0cy5wYXRoIHx8IGV4cHI7XG4gICAgdGhpcy5yZXN1bHRUeXBlID0gKG9wdHMucmVzdWx0VHlwZSAmJiBvcHRzLnJlc3VsdFR5cGUudG9Mb3dlckNhc2UoKSkgfHwgJ3ZhbHVlJztcbiAgICB0aGlzLmZsYXR0ZW4gPSBvcHRzLmZsYXR0ZW4gfHwgZmFsc2U7XG4gICAgdGhpcy53cmFwID0gaGFzT3duUHJvcC5jYWxsKG9wdHMsICd3cmFwJykgPyBvcHRzLndyYXAgOiB0cnVlO1xuICAgIHRoaXMuc2FuZGJveCA9IG9wdHMuc2FuZGJveCB8fCB7fTtcbiAgICB0aGlzLnByZXZlbnRFdmFsID0gb3B0cy5wcmV2ZW50RXZhbCB8fCBmYWxzZTtcbiAgICB0aGlzLnBhcmVudCA9IG9wdHMucGFyZW50IHx8IG51bGw7XG4gICAgdGhpcy5wYXJlbnRQcm9wZXJ0eSA9IG9wdHMucGFyZW50UHJvcGVydHkgfHwgbnVsbDtcbiAgICB0aGlzLmNhbGxiYWNrID0gb3B0cy5jYWxsYmFjayB8fCBjYWxsYmFjayB8fCBudWxsO1xuICAgIHRoaXMub3RoZXJUeXBlQ2FsbGJhY2sgPSBvcHRzLm90aGVyVHlwZUNhbGxiYWNrIHx8IG90aGVyVHlwZUNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBzdXBwbHkgYW4gb3RoZXJUeXBlQ2FsbGJhY2sgY2FsbGJhY2sgb3B0aW9uIHdpdGggdGhlIEBvdGhlcigpIG9wZXJhdG9yLicpO1xuICAgIH07XG5cbiAgICBpZiAob3B0cy5hdXRvc3RhcnQgIT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHJldCA9IHRoaXMuZXZhbHVhdGUoe1xuICAgICAgICAgICAgcGF0aDogKG9iakFyZ3MgPyBvcHRzLnBhdGggOiBleHByKSxcbiAgICAgICAgICAgIGpzb246IChvYmpBcmdzID8gb3B0cy5qc29uIDogb2JqKVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFyZXQgfHwgdHlwZW9mIHJldCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOZXdFcnJvcihyZXQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgfVxufVxuSlNPTlBhdGgucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShPYmplY3QucHJvdG90eXBlKTtcbkpTT05QYXRoLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEpTT05QYXRoO1xuXG4vLyBQVUJMSUMgTUVUSE9EU1xuSlNPTlBhdGgucHJvdG90eXBlLmV2YWx1YXRlID0gZnVuY3Rpb24gKGV4cHIsIGpzb24sIGNhbGxiYWNrLCBvdGhlclR5cGVDYWxsYmFjaykge1xuICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgIGxldCBjdXJyUGFyZW50ID0gdGhpcy5wYXJlbnQsXG4gICAgICAgIGN1cnJQYXJlbnRQcm9wZXJ0eSA9IHRoaXMucGFyZW50UHJvcGVydHk7XG4gICAgbGV0IHtmbGF0dGVuLCB3cmFwfSA9IHRoaXM7XG5cbiAgICB0aGlzLmN1cnJSZXN1bHRUeXBlID0gdGhpcy5yZXN1bHRUeXBlO1xuICAgIHRoaXMuY3VyclByZXZlbnRFdmFsID0gdGhpcy5wcmV2ZW50RXZhbDtcbiAgICB0aGlzLmN1cnJTYW5kYm94ID0gdGhpcy5zYW5kYm94O1xuICAgIGNhbGxiYWNrID0gY2FsbGJhY2sgfHwgdGhpcy5jYWxsYmFjaztcbiAgICB0aGlzLmN1cnJPdGhlclR5cGVDYWxsYmFjayA9IG90aGVyVHlwZUNhbGxiYWNrIHx8IHRoaXMub3RoZXJUeXBlQ2FsbGJhY2s7XG5cbiAgICBqc29uID0ganNvbiB8fCB0aGlzLmpzb247XG4gICAgZXhwciA9IGV4cHIgfHwgdGhpcy5wYXRoO1xuICAgIGlmIChleHByICYmIHR5cGVvZiBleHByID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAoIWV4cHIucGF0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBzdXBwbHkgYSBcInBhdGhcIiBwcm9wZXJ0eSB3aGVuIHByb3ZpZGluZyBhbiBvYmplY3QgYXJndW1lbnQgdG8gSlNPTlBhdGguZXZhbHVhdGUoKS4nKTtcbiAgICAgICAgfVxuICAgICAgICBqc29uID0gaGFzT3duUHJvcC5jYWxsKGV4cHIsICdqc29uJykgPyBleHByLmpzb24gOiBqc29uO1xuICAgICAgICBmbGF0dGVuID0gaGFzT3duUHJvcC5jYWxsKGV4cHIsICdmbGF0dGVuJykgPyBleHByLmZsYXR0ZW4gOiBmbGF0dGVuO1xuICAgICAgICB0aGlzLmN1cnJSZXN1bHRUeXBlID0gaGFzT3duUHJvcC5jYWxsKGV4cHIsICdyZXN1bHRUeXBlJykgPyBleHByLnJlc3VsdFR5cGUgOiB0aGlzLmN1cnJSZXN1bHRUeXBlO1xuICAgICAgICB0aGlzLmN1cnJTYW5kYm94ID0gaGFzT3duUHJvcC5jYWxsKGV4cHIsICdzYW5kYm94JykgPyBleHByLnNhbmRib3ggOiB0aGlzLmN1cnJTYW5kYm94O1xuICAgICAgICB3cmFwID0gaGFzT3duUHJvcC5jYWxsKGV4cHIsICd3cmFwJykgPyBleHByLndyYXAgOiB3cmFwO1xuICAgICAgICB0aGlzLmN1cnJQcmV2ZW50RXZhbCA9IGhhc093blByb3AuY2FsbChleHByLCAncHJldmVudEV2YWwnKSA/IGV4cHIucHJldmVudEV2YWwgOiB0aGlzLmN1cnJQcmV2ZW50RXZhbDtcbiAgICAgICAgY2FsbGJhY2sgPSBoYXNPd25Qcm9wLmNhbGwoZXhwciwgJ2NhbGxiYWNrJykgPyBleHByLmNhbGxiYWNrIDogY2FsbGJhY2s7XG4gICAgICAgIHRoaXMuY3Vyck90aGVyVHlwZUNhbGxiYWNrID0gaGFzT3duUHJvcC5jYWxsKGV4cHIsICdvdGhlclR5cGVDYWxsYmFjaycpID8gZXhwci5vdGhlclR5cGVDYWxsYmFjayA6IHRoaXMuY3Vyck90aGVyVHlwZUNhbGxiYWNrO1xuICAgICAgICBjdXJyUGFyZW50ID0gaGFzT3duUHJvcC5jYWxsKGV4cHIsICdwYXJlbnQnKSA/IGV4cHIucGFyZW50IDogY3VyclBhcmVudDtcbiAgICAgICAgY3VyclBhcmVudFByb3BlcnR5ID0gaGFzT3duUHJvcC5jYWxsKGV4cHIsICdwYXJlbnRQcm9wZXJ0eScpID8gZXhwci5wYXJlbnRQcm9wZXJ0eSA6IGN1cnJQYXJlbnRQcm9wZXJ0eTtcbiAgICAgICAgZXhwciA9IGV4cHIucGF0aDtcbiAgICB9XG4gICAgY3VyclBhcmVudCA9IGN1cnJQYXJlbnQgfHwgbnVsbDtcbiAgICBjdXJyUGFyZW50UHJvcGVydHkgPSBjdXJyUGFyZW50UHJvcGVydHkgfHwgbnVsbDtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGV4cHIpKSB7XG4gICAgICAgIGV4cHIgPSBKU09OUGF0aC50b1BhdGhTdHJpbmcoZXhwcik7XG4gICAgfVxuICAgIGlmICghZXhwciB8fCAhanNvbiB8fCBhbGxvd2VkUmVzdWx0VHlwZXMuaW5kZXhPZih0aGlzLmN1cnJSZXN1bHRUeXBlKTwwKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuX29iaiA9IGpzb247XG5cbiAgICBjb25zdCBleHByTGlzdCA9IEpTT05QYXRoLnRvUGF0aEFycmF5KGV4cHIpO1xuICAgIGlmIChleHByTGlzdFswXSA9PT0gJyQnICYmIGV4cHJMaXN0Lmxlbmd0aCA+IDEpIHsgZXhwckxpc3Quc2hpZnQoKTsgfVxuICAgIHRoaXMuX2hhc1BhcmVudFNlbGVjdG9yID0gbnVsbDtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzXG4gICAgICAgIC5fdHJhY2UoZXhwckxpc3QsIGpzb24sIFsnJCddLCBjdXJyUGFyZW50LCBjdXJyUGFyZW50UHJvcGVydHksIGNhbGxiYWNrKVxuICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uIChlYSkgeyByZXR1cm4gZWEgJiYgIWVhLmlzUGFyZW50U2VsZWN0b3I7IH0pO1xuXG4gICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7IHJldHVybiB3cmFwID8gW10gOiB1bmRlZmluZWQ7IH1cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMSAmJiAhd3JhcCAmJiAhQXJyYXkuaXNBcnJheShyZXN1bHRbMF0udmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRQcmVmZXJyZWRPdXRwdXQocmVzdWx0WzBdKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5yZWR1Y2UoZnVuY3Rpb24gKHJzbHQsIGVhKSB7XG4gICAgICAgIGNvbnN0IHZhbE9yUGF0aCA9IHRoYXQuX2dldFByZWZlcnJlZE91dHB1dChlYSk7XG4gICAgICAgIGlmIChmbGF0dGVuICYmIEFycmF5LmlzQXJyYXkodmFsT3JQYXRoKSkge1xuICAgICAgICAgICAgcnNsdCA9IHJzbHQuY29uY2F0KHZhbE9yUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByc2x0LnB1c2godmFsT3JQYXRoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcnNsdDtcbiAgICB9LCBbXSk7XG59O1xuXG4vLyBQUklWQVRFIE1FVEhPRFNcblxuSlNPTlBhdGgucHJvdG90eXBlLl9nZXRQcmVmZXJyZWRPdXRwdXQgPSBmdW5jdGlvbiAoZWEpIHtcbiAgICBjb25zdCByZXN1bHRUeXBlID0gdGhpcy5jdXJyUmVzdWx0VHlwZTtcbiAgICBzd2l0Y2ggKHJlc3VsdFR5cGUpIHtcbiAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIHJlc3VsdCB0eXBlJyk7XG4gICAgY2FzZSAnYWxsJzpcbiAgICAgICAgZWEucG9pbnRlciA9IEpTT05QYXRoLnRvUG9pbnRlcihlYS5wYXRoKTtcbiAgICAgICAgZWEucGF0aCA9IHR5cGVvZiBlYS5wYXRoID09PSAnc3RyaW5nJyA/IGVhLnBhdGggOiBKU09OUGF0aC50b1BhdGhTdHJpbmcoZWEucGF0aCk7XG4gICAgICAgIHJldHVybiBlYTtcbiAgICBjYXNlICd2YWx1ZSc6IGNhc2UgJ3BhcmVudCc6IGNhc2UgJ3BhcmVudFByb3BlcnR5JzpcbiAgICAgICAgcmV0dXJuIGVhW3Jlc3VsdFR5cGVdO1xuICAgIGNhc2UgJ3BhdGgnOlxuICAgICAgICByZXR1cm4gSlNPTlBhdGgudG9QYXRoU3RyaW5nKGVhW3Jlc3VsdFR5cGVdKTtcbiAgICBjYXNlICdwb2ludGVyJzpcbiAgICAgICAgcmV0dXJuIEpTT05QYXRoLnRvUG9pbnRlcihlYS5wYXRoKTtcbiAgICB9XG59O1xuXG5KU09OUGF0aC5wcm90b3R5cGUuX2hhbmRsZUNhbGxiYWNrID0gZnVuY3Rpb24gKGZ1bGxSZXRPYmosIGNhbGxiYWNrLCB0eXBlKSB7XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IHByZWZlcnJlZE91dHB1dCA9IHRoaXMuX2dldFByZWZlcnJlZE91dHB1dChmdWxsUmV0T2JqKTtcbiAgICAgICAgZnVsbFJldE9iai5wYXRoID0gdHlwZW9mIGZ1bGxSZXRPYmoucGF0aCA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8gZnVsbFJldE9iai5wYXRoXG4gICAgICAgICAgICA6IEpTT05QYXRoLnRvUGF0aFN0cmluZyhmdWxsUmV0T2JqLnBhdGgpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgICAgIGNhbGxiYWNrKHByZWZlcnJlZE91dHB1dCwgdHlwZSwgZnVsbFJldE9iaik7XG4gICAgfVxufTtcblxuSlNPTlBhdGgucHJvdG90eXBlLl90cmFjZSA9IGZ1bmN0aW9uIChcbiAgICBleHByLCB2YWwsIHBhdGgsIHBhcmVudCwgcGFyZW50UHJvcE5hbWUsIGNhbGxiYWNrLCBsaXRlcmFsUHJpb3JpdHlcbikge1xuICAgIC8vIE5vIGV4cHIgdG8gZm9sbG93PyByZXR1cm4gcGF0aCBhbmQgdmFsdWUgYXMgdGhlIHJlc3VsdCBvZiB0aGlzIHRyYWNlIGJyYW5jaFxuICAgIGxldCByZXRPYmo7XG4gICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgaWYgKCFleHByLmxlbmd0aCkge1xuICAgICAgICByZXRPYmogPSB7cGF0aDogcGF0aCwgdmFsdWU6IHZhbCwgcGFyZW50OiBwYXJlbnQsIHBhcmVudFByb3BlcnR5OiBwYXJlbnRQcm9wTmFtZX07XG4gICAgICAgIHRoaXMuX2hhbmRsZUNhbGxiYWNrKHJldE9iaiwgY2FsbGJhY2ssICd2YWx1ZScpO1xuICAgICAgICByZXR1cm4gcmV0T2JqO1xuICAgIH1cblxuICAgIGNvbnN0IGxvYyA9IGV4cHJbMF0sIHggPSBleHByLnNsaWNlKDEpO1xuXG4gICAgLy8gV2UgbmVlZCB0byBnYXRoZXIgdGhlIHJldHVybiB2YWx1ZSBvZiByZWN1cnNpdmUgdHJhY2UgY2FsbHMgaW4gb3JkZXIgdG9cbiAgICAvLyBkbyB0aGUgcGFyZW50IHNlbCBjb21wdXRhdGlvbi5cbiAgICBjb25zdCByZXQgPSBbXTtcbiAgICBmdW5jdGlvbiBhZGRSZXQgKGVsZW1zKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVsZW1zKSkge1xuICAgICAgICAgICAgLy8gVGhpcyB3YXMgY2F1c2luZyBleGNlc3NpdmUgc3RhY2sgc2l6ZSBpbiBOb2RlICh3aXRoIG9yIHdpdGhvdXQgQmFiZWwpIGFnYWluc3Qgb3VyIHBlcmZvcm1hbmNlIHRlc3Q6IGByZXQucHVzaCguLi5lbGVtcyk7YFxuICAgICAgICAgICAgZWxlbXMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldC5wdXNoKHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXQucHVzaChlbGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoKHR5cGVvZiBsb2MgIT09ICdzdHJpbmcnIHx8IGxpdGVyYWxQcmlvcml0eSkgJiYgdmFsICYmXG4gICAgICAgIGhhc093blByb3AuY2FsbCh2YWwsIGxvYylcbiAgICApIHsgLy8gc2ltcGxlIGNhc2UtLWRpcmVjdGx5IGZvbGxvdyBwcm9wZXJ0eVxuICAgICAgICBhZGRSZXQodGhpcy5fdHJhY2UoeCwgdmFsW2xvY10sIHB1c2gocGF0aCwgbG9jKSwgdmFsLCBsb2MsIGNhbGxiYWNrKSk7XG4gICAgfSBlbHNlIGlmIChsb2MgPT09ICcqJykgeyAvLyBhbGwgY2hpbGQgcHJvcGVydGllc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93XG4gICAgICAgIHRoaXMuX3dhbGsobG9jLCB4LCB2YWwsIHBhdGgsIHBhcmVudCwgcGFyZW50UHJvcE5hbWUsIGNhbGxiYWNrLCBmdW5jdGlvbiAobSwgbCwgeCwgdiwgcCwgcGFyLCBwciwgY2IpIHtcbiAgICAgICAgICAgIGFkZFJldCh0aGF0Ll90cmFjZSh1bnNoaWZ0KG0sIHgpLCB2LCBwLCBwYXIsIHByLCBjYiwgdHJ1ZSkpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGxvYyA9PT0gJy4uJykgeyAvLyBhbGwgZGVzY2VuZGVudCBwYXJlbnQgcHJvcGVydGllc1xuICAgICAgICBhZGRSZXQodGhpcy5fdHJhY2UoeCwgdmFsLCBwYXRoLCBwYXJlbnQsIHBhcmVudFByb3BOYW1lLCBjYWxsYmFjaykpOyAvLyBDaGVjayByZW1haW5pbmcgZXhwcmVzc2lvbiB3aXRoIHZhbCdzIGltbWVkaWF0ZSBjaGlsZHJlblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93XG4gICAgICAgIHRoaXMuX3dhbGsobG9jLCB4LCB2YWwsIHBhdGgsIHBhcmVudCwgcGFyZW50UHJvcE5hbWUsIGNhbGxiYWNrLCBmdW5jdGlvbiAobSwgbCwgeCwgdiwgcCwgcGFyLCBwciwgY2IpIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGpvaW4gbSBhbmQgeCBoZXJlIGJlY2F1c2Ugd2Ugb25seSB3YW50IHBhcmVudHMsIG5vdCBzY2FsYXIgdmFsdWVzXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZbbV0gPT09ICdvYmplY3QnKSB7IC8vIEtlZXAgZ29pbmcgd2l0aCByZWN1cnNpdmUgZGVzY2VudCBvbiB2YWwncyBvYmplY3QgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICBhZGRSZXQodGhhdC5fdHJhY2UodW5zaGlmdChsLCB4KSwgdlttXSwgcHVzaChwLCBtKSwgdiwgbSwgY2IpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgLy8gVGhlIHBhcmVudCBzZWwgY29tcHV0YXRpb24gaXMgaGFuZGxlZCBpbiB0aGUgZnJhbWUgYWJvdmUgdXNpbmcgdGhlXG4gICAgLy8gYW5jZXN0b3Igb2JqZWN0IG9mIHZhbFxuICAgIH0gZWxzZSBpZiAobG9jID09PSAnXicpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBub3QgYSBmaW5hbCBlbmRwb2ludCwgc28gd2UgZG8gbm90IGludm9rZSB0aGUgY2FsbGJhY2sgaGVyZVxuICAgICAgICB0aGlzLl9oYXNQYXJlbnRTZWxlY3RvciA9IHRydWU7XG4gICAgICAgIHJldHVybiBwYXRoLmxlbmd0aFxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcGF0aDogcGF0aC5zbGljZSgwLCAtMSksXG4gICAgICAgICAgICAgICAgZXhwcjogeCxcbiAgICAgICAgICAgICAgICBpc1BhcmVudFNlbGVjdG9yOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA6IFtdO1xuICAgIH0gZWxzZSBpZiAobG9jID09PSAnficpIHsgLy8gcHJvcGVydHkgbmFtZVxuICAgICAgICByZXRPYmogPSB7cGF0aDogcHVzaChwYXRoLCBsb2MpLCB2YWx1ZTogcGFyZW50UHJvcE5hbWUsIHBhcmVudDpwYXJlbnQsIHBhcmVudFByb3BlcnR5OiBudWxsfTtcbiAgICAgICAgdGhpcy5faGFuZGxlQ2FsbGJhY2socmV0T2JqLCBjYWxsYmFjaywgJ3Byb3BlcnR5Jyk7XG4gICAgICAgIHJldHVybiByZXRPYmo7XG4gICAgfSBlbHNlIGlmIChsb2MgPT09ICckJykgeyAvLyByb290IG9ubHlcbiAgICAgICAgYWRkUmV0KHRoaXMuX3RyYWNlKHgsIHZhbCwgcGF0aCwgbnVsbCwgbnVsbCwgY2FsbGJhY2spKTtcbiAgICB9IGVsc2UgaWYgKCgvXigtP1xcZCopOigtP1xcZCopOj8oXFxkKikkLykudGVzdChsb2MpKSB7IC8vIFtzdGFydDplbmQ6c3RlcF0gIFB5dGhvbiBzbGljZSBzeW50YXhcbiAgICAgICAgYWRkUmV0KHRoaXMuX3NsaWNlKGxvYywgeCwgdmFsLCBwYXRoLCBwYXJlbnQsIHBhcmVudFByb3BOYW1lLCBjYWxsYmFjaykpO1xuICAgIH0gZWxzZSBpZiAobG9jLmluZGV4T2YoJz8oJykgPT09IDApIHsgLy8gWz8oZXhwcildIChmaWx0ZXJpbmcpXG4gICAgICAgIGlmICh0aGlzLmN1cnJQcmV2ZW50RXZhbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFdmFsIFs/KGV4cHIpXSBwcmV2ZW50ZWQgaW4gSlNPTlBhdGggZXhwcmVzc2lvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93XG4gICAgICAgIHRoaXMuX3dhbGsobG9jLCB4LCB2YWwsIHBhdGgsIHBhcmVudCwgcGFyZW50UHJvcE5hbWUsIGNhbGxiYWNrLCBmdW5jdGlvbiAobSwgbCwgeCwgdiwgcCwgcGFyLCBwciwgY2IpIHtcbiAgICAgICAgICAgIGlmICh0aGF0Ll9ldmFsKGwucmVwbGFjZSgvXlxcP1xcKCguKj8pXFwpJC8sICckMScpLCB2W21dLCBtLCBwLCBwYXIsIHByKSkge1xuICAgICAgICAgICAgICAgIGFkZFJldCh0aGF0Ll90cmFjZSh1bnNoaWZ0KG0sIHgpLCB2LCBwLCBwYXIsIHByLCBjYikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGxvY1swXSA9PT0gJygnKSB7IC8vIFsoZXhwcildIChkeW5hbWljIHByb3BlcnR5L2luZGV4KVxuICAgICAgICBpZiAodGhpcy5jdXJyUHJldmVudEV2YWwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXZhbCBbKGV4cHIpXSBwcmV2ZW50ZWQgaW4gSlNPTlBhdGggZXhwcmVzc2lvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBBcyB0aGlzIHdpbGwgcmVzb2x2ZSB0byBhIHByb3BlcnR5IG5hbWUgKGJ1dCB3ZSBkb24ndCBrbm93IGl0IHlldCksIHByb3BlcnR5IGFuZCBwYXJlbnQgaW5mb3JtYXRpb24gaXMgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBvZiB0aGUgcHJvcGVydHkgdG8gd2hpY2ggdGhpcyBleHByZXNzaW9uIHdpbGwgcmVzb2x2ZVxuICAgICAgICBhZGRSZXQodGhpcy5fdHJhY2UodW5zaGlmdChcbiAgICAgICAgICAgIHRoaXMuX2V2YWwobG9jLCB2YWwsIHBhdGhbcGF0aC5sZW5ndGggLSAxXSwgcGF0aC5zbGljZSgwLCAtMSksIHBhcmVudCwgcGFyZW50UHJvcE5hbWUpLFxuICAgICAgICAgICAgeFxuICAgICAgICApLCB2YWwsIHBhdGgsIHBhcmVudCwgcGFyZW50UHJvcE5hbWUsIGNhbGxiYWNrKSk7XG4gICAgfSBlbHNlIGlmIChsb2NbMF0gPT09ICdAJykgeyAvLyB2YWx1ZSB0eXBlOiBAYm9vbGVhbigpLCBldGMuXG4gICAgICAgIGxldCBhZGRUeXBlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IGxvYy5zbGljZSgxLCAtMik7XG4gICAgICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIHZhbHVlIHR5cGUgJyArIHZhbHVlVHlwZSk7XG4gICAgICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICAgICAgICBpZiAoIXZhbCB8fCAoWydvYmplY3QnLCAnZnVuY3Rpb24nXS5pbmRleE9mKHR5cGVvZiB2YWwpPDApKSB7XG4gICAgICAgICAgICAgICAgYWRkVHlwZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6IGNhc2UgJ3N0cmluZyc6IGNhc2UgJ3VuZGVmaW5lZCc6IGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSB2YWx1ZVR5cGUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSB2YWxpZC10eXBlb2ZcbiAgICAgICAgICAgICAgICBhZGRUeXBlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IHZhbHVlVHlwZSAmJiBpc0Zpbml0ZSh2YWwpKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgdmFsaWQtdHlwZW9mXG4gICAgICAgICAgICAgICAgYWRkVHlwZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbm9uRmluaXRlJzpcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJyAmJiAhaXNGaW5pdGUodmFsKSkge1xuICAgICAgICAgICAgICAgIGFkZFR5cGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgICAgICBpZiAodmFsICYmIHR5cGVvZiB2YWwgPT09IHZhbHVlVHlwZSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHZhbGlkLXR5cGVvZlxuICAgICAgICAgICAgICAgIGFkZFR5cGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICAgICAgICBhZGRUeXBlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdvdGhlcic6XG4gICAgICAgICAgICBhZGRUeXBlID0gdGhpcy5jdXJyT3RoZXJUeXBlQ2FsbGJhY2sodmFsLCBwYXRoLCBwYXJlbnQsIHBhcmVudFByb3BOYW1lKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdpbnRlZ2VyJzpcbiAgICAgICAgICAgIGlmICh2YWwgPT09IE51bWJlcih2YWwpICYmIGlzRmluaXRlKHZhbCkgJiYgISh2YWwgJSAxKSkge1xuICAgICAgICAgICAgICAgIGFkZFR5cGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ251bGwnOlxuICAgICAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGFkZFR5cGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFkZFR5cGUpIHtcbiAgICAgICAgICAgIHJldE9iaiA9IHtwYXRoOiBwYXRoLCB2YWx1ZTogdmFsLCBwYXJlbnQ6IHBhcmVudCwgcGFyZW50UHJvcGVydHk6IHBhcmVudFByb3BOYW1lfTtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZUNhbGxiYWNrKHJldE9iaiwgY2FsbGJhY2ssICd2YWx1ZScpO1xuICAgICAgICAgICAgcmV0dXJuIHJldE9iajtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAobG9jWzBdID09PSAnYCcgJiYgdmFsICYmIGhhc093blByb3AuY2FsbCh2YWwsIGxvYy5zbGljZSgxKSkpIHsgLy8gYC1lc2NhcGVkIHByb3BlcnR5XG4gICAgICAgIGNvbnN0IGxvY1Byb3AgPSBsb2Muc2xpY2UoMSk7XG4gICAgICAgIGFkZFJldCh0aGlzLl90cmFjZSh4LCB2YWxbbG9jUHJvcF0sIHB1c2gocGF0aCwgbG9jUHJvcCksIHZhbCwgbG9jUHJvcCwgY2FsbGJhY2ssIHRydWUpKTtcbiAgICB9IGVsc2UgaWYgKGxvYy5pbmRleE9mKCcsJyk+LTEpIHsgLy8gW25hbWUxLG5hbWUyLC4uLl1cbiAgICAgICAgY29uc3QgcGFydHMgPSBsb2Muc3BsaXQoJywnKTtcbiAgICAgICAgcGFydHMuZm9yRWFjaChmdW5jdGlvbihwYXJ0KXtcbiAgICAgICAgICAgIGFkZFJldCh0aGlzLl90cmFjZSh1bnNoaWZ0KHBhcnQsIHgpLCB2YWwsIHBhdGgsIHBhcmVudCwgcGFyZW50UHJvcE5hbWUsIGNhbGxiYWNrKSk7XG4gICAgICAgIH0uYmluZCh0aGlzKSlcbiAgICB9IGVsc2UgaWYgKCFsaXRlcmFsUHJpb3JpdHkgJiYgdmFsICYmIGhhc093blByb3AuY2FsbCh2YWwsIGxvYykpIHsgLy8gc2ltcGxlIGNhc2UtLWRpcmVjdGx5IGZvbGxvdyBwcm9wZXJ0eVxuICAgICAgICBhZGRSZXQodGhpcy5fdHJhY2UoeCwgdmFsW2xvY10sIHB1c2gocGF0aCwgbG9jKSwgdmFsLCBsb2MsIGNhbGxiYWNrLCB0cnVlKSk7XG4gICAgfVxuXG4gICAgLy8gV2UgY2hlY2sgdGhlIHJlc3VsdGluZyB2YWx1ZXMgZm9yIHBhcmVudCBzZWxlY3Rpb25zLiBGb3IgcGFyZW50XG4gICAgLy8gc2VsZWN0aW9ucyB3ZSBkaXNjYXJkIHRoZSB2YWx1ZSBvYmplY3QgYW5kIGNvbnRpbnVlIHRoZSB0cmFjZSB3aXRoIHRoZVxuICAgIC8vIGN1cnJlbnQgdmFsIG9iamVjdFxuICAgIGlmICh0aGlzLl9oYXNQYXJlbnRTZWxlY3Rvcikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby1mb3ItbG9vcFxuICAgICAgICBmb3IgKGxldCB0ID0gMDsgdCA8IHJldC5sZW5ndGg7IHQrKykge1xuICAgICAgICAgICAgY29uc3QgcmV0dCA9IHJldFt0XTtcbiAgICAgICAgICAgIGlmIChyZXR0LmlzUGFyZW50U2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSB0aGF0Ll90cmFjZShcbiAgICAgICAgICAgICAgICAgICAgcmV0dC5leHByLCB2YWwsIHJldHQucGF0aCwgcGFyZW50LCBwYXJlbnRQcm9wTmFtZSwgY2FsbGJhY2tcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRtcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0W3RdID0gdG1wWzBdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bCA9IHRtcC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHR0ID0gMTsgdHQgPCB0bDsgdHQrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0LnNwbGljZSh0LCAwLCB0bXBbdHRdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldFt0XSA9IHRtcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xufTtcblxuSlNPTlBhdGgucHJvdG90eXBlLl93YWxrID0gZnVuY3Rpb24gKGxvYywgZXhwciwgdmFsLCBwYXRoLCBwYXJlbnQsIHBhcmVudFByb3BOYW1lLCBjYWxsYmFjaywgZikge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgY29uc3QgbiA9IHZhbC5sZW5ndGg7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBmKGksIGxvYywgZXhwciwgdmFsLCBwYXRoLCBwYXJlbnQsIHBhcmVudFByb3BOYW1lLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGZvciAodmFyIG0gaW4gdmFsKSB7IC8vIG9yaWdpbmFsbHkgbSBkZWNsYXJlZCBhcyBgY29uc3RgLCBidXQgdGhpcyBpcyBub3QgYWxsb3dlZCBpbiBSaGlub1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AuY2FsbCh2YWwsIG0pKSB7XG4gICAgICAgICAgICAgICAgZihtLCBsb2MsIGV4cHIsIHZhbCwgcGF0aCwgcGFyZW50LCBwYXJlbnRQcm9wTmFtZSwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuSlNPTlBhdGgucHJvdG90eXBlLl9zbGljZSA9IGZ1bmN0aW9uIChsb2MsIGV4cHIsIHZhbCwgcGF0aCwgcGFyZW50LCBwYXJlbnRQcm9wTmFtZSwgY2FsbGJhY2spIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gICAgY29uc3QgbGVuID0gdmFsLmxlbmd0aCwgcGFydHMgPSBsb2Muc3BsaXQoJzonKSxcbiAgICAgICAgc3RlcCA9IChwYXJ0c1syXSAmJiBwYXJzZUludChwYXJ0c1syXSkpIHx8IDE7XG4gICAgbGV0IHN0YXJ0ID0gKHBhcnRzWzBdICYmIHBhcnNlSW50KHBhcnRzWzBdKSkgfHwgMCxcbiAgICAgICAgZW5kID0gKHBhcnRzWzFdICYmIHBhcnNlSW50KHBhcnRzWzFdKSkgfHwgbGVuO1xuICAgIHN0YXJ0ID0gKHN0YXJ0IDwgMCkgPyBNYXRoLm1heCgwLCBzdGFydCArIGxlbikgOiBNYXRoLm1pbihsZW4sIHN0YXJ0KTtcbiAgICBlbmQgPSAoZW5kIDwgMCkgPyBNYXRoLm1heCgwLCBlbmQgKyBsZW4pIDogTWF0aC5taW4obGVuLCBlbmQpO1xuICAgIGNvbnN0IHJldCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IGVuZDsgaSArPSBzdGVwKSB7XG4gICAgICAgIGxldCB0bXAgPSB0aGlzLl90cmFjZSh1bnNoaWZ0KGksIGV4cHIpLCB2YWwsIHBhdGgsIHBhcmVudCwgcGFyZW50UHJvcE5hbWUsIGNhbGxiYWNrKTsvLyBvcmlnaW5hbGx5IGRlY2xhcmVkIGFzIGBjb25zdGAsIHRoaXMgZG9lc24ndCB3b3JrIGluIFJoaW5vXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRtcCkpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgd2FzIGNhdXNpbmcgZXhjZXNzaXZlIHN0YWNrIHNpemUgaW4gTm9kZSAod2l0aCBvciB3aXRob3V0IEJhYmVsKSBhZ2FpbnN0IG91ciBwZXJmb3JtYW5jZSB0ZXN0OiBgcmV0LnB1c2goLi4udG1wKTtgXG4gICAgICAgICAgICB0bXAuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldC5wdXNoKHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXQucHVzaCh0bXApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG59O1xuXG5KU09OUGF0aC5wcm90b3R5cGUuX2V2YWwgPSBmdW5jdGlvbiAoY29kZSwgX3YsIF92bmFtZSwgcGF0aCwgcGFyZW50LCBwYXJlbnRQcm9wTmFtZSkge1xuICAgIGlmICghdGhpcy5fb2JqIHx8ICFfdikgeyByZXR1cm4gZmFsc2U7IH1cbiAgICBpZiAoY29kZS5pbmRleE9mKCdAcGFyZW50UHJvcGVydHknKT4tMSkge1xuICAgICAgICB0aGlzLmN1cnJTYW5kYm94Ll8kX3BhcmVudFByb3BlcnR5ID0gcGFyZW50UHJvcE5hbWU7XG4gICAgICAgIGNvZGUgPSBjb2RlLnJlcGxhY2UoL0BwYXJlbnRQcm9wZXJ0eS9nLCAnXyRfcGFyZW50UHJvcGVydHknKTtcbiAgICB9XG4gICAgaWYgKGNvZGUuaW5kZXhPZignQHBhcmVudCcpPi0xKSB7XG4gICAgICAgIHRoaXMuY3VyclNhbmRib3guXyRfcGFyZW50ID0gcGFyZW50O1xuICAgICAgICBjb2RlID0gY29kZS5yZXBsYWNlKC9AcGFyZW50L2csICdfJF9wYXJlbnQnKTtcbiAgICB9XG4gICAgaWYgKGNvZGUuaW5kZXhPZignQHByb3BlcnR5Jyk+LTEpIHtcbiAgICAgICAgdGhpcy5jdXJyU2FuZGJveC5fJF9wcm9wZXJ0eSA9IF92bmFtZTtcbiAgICAgICAgY29kZSA9IGNvZGUucmVwbGFjZSgvQHByb3BlcnR5L2csICdfJF9wcm9wZXJ0eScpO1xuICAgIH1cbiAgICBpZiAoY29kZS5pbmRleE9mKCdAcGF0aCcpPi0xKSB7XG4gICAgICAgIHRoaXMuY3VyclNhbmRib3guXyRfcGF0aCA9IEpTT05QYXRoLnRvUGF0aFN0cmluZyhwYXRoLmNvbmNhdChbX3ZuYW1lXSkpO1xuICAgICAgICBjb2RlID0gY29kZS5yZXBsYWNlKC9AcGF0aC9nLCAnXyRfcGF0aCcpO1xuICAgIH1cbiAgICBpZiAoY29kZS5tYXRjaCgvQChbLlxccylbXSkvKSkge1xuICAgICAgICB0aGlzLmN1cnJTYW5kYm94Ll8kX3YgPSBfdjtcbiAgICAgICAgY29kZSA9IGNvZGUucmVwbGFjZSgvQChbLlxccylbXSkvZywgJ18kX3YkMScpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gdm0ucnVuSW5OZXdDb250ZXh0KGNvZGUsIHRoaXMuY3VyclNhbmRib3gpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignanNvblBhdGg6ICcgKyBlLm1lc3NhZ2UgKyAnOiAnICsgY29kZSk7XG4gICAgfVxufTtcblxuLy8gUFVCTElDIENMQVNTIFBST1BFUlRJRVMgQU5EIE1FVEhPRFNcblxuLy8gQ291bGQgc3RvcmUgdGhlIGNhY2hlIG9iamVjdCBpdHNlbGZcbkpTT05QYXRoLmNhY2hlID0ge307XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aEFyciBBcnJheSB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcGF0aCBzdHJpbmdcbiAqL1xuSlNPTlBhdGgudG9QYXRoU3RyaW5nID0gZnVuY3Rpb24gKHBhdGhBcnIpIHtcbiAgICBjb25zdCB4ID0gcGF0aEFyciwgbiA9IHgubGVuZ3RoO1xuICAgIGxldCBwID0gJyQnO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIGlmICghKC9eKH58XFxefEAuKj9cXChcXCkpJC8pLnRlc3QoeFtpXSkpIHtcbiAgICAgICAgICAgIHAgKz0gKC9eWzAtOSpdKyQvKS50ZXN0KHhbaV0pID8gKCdbJyArIHhbaV0gKyAnXScpIDogKFwiWydcIiArIHhbaV0gKyBcIiddXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gcG9pbnRlciBKU09OIFBhdGhcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEpTT04gUG9pbnRlclxuICovXG5KU09OUGF0aC50b1BvaW50ZXIgPSBmdW5jdGlvbiAocG9pbnRlcikge1xuICAgIGNvbnN0IHggPSBwb2ludGVyLCBuID0geC5sZW5ndGg7XG4gICAgbGV0IHAgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IG47IGkrKykge1xuICAgICAgICBpZiAoISgvXih+fFxcXnxALio/XFwoXFwpKSQvKS50ZXN0KHhbaV0pKSB7XG4gICAgICAgICAgICBwICs9ICcvJyArIHhbaV0udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9+L2csICd+MCcpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnfjEnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcDtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGV4cHIgRXhwcmVzc2lvbiB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyB7c3RyaW5nW119XG4gKi9cbkpTT05QYXRoLnRvUGF0aEFycmF5ID0gZnVuY3Rpb24gKGV4cHIpIHtcbiAgICBjb25zdCB7Y2FjaGV9ID0gSlNPTlBhdGg7XG4gICAgaWYgKGNhY2hlW2V4cHJdKSB7IHJldHVybiBjYWNoZVtleHByXS5jb25jYXQoKTsgfVxuICAgIGNvbnN0IHN1YnggPSBbXTtcbiAgICBjb25zdCBub3JtYWxpemVkID0gZXhwclxuICAgICAgICAvLyBQcm9wZXJ0aWVzXG4gICAgICAgIC5yZXBsYWNlKFxuICAgICAgICAgICAgL0AoPzpudWxsfGJvb2xlYW58bnVtYmVyfHN0cmluZ3xpbnRlZ2VyfHVuZGVmaW5lZHxub25GaW5pdGV8c2NhbGFyfGFycmF5fG9iamVjdHxmdW5jdGlvbnxvdGhlcilcXChcXCkvZyxcbiAgICAgICAgICAgICc7JCY7J1xuICAgICAgICApXG4gICAgICAgIC8vIFBhcmVudGhldGljYWwgZXZhbHVhdGlvbnMgKGZpbHRlcmluZyBhbmQgb3RoZXJ3aXNlKSwgZGlyZWN0bHlcbiAgICAgICAgLy8gICB3aXRoaW4gYnJhY2tldHMgb3Igc2luZ2xlIHF1b3Rlc1xuICAgICAgICAucmVwbGFjZSgvW1snXShcXD8/XFwoLio/XFwpKVtcXF0nXS9nLCBmdW5jdGlvbiAoJDAsICQxKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1sjJyArIChzdWJ4LnB1c2goJDEpIC0gMSkgKyAnXSc7XG4gICAgICAgIH0pXG4gICAgICAgIC8vIEVzY2FwZSBwZXJpb2RzIGFuZCB0aWxkZXMgd2l0aGluIHByb3BlcnRpZXNcbiAgICAgICAgLnJlcGxhY2UoL1xcWycoW14nXFxdXSopJ1xcXS9nLCBmdW5jdGlvbiAoJDAsIHByb3ApIHtcbiAgICAgICAgICAgIHJldHVybiBcIlsnXCIgKyBwcm9wXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcLi9nLCAnJUAlJylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvfi9nLCAnJSVAQCUlJykgK1xuICAgICAgICAgICAgICAgIFwiJ11cIjtcbiAgICAgICAgfSlcbiAgICAgICAgLy8gUHJvcGVydGllcyBvcGVyYXRvclxuICAgICAgICAucmVwbGFjZSgvfi9nLCAnO347JylcbiAgICAgICAgLy8gU3BsaXQgYnkgcHJvcGVydHkgYm91bmRhcmllc1xuICAgICAgICAucmVwbGFjZSgvJz9cXC4nPyg/IVteW10qXFxdKXxcXFsnPy9nLCAnOycpXG4gICAgICAgIC8vIFJlaW5zZXJ0IHBlcmlvZHMgd2l0aGluIHByb3BlcnRpZXNcbiAgICAgICAgLnJlcGxhY2UoLyVAJS9nLCAnLicpXG4gICAgICAgIC8vIFJlaW5zZXJ0IHRpbGRlcyB3aXRoaW4gcHJvcGVydGllc1xuICAgICAgICAucmVwbGFjZSgvJSVAQCUlL2csICd+JylcbiAgICAgICAgLy8gUGFyZW50XG4gICAgICAgIC5yZXBsYWNlKC8oPzo7KT8oXFxeKykoPzo7KT8vZywgZnVuY3Rpb24gKCQwLCB1cHMpIHtcbiAgICAgICAgICAgIHJldHVybiAnOycgKyB1cHMuc3BsaXQoJycpLmpvaW4oJzsnKSArICc7JztcbiAgICAgICAgfSlcbiAgICAgICAgLy8gRGVzY2VuZGVudHNcbiAgICAgICAgLnJlcGxhY2UoLzs7O3w7Oy9nLCAnOy4uOycpXG4gICAgICAgIC8vIFJlbW92ZSB0cmFpbGluZ1xuICAgICAgICAucmVwbGFjZSgvOyR8Jz9cXF18JyQvZywgJycpO1xuXG4gICAgY29uc3QgZXhwckxpc3QgPSBub3JtYWxpemVkLnNwbGl0KCc7JykubWFwKGZ1bmN0aW9uIChleHApIHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBleHAubWF0Y2goLyMoXFxkKykvKTtcbiAgICAgICAgcmV0dXJuICFtYXRjaCB8fCAhbWF0Y2hbMV0gPyBleHAgOiBzdWJ4W21hdGNoWzFdXTtcbiAgICB9KTtcbiAgICBjYWNoZVtleHByXSA9IGV4cHJMaXN0O1xuICAgIHJldHVybiBjYWNoZVtleHByXTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEpTT05QYXRoO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSxNQUFNLGFBQWE7QUFDbkIsTUFBTSxxQkFBcUIsQ0FBQyxTQUFTLFFBQVEsV0FBVyxVQUFVLGtCQUFrQixLQUFLO0FBQ3pGLE1BQU0sRUFBQyxnQkFBZ0IsV0FBVSxJQUFJLE9BQU87QUFVNUMsTUFBTSxxQkFBcUIsU0FBVSxRQUFRLFFBQVEsYUFBYTtBQUM5RCxRQUFNLEtBQUssT0FBTztBQUNsQixXQUFTLElBQUksR0FBRyxJQUFJLElBQUksS0FBSztBQUN6QixVQUFNLE9BQU8sT0FBTyxDQUFDO0FBQ3JCLFFBQUksWUFBWSxJQUFJLEdBQUc7QUFDbkIsYUFBTyxLQUFLLE9BQU8sT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7QUFBQSxJQUN4QztBQUFBLEVBQ0o7QUFDSjtBQUVBLE1BQU0sS0FBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1ILGdCQUFpQixNQUFNLFNBQVM7QUFDNUIsVUFBTSxPQUFPLE9BQU8sS0FBSyxPQUFPO0FBQ2hDLFVBQU0sUUFBUSxDQUFDO0FBQ2YsdUJBQW1CLE1BQU0sT0FBTyxDQUFDLFFBQVE7QUFDckMsYUFBTyxPQUFPLFFBQVEsR0FBRyxNQUFNO0FBQUEsSUFDbkMsQ0FBQztBQUNELFVBQU0sT0FBTyxNQUFNLE9B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
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var qrcode_exports = {};
|
|
19
|
+
__export(qrcode_exports, {
|
|
20
|
+
QRCode: () => QRCode
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(qrcode_exports);
|
|
23
|
+
var import_bytes = require("@aerokit/sdk/io/bytes");
|
|
24
|
+
const QRCodeFacade = Java.type("org.eclipse.dirigible.components.api.utils.QRCodeFacade");
|
|
25
|
+
class QRCode {
|
|
26
|
+
/**
|
|
27
|
+
* Generates a QR code image byte array from the given text.
|
|
28
|
+
* The returned byte array represents the image data (e.g., PNG or JPEG format,
|
|
29
|
+
* depending on the native implementation's default output).
|
|
30
|
+
*
|
|
31
|
+
* @param text The string content to be encoded in the QR code.
|
|
32
|
+
* @returns A **JavaScript byte array (any[])** containing the raw QR code image data.
|
|
33
|
+
*/
|
|
34
|
+
static generateQRCode(text) {
|
|
35
|
+
return import_bytes.Bytes.toJavaScriptBytes(QRCodeFacade.generateQRCode(text));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (typeof module !== "undefined") {
|
|
39
|
+
module.exports = QRCode;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWxzL3FyY29kZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgQnl0ZXMgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2lvL2J5dGVzXCI7XG5jb25zdCBRUkNvZGVGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkudXRpbHMuUVJDb2RlRmFjYWRlXCIpO1xuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIGdlbmVyYXRpbmcgUVIgY29kZXMuXG4gKiBJdCB1c2VzIHRoZSB1bmRlcmx5aW5nIG5hdGl2ZSBKYXZhIFFSQ29kZUZhY2FkZSB0byBjb252ZXJ0IHRleHQgaW50b1xuICogYSBRUiBjb2RlIGltYWdlIHJlcHJlc2VudGVkIGFzIGEgcmF3IGJ5dGUgYXJyYXkuXG4gKi9cbmV4cG9ydCBjbGFzcyBRUkNvZGUge1xuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgUVIgY29kZSBpbWFnZSBieXRlIGFycmF5IGZyb20gdGhlIGdpdmVuIHRleHQuXG4gICAgICogVGhlIHJldHVybmVkIGJ5dGUgYXJyYXkgcmVwcmVzZW50cyB0aGUgaW1hZ2UgZGF0YSAoZS5nLiwgUE5HIG9yIEpQRUcgZm9ybWF0LFxuICAgICAqIGRlcGVuZGluZyBvbiB0aGUgbmF0aXZlIGltcGxlbWVudGF0aW9uJ3MgZGVmYXVsdCBvdXRwdXQpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyBjb250ZW50IHRvIGJlIGVuY29kZWQgaW4gdGhlIFFSIGNvZGUuXG4gICAgICogQHJldHVybnMgQSAqKkphdmFTY3JpcHQgYnl0ZSBhcnJheSAoYW55W10pKiogY29udGFpbmluZyB0aGUgcmF3IFFSIGNvZGUgaW1hZ2UgZGF0YS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlUVJDb2RlKHRleHQ6IHN0cmluZyk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIEJ5dGVzLnRvSmF2YVNjcmlwdEJ5dGVzKFFSQ29kZUZhY2FkZS5nZW5lcmF0ZVFSQ29kZSh0ZXh0KSk7XG4gICAgfVxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbW9kdWxlLmV4cG9ydHMgPSBRUkNvZGU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFBc0I7QUFDdEIsTUFBTSxlQUFlLEtBQUssS0FBSyx5REFBeUQ7QUFPakYsTUFBTSxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBVWhCLE9BQWMsZUFBZSxNQUFxQjtBQUM5QyxXQUFPLG1CQUFNLGtCQUFrQixhQUFhLGVBQWUsSUFBSSxDQUFDO0FBQUEsRUFDcEU7QUFDSjtBQUdBLElBQUksT0FBTyxXQUFXLGFBQWE7QUFFL0IsU0FBTyxVQUFVO0FBQ3JCOyIsCiAgIm5hbWVzIjogW10KfQo=
|