@pipeline-builder/api-core 5.2.6 → 5.2.8
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/lib/constants/ai-providers.js +1 -1
- package/lib/constants/http-status.js +1 -1
- package/lib/constants/index.js +1 -1
- package/lib/constants/time.js +1 -1
- package/lib/errors/app-errors.js +1 -1
- package/lib/errors/index.js +1 -1
- package/lib/helpers/access-helpers.d.ts +19 -0
- package/lib/helpers/access-helpers.js +24 -4
- package/lib/helpers/content-disposition.js +1 -1
- package/lib/helpers/crud-helpers.js +1 -1
- package/lib/helpers/index.d.ts +1 -1
- package/lib/helpers/index.js +2 -2
- package/lib/helpers/org-hierarchy-http.js +1 -1
- package/lib/helpers/org-hierarchy.js +1 -1
- package/lib/helpers/restore-helpers.js +1 -1
- package/lib/helpers/sse-helpers.js +13 -2
- package/lib/helpers/support-calendar.js +1 -1
- package/lib/index.js +1 -1
- package/lib/middleware/ask-provenance.js +1 -1
- package/lib/middleware/assurance.js +1 -1
- package/lib/middleware/auth.js +3 -2
- package/lib/middleware/client-version.d.ts +45 -0
- package/lib/middleware/client-version.js +97 -0
- package/lib/middleware/deferred-quota-check.js +1 -1
- package/lib/middleware/ecosystem-guard.js +1 -1
- package/lib/middleware/index.d.ts +1 -0
- package/lib/middleware/index.js +2 -1
- package/lib/middleware/jwt-verify.js +1 -1
- package/lib/middleware/mongo-sanitize.js +1 -1
- package/lib/middleware/on-behalf.js +1 -1
- package/lib/middleware/permission-gates.js +1 -1
- package/lib/middleware/quota-exempt-routes.js +1 -1
- package/lib/middleware/revocation.js +1 -1
- package/lib/middleware/route-table.js +16 -1
- package/lib/middleware/service-tokens.js +1 -1
- package/lib/middleware/step-up.js +1 -1
- package/lib/middleware/system-org.d.ts +18 -5
- package/lib/middleware/system-org.js +19 -6
- package/lib/openapi/extend-zod.js +1 -1
- package/lib/openapi/index.js +1 -1
- package/lib/openapi/registry.js +1 -1
- package/lib/openapi/routes/ask-routes.js +1 -1
- package/lib/openapi/routes/billing-routes.js +1 -1
- package/lib/openapi/routes/image-registry-routes.js +1 -1
- package/lib/openapi/routes/index.js +1 -1
- package/lib/openapi/routes/message-routes.js +1 -1
- package/lib/openapi/routes/pipeline-routes.js +1 -1
- package/lib/openapi/routes/pipeline-template-routes.js +1 -1
- package/lib/openapi/routes/plugin-routes.js +1 -1
- package/lib/openapi/routes/quota-routes.js +1 -1
- package/lib/openapi/schema-registry.js +1 -1
- package/lib/routes/health.js +1 -1
- package/lib/routes/index.js +1 -1
- package/lib/services/ai-call-weight.js +1 -1
- package/lib/services/alert-delivery.js +1 -1
- package/lib/services/api-key-exchange.d.ts +4 -2
- package/lib/services/api-key-exchange.js +15 -8
- package/lib/services/audit-context.d.ts +3 -0
- package/lib/services/audit-context.js +2 -1
- package/lib/services/audit-spool.js +1 -1
- package/lib/services/cache-service.js +1 -1
- package/lib/services/circuit-breaker.js +1 -1
- package/lib/services/compliance-client.js +1 -1
- package/lib/services/compliance-event-subscriber.js +1 -1
- package/lib/services/durable-event-bus.js +1 -1
- package/lib/services/ecosystem-notify-client.d.ts +7 -1
- package/lib/services/ecosystem-notify-client.js +9 -3
- package/lib/services/entity-events.js +1 -1
- package/lib/services/env-redis.js +1 -1
- package/lib/services/http-client.js +19 -3
- package/lib/services/index.d.ts +1 -1
- package/lib/services/index.js +2 -2
- package/lib/services/jwks-cache.js +1 -1
- package/lib/services/leader-lock.js +1 -1
- package/lib/services/notification-channels.js +1 -1
- package/lib/services/org-ai-client.js +1 -1
- package/lib/services/pagerduty-inbound.js +1 -1
- package/lib/services/pagerduty.js +1 -1
- package/lib/services/quota-increment-batcher.js +1 -1
- package/lib/services/quota.js +1 -1
- package/lib/services/remote-audit-client.js +1 -1
- package/lib/services/retry-forever.js +1 -1
- package/lib/services/retry-strategy.js +1 -1
- package/lib/services/s3-client.js +1 -1
- package/lib/services/scheduler.js +1 -1
- package/lib/services/service-boot.js +1 -1
- package/lib/services/service-keys.js +2 -2
- package/lib/services/sse-ticket-store.js +1 -1
- package/lib/services/system-notification.js +1 -1
- package/lib/services/token-revocation.js +1 -1
- package/lib/services/version-vuln-policy.d.ts +11 -0
- package/lib/services/version-vuln-policy.js +33 -7
- package/lib/types/ai-catalog.js +1 -1
- package/lib/types/ask-proposals.d.ts +23 -0
- package/lib/types/ask-proposals.js +29 -1
- package/lib/types/audit-events.js +1 -1
- package/lib/types/build-catalog.d.ts +65 -0
- package/lib/types/build-catalog.js +95 -1
- package/lib/types/catalog-metadata.js +1 -1
- package/lib/types/common.js +1 -1
- package/lib/types/compliance-exemption.js +1 -1
- package/lib/types/ecosystem-notifications.d.ts +9 -0
- package/lib/types/ecosystem-notifications.js +15 -6
- package/lib/types/ecosystem.d.ts +1 -6
- package/lib/types/ecosystem.js +18 -5
- package/lib/types/error-codes.d.ts +3 -0
- package/lib/types/error-codes.js +6 -1
- package/lib/types/feature-flags.d.ts +17 -1
- package/lib/types/feature-flags.js +1 -1
- package/lib/types/http.js +1 -1
- package/lib/types/index.d.ts +3 -3
- package/lib/types/index.js +4 -4
- package/lib/types/metadata-keys.js +1 -1
- package/lib/types/permissions.d.ts +60 -13
- package/lib/types/permissions.js +63 -14
- package/lib/types/pipeline-template.js +1 -1
- package/lib/types/pipeline.js +1 -1
- package/lib/types/plugin-catalog.js +1 -1
- package/lib/types/plugin-health.js +1 -1
- package/lib/types/plugin-scan.d.ts +69 -0
- package/lib/types/plugin-scan.js +77 -1
- package/lib/types/quota-catalog.js +15 -2
- package/lib/types/quota-tiers.d.ts +27 -160
- package/lib/types/quota-tiers.js +47 -255
- package/lib/types/remote-audit-actions.d.ts +1 -1
- package/lib/types/remote-audit-actions.js +9 -1
- package/lib/types/reserved-tags.js +1 -1
- package/lib/types/tier-limits.d.ts +210 -0
- package/lib/types/tier-limits.js +254 -0
- package/lib/types/usage-projection.js +1 -1
- package/lib/types/visibility.js +1 -1
- package/lib/types/wire-vocabulary.d.ts +7 -0
- package/lib/types/wire-vocabulary.js +7 -1
- package/lib/utils/alias-resolver.js +1 -1
- package/lib/utils/api-key.js +1 -1
- package/lib/utils/audit.js +1 -1
- package/lib/utils/aws-scrub.js +1 -1
- package/lib/utils/compliance-attributes.js +1 -1
- package/lib/utils/concurrency-gate.d.ts +98 -0
- package/lib/utils/concurrency-gate.js +110 -0
- package/lib/utils/concurrency.js +1 -1
- package/lib/utils/crash-handlers.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/dsse.js +1 -1
- package/lib/utils/env.d.ts +11 -0
- package/lib/utils/env.js +14 -1
- package/lib/utils/headers.js +1 -1
- package/lib/utils/identity.js +1 -1
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +3 -1
- package/lib/utils/jwk.js +2 -2
- package/lib/utils/logger.js +1 -1
- package/lib/utils/metric-emitter.js +1 -1
- package/lib/utils/object.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/plugin-compliance.d.ts +9 -1
- package/lib/utils/plugin-compliance.js +1 -1
- package/lib/utils/proof-of-work.js +1 -1
- package/lib/utils/response.js +1 -1
- package/lib/utils/retention.js +1 -1
- package/lib/utils/safe-require.js +1 -1
- package/lib/utils/secret-encryption.js +1 -1
- package/lib/utils/secret-rotation.js +1 -1
- package/lib/utils/secure-compare.js +1 -1
- package/lib/utils/semver.d.ts +18 -0
- package/lib/utils/semver.js +120 -0
- package/lib/utils/sensitive-patterns.js +1 -1
- package/lib/utils/service-registry.js +1 -1
- package/lib/utils/ssrf.js +1 -1
- package/lib/validation/ai-schemas.js +1 -1
- package/lib/validation/common-schemas.js +1 -1
- package/lib/validation/dockerfile-static.js +1 -1
- package/lib/validation/index.d.ts +1 -1
- package/lib/validation/index.js +2 -2
- package/lib/validation/message-schemas.d.ts +73 -0
- package/lib/validation/message-schemas.js +63 -2
- package/lib/validation/middleware.js +1 -1
- package/lib/validation/pipeline-schemas.js +1 -1
- package/lib/validation/pipeline-template-schemas.js +1 -1
- package/lib/validation/plugin-base-images.js +1 -1
- package/lib/validation/plugin-catalog-detect.js +1 -1
- package/lib/validation/plugin-catalog-metadata.js +1 -1
- package/lib/validation/plugin-heuristics.js +1 -1
- package/lib/validation/plugin-lint.js +1 -1
- package/lib/validation/plugin-name-confusable.js +1 -1
- package/lib/validation/plugin-schemas.js +1 -1
- package/lib/validation/plugin-spec-schema.js +1 -1
- package/lib/validation/plugin-template-contract.js +1 -1
- package/package.json +11 -4
|
@@ -65,4 +65,4 @@ export function toComplianceAttributes(value) {
|
|
|
65
65
|
}
|
|
66
66
|
return value; // primitives, Date, null — untouched
|
|
67
67
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxpYW5jZS1hdHRyaWJ1dGVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29tcGxpYW5jZS1hdHRyaWJ1dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSCwwREFBMEQ7QUFDMUQsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDO0FBRTlCLDRFQUE0RTtBQUM1RSxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBRXREOzs7O0dBSUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLEdBQVc7SUFDcEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1dBQ3ZFLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztXQUM1RSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELHVHQUF1RztBQUN2RyxTQUFTLGFBQWEsQ0FBQyxDQUFVO0lBQy9CLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDdEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QyxPQUFPLEtBQUssS0FBSyxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDdEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBYztJQUNuRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkUsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLEdBQUcsR0FBNEIsRUFBRSxDQUFDO1FBQ3hDLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0MsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMvQyx5RUFBeUU7Z0JBQ3pFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUUsQ0FBQztpQkFBTSxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN6RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLHFDQUFxQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogU2VjcmV0LXJlZGFjdGlvbiBmb3IgY29tcGxpYW5jZS1ldmVudCBgYXR0cmlidXRlc2AuXG4gKlxuICogU2hhcmVkIGJ5IHRoZSBwbHVnaW4gQU5EIHBpcGVsaW5lIHNlcnZpY2VzIOKAlCBhIHNlY3VyaXR5LWNyaXRpY2FsIGZ1bmN0aW9uXG4gKiB0aGF0IG11c3Qgbm90IGRyaWZ0OiBhbiBcImFsc28gcmVkYWN0IGBjcmVkZW50aWFsc2BcIiBmaXggaGFzIHRvIHByb3RlY3QgQk9USC4gQm90aCBmZWVkIGVudGl0eVxuICogYXR0cmlidXRlcyB0byB0aGUgY29tcGxpYW5jZSBlbmdpbmUgb3ZlciBSZWRpcywgYW5kIG5laXRoZXIgbWF5IGxlYWsgcGxhaW50ZXh0XG4gKiBzZWNyZXRzIHRoZXJlLlxuICpcbiAqIFRoZSBjb21wbGlhbmNlIHJ1bGUgZW5naW5lIHJlYWRzIHNlY3JldCBtYXBzIChgZW52YC9gYnVpbGRBcmdzYCwgaW5jbC4gbmVzdGVkXG4gKiBgcHJvcHMuc3ludGguZW52YCwgYHByb3BzLnN0YWdlc1tdLnN0ZXBzW10uZW52YCwg4oCmKSBPTkxZIGJ5IEtFWSDigJQgYCRrZXlzKGVudilgLFxuICogYCRjb3VudChlbnYpYCwgZG90LXBhdGggZXhpc3RlbmNlLCBrZXktYGNvbnRhaW5zYCDigJQgbmV2ZXIgYnkgdmFsdWUgKHNlZVxuICogYXBpL2NvbXBsaWFuY2Uvc3JjL2VuZ2luZS9ydWxlLW9wZXJhdG9ycy50cyArIGl0cyB0ZXN0cykuIFNvIHdlIHByZXNlcnZlIGVhY2hcbiAqIHNlY3JldCBtYXAncyBzaGFwZSArIEtFWVMgd2hpbGUgb3ZlcndyaXRpbmcgZXZlcnkgdmFsdWUgd2l0aCBhIG1hcmtlcjsgc2NhbGFyXG4gKiBzZWNyZXQgZmllbGRzIChzb3VyY2UgYHRva2VuYCwgcGFzc3dvcmRzLCDigKYpIGFyZSByZXBsYWNlZCBvdXRyaWdodC4gU3RydWN0dXJlXG4gKiBhbmQgbm9uLXNlY3JldCBtZXRhZGF0YSBwYXNzIHRocm91Z2ggdW5jaGFuZ2VkLCBzbyBydWxlIGV2YWx1YXRpb24gaXNcbiAqIGlkZW50aWNhbCB3aGlsZSBwbGFpbnRleHQgc2VjcmV0cyBuZXZlciByZWFjaCBSZWRpcyBvciB0aGUgY29tcGxpYW5jZSBzZXJ2aWNlLlxuICovXG5cbi8qKiBNYXJrZXIgd3JpdHRlbiBpbiBwbGFjZSBvZiBhIHJlZGFjdGVkIHNlY3JldCBWQUxVRS4gKi9cbmNvbnN0IFJFREFDVEVEID0gJ1tSRURBQ1RFRF0nO1xuXG4vKiogTWFwIGtleXMgd2hvc2UgKHN0cmluZ+KGknN0cmluZykgVkFMVUVTIGFyZSBzZWNyZXQgYnVpbGQtdGltZSBtYXRlcmlhbC4gKi9cbmNvbnN0IFNFQ1JFVF9NQVBfS0VZUyA9IG5ldyBTZXQoWydlbnYnLCAnYnVpbGRBcmdzJ10pO1xuXG4vKipcbiAqIFNjYWxhciBrZXlzIHRoYXQgdGhlbXNlbHZlcyBjYXJyeSBhIHNlY3JldCBzdHJpbmcgKHRva2Vucy9wYXNzd29yZHMvZXRjLikuXG4gKiBBcHBsaWVkIG9ubHkgdG8gc3RyaW5nIHZhbHVlcyBzbyBib29sZWFuIGZsYWdzIGFuZCBkZWNsYXJhdGlvbiBhcnJheXMgKGUuZy5cbiAqIGBzZWNyZXRzOiBQbHVnaW5TZWNyZXRbXWApIGFyZSBsZWZ0IGludGFjdC5cbiAqL1xuZnVuY3Rpb24gaXNTZWNyZXRTY2FsYXJLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgayA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gay5pbmNsdWRlcygndG9rZW4nKSB8fCBrLmluY2x1ZGVzKCdzZWNyZXQnKSB8fCBrLmluY2x1ZGVzKCdwYXNzd29yZCcpXG4gICAgfHwgay5pbmNsdWRlcygncGFzc3BocmFzZScpIHx8IGsuaW5jbHVkZXMoJ2NyZWRlbnRpYWwnKSB8fCBrLmluY2x1ZGVzKCdhcGlrZXknKVxuICAgIHx8IGsuaW5jbHVkZXMoJ2FjY2Vzc2tleScpIHx8IGsuaW5jbHVkZXMoJ3ByaXZhdGVrZXknKTtcbn1cblxuLyoqIE9ubHkgcGxhaW4gKE9iamVjdC1wcm90b3R5cGUpIG9iamVjdHMgYXJlIHRyYXZlcnNlZCDigJQgRGF0ZXMvY2xhc3MgaW5zdGFuY2VzIHBhc3MgdGhyb3VnaCBpbnRhY3QuICovXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KHY6IHVua25vd24pOiB2IGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgaWYgKHYgPT09IG51bGwgfHwgdHlwZW9mIHYgIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHYpO1xuICByZXR1cm4gcHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUgfHwgcHJvdG8gPT09IG51bGw7XG59XG5cbi8qKlxuICogUHJvamVjdCBhbiBlbnRpdHkgaW50byB0aGUgY29tcGxpYW5jZS1ldmVudCBgYXR0cmlidXRlc2AsIHJlZGFjdGluZyBzZWNyZXRcbiAqIFZBTFVFUyB3aGlsZSBwcmVzZXJ2aW5nIGV2ZXJ5dGhpbmcgdGhlIGNvbXBsaWFuY2UgZW5naW5lIGFjdHVhbGx5IGV2YWx1YXRlcy5cbiAqIFJlY3Vyc2VzIHNvIG5lc3RlZCBzZWNyZXRzIChkZWVwIGluc2lkZSBhIHBpcGVsaW5lJ3MgYHByb3BzYCkgYXJlIGNvdmVyZWQgdG9vLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db21wbGlhbmNlQXR0cmlidXRlcyh2YWx1ZTogdW5rbm93bik6IHVua25vd24ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZS5tYXAodG9Db21wbGlhbmNlQXR0cmlidXRlcyk7XG4gIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgIGNvbnN0IG91dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgIGlmIChTRUNSRVRfTUFQX0tFWVMuaGFzKGspICYmIGlzUGxhaW5PYmplY3QodikpIHtcbiAgICAgICAgLy8gUHJlc2VydmUga2V5cyAoY29tcGxpYW5jZSByZWFkcyAka2V5cy8kY291bnQvcHJlc2VuY2UpLCByZWRhY3QgdmFsdWVzLlxuICAgICAgICBvdXRba10gPSBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmtleXModikubWFwKChtaykgPT4gW21rLCBSRURBQ1RFRF0pKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNTZWNyZXRTY2FsYXJLZXkoaykgJiYgdHlwZW9mIHYgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG91dFtrXSA9IFJFREFDVEVEO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0W2tdID0gdG9Db21wbGlhbmNlQXR0cmlidXRlcyh2KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfVxuICByZXR1cm4gdmFsdWU7IC8vIHByaW1pdGl2ZXMsIERhdGUsIG51bGwg4oCUIHVudG91Y2hlZFxufVxuIl19
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A FIFO bound on how many things run at once in ONE process.
|
|
3
|
+
*
|
|
4
|
+
* WHY IT IS SHARED. Two services need the same bound for the same reason: a
|
|
5
|
+
* resource they own is consumed by work several producers queue, and the
|
|
6
|
+
* producers' count is set elsewhere. The image registry signs images (each
|
|
7
|
+
* attest hands cosign a 7-17 MiB SBOM against a 1 GiB container), and a plugin
|
|
8
|
+
* replica runs builds (its six per-tier workers share ONE buildkitd sidecar).
|
|
9
|
+
* Both learned it the same way: 32 concurrent signs OOMKilled the registry and
|
|
10
|
+
* took every push with it, because `/token` is the registry login.
|
|
11
|
+
*
|
|
12
|
+
* The queue hand-off below has one subtlety worth having a single copy of:
|
|
13
|
+
* `release` passes the slot straight to the next waiter instead of decrementing
|
|
14
|
+
* first, because a dip to `limit - 1` would admit an extra caller past the
|
|
15
|
+
* ceiling. That is the kind of off-by-one that a second implementation gets
|
|
16
|
+
* wrong silently.
|
|
17
|
+
*
|
|
18
|
+
* WAITING, NOT REFUSING. Over the limit a caller queues; nothing here refuses or
|
|
19
|
+
* times out. Refusing turns a capacity limit into a failure of the work, which
|
|
20
|
+
* is a mistake this codebase has already paid for once (a per-org build slot
|
|
21
|
+
* that failed terminally after a 30-minute wait lost 80 of 119 plugins). The
|
|
22
|
+
* caller's own deadline is what bounds the wait.
|
|
23
|
+
*/
|
|
24
|
+
export interface ConcurrencyGateOptions {
|
|
25
|
+
/** Read per call, so an env- or config-driven limit can change without a restart. */
|
|
26
|
+
limit: () => number;
|
|
27
|
+
/** Called when a caller has to wait, before it does. */
|
|
28
|
+
onQueued?: (waiting: number, limit: number) => void;
|
|
29
|
+
/** Called whenever occupancy changes, for a gauge. */
|
|
30
|
+
onOccupancy?: (inFlight: number) => void;
|
|
31
|
+
}
|
|
32
|
+
export interface ConcurrencyGate {
|
|
33
|
+
/** Run `fn` holding a slot. */
|
|
34
|
+
run<T>(fn: () => Promise<T>): Promise<T>;
|
|
35
|
+
/** Current occupancy — for metrics and tests. */
|
|
36
|
+
state(): {
|
|
37
|
+
inFlight: number;
|
|
38
|
+
waiting: number;
|
|
39
|
+
};
|
|
40
|
+
/** Test seam: drop a queue left behind by a failed assertion. */
|
|
41
|
+
reset(): void;
|
|
42
|
+
}
|
|
43
|
+
export declare function createConcurrencyGate(opts: ConcurrencyGateOptions): ConcurrencyGate;
|
|
44
|
+
/** Occupancy a {@link KeyedConcurrencyGateOptions.admits} predicate decides on. */
|
|
45
|
+
export interface KeyedOccupancy<K> {
|
|
46
|
+
/** Slots in use across every key. */
|
|
47
|
+
total: number;
|
|
48
|
+
/** Slots in use per key. Keys at zero may be absent. */
|
|
49
|
+
perKey: ReadonlyMap<K, number>;
|
|
50
|
+
}
|
|
51
|
+
export interface KeyedConcurrencyGateOptions<K> {
|
|
52
|
+
/** The TOTAL ceiling, read per call. No key may push occupancy past it. */
|
|
53
|
+
limit: () => number;
|
|
54
|
+
/**
|
|
55
|
+
* May a caller for `key` start right now?
|
|
56
|
+
*
|
|
57
|
+
* Called only when the total ceiling has room, so this expresses the per-key
|
|
58
|
+
* policy alone — a guaranteed floor, a cap, a borrowing allowance. It must be
|
|
59
|
+
* a pure function of the occupancy it is handed: it is re-evaluated on every
|
|
60
|
+
* release, and a predicate that consults anything else (a clock, a counter it
|
|
61
|
+
* mutates) makes admission order unreproducible.
|
|
62
|
+
*/
|
|
63
|
+
admits: (key: K, occupancy: KeyedOccupancy<K>) => boolean;
|
|
64
|
+
onQueued?: (key: K, waiting: number, limit: number) => void;
|
|
65
|
+
onOccupancy?: (occupancy: KeyedOccupancy<K>) => void;
|
|
66
|
+
}
|
|
67
|
+
export interface KeyedConcurrencyGate<K> {
|
|
68
|
+
run<T>(key: K, fn: () => Promise<T>): Promise<T>;
|
|
69
|
+
state(): {
|
|
70
|
+
inFlight: number;
|
|
71
|
+
waiting: number;
|
|
72
|
+
perKey: ReadonlyMap<K, number>;
|
|
73
|
+
};
|
|
74
|
+
reset(): void;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* A FIFO bound with a TOTAL ceiling plus a per-key admission policy.
|
|
78
|
+
*
|
|
79
|
+
* WHY A SECOND SHAPE instead of nesting two of the gates above. Stacking a
|
|
80
|
+
* per-key gate inside the total gate DEADLOCKS: a caller holding a total slot
|
|
81
|
+
* while it waits for a key slot can hold every total slot, and nothing will
|
|
82
|
+
* ever release one. Admission has to be ONE decision, which is what this is.
|
|
83
|
+
*
|
|
84
|
+
* THE HAND-OFF DIFFERS FROM THE COUNT GATE ABOVE, deliberately. There, release
|
|
85
|
+
* passes the slot straight to the head of the queue, because for a pure count
|
|
86
|
+
* any waiter is admissible. Here the head may NOT be — it could be a caller
|
|
87
|
+
* whose key is over its floor while the borrowing allowance is full. So release
|
|
88
|
+
* decrements first and then scans the queue for the first waiter the predicate
|
|
89
|
+
* now admits. Occupancy may therefore dip below the ceiling while callers wait,
|
|
90
|
+
* which is correct: those callers are not admissible, and admitting them anyway
|
|
91
|
+
* is exactly the bound this exists to enforce.
|
|
92
|
+
*
|
|
93
|
+
* ORDER. Relative order is preserved among waiters the predicate admits, so
|
|
94
|
+
* callers sharing a key are strictly FIFO. Across keys it is not: a waiter that
|
|
95
|
+
* cannot start is skipped rather than blocking the queue behind it, which is the
|
|
96
|
+
* point — a blocked borrower must not stall a caller that is within its floor.
|
|
97
|
+
*/
|
|
98
|
+
export declare function createKeyedConcurrencyGate<K>(opts: KeyedConcurrencyGateOptions<K>): KeyedConcurrencyGate<K>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
export function createConcurrencyGate(opts) {
|
|
4
|
+
let inFlight = 0;
|
|
5
|
+
const waiting = [];
|
|
6
|
+
const occupancy = () => opts.onOccupancy?.(inFlight);
|
|
7
|
+
function release() {
|
|
8
|
+
const next = waiting.shift();
|
|
9
|
+
if (next) {
|
|
10
|
+
// Straight hand-off: see the note above about never dipping below the
|
|
11
|
+
// ceiling between a release and the next admission.
|
|
12
|
+
next();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
inFlight -= 1;
|
|
16
|
+
occupancy();
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
async run(fn) {
|
|
20
|
+
const limit = opts.limit();
|
|
21
|
+
if (inFlight >= limit) {
|
|
22
|
+
opts.onQueued?.(waiting.length + 1, limit);
|
|
23
|
+
await new Promise((resolve) => { waiting.push(resolve); });
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
inFlight += 1;
|
|
27
|
+
}
|
|
28
|
+
occupancy();
|
|
29
|
+
try {
|
|
30
|
+
return await fn();
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
release();
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
state: () => ({ inFlight, waiting: waiting.length }),
|
|
37
|
+
reset: () => { inFlight = 0; waiting.length = 0; },
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A FIFO bound with a TOTAL ceiling plus a per-key admission policy.
|
|
42
|
+
*
|
|
43
|
+
* WHY A SECOND SHAPE instead of nesting two of the gates above. Stacking a
|
|
44
|
+
* per-key gate inside the total gate DEADLOCKS: a caller holding a total slot
|
|
45
|
+
* while it waits for a key slot can hold every total slot, and nothing will
|
|
46
|
+
* ever release one. Admission has to be ONE decision, which is what this is.
|
|
47
|
+
*
|
|
48
|
+
* THE HAND-OFF DIFFERS FROM THE COUNT GATE ABOVE, deliberately. There, release
|
|
49
|
+
* passes the slot straight to the head of the queue, because for a pure count
|
|
50
|
+
* any waiter is admissible. Here the head may NOT be — it could be a caller
|
|
51
|
+
* whose key is over its floor while the borrowing allowance is full. So release
|
|
52
|
+
* decrements first and then scans the queue for the first waiter the predicate
|
|
53
|
+
* now admits. Occupancy may therefore dip below the ceiling while callers wait,
|
|
54
|
+
* which is correct: those callers are not admissible, and admitting them anyway
|
|
55
|
+
* is exactly the bound this exists to enforce.
|
|
56
|
+
*
|
|
57
|
+
* ORDER. Relative order is preserved among waiters the predicate admits, so
|
|
58
|
+
* callers sharing a key are strictly FIFO. Across keys it is not: a waiter that
|
|
59
|
+
* cannot start is skipped rather than blocking the queue behind it, which is the
|
|
60
|
+
* point — a blocked borrower must not stall a caller that is within its floor.
|
|
61
|
+
*/
|
|
62
|
+
export function createKeyedConcurrencyGate(opts) {
|
|
63
|
+
let total = 0;
|
|
64
|
+
const perKey = new Map();
|
|
65
|
+
const waiting = [];
|
|
66
|
+
const snapshot = () => ({ total, perKey });
|
|
67
|
+
const occupancy = () => opts.onOccupancy?.(snapshot());
|
|
68
|
+
const bump = (key, by) => {
|
|
69
|
+
const next = (perKey.get(key) ?? 0) + by;
|
|
70
|
+
if (next <= 0)
|
|
71
|
+
perKey.delete(key);
|
|
72
|
+
else
|
|
73
|
+
perKey.set(key, next);
|
|
74
|
+
total += by;
|
|
75
|
+
};
|
|
76
|
+
const admissible = (key) => total < opts.limit() && opts.admits(key, snapshot());
|
|
77
|
+
function release(key) {
|
|
78
|
+
bump(key, -1);
|
|
79
|
+
// Scan in arrival order for the first waiter that may now start. Not the
|
|
80
|
+
// blind hand-off of the count gate — see the note above.
|
|
81
|
+
const index = waiting.findIndex((w) => admissible(w.key));
|
|
82
|
+
if (index !== -1) {
|
|
83
|
+
const [next] = waiting.splice(index, 1);
|
|
84
|
+
bump(next.key, 1);
|
|
85
|
+
next.admit();
|
|
86
|
+
}
|
|
87
|
+
occupancy();
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
async run(key, fn) {
|
|
91
|
+
if (admissible(key)) {
|
|
92
|
+
bump(key, 1);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
opts.onQueued?.(key, waiting.length + 1, opts.limit());
|
|
96
|
+
await new Promise((resolve) => { waiting.push({ key, admit: resolve }); });
|
|
97
|
+
}
|
|
98
|
+
occupancy();
|
|
99
|
+
try {
|
|
100
|
+
return await fn();
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
release(key);
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
state: () => ({ inFlight: total, waiting: waiting.length, perKey }),
|
|
107
|
+
reset: () => { total = 0; perKey.clear(); waiting.length = 0; },
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY3VycmVuY3ktZ2F0ZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbmN1cnJlbmN5LWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQTRDdEMsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQTRCO0lBQ2hFLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixNQUFNLE9BQU8sR0FBc0IsRUFBRSxDQUFDO0lBRXRDLE1BQU0sU0FBUyxHQUFHLEdBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUUzRCxTQUFTLE9BQU87UUFDZCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULHNFQUFzRTtZQUN0RSxvREFBb0Q7WUFDcEQsSUFBSSxFQUFFLENBQUM7WUFDUCxPQUFPO1FBQ1QsQ0FBQztRQUNELFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLEdBQUcsQ0FBSSxFQUFvQjtZQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25FLENBQUM7aUJBQU0sQ0FBQztnQkFDTixRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ2hCLENBQUM7WUFDRCxTQUFTLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQztnQkFDSCxPQUFPLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDcEIsQ0FBQztvQkFBUyxDQUFDO2dCQUNULE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUM7UUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BELEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25ELENBQUM7QUFDSixDQUFDO0FBcUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCLENBQUksSUFBb0M7SUFDaEYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWEsQ0FBQztJQUNwQyxNQUFNLE9BQU8sR0FBeUMsRUFBRSxDQUFDO0lBRXpELE1BQU0sUUFBUSxHQUFHLEdBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDOUQsTUFBTSxTQUFTLEdBQUcsR0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFN0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFNLEVBQUUsRUFBVSxFQUFRLEVBQUU7UUFDeEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN6QyxJQUFJLElBQUksSUFBSSxDQUFDO1lBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzs7WUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RCxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFNLEVBQVcsRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUU3RixTQUFTLE9BQU8sQ0FBQyxHQUFNO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNkLHlFQUF5RTtRQUN6RSx5REFBeUQ7UUFDekQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLEdBQUcsQ0FBSSxHQUFNLEVBQUUsRUFBb0I7WUFDdkMsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNmLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkYsQ0FBQztZQUNELFNBQVMsRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDO2dCQUNILE9BQU8sTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNwQixDQUFDO29CQUFTLENBQUM7Z0JBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDaEUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBBIEZJRk8gYm91bmQgb24gaG93IG1hbnkgdGhpbmdzIHJ1biBhdCBvbmNlIGluIE9ORSBwcm9jZXNzLlxuICpcbiAqIFdIWSBJVCBJUyBTSEFSRUQuIFR3byBzZXJ2aWNlcyBuZWVkIHRoZSBzYW1lIGJvdW5kIGZvciB0aGUgc2FtZSByZWFzb246IGFcbiAqIHJlc291cmNlIHRoZXkgb3duIGlzIGNvbnN1bWVkIGJ5IHdvcmsgc2V2ZXJhbCBwcm9kdWNlcnMgcXVldWUsIGFuZCB0aGVcbiAqIHByb2R1Y2VycycgY291bnQgaXMgc2V0IGVsc2V3aGVyZS4gVGhlIGltYWdlIHJlZ2lzdHJ5IHNpZ25zIGltYWdlcyAoZWFjaFxuICogYXR0ZXN0IGhhbmRzIGNvc2lnbiBhIDctMTcgTWlCIFNCT00gYWdhaW5zdCBhIDEgR2lCIGNvbnRhaW5lciksIGFuZCBhIHBsdWdpblxuICogcmVwbGljYSBydW5zIGJ1aWxkcyAoaXRzIHNpeCBwZXItdGllciB3b3JrZXJzIHNoYXJlIE9ORSBidWlsZGtpdGQgc2lkZWNhcikuXG4gKiBCb3RoIGxlYXJuZWQgaXQgdGhlIHNhbWUgd2F5OiAzMiBjb25jdXJyZW50IHNpZ25zIE9PTUtpbGxlZCB0aGUgcmVnaXN0cnkgYW5kXG4gKiB0b29rIGV2ZXJ5IHB1c2ggd2l0aCBpdCwgYmVjYXVzZSBgL3Rva2VuYCBpcyB0aGUgcmVnaXN0cnkgbG9naW4uXG4gKlxuICogVGhlIHF1ZXVlIGhhbmQtb2ZmIGJlbG93IGhhcyBvbmUgc3VidGxldHkgd29ydGggaGF2aW5nIGEgc2luZ2xlIGNvcHkgb2Y6XG4gKiBgcmVsZWFzZWAgcGFzc2VzIHRoZSBzbG90IHN0cmFpZ2h0IHRvIHRoZSBuZXh0IHdhaXRlciBpbnN0ZWFkIG9mIGRlY3JlbWVudGluZ1xuICogZmlyc3QsIGJlY2F1c2UgYSBkaXAgdG8gYGxpbWl0IC0gMWAgd291bGQgYWRtaXQgYW4gZXh0cmEgY2FsbGVyIHBhc3QgdGhlXG4gKiBjZWlsaW5nLiBUaGF0IGlzIHRoZSBraW5kIG9mIG9mZi1ieS1vbmUgdGhhdCBhIHNlY29uZCBpbXBsZW1lbnRhdGlvbiBnZXRzXG4gKiB3cm9uZyBzaWxlbnRseS5cbiAqXG4gKiBXQUlUSU5HLCBOT1QgUkVGVVNJTkcuIE92ZXIgdGhlIGxpbWl0IGEgY2FsbGVyIHF1ZXVlczsgbm90aGluZyBoZXJlIHJlZnVzZXMgb3JcbiAqIHRpbWVzIG91dC4gUmVmdXNpbmcgdHVybnMgYSBjYXBhY2l0eSBsaW1pdCBpbnRvIGEgZmFpbHVyZSBvZiB0aGUgd29yaywgd2hpY2hcbiAqIGlzIGEgbWlzdGFrZSB0aGlzIGNvZGViYXNlIGhhcyBhbHJlYWR5IHBhaWQgZm9yIG9uY2UgKGEgcGVyLW9yZyBidWlsZCBzbG90XG4gKiB0aGF0IGZhaWxlZCB0ZXJtaW5hbGx5IGFmdGVyIGEgMzAtbWludXRlIHdhaXQgbG9zdCA4MCBvZiAxMTkgcGx1Z2lucykuIFRoZVxuICogY2FsbGVyJ3Mgb3duIGRlYWRsaW5lIGlzIHdoYXQgYm91bmRzIHRoZSB3YWl0LlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uY3VycmVuY3lHYXRlT3B0aW9ucyB7XG4gIC8qKiBSZWFkIHBlciBjYWxsLCBzbyBhbiBlbnYtIG9yIGNvbmZpZy1kcml2ZW4gbGltaXQgY2FuIGNoYW5nZSB3aXRob3V0IGEgcmVzdGFydC4gKi9cbiAgbGltaXQ6ICgpID0+IG51bWJlcjtcbiAgLyoqIENhbGxlZCB3aGVuIGEgY2FsbGVyIGhhcyB0byB3YWl0LCBiZWZvcmUgaXQgZG9lcy4gKi9cbiAgb25RdWV1ZWQ/OiAod2FpdGluZzogbnVtYmVyLCBsaW1pdDogbnVtYmVyKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW5ldmVyIG9jY3VwYW5jeSBjaGFuZ2VzLCBmb3IgYSBnYXVnZS4gKi9cbiAgb25PY2N1cGFuY3k/OiAoaW5GbGlnaHQ6IG51bWJlcikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25jdXJyZW5jeUdhdGUge1xuICAvKiogUnVuIGBmbmAgaG9sZGluZyBhIHNsb3QuICovXG4gIHJ1bjxUPihmbjogKCkgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD47XG4gIC8qKiBDdXJyZW50IG9jY3VwYW5jeSDigJQgZm9yIG1ldHJpY3MgYW5kIHRlc3RzLiAqL1xuICBzdGF0ZSgpOiB7IGluRmxpZ2h0OiBudW1iZXI7IHdhaXRpbmc6IG51bWJlciB9O1xuICAvKiogVGVzdCBzZWFtOiBkcm9wIGEgcXVldWUgbGVmdCBiZWhpbmQgYnkgYSBmYWlsZWQgYXNzZXJ0aW9uLiAqL1xuICByZXNldCgpOiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29uY3VycmVuY3lHYXRlKG9wdHM6IENvbmN1cnJlbmN5R2F0ZU9wdGlvbnMpOiBDb25jdXJyZW5jeUdhdGUge1xuICBsZXQgaW5GbGlnaHQgPSAwO1xuICBjb25zdCB3YWl0aW5nOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xuXG4gIGNvbnN0IG9jY3VwYW5jeSA9ICgpOiB2b2lkID0+IG9wdHMub25PY2N1cGFuY3k/LihpbkZsaWdodCk7XG5cbiAgZnVuY3Rpb24gcmVsZWFzZSgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gd2FpdGluZy5zaGlmdCgpO1xuICAgIGlmIChuZXh0KSB7XG4gICAgICAvLyBTdHJhaWdodCBoYW5kLW9mZjogc2VlIHRoZSBub3RlIGFib3ZlIGFib3V0IG5ldmVyIGRpcHBpbmcgYmVsb3cgdGhlXG4gICAgICAvLyBjZWlsaW5nIGJldHdlZW4gYSByZWxlYXNlIGFuZCB0aGUgbmV4dCBhZG1pc3Npb24uXG4gICAgICBuZXh0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGluRmxpZ2h0IC09IDE7XG4gICAgb2NjdXBhbmN5KCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFzeW5jIHJ1bjxUPihmbjogKCkgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD4ge1xuICAgICAgY29uc3QgbGltaXQgPSBvcHRzLmxpbWl0KCk7XG4gICAgICBpZiAoaW5GbGlnaHQgPj0gbGltaXQpIHtcbiAgICAgICAgb3B0cy5vblF1ZXVlZD8uKHdhaXRpbmcubGVuZ3RoICsgMSwgbGltaXQpO1xuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4geyB3YWl0aW5nLnB1c2gocmVzb2x2ZSk7IH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5GbGlnaHQgKz0gMTtcbiAgICAgIH1cbiAgICAgIG9jY3VwYW5jeSgpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICByZWxlYXNlKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBzdGF0ZTogKCkgPT4gKHsgaW5GbGlnaHQsIHdhaXRpbmc6IHdhaXRpbmcubGVuZ3RoIH0pLFxuICAgIHJlc2V0OiAoKSA9PiB7IGluRmxpZ2h0ID0gMDsgd2FpdGluZy5sZW5ndGggPSAwOyB9LFxuICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEtleWVkIHZhcmlhbnQ6IG9uZSBjZWlsaW5nLCBwZXIta2V5IGZsb29ycywgYW5kIGJvcnJvd2luZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBPY2N1cGFuY3kgYSB7QGxpbmsgS2V5ZWRDb25jdXJyZW5jeUdhdGVPcHRpb25zLmFkbWl0c30gcHJlZGljYXRlIGRlY2lkZXMgb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEtleWVkT2NjdXBhbmN5PEs+IHtcbiAgLyoqIFNsb3RzIGluIHVzZSBhY3Jvc3MgZXZlcnkga2V5LiAqL1xuICB0b3RhbDogbnVtYmVyO1xuICAvKiogU2xvdHMgaW4gdXNlIHBlciBrZXkuIEtleXMgYXQgemVybyBtYXkgYmUgYWJzZW50LiAqL1xuICBwZXJLZXk6IFJlYWRvbmx5TWFwPEssIG51bWJlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5ZWRDb25jdXJyZW5jeUdhdGVPcHRpb25zPEs+IHtcbiAgLyoqIFRoZSBUT1RBTCBjZWlsaW5nLCByZWFkIHBlciBjYWxsLiBObyBrZXkgbWF5IHB1c2ggb2NjdXBhbmN5IHBhc3QgaXQuICovXG4gIGxpbWl0OiAoKSA9PiBudW1iZXI7XG4gIC8qKlxuICAgKiBNYXkgYSBjYWxsZXIgZm9yIGBrZXlgIHN0YXJ0IHJpZ2h0IG5vdz9cbiAgICpcbiAgICogQ2FsbGVkIG9ubHkgd2hlbiB0aGUgdG90YWwgY2VpbGluZyBoYXMgcm9vbSwgc28gdGhpcyBleHByZXNzZXMgdGhlIHBlci1rZXlcbiAgICogcG9saWN5IGFsb25lIOKAlCBhIGd1YXJhbnRlZWQgZmxvb3IsIGEgY2FwLCBhIGJvcnJvd2luZyBhbGxvd2FuY2UuIEl0IG11c3QgYmVcbiAgICogYSBwdXJlIGZ1bmN0aW9uIG9mIHRoZSBvY2N1cGFuY3kgaXQgaXMgaGFuZGVkOiBpdCBpcyByZS1ldmFsdWF0ZWQgb24gZXZlcnlcbiAgICogcmVsZWFzZSwgYW5kIGEgcHJlZGljYXRlIHRoYXQgY29uc3VsdHMgYW55dGhpbmcgZWxzZSAoYSBjbG9jaywgYSBjb3VudGVyIGl0XG4gICAqIG11dGF0ZXMpIG1ha2VzIGFkbWlzc2lvbiBvcmRlciB1bnJlcHJvZHVjaWJsZS5cbiAgICovXG4gIGFkbWl0czogKGtleTogSywgb2NjdXBhbmN5OiBLZXllZE9jY3VwYW5jeTxLPikgPT4gYm9vbGVhbjtcbiAgb25RdWV1ZWQ/OiAoa2V5OiBLLCB3YWl0aW5nOiBudW1iZXIsIGxpbWl0OiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uT2NjdXBhbmN5PzogKG9jY3VwYW5jeTogS2V5ZWRPY2N1cGFuY3k8Sz4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5ZWRDb25jdXJyZW5jeUdhdGU8Sz4ge1xuICBydW48VD4oa2V5OiBLLCBmbjogKCkgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD47XG4gIHN0YXRlKCk6IHsgaW5GbGlnaHQ6IG51bWJlcjsgd2FpdGluZzogbnVtYmVyOyBwZXJLZXk6IFJlYWRvbmx5TWFwPEssIG51bWJlcj4gfTtcbiAgcmVzZXQoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBIEZJRk8gYm91bmQgd2l0aCBhIFRPVEFMIGNlaWxpbmcgcGx1cyBhIHBlci1rZXkgYWRtaXNzaW9uIHBvbGljeS5cbiAqXG4gKiBXSFkgQSBTRUNPTkQgU0hBUEUgaW5zdGVhZCBvZiBuZXN0aW5nIHR3byBvZiB0aGUgZ2F0ZXMgYWJvdmUuIFN0YWNraW5nIGFcbiAqIHBlci1rZXkgZ2F0ZSBpbnNpZGUgdGhlIHRvdGFsIGdhdGUgREVBRExPQ0tTOiBhIGNhbGxlciBob2xkaW5nIGEgdG90YWwgc2xvdFxuICogd2hpbGUgaXQgd2FpdHMgZm9yIGEga2V5IHNsb3QgY2FuIGhvbGQgZXZlcnkgdG90YWwgc2xvdCwgYW5kIG5vdGhpbmcgd2lsbFxuICogZXZlciByZWxlYXNlIG9uZS4gQWRtaXNzaW9uIGhhcyB0byBiZSBPTkUgZGVjaXNpb24sIHdoaWNoIGlzIHdoYXQgdGhpcyBpcy5cbiAqXG4gKiBUSEUgSEFORC1PRkYgRElGRkVSUyBGUk9NIFRIRSBDT1VOVCBHQVRFIEFCT1ZFLCBkZWxpYmVyYXRlbHkuIFRoZXJlLCByZWxlYXNlXG4gKiBwYXNzZXMgdGhlIHNsb3Qgc3RyYWlnaHQgdG8gdGhlIGhlYWQgb2YgdGhlIHF1ZXVlLCBiZWNhdXNlIGZvciBhIHB1cmUgY291bnRcbiAqIGFueSB3YWl0ZXIgaXMgYWRtaXNzaWJsZS4gSGVyZSB0aGUgaGVhZCBtYXkgTk9UIGJlIOKAlCBpdCBjb3VsZCBiZSBhIGNhbGxlclxuICogd2hvc2Uga2V5IGlzIG92ZXIgaXRzIGZsb29yIHdoaWxlIHRoZSBib3Jyb3dpbmcgYWxsb3dhbmNlIGlzIGZ1bGwuIFNvIHJlbGVhc2VcbiAqIGRlY3JlbWVudHMgZmlyc3QgYW5kIHRoZW4gc2NhbnMgdGhlIHF1ZXVlIGZvciB0aGUgZmlyc3Qgd2FpdGVyIHRoZSBwcmVkaWNhdGVcbiAqIG5vdyBhZG1pdHMuIE9jY3VwYW5jeSBtYXkgdGhlcmVmb3JlIGRpcCBiZWxvdyB0aGUgY2VpbGluZyB3aGlsZSBjYWxsZXJzIHdhaXQsXG4gKiB3aGljaCBpcyBjb3JyZWN0OiB0aG9zZSBjYWxsZXJzIGFyZSBub3QgYWRtaXNzaWJsZSwgYW5kIGFkbWl0dGluZyB0aGVtIGFueXdheVxuICogaXMgZXhhY3RseSB0aGUgYm91bmQgdGhpcyBleGlzdHMgdG8gZW5mb3JjZS5cbiAqXG4gKiBPUkRFUi4gUmVsYXRpdmUgb3JkZXIgaXMgcHJlc2VydmVkIGFtb25nIHdhaXRlcnMgdGhlIHByZWRpY2F0ZSBhZG1pdHMsIHNvXG4gKiBjYWxsZXJzIHNoYXJpbmcgYSBrZXkgYXJlIHN0cmljdGx5IEZJRk8uIEFjcm9zcyBrZXlzIGl0IGlzIG5vdDogYSB3YWl0ZXIgdGhhdFxuICogY2Fubm90IHN0YXJ0IGlzIHNraXBwZWQgcmF0aGVyIHRoYW4gYmxvY2tpbmcgdGhlIHF1ZXVlIGJlaGluZCBpdCwgd2hpY2ggaXMgdGhlXG4gKiBwb2ludCDigJQgYSBibG9ja2VkIGJvcnJvd2VyIG11c3Qgbm90IHN0YWxsIGEgY2FsbGVyIHRoYXQgaXMgd2l0aGluIGl0cyBmbG9vci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUtleWVkQ29uY3VycmVuY3lHYXRlPEs+KG9wdHM6IEtleWVkQ29uY3VycmVuY3lHYXRlT3B0aW9uczxLPik6IEtleWVkQ29uY3VycmVuY3lHYXRlPEs+IHtcbiAgbGV0IHRvdGFsID0gMDtcbiAgY29uc3QgcGVyS2V5ID0gbmV3IE1hcDxLLCBudW1iZXI+KCk7XG4gIGNvbnN0IHdhaXRpbmc6IEFycmF5PHsga2V5OiBLOyBhZG1pdDogKCkgPT4gdm9pZCB9PiA9IFtdO1xuXG4gIGNvbnN0IHNuYXBzaG90ID0gKCk6IEtleWVkT2NjdXBhbmN5PEs+ID0+ICh7IHRvdGFsLCBwZXJLZXkgfSk7XG4gIGNvbnN0IG9jY3VwYW5jeSA9ICgpOiB2b2lkID0+IG9wdHMub25PY2N1cGFuY3k/LihzbmFwc2hvdCgpKTtcblxuICBjb25zdCBidW1wID0gKGtleTogSywgYnk6IG51bWJlcik6IHZvaWQgPT4ge1xuICAgIGNvbnN0IG5leHQgPSAocGVyS2V5LmdldChrZXkpID8/IDApICsgYnk7XG4gICAgaWYgKG5leHQgPD0gMCkgcGVyS2V5LmRlbGV0ZShrZXkpOyBlbHNlIHBlcktleS5zZXQoa2V5LCBuZXh0KTtcbiAgICB0b3RhbCArPSBieTtcbiAgfTtcblxuICBjb25zdCBhZG1pc3NpYmxlID0gKGtleTogSyk6IGJvb2xlYW4gPT4gdG90YWwgPCBvcHRzLmxpbWl0KCkgJiYgb3B0cy5hZG1pdHMoa2V5LCBzbmFwc2hvdCgpKTtcblxuICBmdW5jdGlvbiByZWxlYXNlKGtleTogSyk6IHZvaWQge1xuICAgIGJ1bXAoa2V5LCAtMSk7XG4gICAgLy8gU2NhbiBpbiBhcnJpdmFsIG9yZGVyIGZvciB0aGUgZmlyc3Qgd2FpdGVyIHRoYXQgbWF5IG5vdyBzdGFydC4gTm90IHRoZVxuICAgIC8vIGJsaW5kIGhhbmQtb2ZmIG9mIHRoZSBjb3VudCBnYXRlIOKAlCBzZWUgdGhlIG5vdGUgYWJvdmUuXG4gICAgY29uc3QgaW5kZXggPSB3YWl0aW5nLmZpbmRJbmRleCgodykgPT4gYWRtaXNzaWJsZSh3LmtleSkpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIGNvbnN0IFtuZXh0XSA9IHdhaXRpbmcuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIGJ1bXAobmV4dC5rZXksIDEpO1xuICAgICAgbmV4dC5hZG1pdCgpO1xuICAgIH1cbiAgICBvY2N1cGFuY3koKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYXN5bmMgcnVuPFQ+KGtleTogSywgZm46ICgpID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICAgIGlmIChhZG1pc3NpYmxlKGtleSkpIHtcbiAgICAgICAgYnVtcChrZXksIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3B0cy5vblF1ZXVlZD8uKGtleSwgd2FpdGluZy5sZW5ndGggKyAxLCBvcHRzLmxpbWl0KCkpO1xuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4geyB3YWl0aW5nLnB1c2goeyBrZXksIGFkbWl0OiByZXNvbHZlIH0pOyB9KTtcbiAgICAgIH1cbiAgICAgIG9jY3VwYW5jeSgpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICByZWxlYXNlKGtleSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBzdGF0ZTogKCkgPT4gKHsgaW5GbGlnaHQ6IHRvdGFsLCB3YWl0aW5nOiB3YWl0aW5nLmxlbmd0aCwgcGVyS2V5IH0pLFxuICAgIHJlc2V0OiAoKSA9PiB7IHRvdGFsID0gMDsgcGVyS2V5LmNsZWFyKCk7IHdhaXRpbmcubGVuZ3RoID0gMDsgfSxcbiAgfTtcbn1cbiJdfQ==
|
package/lib/utils/concurrency.js
CHANGED
|
@@ -38,4 +38,4 @@ export function sleep(ms, opts = {}) {
|
|
|
38
38
|
timer.unref?.();
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY3VycmVuY3kuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jb25jdXJyZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FDakMsS0FBVSxFQUNWLEtBQWEsRUFDYixNQUE4QztJQUU5QyxJQUFJLEtBQUssR0FBRyxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3BFLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLENBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVsQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQy9FLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixNQUFNLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQzlCLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLEVBQVUsRUFBRSxJQUFJLEdBQXdCLEVBQUU7SUFDOUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsc0VBQXNFO1FBQ3RFLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBSdW4gYHdvcmtlcmAgb3ZlciBgaXRlbXNgIHdpdGggYXQgbW9zdCBgbGltaXRgIGludm9jYXRpb25zIGluIGZsaWdodC5cbiAqIFByZXNlcnZlcyBvcmRlciBpbiB0aGUgcmV0dXJuZWQgYXJyYXkuIFJlamVjdHMgb24gdGhlIGZpcnN0IGVycm9yLlxuICpcbiAqIFVzZSB0aGlzIGFueXdoZXJlIHdlIGZhbiBvdXQgTiBIVFRQIGNhbGxzIGFuZCB3YW50IHRvIGNhcCBjb25jdXJyZW5jeVxuICogKGUuZy4gcmVnaXN0cnkgYmxvYiBtb3VudHMsIHBhcmFsbGVsIG1hbmlmZXN0IGZldGNoZXMpLiBIYW5kLXJvbGxlZCB0b1xuICogYXZvaWQgYWRkaW5nIGEgZGVwIOKAlCBrZWVwcyB0aGUgYnVuZGxlL2Zvb3RwcmludCB0aW55LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuQ29uY3VycmVudDxULCBSPihcbiAgaXRlbXM6IFRbXSxcbiAgbGltaXQ6IG51bWJlcixcbiAgd29ya2VyOiAoaXRlbTogVCwgaW5kZXg6IG51bWJlcikgPT4gUHJvbWlzZTxSPixcbik6IFByb21pc2U8UltdPiB7XG4gIGlmIChsaW1pdCA8IDEpIHRocm93IG5ldyBFcnJvcigncnVuQ29uY3VycmVudDogbGltaXQgbXVzdCBiZSA+PSAxJyk7XG4gIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHJldHVybiBbXTtcblxuICBjb25zdCByZXN1bHRzID0gbmV3IEFycmF5PFI+KGl0ZW1zLmxlbmd0aCk7XG4gIGxldCBuZXh0SW5kZXggPSAwO1xuXG4gIGNvbnN0IHJ1bm5lcnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBNYXRoLm1pbihsaW1pdCwgaXRlbXMubGVuZ3RoKSB9LCBhc3luYyAoKSA9PiB7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IGkgPSBuZXh0SW5kZXgrKztcbiAgICAgIGlmIChpID49IGl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgcmVzdWx0c1tpXSA9IGF3YWl0IHdvcmtlcihpdGVtc1tpXSwgaSk7XG4gICAgfVxuICB9KTtcblxuICBhd2FpdCBQcm9taXNlLmFsbChydW5uZXJzKTtcbiAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhZnRlciBgbXNgLiBXaXRoIGB1bnJlZmAsIHRoZSBwZW5kaW5nIHRpbWVyIG5ldmVyIGtlZXBzIGEgZHJhaW5pbmdcbiAqIHByb2Nlc3MgYWxpdmUgKGEgYmFja29mZiB3YWl0IG11c3Qgbm90IGJsb2NrIHNodXRkb3duKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIsIG9wdHM6IHsgdW5yZWY/OiBib29sZWFuIH0gPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpO1xuICAgIC8vIGB1bnJlZmAgaXMgYWJzZW50IG9uIHRoZSB0aW1lciBzaGltIHNvbWUgdGVzdCBlbnZpcm9ubWVudHMgaW5zdGFsbC5cbiAgICBpZiAob3B0cy51bnJlZikgdGltZXIudW5yZWY/LigpO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -33,4 +33,4 @@ export function installCrashHandlers(log = createLogger('process')) {
|
|
|
33
33
|
fatal('Unhandled promise rejection', reason instanceof Error ? reason : new Error(String(reason)));
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhc2gtaGFuZGxlcnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jcmFzaC1oYW5kbGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBR3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0MsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBRXRCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxHQUFHLEdBQVcsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUN4RSxJQUFJLFNBQVMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxNQUFNO1FBQUUsT0FBTztJQUN6RCxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBRWpCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQVksRUFBRSxLQUFLLEdBQTRCLEVBQUUsRUFBUSxFQUFFO1FBQ3RGLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLHdCQUF3QixFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLDRFQUE0RTtRQUM1RSxxREFBcUQ7UUFDckQsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakQsQ0FBQyxDQUFDO0lBRUYsT0FBTyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEtBQVksRUFBRSxNQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEgsT0FBTyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLE1BQWUsRUFBRSxFQUFFO1FBQ25ELEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxNQUFNLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSAnd2luc3Rvbic7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICcuL2xvZ2dlci5qcyc7XG5cbmxldCBpbnN0YWxsZWQgPSBmYWxzZTtcblxuLyoqXG4gKiBJbnN0YWxsIGxhc3QtcmVzb3J0IHByb2Nlc3MtbGV2ZWwgZmF1bHQgaGFuZGxlcnMuXG4gKlxuICogV2l0aG91dCB0aGVzZSwgYW4gdW5jYXVnaHQgZXhjZXB0aW9uIG9yIGFuIHVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbiBpbiBhXG4gKiBmaXJlLWFuZC1mb3JnZXQgYXN5bmMgcGF0aCBjcmFzaGVzIHRoZSBjb250YWluZXIgd2l0aCBOTyBzdHJ1Y3R1cmVkIGxvZyBsaW5lXG4gKiAoYW5kIG9uIG1vZGVybiBOb2RlIHRlcm1pbmF0ZXMgdGhlIHByb2Nlc3MgYnkgZGVmYXVsdCkuIFRoYXQgbWFrZXMgaW5jaWRlbnRzXG4gKiB1bmRlYnVnZ2FibGUgZnJvbSBsb2dzLiBUaGlzIGxvZ3MgdGhlIGZhdWx0IHRocm91Z2ggdGhlIHNlcnZpY2UgbG9nZ2VyLCB0aGVuXG4gKiBleGl0cyBub24temVybyBzbyB0aGUgb3JjaGVzdHJhdG9yIHJlc3RhcnRzIGEgQ0xFQU4gcHJvY2VzcyDigJQgYSBmYXVsdGVkXG4gKiBwcm9jZXNzIGlzIGluIGFuIHVuZGVmaW5lZCBzdGF0ZSBhbmQgbXVzdCBub3Qga2VlcCBzZXJ2aW5nLlxuICpcbiAqIFRoaXMgaXMgb3J0aG9nb25hbCB0byBncmFjZWZ1bCBTSUdURVJNIHNodXRkb3duIChoYW5kbGVkIGluIGFwaS1zZXJ2ZXIgL1xuICogcGxhdGZvcm0pOiB0aGF0IGRyYWlucyBvbiBhIG5vcm1hbCBzdG9wOyB0aGlzIGlzIHRoZSBhYm5vcm1hbC1mYXVsdCBwYXRoLlxuICpcbiAqIElkZW1wb3RlbnQg4oCUIGNhbGwgb25jZSBhdCBwcm9jZXNzIHN0YXJ0OyByZXBlYXQgY2FsbHMgYXJlIG5vLW9wcy4gU2tpcHBlZFxuICogdW5kZXIgTk9ERV9FTlY9dGVzdCBzbyBpdCBuZXZlciBjb21wZXRlcyB3aXRoIHRoZSB0ZXN0IHJ1bm5lcidzIG93biBoYW5kbGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbGxDcmFzaEhhbmRsZXJzKGxvZzogTG9nZ2VyID0gY3JlYXRlTG9nZ2VyKCdwcm9jZXNzJykpOiB2b2lkIHtcbiAgaWYgKGluc3RhbGxlZCB8fCBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Rlc3QnKSByZXR1cm47XG4gIGluc3RhbGxlZCA9IHRydWU7XG5cbiAgY29uc3QgZmF0YWwgPSAoa2luZDogc3RyaW5nLCBlcnJvcjogRXJyb3IsIGV4dHJhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9KTogdm9pZCA9PiB7XG4gICAgbG9nLmVycm9yKGAke2tpbmR9IOKAlCBleGl0aW5nIGZvciByZXN0YXJ0YCwgeyBlcnJvcjogZXJyb3IubWVzc2FnZSwgc3RhY2s6IGVycm9yLnN0YWNrLCAuLi5leHRyYSB9KTtcbiAgICAvLyBHaXZlIHdpbnN0b24gYSB0aWNrIHRvIGZsdXNoIGFzeW5jIHRyYW5zcG9ydHMsIHRoZW4gZXhpdC4gYHVucmVmYCBzbyB0aGlzXG4gICAgLy8gdGltZXIgbmV2ZXIga2VlcHMgYW4gb3RoZXJ3aXNlLWlkbGUgcHJvY2VzcyBhbGl2ZS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHByb2Nlc3MuZXhpdCgxKSwgMTAwKS51bnJlZigpO1xuICB9O1xuXG4gIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGVycm9yOiBFcnJvciwgb3JpZ2luOiBzdHJpbmcpID0+IGZhdGFsKCdVbmNhdWdodCBleGNlcHRpb24nLCBlcnJvciwgeyBvcmlnaW4gfSkpO1xuICBwcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAocmVhc29uOiB1bmtub3duKSA9PiB7XG4gICAgZmF0YWwoJ1VuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbicsIHJlYXNvbiBpbnN0YW5jZW9mIEVycm9yID8gcmVhc29uIDogbmV3IEVycm9yKFN0cmluZyhyZWFzb24pKSk7XG4gIH0pO1xufVxuIl19
|
package/lib/utils/date.js
CHANGED
|
@@ -19,4 +19,4 @@
|
|
|
19
19
|
* would hide a corrupt row behind a plausible-looking response.
|
|
20
20
|
*/
|
|
21
21
|
export const isoOrNull = (d) => (d ? new Date(d).toISOString() : null);
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qyw0Q0FBNEM7QUFFNUM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUE0QyxFQUFpQixFQUFFLENBQ3ZGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqIERhdGUgY29lcmNpb25zIGZvciB0aGUgSlNPTiBib3VuZGFyeS4gKi9cblxuLyoqXG4gKiBBIG51bGxhYmxlIHRpbWVzdGFtcCBhcyBhbiBJU08tODYwMSBzdHJpbmcsIG9yIGBudWxsYCB3aGVuIHRoZXJlIGlzIG5vIGRhdGUuXG4gKlxuICogVGhlIHNoYXBlIGV2ZXJ5IEFQSSByZXNwb25zZSBuZWVkcyBhdCB0aGUgRELihpJKU09OIGJvdW5kYXJ5OiBQb3N0Z3JlcyBhbmRcbiAqIE1vbmdvIGhhbmQgYmFjayBgRGF0ZSB8IG51bGxgLCB0aGUgd2lyZSB3YW50cyBgc3RyaW5nIHwgbnVsbGAsIGFuZCBhIGJhcmVcbiAqIGByb3cueD8udG9JU09TdHJpbmcoKSA/PyBudWxsYCBicmVha3MgdGhlIG1vbWVudCB0aGUgZHJpdmVyIHJldHVybnMgYSBzdHJpbmdcbiAqIGluc3RlYWQgKE1vbmdvIGFnZ3JlZ2F0aW9uIG91dHB1dCwgYSBgOjp0ZXh0YCBjYXN0LCBhIGNhY2hlZCByb3cgcmVoeWRyYXRlZFxuICogZnJvbSBKU09OKS4gTm9ybWFsaXppbmcgdGhyb3VnaCBgbmV3IERhdGUoZClgIGhhbmRsZXMgYm90aC5cbiAqXG4gKiBGYWxzeSBpbiwgYG51bGxgIG91dCDigJQgd2hpY2ggZm9sZHMgdGhlIGVwb2NoIChgbmV3IERhdGUoMClgKSB0byBgbnVsbGAgdG9vLlxuICogVGhhdCBpcyBpbnRlbnRpb25hbCBhbmQgbWF0Y2hlcyBldmVyeSBoYW5kLXJvbGxlZCBjb3B5IHRoaXMgcmVwbGFjZXM6IGFcbiAqIHplcm8gdGltZXN0YW1wIGluIHRoaXMgY29kZWJhc2UgbWVhbnMgXCJ1bnNldFwiLCBuZXZlciAxOTcwLlxuICpcbiAqIFRocm93cyBgUmFuZ2VFcnJvcmAgb24gYW4gdW5wYXJzZWFibGUgc3RyaW5nLCBkZWxpYmVyYXRlbHk6IGEgbWFsZm9ybWVkXG4gKiB0aW1lc3RhbXAgaXMgYSBkYXRhLWludGVncml0eSBwcm9ibGVtLCBhbmQgc2lsZW50bHkgc2VydmluZyBgbnVsbGAgZm9yIGl0XG4gKiB3b3VsZCBoaWRlIGEgY29ycnVwdCByb3cgYmVoaW5kIGEgcGxhdXNpYmxlLWxvb2tpbmcgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBpc29Pck51bGwgPSAoZDogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsID0+XG4gIChkID8gbmV3IERhdGUoZCkudG9JU09TdHJpbmcoKSA6IG51bGwpO1xuIl19
|
package/lib/utils/dsse.js
CHANGED
|
@@ -52,4 +52,4 @@ export function extractPredicate(stdout, predicateType) {
|
|
|
52
52
|
}
|
|
53
53
|
return predicate;
|
|
54
54
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNzZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Rzc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCxvRkFBb0Y7QUFDcEYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsMkJBQTJCLENBQUM7QUFFL0Q7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsYUFBcUI7SUFDcEUsSUFBSSxTQUFTLEdBQW1DLElBQUksQ0FBQztJQUNyRCxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQUUsU0FBUztRQUN2QyxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBeUIsQ0FBQztZQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87Z0JBQUUsU0FBUztZQUNoQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBR3JGLENBQUM7WUFDRixJQUFJLFNBQVMsQ0FBQyxhQUFhLEtBQUssYUFBYSxJQUFJLFNBQVMsQ0FBQyxTQUFTLElBQUksT0FBTyxTQUFTLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoSCxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQW9DLENBQUM7WUFDN0QsQ0FBQztRQUNILENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCx3QkFBd0I7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogRFNTRS1lbnZlbG9wZSBwYXJzaW5nIGZvciBjb3NpZ24gYXR0ZXN0YXRpb24gb3V0cHV0LlxuICpcbiAqIGBjb3NpZ24gdmVyaWZ5LWF0dGVzdGF0aW9uYCBwcmludHMgb25lIERTU0UgZW52ZWxvcGUgcGVyIFZFUklGSUVEIGF0dGVzdGF0aW9uLFxuICogb25lIEpTT04gb2JqZWN0IHBlciBsaW5lOlxuICogYHsgcGF5bG9hZFR5cGUsIHBheWxvYWQ6IGJhc2U2NChpbi10b3RvIHN0YXRlbWVudCksIHNpZ25hdHVyZXMgfWAuXG4gKiBTaWduYXR1cmUgdmVyaWZpY2F0aW9uIGhhcyBhbHJlYWR5IGhhcHBlbmVkIGluIGNvc2lnbiBieSB0aGUgdGltZSB3ZSBzZWUgdGhpc1xuICog4oCUIHRoaXMgbW9kdWxlIG9ubHkgZGVjb2RlcyB3aGF0IGNvc2lnbiB2b3VjaGVkIGZvci5cbiAqXG4gKiBUaGlzIGxpdmVzIGluIGFwaS1jb3JlIGJlY2F1c2UgQk9USCB0aGUgcGx1Z2luIHNlcnZpY2UgKGJ1aWxkLXRpbWUgU0JPTSByZWFkKVxuICogYW5kIHRoZSBpbWFnZS1yZWdpc3RyeSBzZXJ2aWNlIChyZWdpc3RyeS1zaWRlIHNpZ25lZC1TQk9NIHJlYWQpIHBhcnNlIHRoZSBzYW1lXG4gKiBvdXRwdXQuIFR3byBoYW5kLWNvcGllZCBwYXJzZSBsb29wcyBpbiBzdXBwbHktY2hhaW4gdmVyaWZpY2F0aW9uIGNvZGUgaXMgYVxuICogc2VjdXJpdHkgcmlzaywgbm90IHVudGlkaW5lc3M6IGEgZml4IGFwcGxpZWQgdG8gb25lIGNvcHkgc2lsZW50bHkgbGVhdmVzIHRoZVxuICogb3RoZXIgYWNjZXB0aW5nIHdoYXQgaXQgc2hvdWxkIG5vdC5cbiAqXG4gKiBDYWxsZXJzIGtlZXAgdGhlaXIgT1dOIG5vdC1mb3VuZCBwb2xpY3kgb24gdG9wICh0aHJvdyB2cy4gcmV0dXJuIG51bGwpIOKAlFxuICogdGhhdCBpcyBhIHBlci1zZXJ2aWNlIGRlY2lzaW9uLCB0aGUgcGFyc2UgaXMgbm90LlxuICovXG5cbi8qKiBpbi10b3RvIHByZWRpY2F0ZSB0eXBlIGZvciBhbiBTUERYIFNCT00sIGFzIGNvc2lnbidzIGAtLXR5cGUgc3BkeGpzb25gIGVtaXRzLiAqL1xuZXhwb3J0IGNvbnN0IFNQRFhfUFJFRElDQVRFX1RZUEUgPSAnaHR0cHM6Ly9zcGR4LmRldi9Eb2N1bWVudCc7XG5cbi8qKlxuICogUmV0dXJuIHRoZSBwcmVkaWNhdGUgb2YgdGhlIExBU1QgZW52ZWxvcGUgaW4gYHN0ZG91dGAgd2hvc2UgaW4tdG90byBzdGF0ZW1lbnRcbiAqIGNhcnJpZXMgYHByZWRpY2F0ZVR5cGVgLCBvciBudWxsIHdoZW4gbm9uZSBkb2VzLlxuICpcbiAqIExBU1QsIG5vdCBmaXJzdDogYSByZWJ1aWxkIHJlLWF0dGVzdHMgdGhlIHNhbWUgZGlnZXN0IGFuZCBjb3NpZ24gbGlzdHNcbiAqIGF0dGVzdGF0aW9ucyBvbGRlc3QtZmlyc3QsIHNvIHRoZSBuZXdlc3QgYXR0ZXN0YXRpb24gaXMgdGhlIGZpbmFsIGxpbmUuXG4gKlxuICogTGluZXMgdGhhdCBhcmUgbm90IHBhcnNlYWJsZSBlbnZlbG9wZXMgYXJlIHNraXBwZWQgcmF0aGVyIHRoYW4gZmF0YWwg4oCUIGNvc2lnblxuICogcHJpbnRzIG5vdGhpbmcgZWxzZSBvbiBzdGRvdXQgdG9kYXksIGJ1dCBzdHJheSBvdXRwdXQgbXVzdCBub3QgdHVybiBhIHZhbGlkXG4gKiBhdHRlc3RhdGlvbiBpbnRvIGEgdmVyaWZpY2F0aW9uIGZhaWx1cmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0UHJlZGljYXRlKHN0ZG91dDogc3RyaW5nLCBwcmVkaWNhdGVUeXBlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwge1xuICBsZXQgcHJlZGljYXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPSBudWxsO1xuICBmb3IgKGNvbnN0IGxpbmUgb2Ygc3Rkb3V0LnNwbGl0KCdcXG4nKSkge1xuICAgIGNvbnN0IHRyaW1tZWQgPSBsaW5lLnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWQuc3RhcnRzV2l0aCgneycpKSBjb250aW51ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZW52ZWxvcGUgPSBKU09OLnBhcnNlKHRyaW1tZWQpIGFzIHsgcGF5bG9hZD86IHN0cmluZyB9O1xuICAgICAgaWYgKCFlbnZlbG9wZS5wYXlsb2FkKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IHN0YXRlbWVudCA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20oZW52ZWxvcGUucGF5bG9hZCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpKSBhcyB7XG4gICAgICAgIHByZWRpY2F0ZVR5cGU/OiBzdHJpbmc7XG4gICAgICAgIHByZWRpY2F0ZT86IHVua25vd247XG4gICAgICB9O1xuICAgICAgaWYgKHN0YXRlbWVudC5wcmVkaWNhdGVUeXBlID09PSBwcmVkaWNhdGVUeXBlICYmIHN0YXRlbWVudC5wcmVkaWNhdGUgJiYgdHlwZW9mIHN0YXRlbWVudC5wcmVkaWNhdGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHByZWRpY2F0ZSA9IHN0YXRlbWVudC5wcmVkaWNhdGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBOb3QgYW4gZW52ZWxvcGUgbGluZS5cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHByZWRpY2F0ZTtcbn1cbiJdfQ==
|
package/lib/utils/env.d.ts
CHANGED
|
@@ -8,6 +8,17 @@
|
|
|
8
8
|
* than re-derived (see `MAX_PAGE_LIMIT` / `DEFAULT_PAGE_LIMIT` in
|
|
9
9
|
* `validation/common-schemas.ts`).
|
|
10
10
|
*/
|
|
11
|
+
/**
|
|
12
|
+
* A camelCase name as the env-var fragment that configures it:
|
|
13
|
+
* `apiCalls` → `API_CALLS`, `supportPremiumContacts` → `SUPPORT_PREMIUM_CONTACTS`.
|
|
14
|
+
*
|
|
15
|
+
* Here, in the env module, because the two callers are in different PACKAGES —
|
|
16
|
+
* `quota-tiers.ts` builds `QUOTA_TIER_<TIER>_<LIMIT>` and api/quota's config
|
|
17
|
+
* builds `QUOTA_DEFAULT_<TYPE>` — and each had its own copy of the same regex.
|
|
18
|
+
* Two spellings of one transform is a drift waiting to happen: "fixing" either
|
|
19
|
+
* one would silently rename half of an operator's configured knobs.
|
|
20
|
+
*/
|
|
21
|
+
export declare function envNameFragment(name: string): string;
|
|
11
22
|
/**
|
|
12
23
|
* Parse an integer env var. Unset / blank / not a clean integer string → `def`.
|
|
13
24
|
* Optional `min`/`max` clamp the result (applied after the default).
|
package/lib/utils/env.js
CHANGED
|
@@ -10,6 +10,19 @@
|
|
|
10
10
|
* than re-derived (see `MAX_PAGE_LIMIT` / `DEFAULT_PAGE_LIMIT` in
|
|
11
11
|
* `validation/common-schemas.ts`).
|
|
12
12
|
*/
|
|
13
|
+
/**
|
|
14
|
+
* A camelCase name as the env-var fragment that configures it:
|
|
15
|
+
* `apiCalls` → `API_CALLS`, `supportPremiumContacts` → `SUPPORT_PREMIUM_CONTACTS`.
|
|
16
|
+
*
|
|
17
|
+
* Here, in the env module, because the two callers are in different PACKAGES —
|
|
18
|
+
* `quota-tiers.ts` builds `QUOTA_TIER_<TIER>_<LIMIT>` and api/quota's config
|
|
19
|
+
* builds `QUOTA_DEFAULT_<TYPE>` — and each had its own copy of the same regex.
|
|
20
|
+
* Two spellings of one transform is a drift waiting to happen: "fixing" either
|
|
21
|
+
* one would silently rename half of an operator's configured knobs.
|
|
22
|
+
*/
|
|
23
|
+
export function envNameFragment(name) {
|
|
24
|
+
return name.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toUpperCase();
|
|
25
|
+
}
|
|
13
26
|
/**
|
|
14
27
|
* Parse an integer env var. Unset / blank / not a clean integer string → `def`.
|
|
15
28
|
* Optional `min`/`max` clamp the result (applied after the default).
|
|
@@ -80,4 +93,4 @@ export function isReadReplicaConfigured() {
|
|
|
80
93
|
return false;
|
|
81
94
|
return envStr('DB_READ_HOST', '').trim().length > 0;
|
|
82
95
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7OztHQVNHO0FBRUg7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFZO0lBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNuRSxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBWSxFQUFFLEdBQVcsRUFBRSxJQUFxQztJQUNyRixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEMsSUFBSSxDQUFDLEdBQUcsT0FBTyxLQUFLLEVBQUUsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzFGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDakMsSUFBSSxJQUFJLEVBQUUsR0FBRyxLQUFLLFNBQVM7UUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELElBQUksSUFBSSxFQUFFLEdBQUcsS0FBSyxTQUFTO1FBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLElBQVksRUFBRSxHQUFZO0lBQ2hELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFDdkQsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLElBQUksQ0FBQyxLQUFLLE1BQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDMUQsSUFBSSxDQUFDLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUk7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUMzRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFZLEVBQUUsR0FBVztJQUM5QyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE9BQU8sR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNwRCxPQUFPLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVHlwZWQgZW52aXJvbm1lbnQtdmFyaWFibGUgcmVhZGVycyB3aXRoIGNvbnNpc3RlbnQgcGFyc2luZyArIGRlZmF1bHRzLlxuICpcbiAqIEhhbmQtcm9sbGVkIGBwYXJzZUludChwcm9jZXNzLmVudi5YIHx8ICfigKYnLCAxMClgIC8gYHByb2Nlc3MuZW52LlggPT09ICd0cnVlJ2BcbiAqIGRyaWZ0cyAodGhlIHNhbWUgdmFyIHBhcnNlZCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0cyBpbiBkaWZmZXJlbnQgcGFja2FnZXMpXG4gKiBhbmQgc2lsZW50bHkgcmV0dXJucyB0aGUgZGVmYXVsdCBvbiBhIHR5cG8nZCBuYW1lLiBUaGVzZSBoZWxwZXJzIGNlbnRyYWxpemUgdGhlIHBhcnNpbmcgc28gYSB2YWx1ZVxuICogaXMgcmVhZCB0aGUgc2FtZSB3YXkgZXZlcnl3aGVyZSwgYW5kIG1ha2Ugc2hhcmVkIGNvbnN0YW50cyBpbXBvcnRhYmxlIHJhdGhlclxuICogdGhhbiByZS1kZXJpdmVkIChzZWUgYE1BWF9QQUdFX0xJTUlUYCAvIGBERUZBVUxUX1BBR0VfTElNSVRgIGluXG4gKiBgdmFsaWRhdGlvbi9jb21tb24tc2NoZW1hcy50c2ApLlxuICovXG5cbi8qKlxuICogQSBjYW1lbENhc2UgbmFtZSBhcyB0aGUgZW52LXZhciBmcmFnbWVudCB0aGF0IGNvbmZpZ3VyZXMgaXQ6XG4gKiBgYXBpQ2FsbHNgIOKGkiBgQVBJX0NBTExTYCwgYHN1cHBvcnRQcmVtaXVtQ29udGFjdHNgIOKGkiBgU1VQUE9SVF9QUkVNSVVNX0NPTlRBQ1RTYC5cbiAqXG4gKiBIZXJlLCBpbiB0aGUgZW52IG1vZHVsZSwgYmVjYXVzZSB0aGUgdHdvIGNhbGxlcnMgYXJlIGluIGRpZmZlcmVudCBQQUNLQUdFUyDigJRcbiAqIGBxdW90YS10aWVycy50c2AgYnVpbGRzIGBRVU9UQV9USUVSXzxUSUVSPl88TElNSVQ+YCBhbmQgYXBpL3F1b3RhJ3MgY29uZmlnXG4gKiBidWlsZHMgYFFVT1RBX0RFRkFVTFRfPFRZUEU+YCDigJQgYW5kIGVhY2ggaGFkIGl0cyBvd24gY29weSBvZiB0aGUgc2FtZSByZWdleC5cbiAqIFR3byBzcGVsbGluZ3Mgb2Ygb25lIHRyYW5zZm9ybSBpcyBhIGRyaWZ0IHdhaXRpbmcgdG8gaGFwcGVuOiBcImZpeGluZ1wiIGVpdGhlclxuICogb25lIHdvdWxkIHNpbGVudGx5IHJlbmFtZSBoYWxmIG9mIGFuIG9wZXJhdG9yJ3MgY29uZmlndXJlZCBrbm9icy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudk5hbWVGcmFnbWVudChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmFtZS5yZXBsYWNlKC8oW2EtejAtOV0pKFtBLVpdKS9nLCAnJDFfJDInKS50b1VwcGVyQ2FzZSgpO1xufVxuXG4vKipcbiAqIFBhcnNlIGFuIGludGVnZXIgZW52IHZhci4gVW5zZXQgLyBibGFuayAvIG5vdCBhIGNsZWFuIGludGVnZXIgc3RyaW5nIOKGkiBgZGVmYC5cbiAqIE9wdGlvbmFsIGBtaW5gL2BtYXhgIGNsYW1wIHRoZSByZXN1bHQgKGFwcGxpZWQgYWZ0ZXIgdGhlIGRlZmF1bHQpLlxuICpcbiAqIFNUUklDVCBvbiBwdXJwb3NlOiBgcGFyc2VJbnRgIGFjY2VwdHMgYDUwLjVgICjihpIgNTApIGFuZCBgMTJhYmNgICjihpIgMTIpLCB3aGljaFxuICogaXMgaG93IGEgdHlwbydkIHF1b3RhIGxpbWl0IG9yIHRpbWVvdXQgc2lsZW50bHkgc2hpcHMgYSB2YWx1ZSBub2JvZHkgd3JvdGUuXG4gKiBBbnl0aGluZyB0aGF0IGlzbid0IGAtP1xcZCtgIGZhbGxzIGJhY2sgdG8gdGhlIGNvZGUgZGVmYXVsdCBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW52SW50KG5hbWU6IHN0cmluZywgZGVmOiBudW1iZXIsIG9wdHM/OiB7IG1pbj86IG51bWJlcjsgbWF4PzogbnVtYmVyIH0pOiBudW1iZXIge1xuICBjb25zdCByYXcgPSBwcm9jZXNzLmVudltuYW1lXTtcbiAgY29uc3QgdHJpbW1lZCA9IHJhdz8udHJpbSgpID8/ICcnO1xuICBsZXQgbiA9IHRyaW1tZWQgIT09ICcnICYmIC9eWystXT9cXGQrJC8udGVzdCh0cmltbWVkKSA/IE51bWJlci5wYXJzZUludCh0cmltbWVkLCAxMCkgOiBkZWY7XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKG4pKSBuID0gZGVmO1xuICBpZiAob3B0cz8ubWluICE9PSB1bmRlZmluZWQpIG4gPSBNYXRoLm1heChvcHRzLm1pbiwgbik7XG4gIGlmIChvcHRzPy5tYXggIT09IHVuZGVmaW5lZCkgbiA9IE1hdGgubWluKG9wdHMubWF4LCBuKTtcbiAgcmV0dXJuIG47XG59XG5cbi8qKlxuICogUGFyc2UgYSBib29sZWFuIGVudiB2YXIuIGB0cnVlYC9gMWAvYHllc2Ag4oaSIHRydWUsIGBmYWxzZWAvYDBgL2Bub2Ag4oaSIGZhbHNlXG4gKiAoY2FzZS1pbnNlbnNpdGl2ZSk7IHVuc2V0IC8gYmxhbmsgLyB1bnJlY29nbml6ZWQg4oaSIGBkZWZgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW52Qm9vbChuYW1lOiBzdHJpbmcsIGRlZjogYm9vbGVhbik6IGJvb2xlYW4ge1xuICBjb25zdCByYXcgPSBwcm9jZXNzLmVudltuYW1lXTtcbiAgaWYgKHJhdyA9PT0gdW5kZWZpbmVkIHx8IHJhdy50cmltKCkgPT09ICcnKSByZXR1cm4gZGVmO1xuICBjb25zdCB2ID0gcmF3LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICBpZiAodiA9PT0gJ3RydWUnIHx8IHYgPT09ICcxJyB8fCB2ID09PSAneWVzJykgcmV0dXJuIHRydWU7XG4gIGlmICh2ID09PSAnZmFsc2UnIHx8IHYgPT09ICcwJyB8fCB2ID09PSAnbm8nKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBkZWY7XG59XG5cbi8qKiBSZWFkIGEgc3RyaW5nIGVudiB2YXI7IHVuc2V0IC8gYmxhbmsg4oaSIGBkZWZgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudlN0cihuYW1lOiBzdHJpbmcsIGRlZjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcmF3ID0gcHJvY2Vzcy5lbnZbbmFtZV07XG4gIHJldHVybiByYXcgPT09IHVuZGVmaW5lZCB8fCByYXcudHJpbSgpID09PSAnJyA/IGRlZiA6IHJhdztcbn1cblxuLyoqXG4gKiBJcyBhIFBvc3RncmVzIHJlYWQgcmVwbGljYSBjb25maWd1cmVkIEFORCBzd2l0Y2hlZCBvbj9cbiAqXG4gKiBMaXZlcyBpbiBhcGktY29yZSwgbm90IHBpcGVsaW5lLWRhdGEsIGV2ZW4gdGhvdWdoIHRoZSByZWFkIFBPT0wgZG9lcy4gSXQgaXNcbiAqIHB1cmUgZW52IGxvZ2ljIHdpdGggbm8gZGF0YWJhc2UgZGVwZW5kZW5jeSwgYW5kIEJPVEggcGFja2FnZXMgbmVlZCBpdDpcbiAqIHBpcGVsaW5lLWRhdGEgdG8gZGVjaWRlIHdoZXRoZXIgdG8gYnVpbGQgdGhlIHBvb2wsIGFuZCBhcGktc2VydmVyJ3NcbiAqIHRlbmFudC1jb250ZXh0IG1pZGRsZXdhcmUgdG8gZGVjaWRlIHdoZXRoZXIgdGhlIGNyb3NzLXJlcXVlc3Qgd3JpdGUgcGluIGlzIGluXG4gKiBwbGF5IGF0IGFsbC5cbiAqXG4gKiBXSFkgVEhBVCBQTEFDRU1FTlQgSVMgTE9BRC1CRUFSSU5HLCBub3QgdGFzdGUuIGFwaS1zZXJ2ZXIncyBtaWRkbGV3YXJlIHJ1bnMgaW5cbiAqIEVWRVJZIHNlcnZpY2UsIGFuZCA5MSB0ZXN0IHN1aXRlcyBzdHViIGBAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1kYXRhYCB3aXRoXG4gKiBgc3R1Yk1vZHVsZWAsIHdoaWNoIFRIUk9XUyBvbiBhY2Nlc3MgdG8gYW4gZXhwb3J0IHRoZSBzdWl0ZSBkaWQgbm90IG92ZXJyaWRlIOKAlFxuICogZGVsaWJlcmF0ZWx5LCB0byBmb3JjZSBleHBsaWNpdG5lc3MuIFNvIHJlYWNoaW5nIGludG8gcGlwZWxpbmUtZGF0YSBmcm9tIHRoZVxuICogbWlkZGxld2FyZSB0dXJuZWQgZXZlcnkgb25lIG9mIHRob3NlIHN1aXRlcyBpbnRvIGEgNTAwLCBhbmQgcGF0Y2hpbmcgOTEgc3R1YnNcbiAqIHdvdWxkIG9ubHkgZGVmZXIgdGhlIG5leHQgb25lLiBhcGktY29yZSdzIG1vY2tzIHNwcmVhZCBgcmVxdWlyZUFjdHVhbGAsIHNvIGFcbiAqIHN5bWJvbCBoZXJlIGlzIGF2YWlsYWJsZSB0byBhbGwgb2YgdGhlbSB3aXRob3V0IGEgc2luZ2xlIHN0dWIgZWRpdC5cbiAqXG4gKiBgREJfUkVBRF9FTkFCTEVEPWZhbHNlYCBpcyB0aGUgS0lMTCBTV0lUQ0g6IGl0IGZvcmNlcyBldmVyeSByZWFkIGJhY2sgdG8gdGhlXG4gKiBwcmltYXJ5IHdpdGhvdXQgYSByZWRlcGxveSBvciBhIG1hbmlmZXN0IGNoYW5nZSwgd2hpY2ggdGhlIHVuc2V0LWhvc3QgZmFsbGJhY2tcbiAqIGRvZXMgbm90IGNvdmVyLiBVbnNldCBob3N0IGFuc3dlcnMgXCJ0aGVyZSBpcyBubyByZXBsaWNhXCI7IHRoZSBraWxsIHN3aXRjaFxuICogYW5zd2VycyBcInRoZXJlIGlzIG9uZSBhbmQgSSBkbyBub3QgdHJ1c3QgaXRcIi5cbiAqXG4gKiBgLnRyaW0oKWAgbWF0dGVyczogYERCX1JFQURfSE9TVD1cIiBcImAgZnJvbSBhIHN0cmF5IHNwYWNlIG11c3Qgbm90IHJlYWQgYXNcbiAqIFwiYSByZXBsaWNhIGV4aXN0c1wiLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZWFkUmVwbGljYUNvbmZpZ3VyZWQoKTogYm9vbGVhbiB7XG4gIGlmICghZW52Qm9vbCgnREJfUkVBRF9FTkFCTEVEJywgdHJ1ZSkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIGVudlN0cignREJfUkVBRF9IT1NUJywgJycpLnRyaW0oKS5sZW5ndGggPiAwO1xufVxuIl19
|
package/lib/utils/headers.js
CHANGED
|
@@ -18,4 +18,4 @@ export function getHeaderString(value) {
|
|
|
18
18
|
}
|
|
19
19
|
return value;
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVycy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2hlYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQU90Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBa0I7SUFDaEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIEV4cHJlc3MgNSBoZWFkZXIgdHlwZS5cbiAqL1xudHlwZSBIZWFkZXJWYWx1ZSA9IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIEV4dHJhY3QgYSBzaW5nbGUgc3RyaW5nIGZyb20gYSBoZWFkZXIgdmFsdWUgdGhhdCBtYXkgYmUgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gSGVhZGVyIHZhbHVlIGZyb20gRXhwcmVzcyByZXF1ZXN0XG4gKiBAcmV0dXJucyBGaXJzdCB2YWx1ZSBpZiBhcnJheSwgdGhlIHZhbHVlIGlmIHN0cmluZywgb3IgdW5kZWZpbmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9yZ0lkID0gZ2V0SGVhZGVyU3RyaW5nKHJlcS5oZWFkZXJzWyd4LW9yZy1pZCddKTtcbiAqIGNvbnN0IGF1dGggPSBnZXRIZWFkZXJTdHJpbmcocmVxLmhlYWRlcnMuYXV0aG9yaXphdGlvbik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhlYWRlclN0cmluZyh2YWx1ZTogSGVhZGVyVmFsdWUpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWVbMF07XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuIl19
|
package/lib/utils/identity.js
CHANGED
|
@@ -128,4 +128,4 @@ export function getIdentity(req) {
|
|
|
128
128
|
role: user?.role || getHeaderString(req.headers['x-user-role']),
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaWRlbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBaUIvQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFnQztJQUM3RCxPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxTQUFTLENBQUM7QUFDbEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRXhDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBRTlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQUM7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUMsRUFBOEI7SUFDcEQsT0FBTyxFQUFFLENBQUMsTUFBTSxJQUFJLGVBQWUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBZ0I7SUFDMUMsb0VBQW9FO0lBQ3BFLHVFQUF1RTtJQUN2RSx1RUFBdUU7SUFDdkUsb0RBQW9EO0lBQ3BELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDdEIsNkVBQTZFO0lBQzdFLHdEQUF3RDtJQUN4RCw4RUFBOEU7SUFDOUUsMEVBQTBFO0lBQzFFLDZFQUE2RTtJQUM3RSwwRUFBMEU7SUFDMUUsc0VBQXNFO0lBQ3RFLHlFQUF5RTtJQUN6RSw0RUFBNEU7SUFDNUUsd0VBQXdFO0lBQ3hFLDBFQUEwRTtJQUMxRSwyRUFBMkU7SUFDM0UsZ0VBQWdFO0lBQ2hFLE1BQU0sYUFBYSxHQUFHLElBQUksRUFBRSxhQUFhLENBQUM7SUFDMUMsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM3RCxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQUksSUFBSSxhQUFhLEtBQUssU0FBUyxDQUFDO0lBQzdELE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxjQUFjLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckYsNEVBQTRFO0lBQzVFLDhFQUE4RTtJQUM5RSw4RUFBOEU7SUFDOUUsd0RBQXdEO0lBQ3hELE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxPQUFPO1FBQ0wsS0FBSztRQUNMLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlELFNBQVMsRUFBRSxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RCxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNoRSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBnZXRIZWFkZXJTdHJpbmcgfSBmcm9tICcuL2hlYWRlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBIdHRwUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzL2h0dHAuanMnO1xuXG4vKipcbiAqIElkZW50aXR5IGluZm9ybWF0aW9uIGV4dHJhY3RlZCBmcm9tIHJlcXVlc3QgaGVhZGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SWRlbnRpdHkge1xuICAvKiogT3JnYW5pemF0aW9uIElEIGZyb20geC1vcmctaWQgaGVhZGVyICovXG4gIHJlYWRvbmx5IG9yZ0lkPzogc3RyaW5nO1xuICAvKiogVXNlciBJRCBmcm9tIHgtdXNlci1pZCBoZWFkZXIgKi9cbiAgcmVhZG9ubHkgdXNlcklkPzogc3RyaW5nO1xuICAvKiogUmVxdWVzdCBJRCBmcm9tIHgtcmVxdWVzdC1pZCBoZWFkZXIgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdElkPzogc3RyaW5nO1xuICAvKiogVXNlciByb2xlIGZyb20geC11c2VyLXJvbGUgaGVhZGVyIChkZWNvZGVkIGZyb20gSldUKSAqL1xuICByZWFkb25seSByb2xlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENhbm9uaWNhbCBvcmctaWQgbm9ybWFsaXphdGlvbjogdHJpbSArIGxvd2VyY2FzZSwgZW1wdHkg4oeSIHVuZGVmaW5lZC5cbiAqXG4gKiBUaGUgU0lOR0xFIHNwZWxsaW5nIHJ1bGUgZm9yIGEgdGVuYW50IGlkIGFjcm9zcyB0aGUgZmxlZXQuIE9yZyBpZHMgYXJlXG4gKiAyNC1oZXggT2JqZWN0SWQgc3RyaW5ncyAocGx1cyB0aGUgYCdzeXN0ZW0nYCBzZW50aW5lbCksIGFuZCBoZXggaXNcbiAqIGNhc2UtaW5zZW5zaXRpdmUg4oCUIHNvIGBBY21lYC1zdHlsZSBjYXNpbmcgZGlmZmVyZW5jZXMgcmVzb2x2ZSB0byB0aGUgU0FNRVxuICogTW9uZ28gZG9jdW1lbnQgd2hpbGUgc3RyaW5nIGNvbXBhcmlzb25zIChgYWN0aXZlT3JnSWQgPT09IHRhcmdldE9yZ0lkYCwgYW5cbiAqIFJMUyBHVUMgdnMgYSBXSEVSRSBjbGF1c2UsIGEgY2FjaGUga2V5KSBzaWxlbnRseSBkaXNhZ3JlZS4gRXZlcnl0aGluZyB0aGF0XG4gKiBjb21wYXJlcyBvciBrZXlzIG9uIGFuIG9yZyBpZCBub3JtYWxpemVzIHRocm91Z2ggaGVyZSBzbyB0aGUgY29tcGFyaXNvbiBhbmRcbiAqIHRoZSBsb29rdXAgY2FuIG5ldmVyIGRyaWZ0IGFwYXJ0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplT3JnSWQob3JnSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3JnSWQ/LnRyaW0oKS50b0xvd2VyQ2FzZSgpIHx8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBUaGUgYWN0b3IgaWQgd3JpdHRlbiB3aGVuIG5vdGhpbmcgaW4gdGhlIHJlcXVlc3QgYXR0cmlidXRlcyB0aGUgYWN0aW9uIHRvIGFcbiAqIHBlcnNvbiDigJQgYW4gaW50ZXJuYWwgc2VydmljZSBob3AsIGEgc2NoZWR1bGVyIHRpY2ssIGEgdG9rZW4gd2hvc2Ugc3ViamVjdFxuICogbmV2ZXIgcmVzb2x2ZWQuIE9uZSBzcGVsbGluZywgYmVjYXVzZSB0aGUgYXVkaXQgdHJhaWwgaXMgcXVlcmllZCBieSBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNZU1RFTV9BQ1RPUl9JRCA9ICdzeXN0ZW0nO1xuXG4vKipcbiAqIFRoZSBhY3RvciBpZCB3cml0dGVuIGZvciBhbiBVTkFVVEhFTlRJQ0FURUQgYWN0b3I6IGFuIGFub255bW91cyBwdWJsaWMgcGx1Z2luXG4gKiBzdWJtaXNzaW9uIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kIOKAlCB0aGUgZXZlbnQgY2Fycmllc1xuICogYGRldGFpbHMuc3VibWlzc2lvbklkYCBmb3IgY29ycmVsYXRpb24gYW5kIGlzIHJlY29yZGVkIGFnYWluc3QgdGhlIHN5c3RlbVxuICogb3JnOyB0aGUgc3VibWl0dGVyJ3MgZW1haWwsIGhhc2hlZCBvciBvdGhlcndpc2UsIG5ldmVyIGFwcGVhcnMgaW4gdGhlIGF1ZGl0XG4gKiB0cmFpbCkgYW5kIHBsYXRmb3JtJ3MgcHJlLWF1dGggYGRldmljZS5hdXRob3JpemUuc3RhcnRgIChhIGRldmljZS1sb2dpbiBjb2RlXG4gKiByZXF1ZXN0ZWQgYmVmb3JlIGFueW9uZSBoYXMgc2lnbmVkIGluKS4gRGlzdGluY3QgZnJvbSB7QGxpbmsgU1lTVEVNX0FDVE9SX0lEfSwgd2hpY2ggbWVhbnMgXCJubyBwZXJzb25cbiAqIGludm9sdmVkXCIsIG5vdCBcImEgcGVyc29uIHdlIGRvbid0IGtub3dcIi5cbiAqL1xuZXhwb3J0IGNvbnN0IEFOT05ZTU9VU19BQ1RPUl9JRCA9ICdhbm9ueW1vdXMnO1xuXG4vKipcbiAqIFRoZSBhY3RvciBpZCB3cml0dGVuIGZvciB3b3JrIHRoZSBFWFBBTlNJT04tT0ZGRVJTIGFnZW50IGRpZCBvbiBpdHMgb3duXG4gKiAoZG9jcy9wbGFucy9zYWxlcy1hZ2VudC5tZCBEMTQpLlxuICpcbiAqIERpc3RpbmN0IGZyb20ge0BsaW5rIFNZU1RFTV9BQ1RPUl9JRH0gYmVjYXVzZSBcIndoeSBkaWQgdGhpcyBhY2NvdW50IGdldCB0aGlzXG4gKiBvZmZlcj9cIiBpcyB0aGUgb25seSBxdWVzdGlvbiBhbnlib2R5IHdpbGwgYXNrIGFib3V0IHRoYXQgZmVhdHVyZSwgYW5kIHRoZVxuICogZ2VuZXJpYyBzeXN0ZW0gYWN0b3IgbWFrZXMgaXQgdW5hbnN3ZXJhYmxlOiB0aGUgdHJhaWwgc2hvd3Mgc3lzdGVtIHdvcmssIG9mXG4gKiB3aGljaCB0aGlzIGRlcGxveW1lbnQgZG9lcyBhIGdyZWF0IGRlYWwsIGFuZCBub3RoaW5nIHdvdWxkIHNlcGFyYXRlIGFuIG9mZmVyXG4gKiB0aGUgYWdlbnQgZGVjaWRlZCBmcm9tIGEgc2VlZCwgYSBiYWNrZmlsbCBvciBhbiBvcGVyYXRvciBzY3JpcHQuXG4gKlxuICogSXQgYWxzbyBtYWtlcyB0aGUgYWdlbnQncyB3b3JrIHJldm9jYWJsZSBBUyBBIFNFVCDigJQgXCJ3aXRoZHJhdyBldmVyeXRoaW5nIHRoZVxuICogYWdlbnQgZGlkIGluIHRoZSBsYXN0IGhvdXJcIiBpcyBhIHF1ZXJ5IG9uIHRoaXMgdmFsdWUgcmF0aGVyIHRoYW4gYW5cbiAqIGFyY2hhZW9sb2d5IGV4ZXJjaXNlLCB3aGljaCBpcyB0aGUgY29udHJvbCBhbiBvcGVyYXRvciB3YW50cyBvbiB0aGUgbW9ybmluZyBhXG4gKiBydWxlIHR1cm5zIG91dCB0byBiZSB3cm9uZy5cbiAqXG4gKiBBbiBBQ1RPUiwgbm90IGEgbmV0d29yayBpZGVudGl0eTogdGhlIGFnZW50IHJ1bnMgaW5zaWRlIGJpbGxpbmcgdW50aWwgUGhhc2UgNVxuICogZXh0cmFjdHMgaXQsIHNvIGl0cyBzZXJ2aWNlIHByaW5jaXBhbCBpcyBzdGlsbCBgYmlsbGluZ2AuIFRoaXMgbmFtZXMgd2hvXG4gKiBkZWNpZGVkLCB3aGljaCBpcyB3aGF0IHRoZSBhdWRpdCB0cmFpbCBpcyBxdWVyaWVkIGJ5LlxuICovXG5leHBvcnQgY29uc3QgT0ZGRVJTX0FHRU5UX0FDVE9SX0lEID0gJ29mZmVycy1hZ2VudCc7XG5cbi8qKlxuICogVGhlIGFjdG9yIGlkIHRvIHN0YW1wIG9uIGFuIGF1ZGl0IGV2ZW50LCBmcm9tIGEgcm91dGUgY29udGV4dC5cbiAqXG4gKiBPbmUgcmVzb2x2ZXIgc28gZXZlcnkgcm91dGUgYWdyZWVzIG9uIHRoZSBmYWxsYmFjazogcGVyLXJvdXRlXG4gKiBgcmVxLnVzZXIuc3ViID8/IOKApmAgZmFsbGJhY2tzIGRpc2FncmVlLCBhbmQgdGhlIHNhbWUgdW5hdHRyaWJ1dGFibGUgd3JpdGVcbiAqIHdvdWxkIGxhbmQgaW4gdGhlIHRyYWlsIHVuZGVyIGRpZmZlcmVudCBhY3RvcnMgZGVwZW5kaW5nIG9uIHRoZSByb3V0ZS5cbiAqXG4gKiBgcmMudXNlcklkYCBpcyBhbHJlYWR5IHRoZSBub3JtYWxpemVkIGlkZW50aXR5IGB3aXRoUm91dGVgIHJlc29sdmVkIChKV1RcbiAqIGBzdWJgLCBlbHNlIHRoZSBgeC11c2VyLWlkYCBob3AgaGVhZGVyIOKAlCBzZWUge0BsaW5rIGdldElkZW50aXR5fSksIHNvIHRoaXMgaXNcbiAqIHRoZSBzYW1lIHZhbHVlIHRoZSByZXN0IG9mIHRoZSByZXF1ZXN0IGlzIHNjb3BlZCBieSwgYW5kIHRoZSBPTkUgcGxhY2UgdGhlXG4gKiBcInVuYXR0cmlidXRhYmxlXCIgc2VudGluZWwgaXMgY2hvc2VuLiBBY2NlcHRzIGFueXRoaW5nIGNhcnJ5aW5nIGEgYHVzZXJJZGAsXG4gKiB3aGljaCB0aGUgcm91dGUgY29udGV4dCBkb2VzIOKAlCBwYXNzIGByY2AsIG9yIGB7IHVzZXJJZCB9YCB3aGVuIHRoZSBoYW5kbGVyXG4gKiBkZXN0cnVjdHVyZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY3RvcklkKHJjOiB7IHVzZXJJZD86IHN0cmluZyB8IG51bGwgfSk6IHN0cmluZyB7XG4gIHJldHVybiByYy51c2VySWQgfHwgU1lTVEVNX0FDVE9SX0lEO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgaWRlbnRpdHkgaW5mb3JtYXRpb24gZnJvbSByZXF1ZXN0IGhlYWRlcnMuXG4gKlxuICogRXh0cmFjdHMgY29tbW9uIGlkZW50aXR5IGhlYWRlcnMgdXNlZCBmb3IgbXVsdGktdGVuYW50IGF1dGhlbnRpY2F0aW9uOlxuICogLSB4LW9yZy1pZDogT3JnYW5pemF0aW9uIGlkZW50aWZpZXIgKElOVEVSTkFMIFNFUlZJQ0UgaG9wcyBvbmx5LCBzZWUgYmVsb3cpXG4gKiAtIHgtdXNlci1pZDogVXNlciBpZGVudGlmaWVyXG4gKiAtIHgtcmVxdWVzdC1pZDogUmVxdWVzdCB0cmFjZSBpZGVudGlmaWVyXG4gKiAtIHgtdXNlci1yb2xlOiBVc2VyIHJvbGVcbiAqXG4gKiBAcGFyYW0gcmVxIC0gSFRUUCByZXF1ZXN0IG9iamVjdFxuICogQHJldHVybnMgSWRlbnRpdHkgb2JqZWN0IHdpdGggb3JnSWQsIHVzZXJJZCwgcmVxdWVzdElkLCBhbmQgcm9sZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhcHAucG9zdCgnL2FwaS9yZXNvdXJjZScsIHJlcXVpcmVBdXRoLCBhc3luYyAocmVxLCByZXMpID0+IHtcbiAqICAgY29uc3QgaWRlbnRpdHkgPSBnZXRJZGVudGl0eShyZXEpO1xuICpcbiAqICAgaWYgKCFpZGVudGl0eS5vcmdJZCkge1xuICogICAgIHJldHVybiBzZW5kRXJyb3IocmVzLCA0MDAsICd4LW9yZy1pZCBoZWFkZXIgcmVxdWlyZWQnKTtcbiAqICAgfVxuICpcbiAqICAgLy8gVXNlIGlkZW50aXR5Lm9yZ0lkLCBpZGVudGl0eS51c2VySWQsIGV0Yy5cbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGl0eShyZXE6IEh0dHBSZXF1ZXN0KTogUmVxdWVzdElkZW50aXR5IHtcbiAgLy8gUHJlZmVyIEpXVC12ZXJpZmllZCBjbGFpbXMgKHJlcS51c2VyKSBvdmVyIHJhdyBoZWFkZXJzIHRvIHByZXZlbnRcbiAgLy8gc3Bvb2ZpbmcuIEhlYWRlcnMgYXJlIG9ubHkgdXNlZCBhcyBmYWxsYmFjayBvciBmb3IgZmllbGRzIG5vdCBpbiB0aGVcbiAgLy8gSldUIChlLmcuIHJlcXVlc3RJZCkuIFRoZSBKV1QgcGF5bG9hZCB1c2VzIGBzdWJgIGZvciB0aGUgdXNlciBpZCBwZXJcbiAgLy8gT0lEQyBjb252ZW50aW9uOyB0aGF0J3Mgb3VyIGF1dGhvcml0YXRpdmUgc291cmNlLlxuICBjb25zdCB1c2VyID0gcmVxLnVzZXI7XG4gIC8vIFRoZSBgeC1vcmctaWRgIGhlYWRlciBpcyBDTElFTlQtU0VUVEFCTEUsIHNvIGl0IGlzIG9ubHkgZXZlciBob25vcmVkIGZvciBhXG4gIC8vIHByaW5jaXBhbCB0aGF0IGhhcyBubyB0ZW5hbnQgb2YgaXRzIG93biB0byBzcGVhayBmb3I6XG4gIC8vICAgLSBhbiBJTlRFUk5BTCBTRVJWSUNFIHByaW5jaXBhbCAoYHByaW5jaXBhbFR5cGU6ICdzZXJ2aWNlJ2ApLCB3aG9zZSB0b2tlblxuICAvLyAgICAgbmFtZXMgdGhlIHNpZ25pbmcgc2VydmljZSByYXRoZXIgdGhhbiB0aGUgdGVuYW50IGl0IGlzIGFjdGluZyBmb3Ig4oCUXG4gIC8vICAgICB0aGF0IGlzIHRoZSBTMlMgaG9wIGNvbnZlbnRpb24gKHRoZSBjYXNjYWRlLCB0aGUgcXVvdGEgY2xpZW50LCDigKYpOyBhbmRcbiAgLy8gICAtIGEgcmVxdWVzdCB3aXRoIG5vIHZlcmlmaWVkIHByaW5jaXBhbCBhdCBhbGwgKGBhdHRhY2hSZXF1ZXN0Q29udGV4dGBcbiAgLy8gICAgIHJ1bnMgYmVmb3JlIGByZXF1aXJlQXV0aGAsIHdoaWNoIHJlY29tcHV0ZXMgdGhpcyBmcm9tIHRoZSBKV1QpLlxuICAvLyBGb3IgYSBVU0VSIG9yIFNFUlZJQ0UtQUNDT1VOVCBwcmluY2lwYWwgdGhlIEpXVCBpcyB0aGUgT05MWSBhdXRob3JpdHkuXG4gIC8vIFBsYXRmb3JtIGNhbiBtaW50IGEgdXNlciB0b2tlbiB3aXRoIG5vIGBvcmdhbml6YXRpb25JZGAgKGEgcGVyc29uIGJldHdlZW5cbiAgLy8gb3JncywgbWlkLWludml0ZSwgbWlkLW9uYm9hcmRpbmcpOyBhIGB1c2VyPy5vcmdhbml6YXRpb25JZCB8fCBoZWFkZXJgXG4gIC8vIGZhbGxiYWNrIHdvdWxkIGxldCBzdWNoIGEgdG9rZW4gbmFtZSBhbnkgdGVuYW50IGl0IGxpa2VkIOKAlCBhIHZhbHVlIHRoYXRcbiAgLy8gZmxvd3Mgc3RyYWlnaHQgaW50byB0aGUgUkxTIHRlbmFudCBHVUMuIEFic2VudCDih5IgdW5kZWZpbmVkIOKHkiB0aGUgcm91dGUnc1xuICAvLyBgcmVxdWlyZU9yZ0lkYCByZWZ1c2VzIHRoZSBjYWxsLCB3aGljaCBpcyB0aGUgY29ycmVjdCBhbnN3ZXIuXG4gIGNvbnN0IHByaW5jaXBhbFR5cGUgPSB1c2VyPy5wcmluY2lwYWxUeXBlO1xuICBjb25zdCBoZWFkZXJPcmdJZCA9IGdldEhlYWRlclN0cmluZyhyZXEuaGVhZGVyc1sneC1vcmctaWQnXSk7XG4gIGNvbnN0IG1heVVzZUhlYWRlck9yZyA9ICF1c2VyIHx8IHByaW5jaXBhbFR5cGUgPT09ICdzZXJ2aWNlJztcbiAgY29uc3QgcmF3T3JnSWQgPSB1c2VyPy5vcmdhbml6YXRpb25JZCB8fCAobWF5VXNlSGVhZGVyT3JnID8gaGVhZGVyT3JnSWQgOiB1bmRlZmluZWQpO1xuICAvLyBOb3JtYWxpemVkIE9OQ0UgaGVyZSAoc2VlIG5vcm1hbGl6ZU9yZ0lkKSBzbyB0aGUgUkxTIEdVQyAoYGlkZW50aXR5U2NvcGVgXG4gIC8vIHJlYWRzIHRoaXMgYGlkZW50aXR5Lm9yZ0lkYCkgYW5kIHRoZSBhcHAtbGF5ZXIgV0hFUkUgY2xhdXNlcyAocm91dGUtd3JhcHBlclxuICAvLyAvIGFwcC1mYWN0b3J5KSBhbHdheXMgYWdyZWUgb24gdGVuYW50LiBBIG1pc21hdGNoIOKAlCBHVUMgc2V0IHRvIGBBY21lYCB3aGlsZVxuICAvLyBXSEVSRSBxdWVyaWVzIGBhY21lYCDigJQgd291bGQgc2lsZW50bHkgcmV0dXJuIG5vIHJvd3MuXG4gIGNvbnN0IG9yZ0lkID0gbm9ybWFsaXplT3JnSWQocmF3T3JnSWQpO1xuICByZXR1cm4ge1xuICAgIG9yZ0lkLFxuICAgIHVzZXJJZDogdXNlcj8uc3ViIHx8IGdldEhlYWRlclN0cmluZyhyZXEuaGVhZGVyc1sneC11c2VyLWlkJ10pLFxuICAgIHJlcXVlc3RJZDogZ2V0SGVhZGVyU3RyaW5nKHJlcS5oZWFkZXJzWyd4LXJlcXVlc3QtaWQnXSksXG4gICAgcm9sZTogdXNlcj8ucm9sZSB8fCBnZXRIZWFkZXJTdHJpbmcocmVxLmhlYWRlcnNbJ3gtdXNlci1yb2xlJ10pLFxuICB9O1xufVxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFpQi9DOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWdDO0lBQzdELE9BQU8sS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLFNBQVMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUM7QUFFeEM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxFQUE4QjtJQUNwRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLElBQUksZUFBZSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFnQjtJQUMxQyxvRUFBb0U7SUFDcEUsdUVBQXVFO0lBQ3ZFLHVFQUF1RTtJQUN2RSxvREFBb0Q7SUFDcEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUN0Qiw2RUFBNkU7SUFDN0Usd0RBQXdEO0lBQ3hELDhFQUE4RTtJQUM5RSwwRUFBMEU7SUFDMUUsNkVBQTZFO0lBQzdFLDBFQUEwRTtJQUMxRSxzRUFBc0U7SUFDdEUseUVBQXlFO0lBQ3pFLDRFQUE0RTtJQUM1RSx3RUFBd0U7SUFDeEUsMEVBQTBFO0lBQzFFLDJFQUEyRTtJQUMzRSxnRUFBZ0U7SUFDaEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxFQUFFLGFBQWEsQ0FBQztJQUMxQyxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzdELE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBSSxJQUFJLGFBQWEsS0FBSyxTQUFTLENBQUM7SUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLGNBQWMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyRiw0RUFBNEU7SUFDNUUsOEVBQThFO0lBQzlFLDhFQUE4RTtJQUM5RSx3REFBd0Q7SUFDeEQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU87UUFDTCxLQUFLO1FBQ0wsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUQsU0FBUyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ2hFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGdldEhlYWRlclN0cmluZyB9IGZyb20gJy4vaGVhZGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IEh0dHBSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMvaHR0cC5qcyc7XG5cbi8qKlxuICogSWRlbnRpdHkgaW5mb3JtYXRpb24gZXh0cmFjdGVkIGZyb20gcmVxdWVzdCBoZWFkZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RJZGVudGl0eSB7XG4gIC8qKiBPcmdhbml6YXRpb24gSUQgZnJvbSB4LW9yZy1pZCBoZWFkZXIgKi9cbiAgcmVhZG9ubHkgb3JnSWQ/OiBzdHJpbmc7XG4gIC8qKiBVc2VyIElEIGZyb20geC11c2VyLWlkIGhlYWRlciAqL1xuICByZWFkb25seSB1c2VySWQ/OiBzdHJpbmc7XG4gIC8qKiBSZXF1ZXN0IElEIGZyb20geC1yZXF1ZXN0LWlkIGhlYWRlciAqL1xuICByZWFkb25seSByZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gIC8qKiBVc2VyIHJvbGUgZnJvbSB4LXVzZXItcm9sZSBoZWFkZXIgKGRlY29kZWQgZnJvbSBKV1QpICovXG4gIHJlYWRvbmx5IHJvbGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2Fub25pY2FsIG9yZy1pZCBub3JtYWxpemF0aW9uOiB0cmltICsgbG93ZXJjYXNlLCBlbXB0eSDih5IgdW5kZWZpbmVkLlxuICpcbiAqIFRoZSBTSU5HTEUgc3BlbGxpbmcgcnVsZSBmb3IgYSB0ZW5hbnQgaWQgYWNyb3NzIHRoZSBmbGVldC4gT3JnIGlkcyBhcmVcbiAqIDI0LWhleCBPYmplY3RJZCBzdHJpbmdzIChwbHVzIHRoZSBgJ3N5c3RlbSdgIHNlbnRpbmVsKSwgYW5kIGhleCBpc1xuICogY2FzZS1pbnNlbnNpdGl2ZSDigJQgc28gYEFjbWVgLXN0eWxlIGNhc2luZyBkaWZmZXJlbmNlcyByZXNvbHZlIHRvIHRoZSBTQU1FXG4gKiBNb25nbyBkb2N1bWVudCB3aGlsZSBzdHJpbmcgY29tcGFyaXNvbnMgKGBhY3RpdmVPcmdJZCA9PT0gdGFyZ2V0T3JnSWRgLCBhblxuICogUkxTIEdVQyB2cyBhIFdIRVJFIGNsYXVzZSwgYSBjYWNoZSBrZXkpIHNpbGVudGx5IGRpc2FncmVlLiBFdmVyeXRoaW5nIHRoYXRcbiAqIGNvbXBhcmVzIG9yIGtleXMgb24gYW4gb3JnIGlkIG5vcm1hbGl6ZXMgdGhyb3VnaCBoZXJlIHNvIHRoZSBjb21wYXJpc29uIGFuZFxuICogdGhlIGxvb2t1cCBjYW4gbmV2ZXIgZHJpZnQgYXBhcnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVPcmdJZChvcmdJZDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcmdJZD8udHJpbSgpLnRvTG93ZXJDYXNlKCkgfHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSBhY3RvciBpZCB3cml0dGVuIHdoZW4gbm90aGluZyBpbiB0aGUgcmVxdWVzdCBhdHRyaWJ1dGVzIHRoZSBhY3Rpb24gdG8gYVxuICogcGVyc29uIOKAlCBhbiBpbnRlcm5hbCBzZXJ2aWNlIGhvcCwgYSBzY2hlZHVsZXIgdGljaywgYSB0b2tlbiB3aG9zZSBzdWJqZWN0XG4gKiBuZXZlciByZXNvbHZlZC4gT25lIHNwZWxsaW5nLCBiZWNhdXNlIHRoZSBhdWRpdCB0cmFpbCBpcyBxdWVyaWVkIGJ5IGl0LlxuICovXG5leHBvcnQgY29uc3QgU1lTVEVNX0FDVE9SX0lEID0gJ3N5c3RlbSc7XG5cbi8qKlxuICogVGhlIGFjdG9yIGlkIHdyaXR0ZW4gZm9yIGFuIFVOQVVUSEVOVElDQVRFRCBhY3RvcjogYW4gYW5vbnltb3VzIHB1YmxpYyBwbHVnaW5cbiAqIHN1Ym1pc3Npb24gKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQg4oCUIHRoZSBldmVudCBjYXJyaWVzXG4gKiBgZGV0YWlscy5zdWJtaXNzaW9uSWRgIGZvciBjb3JyZWxhdGlvbiBhbmQgaXMgcmVjb3JkZWQgYWdhaW5zdCB0aGUgc3lzdGVtXG4gKiBvcmc7IHRoZSBzdWJtaXR0ZXIncyBlbWFpbCwgaGFzaGVkIG9yIG90aGVyd2lzZSwgbmV2ZXIgYXBwZWFycyBpbiB0aGUgYXVkaXRcbiAqIHRyYWlsKSBhbmQgcGxhdGZvcm0ncyBwcmUtYXV0aCBgZGV2aWNlLmF1dGhvcml6ZS5zdGFydGAgKGEgZGV2aWNlLWxvZ2luIGNvZGVcbiAqIHJlcXVlc3RlZCBiZWZvcmUgYW55b25lIGhhcyBzaWduZWQgaW4pLiBEaXN0aW5jdCBmcm9tIHtAbGluayBTWVNURU1fQUNUT1JfSUR9LCB3aGljaCBtZWFucyBcIm5vIHBlcnNvblxuICogaW52b2x2ZWRcIiwgbm90IFwiYSBwZXJzb24gd2UgZG9uJ3Qga25vd1wiLlxuICovXG5leHBvcnQgY29uc3QgQU5PTllNT1VTX0FDVE9SX0lEID0gJ2Fub255bW91cyc7XG5cbi8qKlxuICogVGhlIGFjdG9yIGlkIHdyaXR0ZW4gZm9yIHdvcmsgdGhlIEVYUEFOU0lPTi1PRkZFUlMgYWdlbnQgZGlkIG9uIGl0cyBvd25cbiAqIChkb2NzL3BsYW5zL3NhbGVzLWFnZW50Lm1kIEQxNCkuXG4gKlxuICogRGlzdGluY3QgZnJvbSB7QGxpbmsgU1lTVEVNX0FDVE9SX0lEfSBiZWNhdXNlIFwid2h5IGRpZCB0aGlzIGFjY291bnQgZ2V0IHRoaXNcbiAqIG9mZmVyP1wiIGlzIHRoZSBvbmx5IHF1ZXN0aW9uIGFueWJvZHkgd2lsbCBhc2sgYWJvdXQgdGhhdCBmZWF0dXJlLCBhbmQgdGhlXG4gKiBnZW5lcmljIHN5c3RlbSBhY3RvciBtYWtlcyBpdCB1bmFuc3dlcmFibGU6IHRoZSB0cmFpbCBzaG93cyBzeXN0ZW0gd29yaywgb2ZcbiAqIHdoaWNoIHRoaXMgZGVwbG95bWVudCBkb2VzIGEgZ3JlYXQgZGVhbCwgYW5kIG5vdGhpbmcgd291bGQgc2VwYXJhdGUgYW4gb2ZmZXJcbiAqIHRoZSBhZ2VudCBkZWNpZGVkIGZyb20gYSBzZWVkLCBhIGJhY2tmaWxsIG9yIGFuIG9wZXJhdG9yIHNjcmlwdC5cbiAqXG4gKiBJdCBhbHNvIG1ha2VzIHRoZSBhZ2VudCdzIHdvcmsgcmV2b2NhYmxlIEFTIEEgU0VUIOKAlCBcIndpdGhkcmF3IGV2ZXJ5dGhpbmcgdGhlXG4gKiBhZ2VudCBkaWQgaW4gdGhlIGxhc3QgaG91clwiIGlzIGEgcXVlcnkgb24gdGhpcyB2YWx1ZSByYXRoZXIgdGhhbiBhblxuICogYXJjaGFlb2xvZ3kgZXhlcmNpc2UsIHdoaWNoIGlzIHRoZSBjb250cm9sIGFuIG9wZXJhdG9yIHdhbnRzIG9uIHRoZSBtb3JuaW5nIGFcbiAqIHJ1bGUgdHVybnMgb3V0IHRvIGJlIHdyb25nLlxuICpcbiAqIEFuIEFDVE9SLCBub3QgYSBuZXR3b3JrIGlkZW50aXR5OiB0aGUgYWdlbnQgcnVucyBpbnNpZGUgYmlsbGluZyB1bnRpbCBQaGFzZSA1XG4gKiBleHRyYWN0cyBpdCwgc28gaXRzIHNlcnZpY2UgcHJpbmNpcGFsIGlzIHN0aWxsIGBiaWxsaW5nYC4gVGhpcyBuYW1lcyB3aG9cbiAqIGRlY2lkZWQsIHdoaWNoIGlzIHdoYXQgdGhlIGF1ZGl0IHRyYWlsIGlzIHF1ZXJpZWQgYnkuXG4gKi9cbmV4cG9ydCBjb25zdCBPRkZFUlNfQUdFTlRfQUNUT1JfSUQgPSAnb2ZmZXJzLWFnZW50JztcblxuLyoqXG4gKiBUaGUgYWN0b3IgaWQgdG8gc3RhbXAgb24gYW4gYXVkaXQgZXZlbnQsIGZyb20gYSByb3V0ZSBjb250ZXh0LlxuICpcbiAqIE9uZSByZXNvbHZlciBzbyBldmVyeSByb3V0ZSBhZ3JlZXMgb24gdGhlIGZhbGxiYWNrOiBwZXItcm91dGVcbiAqIGByZXEudXNlci5zdWIgPz8g4oCmYCBmYWxsYmFja3MgZGlzYWdyZWUsIGFuZCB0aGUgc2FtZSB1bmF0dHJpYnV0YWJsZSB3cml0ZVxuICogd291bGQgbGFuZCBpbiB0aGUgdHJhaWwgdW5kZXIgZGlmZmVyZW50IGFjdG9ycyBkZXBlbmRpbmcgb24gdGhlIHJvdXRlLlxuICpcbiAqIGByYy51c2VySWRgIGlzIGFscmVhZHkgdGhlIG5vcm1hbGl6ZWQgaWRlbnRpdHkgYHdpdGhSb3V0ZWAgcmVzb2x2ZWQgKEpXVFxuICogYHN1YmAsIGVsc2UgdGhlIGB4LXVzZXItaWRgIGhvcCBoZWFkZXIg4oCUIHNlZSB7QGxpbmsgZ2V0SWRlbnRpdHl9KSwgc28gdGhpcyBpc1xuICogdGhlIHNhbWUgdmFsdWUgdGhlIHJlc3Qgb2YgdGhlIHJlcXVlc3QgaXMgc2NvcGVkIGJ5LCBhbmQgdGhlIE9ORSBwbGFjZSB0aGVcbiAqIFwidW5hdHRyaWJ1dGFibGVcIiBzZW50aW5lbCBpcyBjaG9zZW4uIEFjY2VwdHMgYW55dGhpbmcgY2FycnlpbmcgYSBgdXNlcklkYCxcbiAqIHdoaWNoIHRoZSByb3V0ZSBjb250ZXh0IGRvZXMg4oCUIHBhc3MgYHJjYCwgb3IgYHsgdXNlcklkIH1gIHdoZW4gdGhlIGhhbmRsZXJcbiAqIGRlc3RydWN0dXJlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdG9ySWQocmM6IHsgdXNlcklkPzogc3RyaW5nIHwgbnVsbCB9KTogc3RyaW5nIHtcbiAgcmV0dXJuIHJjLnVzZXJJZCB8fCBTWVNURU1fQUNUT1JfSUQ7XG59XG5cbi8qKlxuICogRXh0cmFjdCBpZGVudGl0eSBpbmZvcm1hdGlvbiBmcm9tIHJlcXVlc3QgaGVhZGVycy5cbiAqXG4gKiBFeHRyYWN0cyBjb21tb24gaWRlbnRpdHkgaGVhZGVycyB1c2VkIGZvciBtdWx0aS10ZW5hbnQgYXV0aGVudGljYXRpb246XG4gKiAtIHgtb3JnLWlkOiBPcmdhbml6YXRpb24gaWRlbnRpZmllciAoSU5URVJOQUwgU0VSVklDRSBob3BzIG9ubHksIHNlZSBiZWxvdylcbiAqIC0geC11c2VyLWlkOiBVc2VyIGlkZW50aWZpZXJcbiAqIC0geC1yZXF1ZXN0LWlkOiBSZXF1ZXN0IHRyYWNlIGlkZW50aWZpZXJcbiAqIC0geC11c2VyLXJvbGU6IFVzZXIgcm9sZVxuICpcbiAqIEBwYXJhbSByZXEgLSBIVFRQIHJlcXVlc3Qgb2JqZWN0XG4gKiBAcmV0dXJucyBJZGVudGl0eSBvYmplY3Qgd2l0aCBvcmdJZCwgdXNlcklkLCByZXF1ZXN0SWQsIGFuZCByb2xlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGFwcC5wb3N0KCcvYXBpL3Jlc291cmNlJywgcmVxdWlyZUF1dGgsIGFzeW5jIChyZXEsIHJlcykgPT4ge1xuICogICBjb25zdCBpZGVudGl0eSA9IGdldElkZW50aXR5KHJlcSk7XG4gKlxuICogICBpZiAoIWlkZW50aXR5Lm9yZ0lkKSB7XG4gKiAgICAgcmV0dXJuIHNlbmRFcnJvcihyZXMsIDQwMCwgJ3gtb3JnLWlkIGhlYWRlciByZXF1aXJlZCcpO1xuICogICB9XG4gKlxuICogICAvLyBVc2UgaWRlbnRpdHkub3JnSWQsIGlkZW50aXR5LnVzZXJJZCwgZXRjLlxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldElkZW50aXR5KHJlcTogSHR0cFJlcXVlc3QpOiBSZXF1ZXN0SWRlbnRpdHkge1xuICAvLyBQcmVmZXIgSldULXZlcmlmaWVkIGNsYWltcyAocmVxLnVzZXIpIG92ZXIgcmF3IGhlYWRlcnMgdG8gcHJldmVudFxuICAvLyBzcG9vZmluZy4gSGVhZGVycyBhcmUgb25seSB1c2VkIGFzIGZhbGxiYWNrIG9yIGZvciBmaWVsZHMgbm90IGluIHRoZVxuICAvLyBKV1QgKGUuZy4gcmVxdWVzdElkKS4gVGhlIEpXVCBwYXlsb2FkIHVzZXMgYHN1YmAgZm9yIHRoZSB1c2VyIGlkIHBlclxuICAvLyBPSURDIGNvbnZlbnRpb247IHRoYXQncyBvdXIgYXV0aG9yaXRhdGl2ZSBzb3VyY2UuXG4gIGNvbnN0IHVzZXIgPSByZXEudXNlcjtcbiAgLy8gVGhlIGB4LW9yZy1pZGAgaGVhZGVyIGlzIENMSUVOVC1TRVRUQUJMRSwgc28gaXQgaXMgb25seSBldmVyIGhvbm9yZWQgZm9yIGFcbiAgLy8gcHJpbmNpcGFsIHRoYXQgaGFzIG5vIHRlbmFudCBvZiBpdHMgb3duIHRvIHNwZWFrIGZvcjpcbiAgLy8gICAtIGFuIElOVEVSTkFMIFNFUlZJQ0UgcHJpbmNpcGFsIChgcHJpbmNpcGFsVHlwZTogJ3NlcnZpY2UnYCksIHdob3NlIHRva2VuXG4gIC8vICAgICBuYW1lcyB0aGUgc2lnbmluZyBzZXJ2aWNlIHJhdGhlciB0aGFuIHRoZSB0ZW5hbnQgaXQgaXMgYWN0aW5nIGZvciDigJRcbiAgLy8gICAgIHRoYXQgaXMgdGhlIFMyUyBob3AgY29udmVudGlvbiAodGhlIGNhc2NhZGUsIHRoZSBxdW90YSBjbGllbnQsIOKApik7IGFuZFxuICAvLyAgIC0gYSByZXF1ZXN0IHdpdGggbm8gdmVyaWZpZWQgcHJpbmNpcGFsIGF0IGFsbCAoYGF0dGFjaFJlcXVlc3RDb250ZXh0YFxuICAvLyAgICAgcnVucyBiZWZvcmUgYHJlcXVpcmVBdXRoYCwgd2hpY2ggcmVjb21wdXRlcyB0aGlzIGZyb20gdGhlIEpXVCkuXG4gIC8vIEZvciBhIFVTRVIgb3IgU0VSVklDRS1BQ0NPVU5UIHByaW5jaXBhbCB0aGUgSldUIGlzIHRoZSBPTkxZIGF1dGhvcml0eS5cbiAgLy8gUGxhdGZvcm0gY2FuIG1pbnQgYSB1c2VyIHRva2VuIHdpdGggbm8gYG9yZ2FuaXphdGlvbklkYCAoYSBwZXJzb24gYmV0d2VlblxuICAvLyBvcmdzLCBtaWQtaW52aXRlLCBtaWQtb25ib2FyZGluZyk7IGEgYHVzZXI/Lm9yZ2FuaXphdGlvbklkIHx8IGhlYWRlcmBcbiAgLy8gZmFsbGJhY2sgd291bGQgbGV0IHN1Y2ggYSB0b2tlbiBuYW1lIGFueSB0ZW5hbnQgaXQgbGlrZWQg4oCUIGEgdmFsdWUgdGhhdFxuICAvLyBmbG93cyBzdHJhaWdodCBpbnRvIHRoZSBSTFMgdGVuYW50IEdVQy4gQWJzZW50IOKHkiB1bmRlZmluZWQg4oeSIHRoZSByb3V0ZSdzXG4gIC8vIGByZXF1aXJlT3JnSWRgIHJlZnVzZXMgdGhlIGNhbGwsIHdoaWNoIGlzIHRoZSBjb3JyZWN0IGFuc3dlci5cbiAgY29uc3QgcHJpbmNpcGFsVHlwZSA9IHVzZXI/LnByaW5jaXBhbFR5cGU7XG4gIGNvbnN0IGhlYWRlck9yZ0lkID0gZ2V0SGVhZGVyU3RyaW5nKHJlcS5oZWFkZXJzWyd4LW9yZy1pZCddKTtcbiAgY29uc3QgbWF5VXNlSGVhZGVyT3JnID0gIXVzZXIgfHwgcHJpbmNpcGFsVHlwZSA9PT0gJ3NlcnZpY2UnO1xuICBjb25zdCByYXdPcmdJZCA9IHVzZXI/Lm9yZ2FuaXphdGlvbklkIHx8IChtYXlVc2VIZWFkZXJPcmcgPyBoZWFkZXJPcmdJZCA6IHVuZGVmaW5lZCk7XG4gIC8vIE5vcm1hbGl6ZWQgT05DRSBoZXJlIChzZWUgbm9ybWFsaXplT3JnSWQpIHNvIHRoZSBSTFMgR1VDIChgaWRlbnRpdHlTY29wZWBcbiAgLy8gcmVhZHMgdGhpcyBgaWRlbnRpdHkub3JnSWRgKSBhbmQgdGhlIGFwcC1sYXllciBXSEVSRSBjbGF1c2VzIChyb3V0ZS13cmFwcGVyXG4gIC8vIC8gYXBwLWZhY3RvcnkpIGFsd2F5cyBhZ3JlZSBvbiB0ZW5hbnQuIEEgbWlzbWF0Y2gg4oCUIEdVQyBzZXQgdG8gYEFjbWVgIHdoaWxlXG4gIC8vIFdIRVJFIHF1ZXJpZXMgYGFjbWVgIOKAlCB3b3VsZCBzaWxlbnRseSByZXR1cm4gbm8gcm93cy5cbiAgY29uc3Qgb3JnSWQgPSBub3JtYWxpemVPcmdJZChyYXdPcmdJZCk7XG4gIHJldHVybiB7XG4gICAgb3JnSWQsXG4gICAgdXNlcklkOiB1c2VyPy5zdWIgfHwgZ2V0SGVhZGVyU3RyaW5nKHJlcS5oZWFkZXJzWyd4LXVzZXItaWQnXSksXG4gICAgcmVxdWVzdElkOiBnZXRIZWFkZXJTdHJpbmcocmVxLmhlYWRlcnNbJ3gtcmVxdWVzdC1pZCddKSxcbiAgICByb2xlOiB1c2VyPy5yb2xlIHx8IGdldEhlYWRlclN0cmluZyhyZXEuaGVhZGVyc1sneC11c2VyLXJvbGUnXSksXG4gIH07XG59XG4iXX0=
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from './api-key.js';
|
|
|
3
3
|
export * from './safe-require.js';
|
|
4
4
|
export * from './secure-compare.js';
|
|
5
5
|
export * from './crash-handlers.js';
|
|
6
|
+
export * from './concurrency-gate.js';
|
|
6
7
|
export { sendSuccess, sendError, sendQuotaExceeded, quotaExceededMessage, type QuotaExceededDetails, sendPaginatedNested, paginationMeta, type PaginationMeta, extractDbError, errorMessage, sendBadRequest, sendInternalError, parsePaginationParams, type PaginationParams, type SortParams, } from './response.js';
|
|
7
8
|
export { getParam, parseQueryInt, parseQueryString, parseOptionalDate, parsePositiveInt, parseQueryIntClamped, parsePage, validateBulkArray, parseReportInterval, parseReportTimezone, parseWeekStart, isValidTimezone, parseDateRange, type Page, type ReportInterval, type WeekStart, REPORT_INTERVALS, WEEK_STARTS, } from './params.js';
|
|
8
9
|
export * from './headers.js';
|
|
@@ -26,3 +27,4 @@ export * from './service-registry.js';
|
|
|
26
27
|
export * from './retention.js';
|
|
27
28
|
export * from './compliance-attributes.js';
|
|
28
29
|
export { leadingZeroBits, proofOfWorkHash, challengeKey, clampDifficulty, createProofOfWorkChallenge, parseProofOfWorkChallenge, verifyProofOfWork, solveProofOfWork, POW_DEFAULT_DIFFICULTY, POW_MAX_DIFFICULTY, POW_CHALLENGE_TTL_MS, type ProofOfWorkChallenge, type ProofOfWorkSolution, } from './proof-of-work.js';
|
|
30
|
+
export { compareSemver, isSemver, satisfiesRange } from './semver.js';
|
package/lib/utils/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export * from './api-key.js';
|
|
|
5
5
|
export * from './safe-require.js';
|
|
6
6
|
export * from './secure-compare.js';
|
|
7
7
|
export * from './crash-handlers.js';
|
|
8
|
+
export * from './concurrency-gate.js';
|
|
8
9
|
export { sendSuccess, sendError, sendQuotaExceeded, quotaExceededMessage, sendPaginatedNested, paginationMeta, extractDbError, errorMessage, sendBadRequest, sendInternalError, parsePaginationParams, } from './response.js';
|
|
9
10
|
export { getParam, parseQueryInt, parseQueryString, parseOptionalDate, parsePositiveInt, parseQueryIntClamped, parsePage, validateBulkArray, parseReportInterval, parseReportTimezone, parseWeekStart, isValidTimezone, parseDateRange, REPORT_INTERVALS, WEEK_STARTS, } from './params.js';
|
|
10
11
|
export * from './headers.js';
|
|
@@ -32,4 +33,5 @@ export * from './service-registry.js';
|
|
|
32
33
|
export * from './retention.js';
|
|
33
34
|
export * from './compliance-attributes.js';
|
|
34
35
|
export { leadingZeroBits, proofOfWorkHash, challengeKey, clampDifficulty, createProofOfWorkChallenge, parseProofOfWorkChallenge, verifyProofOfWork, solveProofOfWork, POW_DEFAULT_DIFFICULTY, POW_MAX_DIFFICULTY, POW_CHALLENGE_TTL_MS, } from './proof-of-work.js';
|
|
35
|
-
|
|
36
|
+
export { compareSemver, isSemver, satisfiesRange } from './semver.js';
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZUFBZSxFQUNmLFlBQVksRUFFWixNQUFNLEVBQ04sT0FBTyxHQUNSLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQixtQkFBbUIsRUFDbkIsY0FBYyxFQUVkLGNBQWMsRUFDZCxZQUFZLEVBQ1osY0FBYyxFQUNkLGlCQUFpQixFQUNqQixxQkFBcUIsR0FHdEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGNBQWMsRUFJZCxnQkFBZ0IsRUFDaEIsV0FBVyxHQUNaLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLHlFQUF5RTtBQUN6RSxtRUFBbUU7QUFDbkUseUVBQXlFO0FBQ3pFLDhFQUE4RTtBQUM5RSxpQ0FBaUM7QUFDakMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGVBQWUsRUFDZixjQUFjLEVBQ2QsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsVUFBVSxHQUNYLE1BQU0sVUFBVSxDQUFDO0FBS2xCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3RCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFlBQVksQ0FBQztBQUMzQixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEVBR2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBR3BCLG9CQUFvQixHQUNyQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxHQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUNwQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsUUFBUSxFQUNSLGNBQWMsRUFDZCxRQUFRLEVBQ1Isd0JBQXdCLEdBQ3pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsU0FBUyxHQUVWLE1BQU0sV0FBVyxDQUFDO0FBQ25CLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksRUFDWixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsb0JBQW9CLEdBR3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7XG4gIHNldExvZ0NvbnRleHRQcm92aWRlcixcbiAgcmVkYWN0U2Vuc2l0aXZlLFxuICBjcmVhdGVMb2dnZXIsXG4gIHR5cGUgTG9nZ2VyLFxuICBsb2dnZXIsXG4gIGRlZmF1bHQsXG59IGZyb20gJy4vbG9nZ2VyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpLWtleS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NhZmUtcmVxdWlyZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlY3VyZS1jb21wYXJlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY3Jhc2gtaGFuZGxlcnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25jdXJyZW5jeS1nYXRlLmpzJztcbmV4cG9ydCB7XG4gIHNlbmRTdWNjZXNzLFxuICBzZW5kRXJyb3IsXG4gIHNlbmRRdW90YUV4Y2VlZGVkLFxuICBxdW90YUV4Y2VlZGVkTWVzc2FnZSxcbiAgdHlwZSBRdW90YUV4Y2VlZGVkRGV0YWlscyxcbiAgc2VuZFBhZ2luYXRlZE5lc3RlZCxcbiAgcGFnaW5hdGlvbk1ldGEsXG4gIHR5cGUgUGFnaW5hdGlvbk1ldGEsXG4gIGV4dHJhY3REYkVycm9yLFxuICBlcnJvck1lc3NhZ2UsXG4gIHNlbmRCYWRSZXF1ZXN0LFxuICBzZW5kSW50ZXJuYWxFcnJvcixcbiAgcGFyc2VQYWdpbmF0aW9uUGFyYW1zLFxuICB0eXBlIFBhZ2luYXRpb25QYXJhbXMsXG4gIHR5cGUgU29ydFBhcmFtcyxcbn0gZnJvbSAnLi9yZXNwb25zZS5qcyc7XG5leHBvcnQge1xuICBnZXRQYXJhbSxcbiAgcGFyc2VRdWVyeUludCxcbiAgcGFyc2VRdWVyeVN0cmluZyxcbiAgcGFyc2VPcHRpb25hbERhdGUsXG4gIHBhcnNlUG9zaXRpdmVJbnQsXG4gIHBhcnNlUXVlcnlJbnRDbGFtcGVkLFxuICBwYXJzZVBhZ2UsXG4gIHZhbGlkYXRlQnVsa0FycmF5LFxuICBwYXJzZVJlcG9ydEludGVydmFsLFxuICBwYXJzZVJlcG9ydFRpbWV6b25lLFxuICBwYXJzZVdlZWtTdGFydCxcbiAgaXNWYWxpZFRpbWV6b25lLFxuICBwYXJzZURhdGVSYW5nZSxcbiAgdHlwZSBQYWdlLFxuICB0eXBlIFJlcG9ydEludGVydmFsLFxuICB0eXBlIFdlZWtTdGFydCxcbiAgUkVQT1JUX0lOVEVSVkFMUyxcbiAgV0VFS19TVEFSVFMsXG59IGZyb20gJy4vcGFyYW1zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVycy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2lkZW50aXR5LmpzJztcbi8vIEpXSyBwcmltaXRpdmVzLiBQbGF0Zm9ybSBJUyB0aGUgdG9rZW4gc2lnbmVyLCBzbyBpdCBsZWdpdGltYXRlbHkgbmVlZHNcbi8vIGBwdWJsaWNKd2tGcm9tYCArIGBkZXJUb0pvc2VTaWduYXR1cmVgIGZyb20gdGhlIHBhY2thZ2Ugc3VyZmFjZS5cbi8vIGBqd2tUaHVtYnByaW50YCBhbmQgYHB1YmxpY0tleUZyb21Kd2tgIGFyZSBraWQtZGVyaXZhdGlvbi92ZXJpZmljYXRpb25cbi8vIHBsdW1iaW5nIHVzZWQgb25seSBpbnNpZGUgYXBpLWNvcmUg4oCUIGRlZXAtaW1wb3J0IHRoZW0gZnJvbSB0aGVyZSBpbnN0ZWFkIG9mXG4vLyBsZWFraW5nIHRoZW0gdG8gZXZlcnkgc2VydmljZS5cbmV4cG9ydCB7XG4gIFVTRVJfVE9LRU5fQUxHT1JJVEhNLFxuICBVU0VSX1RPS0VOX0NVUlZFLFxuICBKV0tTX1BBVEgsXG4gIGRlY29kZUp3dEhlYWRlcixcbiAgaXNKd2tzRG9jdW1lbnQsXG4gIHB1YmxpY0p3a0Zyb20sXG4gIGRlclRvSm9zZVNpZ25hdHVyZSxcbiAgZW5jb2RlSndzU2lnbmluZ0lucHV0LFxuICBjb21wYWN0SndzLFxufSBmcm9tICcuL2p3ay5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIFB1YmxpY0p3ayxcbiAgSndrc0RvY3VtZW50LFxufSBmcm9tICcuL2p3ay5qcyc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUuanMnO1xuZXhwb3J0IHtcbiAgcmVzZXRTdXBwb3J0QWxpYXNlc0NhY2hlLFxuICBnZXRQcmltYXJ5U3VwcG9ydEFsaWFzLFxuICBnZXRBbGxTdXBwb3J0QWxpYXNlcyxcbiAgcmVzb2x2ZVJlY2lwaWVudEFsaWFzLFxuICBERUZBVUxUX1NVUFBPUlRfQUxJQVMsXG59IGZyb20gJy4vYWxpYXMtcmVzb2x2ZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25jdXJyZW5jeS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGl0LmpzJztcbmV4cG9ydCB7XG4gIGdldERlZmF1bHRLZXlQcm92aWRlcixcbiAgcmVzZXREZWZhdWx0S2V5UHJvdmlkZXIsXG4gIHNldEtleVByb3ZpZGVyLFxuICBlbmNyeXB0U2VjcmV0LFxuICBkZWNyeXB0U2VjcmV0LFxuICBpc0VuY3J5cHRlZEJsb2IsXG4gIHR5cGUgRW5jcnlwdGVkQmxvYixcbiAgdHlwZSBLZXlQcm92aWRlcixcbiAgRW52S2V5UHJvdmlkZXIsXG4gIEttc0tleVByb3ZpZGVyLFxuICBjcmVhdGVCYXNlS2V5UHJvdmlkZXIsXG4gIGluaXRTZWNyZXRFbmNyeXB0aW9uLFxuICB0eXBlIFBlck9yZ0ttc0NvbmZpZyxcbiAgdHlwZSBQZXJPcmdLbXNSZXNvbHZlcixcbiAgUGVyT3JnS21zS2V5UHJvdmlkZXIsXG59IGZyb20gJy4vc2VjcmV0LWVuY3J5cHRpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWNyZXQtcm90YXRpb24uanMnO1xuZXhwb3J0IHtcbiAgc2V0Q291bnRlckVtaXR0ZXIsXG4gIHJlc2V0Q291bnRlckVtaXR0ZXIsXG4gIHNldEdhdWdlRW1pdHRlcixcbiAgcmVzZXRHYXVnZUVtaXR0ZXIsXG4gIGVtaXRHYXVnZSxcbiAgZW1pdENvdW50ZXIsXG59IGZyb20gJy4vbWV0cmljLWVtaXR0ZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hd3Mtc2NydWIuanMnO1xuZXhwb3J0IHtcbiAgZXh0cmFjdFByZWRpY2F0ZSxcbiAgU1BEWF9QUkVESUNBVEVfVFlQRSxcbn0gZnJvbSAnLi9kc3NlLmpzJztcbmV4cG9ydCB7XG4gIG1hc2tMaW5lLFxuICBsb29rc1NlbnNpdGl2ZSxcbiAgUkVEQUNURUQsXG4gIFNFTlNJVElWRV9WQUxVRV9QQVRURVJOUyxcbn0gZnJvbSAnLi9zZW5zaXRpdmUtcGF0dGVybnMuanMnO1xuZXhwb3J0IHtcbiAgaXNQcml2YXRlQWRkcmVzcyxcbiAgYXNzZXJ0U2FmZVVybCxcbiAgc2FmZUZldGNoLFxuICB0eXBlIFNhZmVGZXRjaFJlc3BvbnNlLFxufSBmcm9tICcuL3NzcmYuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnYuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXJlZ2lzdHJ5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmV0ZW50aW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcGxpYW5jZS1hdHRyaWJ1dGVzLmpzJztcbmV4cG9ydCB7XG4gIGxlYWRpbmdaZXJvQml0cyxcbiAgcHJvb2ZPZldvcmtIYXNoLFxuICBjaGFsbGVuZ2VLZXksXG4gIGNsYW1wRGlmZmljdWx0eSxcbiAgY3JlYXRlUHJvb2ZPZldvcmtDaGFsbGVuZ2UsXG4gIHBhcnNlUHJvb2ZPZldvcmtDaGFsbGVuZ2UsXG4gIHZlcmlmeVByb29mT2ZXb3JrLFxuICBzb2x2ZVByb29mT2ZXb3JrLFxuICBQT1dfREVGQVVMVF9ESUZGSUNVTFRZLFxuICBQT1dfTUFYX0RJRkZJQ1VMVFksXG4gIFBPV19DSEFMTEVOR0VfVFRMX01TLFxuICB0eXBlIFByb29mT2ZXb3JrQ2hhbGxlbmdlLFxuICB0eXBlIFByb29mT2ZXb3JrU29sdXRpb24sXG59IGZyb20gJy4vcHJvb2Ytb2Ytd29yay5qcyc7XG5leHBvcnQgeyBjb21wYXJlU2VtdmVyLCBpc1NlbXZlciwgc2F0aXNmaWVzUmFuZ2UgfSBmcm9tICcuL3NlbXZlci5qcyc7XG4iXX0=
|